JASON Hirschhorn: Croeso i wythnos tri, bawb. Mae gennym prysur ond cyffrous adran o'n blaenau. Felly yn gyntaf, oherwydd yr ydym wedi gwneud rhai cynnydd â'r cwrs ond rydym yn dal wedi llawer o ddysgu ar ôl i'w wneud, rwy'n yn mynd i ddangos i chi guys rhai adnoddau a ddylai fod yn profi i fod yn hynod ddefnyddiol wrth i chi nid yn unig yn mynd at eich problem yn gosod, ond hefyd yn treulio pob un y deunydd rydym yn rhoi guys mewn chi darlithoedd a siorts ac adran. Yna, rydym yn mynd i wario'r 20 cyntaf i 25 munud adran yn mynd dros GDB, a allai neu efallai na fydd yn rhaid i chi a ddefnyddir ar hyn o bryd, ond mae'n offeryn hynod ddefnyddiol a fydd yn eich helpu i debug eich rhaglenni. Gall llawer ohonoch wedi defnyddio printf yn y ganol eich rhaglen i ffigur allan beth yw newidyn gyfartal. GDB yn oed yn well na printf a nid yw'n sgriw i fyny eich cod oherwydd eich redeg ar ffeil gweithredadwy. Felly, byddwn yn mynd dros y 10 mwyaf defnyddiol gorchmynion hangen arnoch ar gyfer GDB, ac rydym yn mynd i fynd ar ymarfer gyda'i gilydd fel mewn datrys gosod tri a thu hwnt, i chi ddefnyddio GDB i helpu i debug eich rhaglenni. Ac yn olaf, rydym yn mynd i fynd dros rai didoli a chwilio algorithmau eich bod yn gweld yn y ddarlith, ac rydym yn mynd i mewn gwirionedd cod, nid dim ond pseudocode, ond cod chwiliad deuaidd, fath swigod, a didoli dethol. Felly yn gyntaf, yr wyf am i fynd dros yr adnoddau. Mae hon yn rhestr gynhwysfawr, ac mae'n ffont llai oherwydd roedd gen i lawer i'w ffitio yma. Ond bydd y rhain nid yn unig yn eich helpu, unwaith eto, gyda'r broblem setiau a treulio wybodaeth y byddwch yn ei ddysgu, ond yn bendant, pan ddaw'n adeg cwis, bydd y rhain yn fod yn hynod ddefnyddiol. Felly yn gyntaf, y ddarlith nodiadau. Os byddwch yn mynd i cs50.net/lectures a sgrolio i'r wythnos a dydd penodol, byddwch yn gweld bod yna nodiadau ar gyfer pob ddarlithio, nad yn unig yw trawsgrifiad, ond fersiwn wedi'i golygu o'r yr hyn a drafodir yn y ddarlith gyda chod pytiau a tidbits defnyddiol eraill. Fi 'n dal argymell fynd dros hynny. Ac yna, yn ogystal, mae cod ffynhonnell ar gael o bob darlith. Ac eto, bydd y sleidiau hyn hefyd yn sydd ar gael ar-lein yn cs50.net/sections heno. Felly ail yw'r siorts bob wythnos y pynciau clawr, fel arfer 5 i 15 munud o hyd. A'r rhai gobaith yw y bydd yn rhoi i chi primer mawr ar bynciau gwahanol. Trydydd - ac mae hyn yn hyn yn newydd sbon blwyddyn - yn study.cs50.net. Os nad ydych wedi gwirio allan, yr wyf yn yn argymell yn gryf eich bod yn gwneud hynny. Byddwch yn cael i ddewis pwnc. Rydym wedi dwsinau o bynciau ar yno. Felly, er enghraifft, byddwch yn codi Swyddogaethau. Mae'n rhoi rhai sleidiau chi ac yn nodi ar swyddogaethau. Mae'r rhai mewn gwirionedd yn y sleidiau bod TFS eu hannog i ddefnyddio ystod ein cyflwyniadau yn yr adran. Mae hefyd awgrymiadau a driciau ar gyfer delio â swyddogaethau, ac mae problemau ymarferol sy'n helpu ydych yn gweithio gyda swyddogaethau. Rydym hefyd yn rhoi dolenni i chi y tymor byr ar swyddogaethau a'r gwaith y swyddogaethau wedi dod i fyny yn y ddarlith. Felly study.cs50.net, brand newydd hon flwyddyn, yn adnodd gwych. Nesaf, yr wyf wedi dyn, sef y llawlyfr gorchymyn y gallwch redeg yn y llinell orchymyn. Felly os oes gennych unrhyw gwestiynau am gorchymyn, er enghraifft, rand, yr ydym yn dod ar eu traws wythnos diwethaf yn ystod adran a'ch bod yn debygol wedi dod ar eu traws yn y eich problem a osodwyd wrth fynd drwy'r cynhyrchu cod, ond os byddwch yn teipio dyn rand, byddwch yn cael y tudalen sy'n yn dweud popeth wrthych am rand. Mae'n rhoi i chi beth sydd ei angen, y paramedrau y mae'n ei gymryd, yn ogystal â dychwelyd math a disgrifiad byr y swyddogaeth honno. Felly edrychwch ar rand. Gall fod yn ychydig yn amleiriog ac yn ddryslyd, felly weithiau rwy'n gweld bod yn syml Googling yr hyn yr wyf am ei wybod yw y ffordd orau i ddod o hyd i'r ateb. Felly ymarfer gyda Google. Cael dda yn Google. Bydd yn dod yn eich ffrind gorau. Yn ogystal â Google, os nad ydych yn gallu ddod o hyd iddo ar Google, cs50.net/discuss, mae'n y fforwm drafod. Tebygolrwydd yw os oes gennych gwestiwn, un eich 700 + cyfoedion hefyd bod cwestiwn ac efallai wedi gofyn mae eisoes yn y trafod fforymau ac wedi ei hateb. Felly os oes gennych gwestiwn cyffredin neu oes gennych gwestiwn yr ydych yn meddwl efallai y gallai pobl eraill wedi rhedeg i mewn i, atalfa i maes cs50.net/discuss. Yn olaf, y ddau olaf, os ydych am i siarad â lles, swyddfa dynol go iawn ddydd Llun i ddydd Gwener. Mae hefyd oriau swyddfa ar-lein ar gyfer myfyrwyr estyniad. Ac yn olaf, ond yn sicr nid y lleiaf, mi, pwynt ebychnod. Rydych chi i gyd yn cael fy gwybodaeth gyswllt. Os oes angen unrhyw beth, os gwelwch yn dda byth croeso i chi gysylltu â mi. Bob amser yn teimlo yn rhydd i wneud hynny. Ychydig iawn ohonoch wedi fy llwytho ar Gchat, felly mae hynny wedi bod yn siomedig, ond gobeithio y bydd y newid rhwng hwn ac adran nesaf. Unrhyw gwestiynau hyd yn hyn ar yr adnoddau? Great. Yn olaf, plwg arall ar gyfer adborth, sayat.me/cs50. Gallwch roi adborth dienw i mi ar sut yr wyf i'n ei wneud. Dyna oedd yn ddefnyddiol iawn yr wythnos diwethaf. Ges i un neu ddau o sylwadau gennych chi guys dde ar ôl adran hon, yn ogystal o myfyrwyr eraill oedd yn gwylio ei yn ystod yr wythnos, ac mae'n yn hynod ddefnyddiol. Yr wyf yn mynd i geisio cyfyngu ar fy nefnydd o y gair "melys," ond byddaf yn dangos fy brwdfrydedd a chyffro mewn ffyrdd eraill. Ond roedd ychwanegol eraill adborth sylweddol, y ddau pwyntiau cadarnhaol a delta. Felly os gwelwch yn dda, yr wyf yn rhoi adborth i chi guys ar eich setiau problem. Teimlwch yn rhydd i roi adborth i mi ar fy addysgu. Rwy'n yma i chi guys. Great. Dyna'r cyfan yr wyf wedi gyfer yr adran gyntaf. A oes unrhyw un yn cael unrhyw cwestiynau hyd yn hyn? Ac mae gen i nodyn ar gyfer ganolfan reoli. Estyniad fyfyrwyr wedi messaged mi yn dweud nad ydynt yn cael unrhyw sain, ond sydd allan o fy ngallu i drwsio. Felly, gobeithio, sy'n cael datrys yn fuan. Os ydych yn gwylio ar-lein, hi, ond nad ydych yn gallu fy nghlywed. Felly yn gyntaf, rydym yn mynd i fynd drwy GDB. GDB, gan fy mod yn awgrymu yn gynharach, yn offeryn debugging llawer gwell na printf. Felly, i ddechrau gyda GDB, rydych guys, os ydych am i agor eich offer a chymryd y ffeil yr wyf yn e-bostio atoch yn gynharach - bydd y ffeil hon hefyd yn gael ar-lein mewn tipyn - a rhedeg GDB. / enw'r ffeil. Yn gyntaf, wrth gwrs, rhaid i chi lunio ffeilio oherwydd GDB yn unig yn gweithio ar ffeiliau gweithredadwy. Ond os ydych chi erioed wedi eisiau i ddechrau GDB, y peth cyntaf a wnewch, ydych yn rhedeg GDB. / Cesar. Felly dyna enw'r rhaglen rydym yn mynd i fynd ag ef ar hyn o bryd. Felly, yr wyf i'n mynd i ysgrifennu gwneud Cesar, a oedd yn yn rhoi ffeil gweithredadwy i mi yma a amlygwyd mewn gwyrdd. Ac yna yr wyf i'n mynd i redeg GDB. / Cesar. A dyna ti'n mynd. Byddwch yn gweld mae gennym rai destun yn dweud wrthyf am y fersiwn o GDB, gan roi i mi rhywfaint o wybodaeth warant, ac yna rydym yn yn cael y brydlon CMC, sy'n edrych fath o fel ein brydlon llinell orchymyn, ond byddwch yn gweld ei fod yn agored paren, GDB, paren agos. Cyn i ni barhau a dadfygio ffeil a anfonais i chi i gyd, gadewch i ni edrych ar rhai gorchmynion defnyddiol felly rydym yn meddu ar synnwyr o'r hyn yr ydym yn mynd i dalu. Mae'r gorchmynion yn cael eu rhestru yma yn y drefn yr wyf yn gyffredinol yn eu defnyddio. Felly, yr wyf yn dechrau fy rhaglen drwy redeg GBD. / Enw'r rhaglen, yn yr achos hwn, Cesar. Ac yna y peth cyntaf i mi ei wneud 99.9% o'r amser egwyl fath yn ei olygu. Sy'n gosod pwynt torri yn y prif. Yn y bôn, yr hyn yr ydych yn ei wneud yno yw'r rhaglen yn mynd i aros yn prif fel y gallwch ddechrau archwilio ei linell trwy linell, yn hytrach na rhedeg yr holl y ffordd drwyddo. Gallwch dorri ar wahanol adegau yn eich cod, ond prif yn gyffredinol yn lle da i ddechrau. Y gorchymyn nesaf fy mod yn rhedeg yn cael ei rhedeg. Sy'n dechrau rhedeg rhaglen, a os oes angen i fynd i mewn archa bannod dadleuon, ydych yn rhedeg hi y gorchymyn. Rhedeg gyda'r dadleuon. Felly, gan ein bod yn mynd dros fersiwn o C, sef y rhaglen yr ydych guys Ysgrifennodd am pset dau - yr un yma, wrth gwrs, mae gan rhai bugs ynddo bod gobeithio y byddwn yn dod o hyd - rydym yn mynd i redeg rhedeg gyda rhai gorchymyn dadleuon llinell oherwydd Cesar, wrth i chi guys yn gwybod unol â'r broblem gosod spec, yn cymryd rhai dadleuon llinell gorchymyn. Mae'r pâr nesaf o orchmynion, y nesaf un yn cael ei alw'n gwirionedd nesaf. Mae hynny'n un yn mynd â chi fesul llinell drwy eich rhaglen. Felly taro n yna Enter yn mynd â chi at y llinell nesaf, gweithredu llinell flaenorol. Cam nid yn unig yn mynd â chi i y llinell nesaf, ond mae'n mynd â swyddogaethau tu mewn i chi. Felly, os ydych wedi ysgrifennu swyddogaeth yn eich cod neu os ydych am i archwilio i i, er enghraifft, gallwch daro, ac yn hytrach na mynd i'r llinell nesaf o y ffeil eich bod yn mynd trwy hawl yn awr, byddwch mewn gwirionedd yn camu i mewn i swyddogaeth hon a gweld ei cod. Rhestr yn dangos i chi, yn hawdd iawn i'w defnyddio fformat, y 10 neu felly linellau o gwmpas ble rydych chi ar hyn o bryd yn eich cod er mwyn i chi mewn gwirionedd yn gweld y ffeil yn hytrach na gorfod cyfnewid yn ôl a ymlaen rhwng gwahanol safbwyntiau. Print yn debyg printf, fel y mae'r enw'n awgrymu. Mae hynny'n dangos i chi beth newidyn gyfartal. Bobl leol Info yn wirioneddol ddefnyddiol. Mae hwn yn fersiwn arbennig o brint. Bobl leol Info yn dangos i chi i gyd y gymuned leol newidynnau, argraffu nhw i gyd allan i chi sydd ar gael ar hyn o bryd. Felly, yr wyf yn gyffredinol, yn hytrach na gorfod argraffu'r pedwar newidyn fy mod i'n chwilfrydig am os ydw i mewn i ddolen, er enghraifft, Fi jyst ysgrifennu pobl leol gwybodaeth, a bydd yn dangos beth yw fy cownter i mi yn hafal i, yn ogystal â'r amrywiaeth fy mod yn gweithio ar gyfartal. Yn olaf, yn parhau. Teipio egwyl yn eich atal ar y pwynt egwyl. Gallwch gerdded drwy linell gan unol ā nesaf ac cam. Parhau yn rhedeg y rhaglen i'ch nesaf torri pwynt neu hyd nes cwblhau os nad oes mwy o bwyntiau egwyl. Analluoga gwared pwyntiau egwyl os ydych yn penderfynodd y toriad yn y prif oedd amhriodol, yr ydych am ei osod yn rhywle arall. Ac yn olaf q, roi'r gorau iddi, mynd allan o GDB. Felly rhaglen hon,. / Cesar, rydym yn mynd i edrych drwy ar hyn o bryd ac rydym yn yn mynd i ddefnyddio GDB i ddod o hyd y bygiau yn y rhaglen hon. Yr wyf yn rhedeg y rhaglen hon yn gynharach gyda Gwiriwch 50, ac fe ges i un gwgu. Mae popeth ei fod yn bodoli, mae'n llunio, mae'n pasio llawer o'r profion, ond ar gyfer ryw reswm, nid oedd yn llwyddo yn y pumed prawf, troi BARFOO, pob capiau, i mewn E-D-U-I-R-R, pob capiau, ddefnyddio tri fel allwedd. Cawn eithaf agos. Ges i ffwrdd gan un llythyr. Felly, mae rhywfaint o gamgymeriad bach yma. Dw i wedi edrych trwy fy cod. Nid oeddwn yn gallu chyfrif 'ii maes. Gobeithio, gallwch chi guys fy helpu chyfrif i maes beth bug yw hyn. Felly dyna y gwall rydym yn chwilio am. Gadewch i ni symud i mewn i GDB. Unwaith eto, yr wyf wedi rhedeg GDB. / Cesar, felly erbyn hyn rydym yn GDB. A beth yw'r cyntaf beth ddylwn i ei wneud? Rydw i wedi newydd ddechrau GDB. Mae rhywun yn rhoi i mi yn dda gorchymyn i fynd i mewn. MYFYRIWR: Break prif. JASON Hirschhorn: Break prif. Fantastic. Gadewch i deipio bod mewn Gallwch guys wylio yma neu ddilyn ynghyd ar eich cyfrifiaduron. Egwyl prif, a byddwch yn gweld pwynt torri ei osod ar - mae'n rhoi rhywfaint o gyfeiriad cof rhyfedd i mi, ac mae hefyd yn rhoi rhif llinell mi. Os wyf yn edrych yn ôl ar y ffeil, Byddwn yn sylweddoli mai prif digwydd ar-lein 21. Beth ddylwn i redeg nesaf? A yw fy rhaglen yn rhedeg? Rhif Felly, beth ddylwn i ei redeg nesaf? MYFYRIWR: Rhedeg. JASON Hirschhorn: Rhedeg. A ddylwn i jyst yn rhedeg rhedeg, neu y dylai Yr wyf yn ychwanegu ychydig o bethau eraill yn? MYFYRIWR: Rhedeg â'r ddadl. JASON Hirschhorn: Rhedeg gyda y dadleuon gorchymyn. Ac ers i mi mod yn debugging yn benodol iawn achos, dylwn nodwch y ymresymiad llinell orchymyn. Felly byddaf yn rhedeg tri, sydd, unwaith eto, yr allbwn a gefais gan Gwirio 50. Rhaglen cychwyn. Rydym yn mynd trwy un neu ddau o linellau. Byddwch yn awr yn gweld ein bod ar-lein 21. Sut ydw i'n gwybod ein bod ar-lein 21? Oherwydd os ydych yn edrych ar y chwith fy ffenestr terfynell, mae mae'n dweud llinell 21. Ac mae hynny'n rhoi i mi, mewn gwirionedd, y cod sydd ar linell 21. Felly, yr wyf misspoke gynharach. Nid yw prif mewn gwirionedd yn llinell 21. Main yn un neu ddau o linellau uwchben 21. Ond ar linell 21, dyna lle rydym yn torri. Mae'r llinell o god wedi heb ei weithredu eto. Mae hynny'n bwysig. Nid yw'r llinell a welwch wedi bod yn gweithredu eto. Dyna y llinell nesaf o god ydych chi ar fin i weithredu. Felly, y llinell nesaf, wrth i chi guys yn yn ôl pob tebyg yn gyfarwydd â nhw, mae hyn yn cyflwr gwirio i weld os oes gennyf mynd i mewn ymresymiad llinell orchymyn. A i i, beth yw'r ail rhan o hynny yn ei wneud? Beth yw i i? MYFYRIWR: Newid i cyfanrif. JASON Hirschhorn: Mae'n ddrwg gennyf? MYFYRIWR: Mae'n newid y ddadl i cyfanrif. JASON Hirschhorn: Felly i fi newid arg v1 o llinyn i cyfanrif. Ac yna beth sy'n ei gwirio? MYFYRIWR: Os oes ail ymresymiad llinell orchymyn, ar wahân rhag rhedeg y rhaglen. JASON Hirschhorn: A beth yw ail hanner y Mynegiad Boole gwirio? Mae'r rhan hon dros yma, a i i? MYFYRIWR: Os yw'n negyddol. JASON Hirschhorn: Sicrhau bod yr hyn? MYFYRIWR: Gwneud yn siŵr ei fod yw, mewn gwirionedd, yn gadarnhaol. JASON Hirschhorn: Yn union. Mae hyn yn gwirio i weld os yw'n negyddol, ac os yw'n negyddol, yr wyf yn cael teimlo gallai llinell nesaf yn cael ei mi gweiddi ar y defnyddiwr. Felly, gadewch i ni daro pen i gyflawni'r llinell hon. Nid ydym yn gweld bod llinell yr ydych yn guys efallai yn disgwyl gweld gweiddi ar y defnyddwyr ac yna dychwelyd, oherwydd Nid y llinell hon yn gweithredu. Yr wyf yn mynd i 3. Felly i ddim, mewn gwirionedd, nodwch dau gorchymyn dadleuon llinell, a 3 yn yn fwy na sero. Felly, rydym yn gweld y llinell honno, yr ydym yn eu gweithredu, ond doedden ni ddim cam y tu mewn i'r os yw cyflwr. Felly nawr, nesaf, yr wyf yn gweld fy mod yn gosod allweddol int yn gyfartal â i Grŵp Diwygio Asesu i v1. Felly dyna fi creu allwedd amrywiol. Felly os wyf yn argraffu allweddol ar hyn o bryd, oherwydd sy'n eich galluogi i weld y gwerth y tu mewn i'r newidyn, allweddol yn dychwelyd 47. Mae hynny'n rhyfedd, ond wrth gwrs, hynny oherwydd nad wyf wedi cyflawni y llinell eto. Felly nawr os byddaf yn taro n, gweithredu llinell honno, ac yn gwneud allwedd print, bydd allweddol yn gyfartal 3, sef yr hyn yr ydym yn disgwyl iddo hafal. Felly eto, yn GDB, y llinell i chi gweld nad ydych wedi cyflawni eto. Mae'n rhaid i chi daro n neu s neu rif o orchmynion eraill i mewn gwirionedd gweithredu llinell honno. Allweddol Argraffu. Yn allweddol yn 3. Hyd yn hyn, felly da. Llinyn yn destun plaen. Gadewch i ni gyflawni y llinell. Rwy'n cael llinyn o ddefnyddwyr. Gadewch i ni weld yn fy Gwirio 50, yr wyf yn fynd i mewn BARFOO pob capiau, felly dyna beth byddaf yn mynd i mewn. Os wyf yn awr yn argraffu testun plaen. Byddwch yn gweld ei fod yn dychwelyd llinyn. Mae'n rhoi rhywfaint o hecsadegol 'n annaearol arall i mi rif, ond y mae yn ffaith yn dweud bod fy llinyn yn BARFOO. Os wyf yn awyddus i weld beth allweddol gyfartal yn pwynt hwn, sut y gallwn i wirio allweddol? MYFYRIWR: Print allweddol. JASON Hirschhorn: Print allweddol, yn union. Ac mewn gwirionedd, mae llwybr byr. Os ydych yn cael blino o teipio print, gallwch deipio t. Felly allweddol p yn gwneud yr un peth yn union peth. Ac eto, yr wyf yn ei weld yn dychwelyd 3. Os wyf yn awyddus i gael gwybod beth y ddau gyfnod allweddol ac gyfartal BARFOO ar yr un pryd ond yr oeddwn yn blino o teipio pob un yn unigol, yr wyf yn Gallai deipio pobl leol o wybodaeth. Mae hynny'n rhoi hafal allweddol 3 i mi. Testun plaen yn dychwelyd BARFOO. Mae hefyd yn rhoi y ddau beth rhyfedd i mi ar y brig, newidyn hwn i ac hwn n amrywiol. Mae'r rhai yn bodoli mewn gwirionedd yn fy mhrif raglen. Nid ydym wedi dod ar eu traws yn eu eto, ond fel rhagolwg, y rhai bodoli yn fy am ddolen. Felly ar hyn o bryd, maent yn gyfartal rhai rhyfedd niferoedd oherwydd nad ydynt wedi bod yn initialized eto, ond maent yn dal i fodoli mewn cof, felly maen nhw'n jyst yn gosod i ryw werth garbage. Ond rydym yn gweld allweddol yn blaen testun iawn yno. Felly, yr wyf i'n mynd i weithredu y llinell hon, llinell 34, ar gyfer y ddolen. Rydym yn mynd i neidio i mewn i'r ar gyfer dolen gan daro n. Ac rydym yn y tu mewn i'r ar gyfer ddolen. Rydym yn yn ein gwiriad cyntaf. Ac eto, dylai'r rhain fath o edrych gyfarwydd i chi gan fod hwn yn Rhaglen Cesar a oedd yn ysgrifenedig, ond eto, mae gan rhyw fath o nam. Ac yn awr os wyf yn gwneud pobl leol info, gan fy mod yn y tu mewn, ar gyfer ddolen, byddwch yn gweld bod fi yn hafal i sero, fel yr ydym yn ei ddisgwyl. Dyna beth rydym yn gosod i ac ymgychwyn iddo yn y am ddolen. n yn dychwelyd 6. Mae hynny hefyd yn gwneud synnwyr oherwydd ein bod yn gosod i'r strlen testun plaen. Felly, yr wyf yn hoffi gwneud pobl leol info neu brint i amrywiol yn aml i wneud yn siŵr bod popeth bob amser yn beth Yr wyf yn disgwyl iddo i cyfartal. Yn yr achos hwn, mae popeth yn yr hyn yr wyf yn disgwyl iddo i cyfartal. Felly, gadewch i ni ddechrau symud trwy hon ar gyfer dolen. Mae'r llinell Rydw i ar yn llinell 36, os plaen ff testun yn fwy na ac yn blaen i destun yn llai na neu'n hafal i z. Rwy'n gwybod nad yw fy broblem gyda fy cyntaf llythyr, mae'n gyda'r ail lythyr. Os byddwn yn edrych yn ôl ar Archwiliad 50, B yn mynd i E ddirwy. Rwy'n cymryd y A a gadael fel A, nid ei newid i D. Felly rhywbeth o'i le ar yr ail lythyr. Felly, yr wyf i'n mynd i symud yno mewn eiliad. Ond os oeddwn am wirio pa blaen destun yr wyf yn gyfartal yn y arbennig achos, yr wyf yn credu y dylai fod yn beth? Beth ddylai destun plaen wyf yn gyfartal yn y rownd gyntaf drwy'r gyfer ddolen? MYFYRIWR: Zero? JASON Hirschhorn: Testun plaen o I? Felly, dylai fod yn gyfalaf B. I, wrth gwrs, yn hafal i sero, ond testun plaen braced sero braced cau hafal i B oherwydd llinynnau, fel y gwelsom yr wythnos diwethaf, yn amrywiaeth, felly rydym yn cael y cymeriad cyntaf o hynny. Felly eto, os wyf yn argraffu testun plaen o Yr wyf fi, yr wyf yn ei wneud, mewn gwirionedd, yn cael y cymeriad B. Ac mae hynny'n daclus, dde? Nid wyf yn mewn gwirionedd yn cael I. testun plaen Nid yw hyn yn un o'r newidynnau a osodais neu ymgychwyn, ond gallwch argraffu cynnal llu o bethau os hoffech chi. Ond gadewch i ni symud drwy'r. Os destun plaen wyf yn fwy na A a destun plaen wyf yn llai na neu'n hafal i Z, yn amlwg yn wir oherwydd ein bod wedi B. cyfalaf yr wyf i'n mynd i redeg rhywfaint gorchymyn arno. Rydym yn gweld bod cwestiwn yr wythnos diwethaf, felly rydym annhymerus ' cymryd yn ganiataol ei fod yn gweithio iawn yn ôl Gwirio 50. Mae'r braces cyrliog, yr un cyntaf Dangosodd fy mod yn gadael y os cyflwr, yn dangos yr ail un fy mod yn gadael y am ddolen. Ac felly yn awr pan wyf yn taro Nesaf, rydym fe gweld rydym yn ôl yn y ar gyfer ddolen eto. Rydym yn mynd drwy'r ar gyfer dolen eto. Gadewch i ni mewn gwirionedd yn camu i mewn i'r ail iteriad y ar gyfer ddolen a math pobl leol o wybodaeth. Felly, rydym yn yn yr ail ailadroddiad o'n ddolen ar gyfer. Yr wyf yn hafal i 1, yr ydym yn ei ddisgwyl. N hafal i 6, yr ydym yn ei ddisgwyl. Yn hafal allweddol 3, yr ydym yn ei ddisgwyl. Ac destun plaen, byddwch yn gweld, yn hafal i EARFOO yn awr, nid BARFOO mwyach gan yn ein fersiwn blaenorol, B yn newid i cyfalaf E. Felly, rydym chi ar fin o ddod ar draws y broblem, felly mae hyn yn lle rydym yn mynd i plymio i mewn i'r debugging. Ond a oes unrhyw un gennych unrhyw gwestiynau am yr hyn rydym wedi ei wneud hyd yn hyn? Fantastic. Felly, rydym chi ar fin i gyflawni'r hyn os cyflwr, braced testun plaen i mi gau braced fwy na A a thestun plaen i mi llai na neu'n hafal i Z. Ond cyn Yr wyf yn mynd i mewn i hynny, oherwydd dyma lle Rwy'n gwybod fy gwall yw, yr wyf am dynnu sylw testun plaen I. Felly gadewch i ni roi argraffu. Mae'n gwneud yn gyfartal cymeriad A, fel bod ymddangos hyd yn hyn, popeth yn iawn ac yn dda. Felly, yr wyf yn disgwyl y llinell hon am bob fy rhesymeg, Dylai'r llinell hon fod yn wir. Mae'n llythyr cyfalaf. Ond os wyf yn taro n, rydym yn sylweddoli bod hyn yn lein, mewn gwirionedd, nid oedd yn gweithredu. Neidiais i lawr i'r arall os. Pam wnaeth hynny ddigwydd? MYFYRIWR: Oherwydd bod gennych eich cyflwr testun plaen yn fwy na A, nid gyfartal neu'n fwy na. JASON Hirschhorn: Felly yr wyf wedi fy testun plaen Yr wyf yn fwy na A, heb fod yn fwy na neu'n hafal i. Felly yn amlwg, nid oedd y brifddinas A sbarduno hyn os cyflwr, a gwnaethom Nid cam i mewn iddo, ac fe wnaethom Nid yw gwneud y newid angenrheidiol. Felly dyna ni, mewn gwirionedd. Rwy'n cyfrifedig allan fy bug. Gallwn fynd yn ôl yn fy ffeil ffynhonnell, newid, ac yn ei ddiweddaru a rhedeg Gwiriwch 50 eto. Ond byddwn yn gweld, dim ond ar gyfer addysgeg yn mwyn, os dwi'n dal i fynd. Mae'r arall nad os yw'n gweithredu ychwaith, ond beth yn hytrach hafal yw'r gorchymyn nid yw hynny'n newid. Felly, nid yw'n cael ei newid o gwbl, ac os wyf yn argraffu testun plaen yma, byddwn yn gweld yn mynd drwy hynny ar gyfer ddolen nad oedd, mewn gwirionedd, newid yr ail cymeriad o gwbl. Mae'n dal i fod yn gyfalaf A. Felly eto, rydym yn debugged ein camgymeriad. Rydym yn sylweddoli nad oedd rhywfaint o resymeg ar goll. Ac rydym yn debugged ei flaen o amser cyn mewn gwirionedd yn gweithredu y llinell honno, ond byddech wedi sylwi oedd gennym yn unig taro Nesaf ac yn neidio i hynny arall os, mae hynny'n golygu bod os yw cyflwr Nid oedd yn wir. Rydym yn nid oedd, mewn gwirionedd, yn cael y canlyniad yr oeddem yn disgwyl. Felly, yna gallem fod wedi ei ysgogi, roedd i ni beidio bod mor graff, i edrych ar os cyflwr a gwirio os, mewn gwirionedd, Dylai ein cyflwr gwerthuso er mwyn wir yn y cyd-destun presennol. Dyna i gyd ar gyfer debugging rhaglen hon. A oes unrhyw un gennych unrhyw gwestiynau? Pa gorchymyn gallwn i daro i roi'r gorau iddi GDB? C. Ac yna byddaf yn annog, roi'r gorau iddi beth bynnag? Ie neu na. 'N annhymerus' daro ie, a byddaf wedi rhoi'r gorau iddi GDB. Felly yr oedd yn primer gyflym i GDB. Mewn gwirionedd, mewn sefyllfa go iawn, Fe wnes i hyn ar oriau swyddfa. Yr wyf yn GDBed y rhaglen union ar oriau swyddfa gyda myfyriwr. Ac os ydym yn mynd yn ôl at y gorchmynion a welsom o'r blaen, rydym yn defnyddio prif egwyl, yn gyntaf beth a wnaethom. Rydym yn defnyddio rhedeg gyda dadleuon llinell gorchymyn, ail beth a wnaethom. Rydym yn defnyddio nesaf llawer i symud ni drwy linellau. Ac eto, y fersiwn byr o nesaf yw n. Sydd yn y cromfachau yn llwyd ar y sleid. Doedden ni ddim yn defnyddio cam, ond ni wnaethom angen o reidrwydd i gael yr achos hwn. Ond efallai y byddwn yn ei ddefnyddio yn nes ymlaen heddiw os ydym yn debugging, ar gyfer enghraifft, mae chwiliad deuaidd pan deuaidd cael ei alw'n chwilio mewn gwahanol swyddogaeth ond mae rhyw wall ag ef. Rydym yn mynd i eisiau i gamu i mewn yr alwad i chwilio deuaidd a mewn gwirionedd yn debug ei. Rhestru doedden ni ddim yn defnyddio naill ai oherwydd ein bod wedi ymdeimlad da o ein cod, ond os byddaf yn ddim eisiau i gael syniad o'r hyn y cod yr wyf yn oedd o gwmpas, gallai Fi jyst yn defnyddio rhestr. Argraffu a ddefnyddiwyd gennym, pobl leol info rydym yn defnyddio. Parhau nid oedd angen i ni ddefnyddio yn y achos, nid oedd angen i ni ddefnyddio analluogi, ond fe wnaethom defnydd roi'r gorau iddi. Unwaith eto, y 10 gorchmynion, i ymarfer. Os ydych yn deall y 10 gorchmynion, dylech fod yn eu gosod ar gyfer debugging unrhyw rhoi gyda GDB. Felly, rydym chi ar fin i fynd ymlaen, unwaith eto, at y crux adran heddiw, yn mynd dros rhain yn didoli a chwilio algorithmau. Cyn i ni wneud hynny, unwaith eto, unrhyw gwestiynau, sylwadau, pryderon i GDB? Felly, yn pawb yn mynd i ddefnyddio GDB yn hytrach na printf? Felly pawb, er mwyn byth yn, pawb yn nodio eu pennau hawl yn awr, felly byddaf yn eich gweld yn ystod oriau swyddfa a bydd yr holl TFS chi a gweld byddant yn dweud, yn dangos i mi sut i ddefnyddio GDB, a byddwch yn gallu i ddangos iddynt, dde? Math o? Efallai gobeithio. Cool. Felly, rydym yn mynd i symud i mewn i didoli a chwilio. Byddwch yn gweld gen i restr datrys eisoes i ni, ond nid yw hynny'n mynd i fod bob amser yn wir. Felly, yn y broblem a osodwyd fanyleb ar gyfer problem gosod tri, mae gennych siorts y gallwch wylio, ac mewn gwirionedd yn gofyn i chi i wylio siorts hynny. Hefyd yn ddarlith yr wythnos diwethaf, yr ydym yn mynd draw llawer o algorithmau hyn, felly rwy'n ddim yn mynd i dreulio amser yn y dosbarth yn mynd dros algorithmau hyn eto neu ddarlun lluniau ar gyfer sut mae'r rhain yn algorithmau gweithio. Unwaith eto, bod y wybodaeth gallwch ail-wylio ddarlith, neu wybodaeth a cael ei ddal yn rhagorol ar y shorts ar gyfer chwiliadau hyn, pob un sydd ar gael yn cs50.net. Felly, yn hytrach, yr hyn yr ydym yn mynd i wneud yw ysgrifennu rhaglenni hyn. Mae gennym synnwyr, model meddwl, o sut y maent yn gweithio, ac felly yr hyn yr ydym yn mynd i'w wneud yw eu cod ar gyfer go iawn. Rydym yn mynd i droi y model meddwl, y darlun hwnnw, os mynnwch, i mewn i'r cod gwirioneddol. Ac os ydych yn ychydig yn ddryslyd neu niwlog ar y model meddwl, yr wyf yn llwyr deall. Nid ydym yn wir yn mynd i neidio i'r cod ar unwaith. Felly, er bod prydlon hwn yn y sleid hwn yn gofyn chi i cod chwiliad deuaidd, a mewn gwirionedd, fersiwn iteraidd o chwiliad deuaidd, y peth cyntaf i mi 'n sylweddol angen i chi ei wneud yw ysgrifennu rhai pseudocode. Felly, mae gennych model meddwl hwn o sut mae chwiliad deuaidd. Cymerwch ddarn o bapur os oes gennych un ar gael yn rhwydd, neu agor golygydd testun, a hoffwn pawb i ysgrifennu. Yn cymryd pedwar munud i ysgrifennu pseudocode ar gyfer chwiliad deuaidd. Unwaith eto, meddyliwch am y model meddwl. 'N annhymerus' yn dod o gwmpas os oes gennych gwestiynau a gallwn dynnu y llun allan. Ond yn gyntaf, cyn i ni ddechrau rhaglennu, Hoffwn i ysgrifennu pseudocode ar gyfer chwiliad deuaidd, felly pan fyddwn yn plymio i mewn, mae gennym rai cyfarwyddyd i ble y dylem ben. MYFYRIWR: A allwn ni gymryd yn ganiataol yr amrywiaeth o gwerthoedd a gawn eisoes yn datrys? JASON Hirschhorn: Felly, er chwiliad deuaidd i'r gwaith - gwestiwn rhagorol - yr ydych rhaid i ni gymryd mewn ddidoli amrywiaeth o werthoedd. Felly, yn cymryd yn ganiataol y bydd yn gweithio. Byddwn yn mynd yn ôl i'r sleid hwn. Byddwch yn gweld mewn porffor y swyddogaeth datganiad bool int binary_search gwerth, gwerthoedd int, int n. Dylai hyn edrych yn gyfarwydd os ydych wedi cysylltu eisoes neu a gotten eich dwylo budr â'r broblem a osodwyd. Ond dyna yw eich datganiad swyddogaeth. Unwaith eto, ni ddylai fod angen i chi boeni am bod llawer ar hyn o bryd. Beth Fi 'n sylweddol am i chi ei wneud yw cymryd pedwar munud i deuaidd pseudocode chwilio, ac yna byddwn yn mynd dros hynny fel grŵp. A byddaf yn dod o gwmpas. Os oes gennych gwestiynau, yn teimlo rhydd i godi eich llaw. Pam na wnewch chi gymryd dau funud mwy i orffen i fyny 'r pseudocode? Rwy'n gwybod y gallai hyn ymddangos yn hurt fod rydym yn treulio cymaint o amser ar rhywbeth nad hyd yn oed mewn gwirionedd yn C, ond yn enwedig ar gyfer y rhain yn fwy algorithmau heriol a datrys setiau sy'n rhaid i ni ei chyfrif i maes, gan ddechrau yn pseudocode nid poeni am y gystrawen, dim ond poeni am y rhesymeg, yn anhygoel o ddefnyddiol. Ac y ffordd honno, nad ydych yn datrys dau problemau hynod anodd ar unwaith. Ydych ond yn canolbwyntio ar y rhesymeg, a Yna, byddwch yn symud i mewn i'r gystrawen. OK. Gadewch i ni ddechrau mynd drwy y pseudocode. Yr wyf wedi ysgrifennu i fyny yma, deuaidd pseudocode chwilio. Byddwn yn ysgrifennu hyn ar y bwrdd gyda'i gilydd. Neu byddaf yn ei ysgrifennu a byddwch yn rhoi 'm' r prompts ei angen arnaf. Felly, gall unrhyw un roi i mi y cyntaf llinell y pseudocode i chi Ysgrifennodd ar gyfer chwiliad deuaidd? Ie, Annie? MYFYRIWR: Er bod hyd y rhestr yn fwy na sero. JASON Hirschhorn: Er bod hyd o rhestru mwy na sero. Ac eto, yr ydym yn gweld rhai C-edrych pethau cystrawennol ar yma. Ond mae'r rhan fwyaf o hyn yn Saesneg. A oedd unrhyw un yn cael unrhyw linell maent yn ei roi cyn hyn yn eu ffug-god? MYFYRIWR: Cael amrywiaeth o didoli rhifau. JASON Hirschhorn: Rydych ysgrifennodd "cael amrywiaeth o rifau ddidoli. "Fesul y datganiad swyddogaeth, byddwn yn pasio amrywiaeth o rifau didoli. MYFYRIWR: [Anghlywadwy]. JASON Hirschhorn: Felly bydd gennym hynny. Ond ie, os nid oedd gennym hynny, rydym Byddai angen i roi trefn ar ein amrywiaeth o rhifau, oherwydd chwiliad deuaidd dim ond yn gweithio ar araeau didoli. Felly, er bod hyd y rhestr hafal sero, rwy'n mynd i roi mewn rhai braces cyrliog i wneud iddo edrych ychydig yn fwy fel C. Ond er bod, yn ymddangos i fapio ymlaen i tra bod dolen, felly y tu mewn tra bod hyn dolen beth sydd angen i ni wneud ar gyfer chwiliad deuaidd? Rhywun arall nad yw wedi rhoi i mi yn ateb eto, ond a ysgrifennodd hyn? MYFYRIWR: Ewch i ganol y rhestr. JASON Hirschhorn: Tom. Ewch i ganol y rhestr. A'r cwestiwn dilynol, beth ydym yn ei wneud ar ôl i ni chi yn y nghanol y rhestr? MYFYRIWR: Gwnewch siec boed hynny y nifer rydych yn chwilio amdano. JASON Hirschhorn: Ardderchog. Ewch canol y rhestr a gwirio os yw ein gwerth yno - wych. A oedd unrhyw un yn cael unrhyw beth arall a oedd yn wahanol na hyn? Dyna'n union gywir. Y peth cyntaf a wnawn yn chwilio deuaidd yn mynd i ganol y rhestr a gwirio i weld os yw ein gwerth yn yno. Felly, yr wyf yn tybio os yw ein gwerth yn yno, beth ydym yn ei wneud? MYFYRIWR: Byddwn yn dychwelyd sero [Anghlywadwy]. JASON Hirschhorn: Yeah, os bydd ein gwerth yn yno, yr ydym yn ei chael yn. Felly, gallwn ddweud rhyw ffordd, fodd bynnag, mae hyn swyddogaeth yn cael ei diffinio, yn dweud wrth y defnyddiwr rydym yn ei chael yn. Os nad yw yno, fodd bynnag, mae hynny'n lle mae hyn yn mynd yn anodd. Felly, os nad yw yno, rhywun arall sy'n yn gweithio ar chwiliad deuaidd neu wedi syniad yn awr, beth ydym yn ei wneud? MYFYRIWR: Cwestiwn. JASON Hirschhorn: Ie? MYFYRIWR: A yw'r amrywiaeth datrys yn barod? JASON Hirschhorn: Ydym, yr ydym yn tybio yr amrywiaeth eisoes yn datrys. MYFYRIWR: Felly, yna rhaid i chi wirio os gwerth a welwch yn fwy na gwerth yr ydych am, gallwch symud i ganol yr hanner arall. JASON Hirschhorn: Felly os yw canol mae'r rhestr yn fwy na'r hyn rydym yn chwilio amdano, yna rydym yn gwneud yr hyn? Rydym yn symud lle? MYFYRIWR: byddwch am symud i hanner y rhestr gyda niferoedd is na hynny. JASON Hirschhorn: Felly ni chi helpu yn galw bod y chwith. Felly os canol yn fwy, gallwn chwilio hanner chwith y rhestr. Ac yna yn ôl chwiliad, beth ydw i'n ei olygu wrth chwilio? MYFYRIWR: [Anghlywadwy]. JASON Hirschhorn: Rydym yn mynd i'r canol. Rydym mewn gwirionedd yn ailadrodd y peth hyn. Rydym yn mynd yn ôl drwy ein dolen amser. Byddaf yn rhoi yr un diwethaf i chi - arall, os, canol yn llai na'r hyn rydym yn ei wneud, beth ydym yn ei wneud yma? MYFYRIWR: Ewch i'r dde. JASON Hirschhorn: Chwilio'r dde. Mae hyn yn edrych yn dda, ond nid unrhyw un gael unrhyw beth y gallem fod yn goll neu unrhyw beth arall eich bod yn rhoi yn eich ffug-god? Felly, mae hyn yn yr hyn sydd gennym hyd yn hyn. Er bod y hyd y rhestr yn fwy na sero, rydym yn mynd i fynd i ganol y rhestr a wirio a yw ein gwerth yno. Os yw'r canol yn fwy, rydym yn mynd i chwilio chwith, arall os yw'r canol yn llai, rydym yn mynd i chwilio ar y dde. Felly, rydym i gyd wedi cael rhywfaint yn gyfarwydd â termau a ddefnyddiwn mewn gwyddoniaeth gyfrifiadurol a'r offer sydd gennym. Ond byddwch yn barod sylwi ein bod yn siarad yn Saesneg, ond rydym yn dod o hyd i llawer o bethau a oedd yn ymddangos i fapio ymlaen i offer sydd gennym yn ein codio pecyn cymorth. Felly dde oddi ar y ystlumod, nid ydym yn mynd i mewn gwirionedd cod eto. Beth welwn ni yma yn Saesneg y mapiau ymlaen i bethau yr ydym yn gallu ysgrifennu yn C? MYFYRIWR: Er. JASON Hirschhorn: Er. Felly, er bod hyn yn iawn yma mapiau ar yr hyn? MYFYRIWR: Mae dolen amser. JASON Hirschhorn: Mae dolen tra? Neu yn ôl pob tebyg, yn fwy cyffredinol, dolen. Rydym yn awyddus i wneud rhywbeth drosodd a throsodd. Felly, rydym yn mynd i cod dolen. Ac yr ydym eisoes yn gwybod, oherwydd ein bod wedi gwneud hwn cwpl o weithiau, ac rydym yn cael digon o enghreifftiau ar gael, sut mewn gwirionedd i ysgrifennu mynegai hwn am ddolen. Felly dylai hynny fod yn eithaf hawdd. Dylem fod yn gallu cael y Dechreuodd yn weddol gyflym. Beth arall rydym yn ei weld yn fan hyn? Beth arall strwythurau cystrawennau, pethau ein bod yn gyfarwydd â hwy yn C, a ydym eisoes yn meddu ar synnwyr o Seiliedig ar oddi ar y geiriau a ddefnyddiwyd? Ie, Anna? [Anghlywadwy] dim ond kidding. Anna, mynd yn ei flaen. MYFYRIWR: Os a arall. JASON Hirschhorn: Os a arall - yma. Felly, beth yw y rhai yn edrych? MYFYRIWR: Mae os arall ddatganiad. JASON Hirschhorn: Yeah, amodau, dde? Felly bydd yn ôl pob tebyg angen i ni ysgrifennu rhai amodau. Ac eto, er efallai dryslyd ar yn gyntaf, rydym yn gyffredinol yn meddu ar synnwyr bellach o sut i ysgrifennu amodau a y gystrawen ar gyfer cyflyrau. Ac os nad ydym yn ei wneud, rydym yn unig edrych ar y cystrawen ar gyfer cyflyrau, torri a gludo hynny, oherwydd ein bod yn gwybod ein angen amod yma. Unrhyw bethau eraill yr ydym yn gweld bod map ar pethau y gallai fod angen i ni wneud yn C? Yeah, Aleha? MYFYRIWR: Gallai hyn fod yn amlwg, gan dim ond gwirio os yw gwerth yn dychwelyd rhywbeth. JASON Hirschhorn: Felly sut rydym yn gwirio ac - felly yn mynd i ganol y rhestr a gwirio a yw ein gwerth sydd ar gael? Sut yr ydym yn gwneud hynny yn C? Beth yw'r gystrawen ar gyfer hynny? MYFYRIWR: Equals, yn hafal i. JASON Hirschhorn: Equals, yn hafal i. Felly gwiriad hwn yn fwy na thebyg yn mynd i fod yn gydradd, yn hafal i. Felly, byddwn yn gwybod ein bod angen y rhywle. Ac mewn gwirionedd, dim ond yn ei ysgrifennu, ydym yn gweld pethau eraill hynny. Rydym yn mynd i gael i wneud ychydig o gweithredwyr cymhariaeth i mewn 'na - wych. Felly, mae'n mewn gwirionedd yn edrych fel, ar y mawr, nid ydym wedi ysgrifennu gair o god C eto. Ond rydym yn cael y model meddwl i lawr trwy ddarlithoedd a siorts hynny. Rydym yn ysgrifennu ffug-god fel grŵp. Ac eisoes, mae gennym 80% os nad 90% o'r hyn y mae angen i ni ei wneud. Nawr, mae'n rhaid i ni cod iddo, sydd unwaith eto, yn problem heb fod yn ddibwys i'w datrys. Ond o leiaf rydym yn sownd ar y rhesymeg. O leiaf nawr pan fyddwn yn mynd i oriau swyddfa, Gallaf ei ddweud, yr wyf yn gwybod beth sydd angen i mi i'w wneud, ond gallwch atgoffa i mi am y gystrawen? Neu hyd yn oed os oriau swyddfa yn orlawn, rydych yn Gall Google am y gystrawen, yn hytrach na gorfod aros ar y rhesymeg. Ac eto, yn hytrach na cheisio datrys y rhesymeg a'r problemau cystrawen pob ar unwaith, mae'n aml yn llawer gwell i yn torri'r ddwy broblem caled i ffwrdd i dau rhai mwy hylaw ac yn gwneud y ffug-god cod yn gyntaf ac yna yn C. Felly, gadewch i ni weld beth wnes i ar gyfer y ffug-god o flaen amser. Er bod y hyd y rhestr yn fwy na sero, edrychwch ar y canol y rhestr. Os canfyddir nifer a ddychwelwyd yn wir, arall os nifer uwch, chwith chwilio. Arall os nifer is, chwilio dde, yn dychwelyd ffug. Felly, sy'n edrych bron yn union yr un fath os nad bron union yr un fath i'r hyn yr ydym yn ysgrifennu. A dweud y gwir, Tom, yr hyn a ddywedasoch yn gyntaf, torri canol y rhestr, ac os nifer a geir yn ddau ddatganiad mewn gwirionedd yr hyn a wnaeth i mi. Yr wyf yn cyfuno nhw yno. Dylwn i fod wedi gwrando ar chi y tro cyntaf. Felly dyna'r ffug-god sydd gennym. Os ydych am yn awr, ddrwg gennym, ewch Nôl i ein problem gychwynnol. Gadewch i ni cod binary.c. Felly gweithredu fersiwn iteraidd o chwiliad deuaidd ddefnyddio'r canlynol datganiad swyddogaeth. Ac nid oes angen i chi gopïo i lawr eto. Im 'mewn gwirionedd yn mynd i agor i fyny i'r dde yma binary.c. Felly mae datganiad swyddogaeth yng nghanol y sgrin. A byddwch yn gweld fy mod yn cymryd y ffug-god o ar fy ochr, ond mae bron union yr un fath at yr hyn yr ydym yn ysgrifennu, a rhoi hynny ar eich rhan. Felly nawr, gadewch i ni gymryd pum munud i cod swyddogaeth hon. Ac eto, os oes gennych unrhyw gwestiynau, codwch eich llaw, gadewch i mi wybod, 'n annhymerus' dod o gwmpas. MYFYRIWR: [Anghlywadwy]. JASON Hirschhorn: Felly, yr wyf yn cymryd y deuaidd diffiniad chwilio ar y brig, ar-lein 12. Dyna beth yr wyf yn cael ar gyfer fy sleidiau. Ac yna i gyd y ffug-god Fi jyst copïo a gludo o'r sleid, ffug-god sleidiau. Rydw i'n dal i glywed [Anghlywadwy]. Felly, os ydych chi wedi gorffen eich gweithredu, yr wyf am edrych arni. Yr wyf yn anfon e-bost chi y ffeil helpers.h yn gynharach yn y dosbarth hwn. A bydd ar gael ar-lein yn ogystal i'w lawrlwytho am bobl yn gwylio yr adran hon amser oedi. Ac yr wyf yn ei ddefnyddio dim ond y dosbarthiad cyffredinol cod o pset3. Felly, yr wyf yn cymryd find.C, defnyddiwch fy ffeil helpers.h yn hytrach na'r ffeil helpers.h bod wedi rhoi yn y cod dosbarthu. Ac roedd rhaid i mi wneud un newid arall mewn find.C yn hytrach na ffonio dim ond dim ond chwilio, ffoniwch binary_search. Felly, os ydych am brofi eich cod, gwybod mai dyna sut i wneud hynny. Yn wir, pan fyddwn yn cynnal cod hwn ar hyn o bryd, Fi jyst gwneud copi o fy cyfeiriadur pset3, unwaith eto, cyfnewid allan y ffeiliau cynorthwywyr ac yna gwneud hynny'n newid yn find.C i alw binary_search yn hytrach na dim ond chwilio. JASON Hirschhorn: Ydw. Mae gennych gwestiwn? MYFYRIWR: Nevermind. JASON Hirschhorn: Dim pryderon. Wel, gadewch i ni ddechrau arni. Byddwn yn cod hwn fel grŵp. Un nodyn arall. Unwaith eto, mae hyn yn, gellir yn hawdd eu cyfnewid mewn ar gyfer Problem Set Tri. Mae gen i fy ffeil helpers.h sydd, yn hytrach na'r helpers.h rydym yn ei roi, datgan chwiliad deuaidd, swigen didoli, a threfnu dethol. Ac yn find.c byddwch yn sylwi ar-lein, beth yw bod, llinell 68, rydym yn galw deuaidd chwilio yn hytrach na chwilio. Felly eto, y cod sydd ar gael ar-lein neu'r cod eich bod yn Gall creu ar hyn o bryd yn cael eu cyfnewid yn hawdd mewn ar gyfer p set 3 ei wirio. Ond yn gyntaf, gadewch i ni cod chwiliad deuaidd. Mae ein datganiad swyddogaeth, rydym yn dychwelyd bool. Rydym yn cymryd yn gyfanrif o'r enw gwerth. Rydym yn cymryd amrywiaeth o gyfanrifau a elwir yn gwerthoedd, ac yr ydym yn cymryd n yn maint y rhesi. Ar-lein 10, dde yma, yr wyf wedi miniog cynnwys stdbool.h. A oes unrhyw un yn gwybod pam bod yno? Felly beth mae hynny'n ei linell o god yn ei wneud? MYFYRIWR: Mae'n caniatáu i chi ddefnyddio math dychwelyd bool. JASON Hirschhorn: Yn union. MYFYRIWR: Neu mae'n llyfrgell sy'n caniatáu i ddefnyddio math dychwelyd bool. JASON Hirschhorn: Felly mae'r miniog cynnwys llinell stdbool.h rhoi i mi rhai diffiniadau a datganiadau am bethau fy mod yn cael eu defnyddio mewn y llyfrgell yma. Felly, ymysg y rhai yn dweud fod yna math hwn a elwir bool, a gall fod yn gywir neu'n anghywir. Felly, dyna beth y llinell yn ei wneud. Ac os nad oedd gennyf y llinell honno, yr wyf byddai fynd i mewn trafferth ar gyfer ysgrifennu'r gair iawn yma, bool, iawn yno. Yn union i'r dde. Felly, yr wyf angen y yn y cod hwn. OK. Felly, mae hyn, unwaith eto, yn ailadroddol fersiwn, nid un ailadroddus. Felly, gadewch i ni ddechrau arni. Gadewch i ni ddechrau gyda'r hyn yn gyntaf llinell o god ffug. Ac yn gobeithio, byddwn yn - neu beidio gobeithio. Rydym yn mynd i fynd o amgylch yr ystafell. Byddwn yn mynd fesul llinell, a byddaf yn helpu i chi chyfrif i maes y llinell y mae angen i ni ysgrifennu'n gyntaf. Felly, er bod hyd y rhestr yn fwy na sero. Gadewch i ni ddechrau yn y tu blaen. Pa linell ddylwn i ysgrifennu yma, yn y cod? MYFYRIWR: Er parenthesis n yn fwy na 0. JASON Hirschhorn: Er y n yn wych na 0. Felly, n yw maint y rhestr, ac rydym yn gwirio os - [LLEISIAU ymyrryd yn] JASON Hirschhorn: - mae'n ddrwg gennyf? MYFYRIWR: Sut rydym yn gwybod bod n yw maint y rhestr? JASON Hirschhorn: Mae'n ddrwg gennyf. Unol â'r fanyleb pset, chwilio ac yn didoli swyddogaethau angen i chi ysgrifennu, n yw maint y rhestr. Wedi anghofio i esbonio bod yma. Ond ie. n yw maint y y rhestr, yn yr achos hwn. Felly, er n yn fwy na 0. OK. Gallai hynny fod ychydig yn broblemus fodd bynnag, os bydd pethau'n mynd ar. Gan y bydd yn parhau i adnabod y maint y rhestr drwy gydol y swyddogaeth, ond dweud ein dechrau gydag amrywiaeth o 5 gyfanrifau. Ac rydym yn mynd drwyddo ac rydym wedi bellach yn culhau i lawr i amrywiaeth o 2 gyfanrifau. Pa 2 gyfanrifau yw hynny? Mae maint yw 2 awr yr ydym am i edrych ar, ond a 2 yw hynny? A yw hynny'n gwneud synnwyr, y cwestiwn? OK. 'N annhymerus' gofyn eto. Felly, rydym yn dechrau i ffwrdd gyda amrywiaeth hwn o 5 cyfanrifau, ac n hafal 5, dde? Byddwn yn rhedeg trwy yma. Mae'n debyg y byddwn yn newid maint, iawn, wrth i bethau fynd ymlaen. Sef yr hyn yr ydym yn dweud ein bod am ei wneud. Nid ydym am i chwilio y peth yn llawn eto. Felly, yn dweud ein bod yn newid i 2. Rydym yn cymryd hanner y rhestr dyna ryfedd. Felly, dim ond dewis 2. Felly nawr n gyfystyr â 2. Rwy'n ymddiheuro am y tlawd marcwyr Dileu sych. Iawn? Ac rydym yn chwilio drwy'r rhestr eto gyda rhestr o faint 2. Wel, mae ein amrywiaeth yn dal i fod o faint 5. Rydym yn dweud dim ond eisiau i chwilio 2 smotiau ynddo. Felly, pa 2 smotiau yw'r rhai? A yw hynny'n gwneud synnwyr? A ydynt yn y chwith 2 smotiau? A ydynt yn y 2 mannau cywir? A ydynt yn y canol 2 smotiau? Rydym wedi torri i lawr y broblem, ond yr ydym yn Nid mewn gwirionedd yn gwybod pa ran o y broblem rydym yn dal i edrych ar, dim ond drwy gael y 2 newidynnau. Felly mae angen ychydig mwy, yna, tra n yn fwy na 0. Mae angen i ni wybod pan fo hynny'n n yn ein amrywiaeth gwirioneddol. Felly, mae unrhyw un yn cael newid y llinell hon? Mae'r rhan fwyaf o'r llinell hon yn berffaith gywir. A oes ychwanegiad arall? Allwn ni gyfnewid rhywbeth allan ar gyfer n i gwneud y llinell hon ychydig yn well? Mm-hm? MYFYRIWR: Allwch chi ymgychwyn newidyn fel hyd i n Bydd wedyn yn cael ei ddefnyddio yn ddiweddarach yn y swyddogaeth? JASON Hirschhorn: Felly ymgychwyn hyd amrywiol i n, ac rydym yn defnyddio hynny yn nes ymlaen? Ond yna rydym yn unig yn diweddaru hyd ac rydym yn yn dal i redeg i mewn i'r broblem lle rydym torri i lawr hyd ein problem, ond ni fyddwn byth yn gwybod ble, mewn gwirionedd, mapiau darn hwnnw ar. MYFYRIWR: Nid yw hynny'n mynd i ddigwydd yn ddiweddarach pan rydych yn ei ddweud, chwilio chwith, chwilio iawn? Rydych yn mynd i fynd i wahanol maes o'ch - JASON Hirschhorn: Rydym yn mynd i fynd i ardal, ond sut rydym yn gwybod sydd i fynd i? Os mai dim ond yr arae ac mae hyn yn n, sut rydym yn gwybod ble i mynd atynt yn y rhesi. Yn y cefn, ie? MYFYRIWR: Oes gennych chi, fel, is rhwymo a newidyn rhwymo uchaf neu rhywbeth fel 'na? JASON Hirschhorn: OK. Felly, mae hyn yn syniad arall. Yn hytrach na dim ond cadw golwg ar y maint, rydym yn cadw golwg ar y is a newidyn rhwymo uchaf. Felly, sut rydym yn cyfrifo'r maint o is rhwymo a rhwymo uchaf? [LLEISIAU ymyrryd yn] JASON Hirschhorn: Tynnu. A hefyd gadw golwg ar y isaf rhwymo a rhwymo uchaf i roi gwybod i ni, rydym yn chwilio y ddau hyn? A ydym yn chwilio y ddau hyn dros yma? A ydym yn chwilio y ddau canol? Mae'n debyg nad oedd y ddau canol, oherwydd hyn, mewn gwirionedd, yw chwiliad deuaidd. Ond yn awr byddwn yn gallu cael y maint, ond hefyd y cyfyngiadau y rhesi. Yn y bôn, os ydym wedi ein gawr llyfr ffôn, rydym yn RIP yn ei hanner. Rydym bellach yn gwybod pan fo hynny'n llai llyfr ffôn yw. Ond nid ydym yn ripping mewn gwirionedd y llyfr ffôn yn ei hanner. Mae angen i ni wybod ble mae'r ffiniau newydd ein broblem. A oes unrhyw un gennych unrhyw gwestiynau am hynny? Ie? MYFYRIWR: A fyddai'n gweithio drwy greu amrywiol, i, eich bod yna dim ond symud sefyllfa i gymharu â'i sefyllfa bresennol, a hyd, n? JASON Hirschhorn: A beth yw i? MYFYRIWR: Fel i fod fel math o - Fel y byddech yn ymgychwyn i i fod yn sefyllfa ganol y rhesi. Ac yna, os bydd y gwerth yn safle i mewn nghanol y rhesi yn dod o hyd i fod yn llai na gwerth ei angen arnoch, fi yn awr yn dod yn hyd y rhesi, yn ogystal â gwerth i rannu â 2. Fel, gweld, byddwch yn symud i - JASON Hirschhorn: Iawn. MYFYRIWR: - hyd at y - JASON Hirschhorn: Felly, yr wyf wyf bron yn cadarnhaol a fydd yn gweithio. Ond y pwynt fodolaeth, mae angen i chi dau darnau o wybodaeth yma. Gallwch wneud hynny gyda dechrau a diwedd, neu gallwch wneud hynny gyda maint, ac yna rhai marciwr. Ond mae angen i chi dau ddarn o wybodaeth yma. Ni allwch gael drwy gyda dim ond un. A yw hynny'n gwneud synnwyr? Felly, rydym yn mynd i fynd drwy, a rydym yn mynd i'w wneud [Anghlywadwy] a chreu rhai marcwyr. Felly, Beth wyt byddwch yn ysgrifennu yn eich cod? MYFYRIWR: Yr wyf newydd ei ddweud int rhwymo un yn hafal i 0. JASON Hirschhorn: Gadewch i ni alw y int, gan ddechrau. MYFYRIWR: OK. JASON Hirschhorn: Mae hynny'n gwneud mwy o synnwyr i mi. A? MYFYRIWR: dywedais, yr wyf yn dyfalu, int yn dod i ben. JASON Hirschhorn: int yn dod i ben. MYFYRIWR: Amcana, n minws 1, neu rywbeth fel 'na. Fel, yr elfen olaf. JASON Hirschhorn: Felly yr ydych ysgrifennu, int dechrau hafal 0, hanner colon, a int dod i ben yn dychwelyd n minws 1, hanner colon. Felly y bôn, yr hyn rydym yn ei wneud yma, 0 y sefyllfa cyntaf. Ac fel y gwyddom yn araeau, nid ydynt yn mynd hyd at n, maent yn mynd i fyny at n minws 1. Felly, mae gennym rai ffiniau ein amrywiaeth. I nerth cychwynnol hyn yn digwydd i fod yn terfynau cychwynnol ein problem. OK. Felly mae hynny'n swnio'n dda. Yna, os ydym yn mynd yn ôl at y llinell hon, tra hyd y rhestr yn fwy na 0, beth, yn hytrach na n, dylai rydym yn rhoi i mewn yma? MYFYRIWR: Ysgrifennu dod i ben minws dechrau. JASON Hirschhorn: Er y dod i ben minws yn dechrau yn fwy na 0? OK. Ac rydym yn gallu, os oeddem am gwneud bod ychydig yn brafiach, beth arall y gallem ei wneud? Os ydym am i lanhau cod hwn i fyny ychydig? Sut allwn ni gael gwared ar y 0? Mae hyn yn unig cwestiwn arddull yn. Mae'n gywir ar hyn o bryd. MYFYRIWR: Nid Diwedd yn dechrau cyfartal? JASON Hirschhorn: Gallwn wneud beth? [LLEISIAU ymyrryd yn] MYFYRIWR: yn dod i ben yn fwy? JASON Hirschhorn: Yeah. Allwn wneud tra yn dod i ben yn fwy na dechrau. Iawn. Rydym yn Ychwanegodd dechrau yr ochr arall o hynny, ac rydym yn cael gwared ar y 0. Felly, hyn yn unig yn edrych yn ychydig glanach ychydig. OK. Felly, er bod hyd y rhestr yn 0, ysgrifennwyd , er bod yn dod i ben yn fwy na dechrau. Rydym yn mynd i roi yn ein angenrheidiol bresys cyrliog, ac yna y peth cyntaf yr ydym am ei wneud yw edrych ar iddynt mewn ychydig o restr. Chi? Gallwch ei roi imi y - MYFYRIWR: Os parenthesis gwerth braced sgwâr - JASON Hirschhorn: Os cromfachau braced sgwâr gwerth. MYFYRIWR: Diweddu wedi'i rannu â 2. JASON Hirschhorn: yn dod i ben? MYFYRIWR: Yr wyf yn gweld problem gyda'ch - JASON Hirschhorn: OK. Wel, yn edrych ar y canol. Sut ydym yn gwybod beth yw'r canol yn? Yeah. Felly, gadewch i mi dileu y cod hwnnw. Sut ydym yn gwybod beth yw'r canol yn? Mewn unrhyw beth, pan fyddwch yn cael y dechrau a diwedd, sut ydych chi'n dod o hyd i y canol? MYFYRIWR: Rydych cyfartaledd. MYFYRIWR: Rydych yn eu hychwanegu at ei gilydd ac yna - JASON Hirschhorn: Ychwanegu iddynt gyda'i gilydd ac yna? MYFYRIWR: A ydych yn cyfartaledd. Ei rannu â 2. JASON Hirschhorn: Ychwanegu iddynt gyda'i gilydd ac yn rhannu gyda 2. Felly canol int hafal? Tom, y gallwch ei roi i mi? MYFYRIWR: Dechrau yn ogystal â dod i ben - JASON Hirschhorn: Dechrau yn ogystal â dod i ben. MYFYRIWR: All, braced, wedi'i rannu â 2. JASON Hirschhorn: All, mewn cromfachau, wedi'i rannu â 2. Felly, sy'n rhoi y canol i mi unrhyw beth, cywiro? MYFYRIWR: Mae angen i chi hefyd i rownd i fyny. JASON Hirschhorn: Beth i'w wneud yn ei olygu, mae angen i mi i rownd i fyny? [LLEISIAU ymyrryd yn] MYFYRIWR: Oherwydd os Mae'n rhyfedd nifer, yna mae'n debyg - JASON Hirschhorn: Wel, OK. Er mwyn i mi rownd i fyny. Ond os ei fod yn odrif, 5, gallaf cymryd 1 i ffwrdd oddi wrth y canol. Neu os yw'n nifer hyd yn oed, yn hytrach, mae hynny'n achos yn well. Os yw'n 4, rydym yn dim ond 4, gallaf gymryd y cyntaf "canol", Dyfyniadau neu yr ail "canol" un. Byddai Naill ai yn gweithio am chwiliad deuaidd, felly nid oes angen mewn gwirionedd i mi ei orffen ei. Ond mae un peth yr wyf arall angen i ni edrych ar y llinell hon. Efallai nad ydym yn sylweddoli eto, ond byddwn yn dod yn ôl ato. Gan fod y llinell hon mewn gwirionedd yn dal i fod yn angen un peth arall. Ond hyd yn hyn, rydym wedi ysgrifennu pedair llinell o god. Rydym wedi cael ein dechrau ac yn dod i ben marcwyr. Rydym wedi ein dolen tra, sy'n mapio'r ar yn uniongyrchol at ein pseudocode. Rydym yn edrych ar y canol sy'n mapio uniongyrchol ar ein pseudocode. Byddwn yn dweud hyn yn mynd i ganol y rhestr, y llinell hon o god. Ac yna, unwaith y byddwn yn mynd i ganol y rhestr, y peth nesaf mae angen i ni ei wneud yn gwirio os yw ein gwerth sydd i y pseudocode ysgrifennom gynharach. Felly, sut rydym yn gwirio os yw ein gwerth ar ganol y rhestr? Chi. Pam nad ydych chi'n gwneud hyn? MYFYRIWR: Os yw ein gwerth yn yn y canol yn hafal i beth bynnag rydym yn gosod y - Yr wyf yn golygu gyfartal cyfartal i - JASON Hirschhorn: Mae'n - OK. MYFYRIWR: Dw i ddim yn siŵr beth yw'r amrywiol rydym yn edrych am fodd bynnag, yw oherwydd - [LLEISIAU ymyrryd yn] MYFYRIWR: [Anghlywadwy]. JASON Hirschhorn: Yn union. Unol â'r datganiad swyddogaeth, rydym yn chwilio am werth. Felly, rydym yn chwilio am werth mewn amrywiaeth o werthoedd. Felly rydych chi'n hollol gywir. Byddwch yn ei wneud, os gwerth paren agored braced canol hafal braced cau yn dychwelyd gwerth, ac y tu mewn yno beth sydd angen i ni ei wneud? Os yw ein gwerth yn yno, beth mae angen ei wneud? [LLEISIAU ymyrryd yn] MYFYRIWR: Dychwelyd sero. JASON Hirschhorn: Dychwelyd wir. MYFYRIWR: Dychwelyd wir. JASON Hirschhorn: Michael, beth mae hyn yn llinell yn ei wneud? MYFYRIWR: [Anghlywadwy] mae'r rhaglen wedi rhedeg ei chwrs, ac mae hynny'n drosodd, ac eich bod wedi hyn sydd angen i chi ei wneud? JASON Hirschhorn: Mae'r rhaglen neu beth? Yn yr achos hwn? MYFYRIWR: Mae'r swyddogaeth. JASON Hirschhorn: Mae'r swyddogaeth. Ac felly, i ddychwelyd i ba bynnag enw y peth a rhowch y gwerth, yn wir. Yn union i'r dde. Main. Beth yw'r math o ddychwelyd o brif, Michael? MYFYRIWR: int, cyfanrif? JASON Hirschhorn: int, yn union. Yn gyfanrif. Dyna oedd dim ond mater i wneud yn siŵr chi guys wedi bod ar ei ben. Beth mae'n ei fel arfer yn dychwelyd, os pob peth yn gweithio'n dda? MYFYRIWR: Zero. JASON Hirschhorn: Zero. Yn union i'r dde. MYFYRIWR: Os yw hyn yn unig yn dychwelyd yn wir, does dim gwybodaeth yn cael ei rhoi am yr hyn mae'r - O, mae hyn yn unig yw dweud bod y gwerth y tu mewn y rhesi. JASON Hirschhorn: Yn union. Nid yw'r rhaglen hon yn rhoi gwybodaeth o ble yn union mae'r gwerth yn. Dim ond ei ddweud, ie, rydym yn dod o hyd i , neu na, doedden ni ddim yn ei chael yn. Felly, os nifer o hyd, yn dychwelyd yn wir. Wel, mewn gwirionedd rydym yn unig yn gwneud hynny mewn gwirionedd gyflym â hynny un llinell o god. Felly byddaf yn symud y llinell o pseudocode. MYFYRIWR: Nid oes angen i newid y casgliad? Dylai fod gwerthoedd, nid yw gwerth, dde? JASON Hirschhorn: Mae'n ddrwg gennyf. Diolch yn fawr. MYFYRIWR: Yeah. JASON Hirschhorn: Mae'r llinell hon Dylai fod gwerthoedd. Yn union i'r dde. OK. Felly, rydym wedi edrych ar y rhestr canol. Os bydd y nifer a geir yn dychwelyd yn wir. Parhau ar â'n pseudocode, os canol yn fwy, chwilio chwith. Felly, roedd rhaid i mi i mewn yma, os nifer uwch, chwilio chwith. Constantine, a allwch roi i mi y llinell hon o god? MYFYRIWR: Os yw gwerth y canol - JASON Hirschhorn: Felly, os gwerth - os paren agored gwerthoedd braced braced agos canol - MYFYRIWR: A yw llai na gwerth? JASON Hirschhorn: A yw llai na. MYFYRIWR: Llai na gwerth. JASON Hirschhorn: Gwerth. Wel, mewn gwirionedd, yr ydych am gwirio a yw'r rhif - Mae'n ddrwg gennym. Mae hyn ychydig yn ddryslyd. Ond arall os yw'r rhif yn y canol y rhestr yn fwy. MYFYRWYR: O, OK. JASON Hirschhorn: 'n annhymerus' newid hynny. Arall os canol yn uwch, rydym yn am ei chwilio chwith, OK? A beth ydym yn ei wneud y tu mewn hwn os yw cyflwr? MYFYRIWR: A gaf i wneud newid bach i cyflwr, chyfnewid 'i at arall os? JASON Hirschhorn: Arall os? OK. Felly, bydd y cod hwn gweithredu am yr un peth. Ond y peth braf am ddefnyddio os, arall os, arall os neu os, arall os, arall yn golygu mai dim ond un o'r rheiny yn mynd i gael eu gwirio, nid yw pob tri ohonynt, o bosibl. Ac mae hynny'n ei gwneud yn ychydig brafiach ar y cyfrifiadur sy'n rhedeg eich rhaglen. Felly [? Constantine,?] rydym yn y tu mewn y llinell hon, arall os gwerthoedd, canol braced braced agos yn fwy na gwerth. Beth sydd angen i ni ei wneud? Mae angen i ni chwilio y chwith. Sut ydym yn gwneud hynny? Rydw i'n mynd i roi cychwyn i chi. Mae gennym y ddau beth a elwir yn dechrau ac yn gorffen. Felly, beth sydd angen i ddigwydd i'r dechrau? Os ydych am chwilio ar ochr chwith y rhestr, rydym yn cael ein dechrau ar hyn o bryd. Beth sydd angen i ni ei wneud? MYFYRIWR: Rydym yn gosod y dechrau i ganol ac 1. JASON Hirschhorn: Felly, os byddwn yn chwilio ar y chwith? MYFYRIWR: Mae'n ddrwg gennyf, llai canol - felly byddai'r diweddglo fod yn ganol minws 1 a dechrau - JASON Hirschhorn: A beth digwydd i'r dechrau? MYFYRIWR: Mae'n aros yr un fath. JASON Hirschhorn: Felly, y ystyr yn aros yr un fath. Os ydym yn chwilio y chwith, rydym yn gan ddefnyddio'r un dechrau - yn union gywir. A'r dod i ben? Mae'n ddrwg gennym, beth mae'r yn dod i ben yn gyfartal unwaith eto? MYFYRIWR: minws Canol 1. JASON Hirschhorn: minws Canol 1. Yn awr, pam minws 1, nid dim ond canol? MYFYRIWR: Mae'r canol yn y tu allan i'r llun yn barod, oherwydd ein bod wedi gwirio ei fod yn allan? JASON Hirschhorn: Mae hynny'n yn union gywir. Mae'r canol allan o'r llun. Rydym eisoes edrych ar y canol. Felly, nid ydym am "y canol," dyfyniad unquote, er mwyn parhau i fod yn y amrywiaeth ein bod yn edrych. Felly, mae hyn yn wych. Arall os canol gwerthoedd braced yn fwy na gwerth yn dod i ben hafal minws canol 1. Jeff, beth am y llinell olaf? MYFYRIWR: Arall. Canol Gwerthoedd yn llai na gwerth? JASON Hirschhorn: Rydym chi helpu byddwch yn rhoi arall i mi. Felly, os nad ydych yn rhoi i mi - MYFYRIWR: Felly, yna yn dechrau fyddai plws canol 1. JASON Hirschhorn: hafal Dechrau yn ogystal â canol 1, unwaith eto, am yr un rheswm y Constantine yn rhoi i ni yn gynharach. Ac yn y pen draw, nid ydynt wedi rhoi mi linell o god eto? Dychwelyd ffug, Aleha, beth rydym yn ysgrifennu yma? MYFYRIWR: Dychwelyd ffug. JASON Hirschhorn: Dychwelyd ffug. Ac mae angen inni wneud hynny, oherwydd os ydym peidiwch â hyd iddo, mae angen i ni ddweud ein nid oedd yn ei chael yn. A dywedasom ein bod yn mynd i ddychwelyd bool, felly mae gennym yn bendant i ddychwelyd yn rhywle bool. Felly, gadewch i ni redeg y cod hwn. Im 'mewn gwirionedd yn mynd i - felly rydym yn yn y derfynfa. Byddwn yn clirio ein ffenestr. Gadewch i ni Gwneud Gyfan. Rydym yn dod o hyd mae un camgymeriad. Mae gwall ar-lein 15, disgwylir i hanner colon ar ddiwedd y datganiad. Felly beth wnes i anghofio? MYFYRIWR: Gwahannod. JASON Hirschhorn: Gwahannod i'r dde i fyny yma. Credaf fod yn cod Tom. Felly Tom, [Anghlywadwy]. Dim ond kidding. Gadewch i ni yn Gwneud All eto. MYFYRIWR: Pa cyfeiriadur Dropbox dylem fod mewn am hyn? JASON Hirschhorn: Felly gallwch dim ond gwylio am ychydig hwn. Ond unwaith eto, os ydych yn awyddus i symud y cod i mewn i'ch cyfeiriadur pset3 i roi cynnig ar allan, dyna beth wnes i. Os byddwch yn sylwi yma - ddrwg gennym, cwestiwn da. [? LS,?] Mae gen i mewn yma y cod find.c o cod distro yr wythnos hon. Mae gen i helpers.h. Mae gen i ffeil Gwneud fy mod mewn gwirionedd yn wedi'i olygu ychydig i gynnwys y newydd ffeiliau rydym yn ysgrifennu. Bydd pob un o'r cod hwnnw fod ar gael, nid y cod dosbarthu, ond newydd Gwneud ffeil, gall y ffeil helpers.h newydd yn gael ar-lein i'w llwytho i lawr. Unwaith eto, felly dyna'r Codau ychwanegol gennym. Felly, gwnewch i gyd, fesul llinell hon, yn gwneud dod o hyd i, deuaidd, dewis swigen - yn gwneud pob un o'r tri ohonynt ac yn casglu i mewn i y cod dod o hyd gweithredadwy. Felly ar y cyfan, nid oes arnom eisiau i yn syth i check50. Rydym yn awyddus i gynnal rhai profion ar ein pen ein hunain. Ond dim ond fel y gallwn hwyluso'r hon ychydig, Bydd check50 2013 pset3.find pasio mewn helpers.c-- fy ddrwg. Nid wyf yn cael y hyn o bryd. Felly, rydym yn wir yn mynd i rhedeg y cod ar gyfer go iawn. Usage.find /, eich bod yn gwybod beth yw ystyr hynny? MYFYRIWR: Mae angen i chi ail llinell orchymyn arno. JASON Hirschhorn: Mae angen i mi llinell ail orchymyn. Ac unol â'r fanyleb, rhaid i mi i fynd i mewn yr hyn rydym yn chwilio amdano. Felly, gadewch i ni edrych am 42. Byddwn yn cadw mewn ddidoli, oherwydd ein bod yn Nid yw wedi ysgrifennu swyddogaeth fath eto - 42, 43, 44. Ac nid oedd Rheoli D ddod o hyd i'r nodwydd yn y tas wair. Mae hynny'n ddrwg. Mae'n bendant yno. Gadewch i ni geisio rywbeth arall. Efallai ei fod oherwydd fy mod yn rhoi hynny ar y dechrau. Gadewch i ni wneud 41, 42, 43. Dyna ni fynd. Yn ei chael yn. Gadewch i ni ei roi ar y diwedd yn awr, dim ond fel y gallwn fod yn drylwyr - 40, 41, 42. Nid oedd yn dod o hyd i'r nodwydd. Felly yr wyf yn sôn am hyn yn gynharach. Yn anffodus, yr wyf yn gwybod hyn oedd yn mynd i ddigwydd. Ond at ddibenion addysgol, mae'n dda i'w archwilio. Nid yw'n gweithio. Am ryw reswm, ni all ddod o hyd iddo. Rydym yn gwybod beth sydd yno, ond nid ydym yn ei chael yn. Felly, un peth y gallem ei wneud yw mynd drwy GDB i ddod o hyd iddo, ond mae unrhyw un, heb fynd drwy GDB, yn cael ymdeimlad o lle rydym yn sgriwio i fyny? [? Madu? ?] MYFYRIWR: Yr wyf yn meddwl y gallai fod yn dod i ben pan yn hafal i ddechrau, ac mae'n dim ond rhestr un-elfen. Yna, 'i jyst yn ei anwybyddu yn lle hynny o mewn gwirionedd yn gwirio ei. JASON Hirschhorn: Mae hynny'n yn union gywir. Pan fydd yn dod i ben hafal dechrau, a ydym yn dal i gael elfen yn ein rhestr? MYFYRIWR: Ydw. JASON Hirschhorn: Oes, yn wir, yr ydym yn gael un a dim ond un elfen. Ac y bydd y rhan fwyaf tebygol o ddigwydd pan, unol â'r cod a brofwyd gennym, yr ydym ar y flaen y das wair neu yn diwedd y das wair. Dyna lle mae dechrau a dod i ben yn mynd i cyfartal un, gyda chwiliad deuaidd. Felly, yn y ddau achos nad oedd yn gweithio, oherwydd dod i ben yn gyfartal i ddechrau. Ond os yn dod i ben yn hafal i ddechrau, mae hyn yn dolen wrth gyflawni? Nid yw'n gwneud hynny. A gallem fod wedi gwirio hynny eto drwy GDB. Felly, sut y gallwn atgyweiria cod hwn, oherwydd pan fydd yn dod i ben tra bod yn hafal i dechrau, rydym hefyd am i hyn tra bod dolen i'w rhedeg. Felly beth atgyweiria gallwn wneud i linell 18 oed? MYFYRIWR: [Anghlywadwy] yn fwy na neu'n hafal i. JASON Hirschhorn: Yn union gywir. Er bod yn dod i ben yn fwy na neu'n hafal i ddechrau. Felly nawr, rydym yn gwneud yn siwr i gael y achos gornel ar y diwedd. A gadewch i ni weld. Gadewch i ni redeg y un mwy o amser. Gadewch i ni wneud yr holl. Unwaith eto, bydd yn rhaid i chi yn unig dilyn ar hyd yma. Dod o hyd i 41 y tro hwn. Dim ond ei gadw yn gyson. Dod o hyd i 42. Gadewch i ni ei roi ar y dechrau - 42, 43, 44. Rydym yn ei chael yn. Felly dyna oedd yn wir y newid roedd angen i ni ei wneud. Yr oedd llawer o codio rydym yn unig oedd, chwilio deuaidd. A oes unrhyw un gennych unrhyw gwestiynau cyn Yr wyf yn symud ymlaen i mewn i linellau rydym yn ysgrifennu yn chwiliad deuaidd neu sut rydym yn cyfrifedig beth yr ydym yn chyfrif i maes? Cyn i ni symud ymlaen, yr wyf hefyd yn awyddus i dynnu sylw bod ar y cyfan, rydym yn mapio ein ffug-god un i un ar ein cod. Oedd gennym y peth anodd at chyfrif i maes y dechrau ac yn gorffen. Ond nid oeddech chi wedi cyfrifedig hynny allan, i chi Byddai wedi ysgrifennu 'n bert lawer yr cod union yr un fath, ar wahân i hynny ddwy linell uchaf. Ac yna byddech wedi sylweddoli pan i chi ei gwneud yn mewn archwiliadau ac achosion y arnoch angen rhywbeth arall. Felly, hyd yn oed os ydych wedi dilyn ein lein ffug-god i linell, byddai eich bod wedi gotten pob un ond dwy linell o godio angen i chi ysgrifennu. A fyddwn i'n barod i bet bod chi guys byddai pob wedi cyfrifedig hynny allan yn weddol gyflym, bod angen i chi roi rhyw fath o arwydd yno i ffigwr gwybod ble oeddech. Hynny unwaith eto, yn y pŵer o wneud ffug-god o flaen amser. Felly, gallwn wneud y rhesymeg yn gyntaf, ac yna gallwn poeni am y gystrawen. Pe baem wedi drysu am y rhesymeg wrth geisio ysgrifennu cod hwn yn C, byddem wedi gotten i gyd cyboledig i fyny. Ac yna byddem yn gofyn cwestiynau am rhesymeg a chystrawen a meshing nhw i gyd at ei gilydd. A byddem wedi gotten ar goll yn yr hyn all fod yn gyflym yn broblem anodd iawn. Felly, gadewch i ni symud ymlaen yn awr i'r math dethol. Rydym wedi 20 munud ar ôl. Felly mae gen i deimlad ni fyddwn yn gallu gael drwy bob un math dethol a didoli swigen. Ond gadewch i ni o leiaf ymgais i orffen fath dethol. Felly gweithredu detholiad didoli gan ddefnyddio'r yn dilyn datganiad swyddogaeth. Unwaith eto, mae hyn yn cael ei gymryd o'r broblem a osodwyd fanyleb. Gwerthoedd int yw cromfachau, yn amrywiaeth o gyfanrifau. Ac int.n yw maint y rhesi. Fath Dethol yn mynd i ddatrys amrywiaeth hwn. Felly unol â'n model meddyliol o ddethol didoli, yr ydym yn tynnu'r - cyntaf, rydym yn mynd drwy'r rhestr y cyntaf amser, ddod o hyd i'r rhif lleiaf, ei roi ar y dechrau, dod o hyd i'r ail nifer lleiaf, rhowch ef yn y ail safle os ydym am fath mewn trefn esgynnol. Dydw i ddim yn eich gorfodi i ysgrifennu ffug-god ar hyn o bryd. Ond cyn i ni wneud y cod fel dosbarth yn pum munud, yr ydym yn mynd i ysgrifennu ffug-god felly mae gennym rai synnwyr o ble yr ydym yn mynd. Felly, yn ceisio ysgrifennu ffug-god ar eich pen eich hun. Ac yna ceisio troi'r ffug-god i cod. Byddwn yn gwneud hynny fel grŵp mewn pum munud. Ac wrth gwrs, gadewch i mi wybod os oes gennych unrhyw gwestiynau. MYFYRIWR: Ei fod yn? JASON Hirschhorn: Gweler pa mor bell yr ydych Gall fynd i mewn dau funud mwy. Yr wyf yn deall nad ydych yn yn gallu gorffen. Ond byddwn yn mynd dros hyn fel grŵp. Rydych yn yr holl codio felly [Anghlywadwy], felly rwy'n ddrwg gennym i oedi yr hyn yr ydych yn ei wneud. Ond gadewch i ni fynd drwy hyn fel grŵp. Ac eto, chwilio deuaidd, rydych i gyd yn rhoi mi, un os nad mwy o god linellau. Diolch i chi am hynny. Rydym yn mynd i wneud yr un peth yma, cod gyda'i gilydd fel grŵp. Felly fath dethol - gadewch i ni ysgrifennu rhywfaint o ffug-god gyflym. Fesul model meddwl, gall rhywun roi i mi llinell gyntaf ffug-god, os gwelwch yn dda? Beth ydw i am ei wneud? MYFYRIWR: Er bod y rhestr allan o drefn. JASON Hirschhorn: OK, tra bod mae'r rhestr yn allan o drefn. A beth ydych chi'n ei olygu "allan o drefn?" MYFYRIWR: Er [Anghlywadwy] nid yw wedi cael ei datrys. JASON Hirschhorn: Er bod y rhestr allan o drefn, beth ydym yn ei wneud? Rhowch yr ail linell i mi, os gwelwch yn dda, Marcus. MYFYRIWR: Felly dod o hyd i'r nesaf nifer lleiaf. Bydd hyn yn cael ei mewnoli. JASON Hirschhorn: Felly dod o hyd i'r nesaf rhif lleiaf. Ac yna rhywun arall? Unwaith y byddwn yn dod o hyd i'r lleiaf nesaf nifer, beth ydym yn ei wneud? Rydw i'n mynd i ddweud ddod o hyd i y nifer lleiaf. Dyna beth yr ydym am ei wneud. Felly dod o hyd i'r nifer lleiaf. Yna, beth ydym yn ei wneud? MYFYRIWR: [Anghlywadwy] i ddechrau. JASON Hirschhorn: Mae'n ddrwg gennyf? MYFYRIWR: Rhowch ef yn y ddechrau'r rhestr. JASON Hirschhorn: Felly osod mewn ddechrau'r rhestr. A beth ydym yn ei wneud i'r peth a oedd yn y dechrau y rhestr, dde? Rydym yn trosysgrifo rhywbeth. Felly, ble rydym yn rhoi hynny? Yeah, Anna? MYFYRIWR: Pan fydd y lleiaf nifer oedd? JASON Hirshhorn: Felly rhoi'r dechrau y rhestr lle mae'r nifer lleiaf oedd. Felly, tra bod y rhestr yn allan o drefn, dod o hyd i y nifer lleiaf, roi mewn ddechrau'r rhestr, rhowch y dechrau y rhestr lle mae'r nifer lleiaf oedd. Marcus, a allwch aileirio'r y llinell hon tra bod y rhestr yn allan o drefn? MYFYRIWR: Er bod y niferoedd wedi cael eu datrys? JASON Hirshhorn: OK, hynny er mwyn gwybod nad yw'r niferoedd wedi bod yn didoli, beth sydd angen i ni ei wneud? Faint sydd ei angen i ni fynd drwy'r rhestr hon? MYFYRIWR: Felly, yr wyf yn dyfalu am ddolen, neu tra, er bod gwirio niferoedd yn llai na hyd y rhestr? JASON Hirshhorn: OK, sy'n dda. Rwy'n credu fy mod misphrased fy nghwestiwn wael. Roeddwn i'n jyst yn ceisio at ca ar rydym yn mynd i gael i fynd drwy'r rhestr gyfan. Felly, tra bod y rhestr yn allan o drefn, i mi, yn anodd i fapio ar. Ond yn y bôn, dyna sut Yr wyf yn meddwl am hyn. Ewch drwy'r rhestr gyfan, dod o hyd i'r nifer lleiaf, rhowch ef yn y dechrau - mewn gwirionedd, rydych chi'n iawn. Gadewch i ni ddau eu rhoi. Felly, tra bod y rhestr yn allan o drefn, yr ydym yn angen i fynd drwy'r rhestr gyfan unwaith, dod o hyd i'r nifer lleiaf, lle yn cychwyn y rhestr, rhowch ddechrau'r rhestr lle mae'r nifer lleiaf oedd, ac yna, os yw'r rhestr yn dal i fod allan o drefn, rydym wedi rhaid i fynd drwy hyn broses eto, dde? Dyna pam fath dethol, Big-O Rhedeg o'r math dethol, unrhyw un? MYFYRIWR: n sgwâr. JASON Hirshhorn: n sgwâr. Oherwydd fel Marcus a Fi jyst sylweddoli yma, rydym yn mynd i gael i mynd drwy'r rhestr rhestr nifer o weithiau. Felly, yn mynd trwy rhywbeth o hyd n n nifer o weithiau mewn gwirionedd yn sgwâr n. Felly, mae hyn yw ein pseudocode. Mae hyn yn edrych yn dda iawn. A oes unrhyw un gennych unrhyw gwestiynau am y pseudocode? Oherwydd bod mewn gwirionedd dylai fath dethol yn ôl pob tebyg yn dod 00:59, cod o pseudocode. Felly unrhyw gwestiynau am y rhesymeg y pseudocode? Gofynnwch yn awr. Fath Dewis - tra bod y rhestr allan o drefn, rydym yn mynd i fynd drwyddo a dod o hyd y lleiaf bob tro a'i roi yn y tu blaen. Felly, tra bod y rhestr yn allan o drefn, gall rhywun roi'r llinell o god fi sy'n ond nad yw wedi linell i mi o god eto, os gwelwch yn dda? Mae'n swnio fel beth? MYFYRIWR: Dyna i ddolen. JASON Hirshhorn: Mae'n swnio hoffi am ddolen. OK, gallwch ei roi imi y am ddolen? Ar gyfer - MYFYRIWR: i Equals 0. JASON Hirshhorn: i neu - beth ydym ar goll? Beth sy'n digwydd yma? MYFYRIWR: Int. JASON Hirshhorn: Yn union. (Int i = 0; - MYFYRIWR: i