[CHWARAE CERDDORIAETH] SIARADWR 1: Mae hwn yn CS50 ac mae hyn yn ddechrau wythnos dau. Felly, gadewch i ni plymio i'r dde i mewn i rywbeth hynny yw buggy, fel petai. Felly, dros yma yw IDE CS50 ac rwyf wedi tynnu i fyny o flaen llaw hwn screen-- damn iddo. Effro spoiler. Iawn. Rydw i wedi dynnu i fyny y sgrin hon fan hyn, sydd â rhaglen syml iawn. Os byddwn yn sgroliwch i lawr, mae'r rhan fwyaf o hyn yn unig yw sylwadau, ond yma mewn llinellau 13 drwy 17 mae gennym raglen. Mae'n syntactically ddilys, sy'n golygu os Yr wyf yn llunio ei, bydd yn llunio ac yn rhedeg, ond mae'n bygi. Mae'r rhaglen hon yn honni yn y sylwadau hyd top y dylai argraffu 10 sêr, ond nid yw'n gwneud hynny. Ac yn seiliedig ar eich profiad, neu yn fuan i fod yn brofiad gyda C, gallwch ddirnad rhesymegol pam mae hyn yn, mewn gwirionedd, bygi? Yeah? GYNULLEIDFA: Mae'n mynd o sero i 10. Dyna 11 o iteriadau. SIARADWR 1: Yeah. Felly, mae'n mynd o sero fyny drwy ac yn hafal i 10, sydd wrth gwrs yw 11 iteriadau. Felly, mae'n mynd i print, yn wir, 11 sêr. Felly, mae'r confensiwn gwyddoniaeth gyfrifiadurol yn y rhan fwyaf o ieithoedd rhaglennu yw, yn wir, dim ond i dechrau cyfrif ar sero, ond yn cyfrif hyd at, ond nid drwy'r gwerth yr ydych yn ei poeni am. Yn awr, mae hyn yn un peth sy'n cymryd ychydig ddod i arfer â a hyd yn oed Scratch, a gynlluniwyd gan ei fod yn am beidio rhaglenwyr neu heb gyfrifiadur gwyddonwyr ac ar gyfer plant i raddau helaeth, wedi ei gynllunio i gael byddwch yn dechrau cyfrif y cyfan ar un. Ac mae hynny'n iawn. Gallwch hollol ddechrau cyfrif ar un os yw hynny'n fwy cyfforddus. Ac yn cyfrif hyd at a thrwy 10, ond byddwch yn sylweddoli yn arbennig yr wythnos hon a tu hwnt i hynny dim ond er mwyn llawer o bethau yn rhaglennu cymryd yn ganiataol bod 0 yw'r cyntaf digid ydych yn cyfrif ag ef, eich bod yn mynd i ddod o hyd yn haws dim ond i fynd i mewn arferiad hwn o ddechrau o sero a chyfrif hyd at werth ydych yn gofalu am ar hyn o bryd gan y cael mynd. Felly, mae hynny wedi sefydlog hynny. Rydym yn newid y llai na neu'n yn hafal i ddim ond yn llai na. Gadewch i ni edrych ar ail enghraifft yma. Felly, mae'r rhaglen hon hefyd yn honni yn ei sylwadau fyny top y dylai argraffu deg sêr, ond nid yw'n gwneud hynny. Beth yw y byg yma? Felly, what-- a ddrwg gennym, gadewch i ni fod yn glir. 10 sêr. Un i bob llinell, ond nid yw'n gwneud hynny. Felly, mewn gwirionedd, gadewch i mi fynd yn ei flaen ac yn llunio yr un yma oherwydd ei fod yn ychydig yn llai clirio yn seiliedig ar y disgrifiad hwnnw. Gadewch i mi fynd i mewn i'n cyfeiriadur ffynhonnell. Gwneud bygi un dot slaes, un bygi. OK, yr wyf yn gweld 11 o sêr, a oedd yn dal i fod yn broblem, ond maen nhw hefyd i gyd mewn un llinell. Beth yw'r mater dan sylw yma? Yeah. GYNULLEIDFA: [Anghlywadwy]. SIARADWR 1: Yeah. Felly, mae hwn yn ysgafnder y gall chi galw i gof yn fy wneuthur coffa byr o. Er bod popeth yn edrych 'n bert, ac mae wedi mewnoli' n glws, ac mae'n fath o edrych yn Scratch-debyg yn y llinell 16 ac 17 yn cael eu, yn wir, mewnoli dan un ar gyfer ddolen. Mae hynny'n amherthnasol. Nid yw'r cyfrifiadur yn gwneud yn gwybod neu'n gweld gofod gwyn. Gofod gwyn yn unig ar gyfer bodau dynol ni, arddull. Mae'r cyfrifiadur yn gwybod pan fyddwch wedi bresys cyrliog, a fyddai, yn wir, atgyweiria hon broblem. Felly, os ydym mewn gwirionedd yn mynd i mewn ac rhoi benodol yn braces cyrliog hyn a fyddai'n atgyweiria hon broblem gan ei gwneud yn glir i'r casglwr bod Fi 'n weithredol eisiau gweithredu dwy linell o god eto, ac unwaith eto, ac unwaith eto. Ond beth yw'r esboniad sylfaenol? Iawn? Nid oes yn llym angen i ni cyrliog bresys drwy'r amser, hyd yn oed er 'i' yn ôl pob tebyg gorau ymarfer i fynd i mewn y arfer beth bynnag hyd yn oed er ei fod yn ychwanegu dau cymeriadau at eich cod. pam? GYNULLEIDFA: [Anghlywadwy]? SIARADWR 1: Yeah, felly dyna ateb arall yn gyfan gwbl. Iawn? Yn enwedig os ar yr olwg gyntaf nad ydych yn ei wneud 'n sylweddol yn gwerthfawrogi beth sy'n digwydd. Wel, yn sicr gallem dim ond gwneud dau beth ar yr un pryd a dim ond osgoi'r broblem yn gyfan gwbl. Ac mae hynny'n iawn, ond erbyn hyn, ar gyfer dibenion heddiw, beth yw'r esboniad am y byg? Pam nad oedd yr holl sêr y rhai ar un llinell? Yeah? GYNULLEIDFA: Mae'n ymddangos bod os oes gennych un llinell o god, gallwch wneud hynny heb hynny. SIARADWR 1: Yn union. Mae hyn yn unig yw confensiwn dynol. Mae pobl yn sylweddoli ei fod yn ychydig yn blino neu 'n faith i gael i roi braces cyrliog gyd o'r amser os yw'r holl ydych am ei wneud yn gweithredu un llinell o god. Felly, penderfynodd bodau dynol rhai amser yn ôl bod hynny'n iawn. Os ydych chi am roi eich holl dolen ar ddim ond bod un llinell fel hyn, mae hynny'n iawn gyda'r sengl hanner colon ar y diwedd. Ond gallwch ond gwneud un fath lein heb y braces cyrliog. Felly, pan fydd y canllaw arddull CS50 gan y byddwch yn cyfeirio at, byddwch yn gweld bod y cyfan mae'n arfer da i fynd i mewn i hyn nes eich bod yn eithaf cyfforddus crwydro o y mathau hyn o gonfensiynau ac yn gwneud eich hun beth. Ar yr amod eich bod yn hunan gyson. A byddwn yn siarad mwy am arddull ychydig yn ddiweddarach heddiw. Felly, gadewch i mi agor i fyny un rhaglen arall. Wrth gwrs, dylem atgyweiria bod 10 hefyd. Gadewch i mi fynd yn ei flaen ac yn ysgrifennu go iawn rhaglen cyflym y byddaf yn galw, gadewch i ni ddweud, dolen dot C. Felly, dolen dot C. Ac yn ddolen dot C Rydw i'n mynd i gael, cynnwys Rwyf safonol / O dot H int brif ddi-rym. Ac yn awr gadewch i ni dim ond gwneud, yn wir, dolen. Felly, 4 int yr wyf yn cael sero. Rwyf yn llai na, dyweder, 50. Rwyf yn ogystal, a mwy. Ac yna i mewn yma gadewch i ni mynd yn ei flaen ac yn argraffu F. Ac yna yr wyf am i argraffu fy mod a llinell newydd, hanner colon. A dylai hyn argraffu'r holl rhifau o sero hyd at 50? Mae ychydig yn nodio pen. Mae ychydig rhifau. Beth yw y byg yn barod? Beth yw'r camgymeriad yn hawdd i mi ei wneud? Yeah. GYNULLEIDFA: [Anghlywadwy]. SIARADWR 1: Yeah. Felly, hyd yn oed er ei fod yn edrych fel hyn yn hyn yr wyf yn bwriadu, cofio imi hefyd dim ond cymeriad ASCII. Felly, os wyf yn dweud, print "I." Mae'n mynd yn llythrennol i argraffu I. Felly, os wyf yn eisiau plug-mewn placeholder gwerth Fi 'n weithredol angen i ni wneud hyn ac yna plug-in y gwerth yr wyf yn ddynamig. Fel arall Im 'jyst yn mynd i cael 50 I ar y sgrin. Felly, gadewch i mi fynd yn ei flaen ac gwneud dolen hwn, rhedeg, ac, yn wir, yr ydym i gyd wedi y ffordd i fyny drwy'r 49. Ac os wyf yn sgrolio yn ôl mewn amser i weld rhif sero ar y dechrau. Wel, beth os wyf yn fath o sgriw i fyny? Beth os ydw i'n gwneud hyn? Dim ond oherwydd nad wyf i'n meddwl. Beth yw rhaglen hon. Unwaith ail llunio a'u rhedeg, mynd i wneud yn rhesymegol? GYNULLEIDFA: Dim byd. SIARADWR 1: Dim byd. Pam hynny? GYNULLEIDFA: Yr wyf yn ei gynllunio ar gyfer sero. Felly, y cyflwr yn ffug. SIARADWR 1: Yeah, yn union. Mae'r holl y cod yn gywir, syntactically. Bydd hyn yn llunio, mae hyn yn Bydd cod yn rhedeg, ond nid yw'n mynd i wneud unrhyw beth defnyddiol oherwydd fy mod ymgychwyn i mi i sero. Yna byddwn yn gwirio, yw wyf yn fwy na 50? Yn amlwg, na, nid yw'n. Felly mae'r ddolen byth yn executes o gwbl. Beth os ydym yn gwneud rhywbeth ychydig yn fwy di-hid? Felly, beth os ydym yn ei wneud fel int wyf yn cael sero. Ac yn awr gadewch i mi ddefnyddio'r tra dolen, sef cyflwr arall. Ac er i mi ddweud, er fy mod yn fwy na neu'n hafal i sero, ac yna i mewn yma yr wyf yn mynd yn ei flaen ac arbed y ffeil, yn gwneud dolen. A dwi'n fin ei redeg. Beth ydw i'n mynd i weld hon amser gyda dolen tra? Yeah. GYNULLEIDFA: Mae dolen ddiddiwedd? SIARADWR 1: Mae dolen ddiddiwedd? Ie, a pham? GYNULLEIDFA: Oherwydd ei fod bob amser yn sero. SIARADWR 1: Yeah. Felly, yr wyf yn ei initialized fel sero. Wrth gwrs fy mod bob amser yn fwy na neu'n hafal i 0 o ganlyniad. Felly, Im 'jyst yn mynd i gweld hyn anfeidrol. Ac yn awr, mae hyn wedi dod i fyny unwaith neu ddwywaith i benaethiaid y cwrs. Beth sy'n digwydd pan fyddwch yn gael dolen ddiddiwedd? GYNULLEIDFA: Rheoli C. SIARADWR 1: Yeah. Felly bydd Rheoli C yn y pen draw yn ymateb. Yn anffodus, rydym wedi hargraffu miliynau ar filiynau o sero yn barod ac felly mae'r cyfrifiadur fath o got o fy mlaen. Felly, mae'n mynd i anwybyddu mi am ychydig bach. Ond os ydych yn jyst daro Rheoli C ychydig amseroedd ar eich Mac neu PC allweddell, yn y pen draw dylai, yn wir, yn dod i ben. Ac os nad yw, byddwn yn dangos i chi rai technegau cyn bo hir lle rydych yn Gall mewn gwirionedd yn rymus lladd rhaglenni, yn debyg iawn i mewn Ffenestri a Mac OS, os oes angen. Ond gadewch i ni roi cynnig ar rywbeth arall. Gadewch i ni mewn gwirionedd yn cynyddiad I. A yw mae hyn yn dal yn mynd i fod yn ddiddiwedd? Gadewch i mi redeg hyn. Ac yn awr y gallwch math o weld beth sy'n digwydd. Mae hyn, hefyd, yn dolen ddiddiwedd. Ond mae hyn yn dipyn o gwestiwn tric. A yw hyn yn mynd i argraffu rhifau am byth? GYNULLEIDFA: Na SIARADWR 1: Na Pam? Clywais rai rhifau dros yma. Someone-- Yeah. GYNULLEIDFA: Nid oes gennych ddigon o darnau at 'n sylweddol yn dal i fynd. SIARADWR 1: pob hawl. Felly, nid oes gennyf ddigon o darnau i gadw i fynd. Felly, beth sy'n mynd i ddigwydd? Dim ond ei fod yn mynd i roi'r gorau iddi? GYNULLEIDFA: Ar ryw adeg bydd yn cau the-- SIARADWR 1: Bydd yn cau y ddolen i lawr, ond pam? Beth sy'n mynd i ddigwydd yn y iawn ddiwedd ei ffiniau? Yeah? GYNULLEIDFA: Mae'n yn beicio yn ôl i rifau negyddol. SIARADWR 1: rhifau negatif, neu pe baem yn unig trin yn gadarnhaol, sero o leiaf. Felly ie, yn hollol. Dwyn i gof bod y gwelsom tro diwethaf os ydych yn cynyddiad eich darnau un yn ormod o weithiau, a chi yno Fore gorlifo y gallu eich int neu beth bynnag y math data, rydych yn mynd i lapio o gwmpas, yn ôl pob tebyg, dau rhifau negatif. Neu os ydych chi wedi nodi bod eich Dylai amrediad yn unig fod yn gadarnhaol, a gallwch wneud hyn, ond nid ydym wedi gweld hynny eto, efallai y byddwch yn darfod i fyny o leiaf yn ôl ar sero. Er bod, mewn gwirionedd ie. Yn yr achos hwn, negyddol rhifau, ac os felly mae'r ddolen yn mynd i derfynu gan nad wyf, mewn gwirionedd, fwy na neu'n hafal i sero os yw'n negyddol. Felly, yn anffodus, sut hir y byddai rhaid i ni aros? Ar hyn o bryd rydym yn hyd at beth, 2 filiwn-ish? Rydym yn hoffi 2 biliwn, rydym yn mynd i orfod aros hyd nes y gallwn mewn gwirionedd yn gweld symptom hwn. Ond gallwn weld ei fod ychydig yn gyflymach, maybe-- gadewch i ni weld os allwn ni torri ar draws. Dewch ar. Hyd yn oed y bwydlenni yn ymddangos yn araf. Iawn. Felly, byddwn yn dod yn ôl at hynny cyn bo hir. Mae'n dda adeg-- damn ei, cŵn bach. Mae'n amser da ar gyfer rhai cyhoeddiadau. Felly, os efallai yr hoffech i gymryd rhan mewn YHack, sydd yn ddigwyddiad yn noddwyd gan ein ffrindiau yn Iâl. Ac, yn wir, mae rhai o'r cwrs TFS yn Iâl yn cymryd rhan gyda hyn. YHack yn rhyngwladol darnia-a-thon a gynhelir gan a ddelir yn Iâl, gan ddwyn ynghyd 1,500 fel hacwyr anian a greadigol i gyd dros y byd. Os yw hyn o ddiddordeb, cymerwch olwg yma. Os yw hyn yn rhy fyr ar y sgrin, yn edrych ar sleidiau heddiw ar gyfer yr URL ar gyfer yhack.org. Felly, hefyd ychydig o gyhoeddiadau cyflym. Felly, yn swyddogol, bydd yr adrannau yn dechrau wythnos nesaf yma ac Haven Newydd. Cadwch mewn cof byddwch yn cael e-bost yn ddiweddarach y penwythnos fwyaf tebygol. Mae'n cymryd amser hir i CS50 i adran, o ystyried yr holl bobl yn y dosbarth ac mae pawb yn symud o gwmpas. A'r holl Cymrodyr Dysgu ' amserlenni hefyd yn dal i solidifying, ond aros tuned ar gyfer e-bost ac os bydd angen gael, gallwch ail-adran yno ar ôl. Study.cs50.net. Felly, hyd yn oed os ydych yn mynychu yn gyson yn adrannau, yn sylweddoli bod bron pob o'r adnoddau a ddefnyddiwn yn adrannau ar gael i'r cyhoedd yn CS50 Astudio yn URL hwn yma. Felly, os ydych chi erioed wedi eisiau i ail adolygiad deunydd o adran, neu'n darllen ymlaen, neu os nad ydych yn gallu ei wneud yn rhyw wythnos, sylweddoli bod sleidiau sampl, a phroblemau, a diffiniadau, a mwy i gyd yno yn ogystal. Oriau swyddfa ailddechrau heddiw, ac yfory, a dydd Mercher, a dydd Iau yn gwirio y cwrs gwefan am yr amserlen. A hefyd, yn awr yn lansio heddiw yn CS50 Trafodwch. Felly, os a pan fydd gennych gwestiynau am ei gilydd neu ar gyfer staff y cwrs, ac maent yn gweithio yn gyffredinol ar rai broblem a osodwyd, sylweddoli nad ydych yn ei wneud o reidrwydd rhaid i droi at y bobl yr ydych nesaf. Os nad oes un yno, gallwch estyn allan i ni a chyd-ddisgyblion ar-lein trwy CS50 Trafodwch. Felly, mae hyn yn drafodaeth bwrdd ar gyfer y cwrs, ac yn sylweddoli bod hyn yn Efallai mai dyma'r gorau gosod i ddechrau pan fydd gennych cwestiynau pan tu allan i oriau swyddfa yn arbennig. Bydd cinio cychwyn yr wythnos hon hefyd. Ar Tân ac Iâ [Anghlywadwy] yn New Haven. Cymerwch olwg ar y cwrs gwefan er mwyn ei RSVP. Cyntaf i'r felin, yn gyntaf yn gwasanaethu ar gyfer hynny. Os nad ydych yn cael yn yr wythnos hon byddwn yn gwneud hyn fwyaf bob dydd Gwener yn ystod y tymor. OK, ac yn awr gair am raddio. Yn enwedig wrth i ni fynd problem sefydlu un, sydd allan yr wythnos hon, a datrys gosod dau ac wedi hynny. Sut ydym yn mynd ati i werthuso P setiau a gwerthuso ansawdd o hynny? Felly, mae'n bedair echel a ddefnyddiwn yn CS50, ac maen nhw'n y pedair yma. Scope, sy'n dal ar rhifol sail yn union faint o'r P set wnaethoch chi fynd i'r afael â. Mae'n cyfateb yn fras â ymdrech, ac mae'n ein ffordd o ddal wnaethoch chi roi cynnig hanner y P osod, pob un o'r P a osodwyd. Mae hwn yn un hawdd i gael perffaith sgoriau ar os ydych yn gwneud, yn wir, roi cynnig ar bob agwedd ar y P a osodwyd. Felly, cadwch hynny mewn cof. Cywirdeb yn union hynny. A yw eich gwaith cod fel y fanyleb ac fel ateb enghreifftiol y staff ' yn awgrymu bod eich cod Dylai, mewn gwirionedd, yn gweithio. Gwiriwch 50, os nad ydych wedi bodloni ei ac eto, yn P sefydlu un fanyleb a bydd y cyfan rhoi atebion ie / na chi ynghylch a yw eich cod yn gywir. O leiaf cyn belled ag rydym yn mynd i werthuso ei seilio ar y profion ein bod yn rhedeg o fewn y rhaglen honno. Dylunio yn llawer mwy goddrychol. Mae hyn yw pa mor dda ysgrifenedig yn eich cod. Ac mae hyn yn rhywbeth y byddwch yn cael yn well am dros amser, ac mae'n rhywbeth yr ydym chi helpu rhoi adborth mwy ansoddol ar. A thrwy gynllun wyf yn gallai yn ei olygu i chi cyn bo hir Efallai eu temtio mewn rhai P gosod i wneud rhywbeth loopingly, ond i gael efallai dri, neu bedwar, neu pum dolenni blaen nythu neu tra nythu dolenni. Y dylai gyffredinol yn dechrau i wneud i chi cringe a byddai gyffredinol dylunio gwael hystyried. A byddwch yn dechrau gweld yn y dosbarth ac allan o ffyrdd da dosbarth o wneud pethau, ffyrdd gwael o wneud pethau sy'n Efallai i gyd fod yn gywir, ond nid o reidrwydd yn cynllunio'n dda. Fel ysgrifennu traethawd. Efallai y byddwch yn medru rhoi geiriau ar dudalen sy'n ramadegol gywir, ond mae'r traethawd neu'r traethawd ymchwil eu bod yn yn unig hollol ddigyswllt neu'n unpersuasive. Ac felly gallai hynny fod yr analog yn y byd ysgrifenedig dylunio gwael neu dda. Ac arddull, hefyd, yn weddol oddrychol. Ond o leiaf rydym yn disgwyl cysondeb. Dyma sut 'n bert yw eich cod. A yw pethau mewnoli 'n glws? A yw eich newidynnau a enwir yn dda / A yw pob o'ch cromfachau a braces cyrliog halinio fel y dylent fod? Mae gennym ganllaw arddull CS50 fel bydd y broblem a osodwyd eich cyfeirio at. Mae'r rhai yn fwy cyfforddus yn croeso i grwydro o hynny cyn belled ag y byddwch yn hunan gyson. Ac mae hyn, hefyd, yn wers byddwn yn atgyfnerthu yn yr adran. Felly, os hyn i gyd oedd ychydig gyflym, yn sylweddoli y P a osodwyd ac adrannau yn mynd i fwy o ddyfnder cyn bo hir. Ond yn gyffredinol rydym wedi ychydig iawn o bwcedi ar gyfer CS50. Sgoriau yn gyffredinol ar raddfa o un i dri, neu un i bump. Rydym yn literally-- ac ni allaf ddweud hyn yn ddigon yn yr wythnos gyntaf. Tri yn dda. Felly, hyd yn oed er, ie, tri allan o bump fel arfer, yn fathemategol, Gallai fod yn 60 y cant neu fel minws D. Three yw, mewn gwirionedd, yn dda. Ac, yn wir, rydym yn disgwyl rhan fwyaf o fyfyrwyr yn y dosbarth i ddechrau tymor o gwmpas deuoedd, a drioedd, a pedwar. Mae'n debyg nad cymaint o bump. Ddim yn rhy llawer o rai. Ond yn gyffredinol i ddechrau yn fan a'r lle melys hynny yn y gromlin fel eu bod wrth i amser fynd yn ei flaen, mae mewn gwirionedd yn lle i, a chyfleoedd ar gyfer dilyniant uchaf. Felly, peidiwch â gyfystyr tri gyda 60%. Mae'n llawer mwy haniaethol na hynny. Mae'r fformiwla rydym yn cyfrifo â hwy graddau ei bwysoli fel a ganlyn. Cywirdeb yn werth y mwyaf. Dylunio yn werth ychydig yn llai. Style yn werth ychydig yn llai. Ac mae hyn yn gyffredinol cyfleu faint o amser sy'n mynd i mewn i gael pob un o'r bwyeill hyn yn iawn. Style yn super hawdd, Dylai fod yn super gyflym, ond ei fod yn arferiad hawdd i gael ddiog am. Gallai Cywirdeb cymryd chi y rhan fwyaf o'r amser. Chasing lawr rhai gallai bug cymryd bod awr ychwanegol neu fwy, ac felly, y sgorio yn y pen draw yn adlewyrchu hynny. Ac felly, yn awr gair mwy difrifol. Ers CS50 wedi y gwahaniaeth, er gwell neu er gwaeth, o fod yn efallai yn well gyfarwydd â'r materion o academaidd gonestrwydd na'r rhan fwyaf o unrhyw gwrs arall. Ac yn wir, y mae hyd y gwn sy'n byddwn yn anfon mwy o fyfyrwyr, yn anffodus, at ddibenion disgyblu bob blwyddyn o ganlyniad. Felly, er budd llawn datgelu, gadewch i ni siarad yn fyr am yr hyn sy'n digwydd yn CS50, a'r hyn yr ydych yn gallu ei wneud, a beth allwch chi fod yn ymwybodol o. Felly, dyma ers 2007, pan Etifeddais y cwrs, yw nifer yr achosion Bwrdd Ad. Bwrdd Ad yw disgyblu Harvard corff, neu yn awr y Honor Cwnsler, y mae achosion yn cael eu cyfeirio pan myfyrwyr yn gwneud rhywbeth y mae'r cwrs yn maes llafur yn ystyried afresymol. Does dim patrwm go iawn yma, byddwn yn dweud. Mae'n amrywio dros y flynyddoedd ond yn gyffredinol mae hyn yn y nifer o achosion sy'n cael eu cyfeirio. Mae nifer y myfyrwyr sy'n ymwneud? Mae hefyd yn amrywio. Yn nodweddiadol, y llynedd ar gyfer enghraifft, mae 29 o fyfyrwyr yn Harvard Roedd Ad fyrddio, fel petai. 29 ohonynt yn fyfyrwyr presennol, dau ohonynt myfyrwyr cyn, a oedd yn cydweithio mewn rhyw ffordd anffodus. Ac yna o ran y canran, mae fel arfer yn tua 3% y dosbarth sydd, yn anffodus, gwneud y mathau hyn o benderfyniadau. Felly, y llynedd roedd yn 3.5% o gorff y myfyrwyr CS50 yn a oedd Ad fyrddio, fel petai. Felly, beth mae hyn i gyd yn ei olygu? A beth ydym yn ei wneud? Felly, am ddatgeliad llawn, rydym yn hollol, fel gwyddonwyr cyfrifiadurol, rhaid i offer meddalwedd ar gael i ni ac mae'n hawdd iawn i ni, a bod yn deg, cyd-ddisgyblion nad gilydd nad ydynt yn croesi llinellau hyn i groesi cymharu bob cyflwyniad eleni yn erbyn pob cyflwyniad am yr wyth mlynedd diwethaf. Meddalwedd yn gwneud hyn. Ac yn y pen draw mae'n llygaid dynol sy'n penderfynu p'un ai i gyfeirio'r rhai o bwys i'w dyfarnu pellach, ond meddalwedd yn sicr yn help. Ac mae hyn, a dweud y gwir, dyna pam fy mod yn meddwl mae gennym niferoedd mor fawr yn CS50. Nid Mae'n oherwydd CS50 myfyrwyr neu fyfyrwyr CS fwy Yn gyffredinol, mae llai gonest nag unrhyw fyfyrwyr eraill, 'i' jyst gennym y offer a'r technegau y mae i gymryd y tocyn cyntaf. Ond rydym yn ei wneud yn cadw llygad ar bob un o'r pethau hyn yn ogystal, unwaith eto, er budd cydnabod y gwaith sy'n cael ei roi mewn gan fwyafrif super y dosbarth. A pholisi y cwrs ar onestrwydd academaidd, hyd yn oed er ei fod yn griw o baragraffau hir gyda criw o fwledi sydd yn gobeithio yn eithaf darllenadwy, mae'n wir yn berwi i lawr i fod yn rhesymol. A'r rheol orau sydd rydym yn cynnig i fyny o fewn y maes llafur yw hyn, hanfod o'r holl waith yr ydych gyflwyno i'r cwrs hwn fod yn eich pen eich hun. Ac yn wir, ym mron pob un o'r rheini achosion a gyfeiriwyd ar gyfer camau disgyblu yr oedd oherwydd rhai un hwyr i fyfyrwyr nos fel arfer yn troi ei cod dros llwyr i classmate, sydd wedyn yn ei fabwysiadu yn ei gyfanrwydd neu sylweddol o hynny. Ond mewn gwirionedd, mae hyn yn iawn. Ac yn wir, yn swyddfa oriau, mae'r slipiau o bapur rydych wedi bod yn rhoi os byddwch yn dod gan y swyddfa awr yr wythnos diwethaf yn annog cymaint. Eich bod yn hollol croesawu ac annog i drafod setiau broblem gyda cyd-ddisgyblion. Er mwyn helpu ei gilydd pan baglu. Ond yn gyffredinol dylai'r synnwyr y fawd fod hyn, "pan fyddwch yn gofyn am help, efallai y byddwch yn dangos eich cod i eraill, ond efallai na fyddwch yn gweld rhai hwy. " Felly, mewn geiriau eraill, os ydw i'n trafferth gyda rhai P set a dwi'n eistedd yno yn y fwyta neuadd, neu yn y llyfrgell, neu yn yr ystafell ddosbarth ceisio dod o hyd rhywfaint o fai, Yn sicr, gallaf ddangos fy cod ar fy sgrin at y person sy'n eistedd nesaf i mi, yn sicr y staff, ond hefyd yn classmate. Ond os yr ateb sy'n fy classmate gynnig yw, oh, yma dim ond yn edrych ar yr hyn y Wnes i, sy'n croesi'r llinell. A byddwn yn meiddio dweud bod yn gyffredinol yn beth rhesymol ar gyfer rhan fwyaf o bobl i adnabod y llinell o hawdd iawn. Ac felly, yn gweld y maes llafur am fwy o fanylion. Ac yn awr yn un o'r mwy agweddau dadleuol o faes llafur CS50 fy mod yn meddwl fy mod Byddai siarad â gloi yma yw'r cymal difaru hyn a elwir yn. Felly, dyma yr holl print mân. Ond yn gyffredinol rydym wedi gweld yn ystod yr 8 mlynedd a mwy diwethaf hynny, yn wir, mae bron pob un o'r CS50 yn achosion o anonestrwydd academaidd wedi bod yn ganlyniad o ddim ond yn wael gan wneud yn hwyr y nos penderfyniad. Canlyniad straen, y canlyniad o diffyg bwyta, diffyg cwsg, gormod o setiau P, mae gormod o terfynau amser, mae gormod o ymrwymiadau. Straen gan adeiladu i fyny mewn 02:00, 03:00 AC, 4:00, gyda dyddiad cau ar y gorwel. Mae'r rhan fwyaf o fyfyrwyr yn yr achosion hyn newydd wneud penderfyniadau gwael y gallent yn dda iawn yn gresynu at y bore wedyn os nad munud yn ddiweddarach, ond tan y llynedd nad oedd unrhyw falf rhyddhau y gallai myfyrwyr hyn mewn gwirionedd yn agor i fyny i fynd i'r afael mewn gwirionedd â'r pen broblem ar heb ofn o fod yn gychwynnir o'r coleg yn gyfan gwbl. Ac, yn wir, cyflwynwyd y cymal difaru y llynedd, sy'n dweud bod os yw o fewn 72 awr, tri diwrnod, o groesi rhywfaint llinell a ragnodir yn y maes llafur byddwch yn dod ymlaen i un o'r cwrs penaethiaid a byddwn yn cael sgwrs am y peth. Mae dal yn cael rhyw canlyniad, yn groes i'r hyn sydd cael eu hadrodd i'r gwrthwyneb. Mae rhywfaint o ganlyniad bod yn gweithredu arnynt gan y cwrs, Yn gyffredinol, mae zeroing P set neu gymryd rhai camau eraill, ond byddwn, yn wir, drin ein hunain ac nid gyfeirio uwch yn y canlyniad allai fod yn llawer mwy difrifol. Ac, yn wir, i rannu'r hyn a ddigwyddodd y llynedd, yn yr wyth mlynedd, ac yn awr naw mlynedd, o addysgu'r cwrs hwn ac ar ôl tinkering gyda gwahanol knobs, troi gwahanol deialau dros y gorffennol nifer o flynyddoedd ar onestrwydd academaidd, a gweld fesul y data ddim yn amlwg effaith, hyd yn oed o areithiau fel hyn, roedd hyn yn dwylo i lawr y peth gorau rydym wedi cyflwyno bedagogaidd mewn wyth mlynedd hyd y llinellau hyn yn CS50. Daeth 19 o fyfyrwyr ymlaen dan y cymal hwn y llynedd. Rydym yn cymryd unrhyw gamau i saith o'r myfyrwyr hynny, penderfynu eu bod yn poeni ddiangen. Nid oedd ganddynt, mewn gwirionedd, croesi llinell, ond mae'n Roedd sgwrs da i gael serch hynny. Rydym yn zeroed 11 o'r sgoriau a gyflwynwyd. Ac mewn un achos gofynnwyd cymwys am wneud problem a osodwyd. Ond yn fwy grymus, yn onest, gyda'r 19 o sgyrsiau, a oedd yn ffordd fwy nag yr oeddwn disgwyl iddynt gael, pob un ohonynt 10 munud i efallai yn awr o hyd, hefyd wedi dod i oleuo nifer o faterion yn ymwneud Materion teuluol, materion ffrind, materion iechyd meddwl ein bod wedyn yn cymryd rhan, gyda bendith, preswylydd y myfyriwr deon, neu ffrindiau, neu unrhyw rif arall o adnoddau cymorth. Felly, bod hyn yn un o bell ffordd o'r defnydd gorau o'n hamser ac yn un o'r ymyriadau gorau. Gyda hynny ddywedodd, nad oedd ganddo unrhyw fewnbwn ar y gyfradd canfod o anonestrwydd academaidd yn fwy cyffredinol. Ac yr wyf yn meiddio dweud, is-set hon o fyfyrwyr y llynedd Roedd demograffig yr ydym yn flaenorol byth yn eu hadnabod cyn ac nid oedd erioed wedi cysylltu â blaen. Ac felly, roedd y rhain yn llwyddiannau rhyfeddol er eu bod yn dod i'r amlwg mewn llai na amgylchiadau gorau posibl. Felly, cadwch hyn mewn cof wrth i chi wneud, o bosibl, rhai penderfyniadau gwael eich hun yn hwyr yn y nos, bod yna troi mor hir gan fod y myfyriwr yn y sefyllfa honno yn berchen i fyny ac i ddod ymlaen fel y gallwn cael y math hwnnw o sgwrs a delio ag ef mewn ffordd sy'n addysgiadol, ac yna gallwn ei roi tu ôl i ni y diwrnod nesaf. Felly, heb ado pellach, yn cymryd y ymyl oddi ar y sgwrs hon, y rheswm y cŵn bach yn cael hyd yw dim ond i dorri'r iâ am eiliad. Ac yn anffodus, maen nhw i gyd yn cysgu, ond yr hyn oedd i fod i ddigwydd yma Roedd pawb oedd i fod i parchedig ofn a math o ymlacio ar ôl y sgwrs trwm iawn. Ond mae'n debyg wyf yn rhoi y cŵn bach i gysgu. Ond os byddwch yn mynd i CS50 yn cŵn bach Gwefan slaes, gallwch wylio nhw drwy'r dydd hir. Yn enwedig efallai 02:00, neu 03:00, neu 04:00 yn y nos i weld rhyddhad straen bach yno. Felly mae hynny'n slaes cŵn bach. Iawn. Nad oedd hynny'n hwyl? IAWN. Felly, yn ôl i ryw cyfrifiadur gwyddoniaeth, os caf. Felly, dwyn i gof bod tro diwethaf i ni ddechrau edrych nid yn unig yn y prif, a oedd yn Roedd y swyddogaeth ddiofyn, mae'r pryd baner werdd glicio cyfatebol, ond rydym hefyd wedi dechrau yn fyr ysgrifennu rhai o'n swyddogaethau eu hunain. Ac hyd yma nid oes yr un o'r swyddogaethau hyn wedi bod yn arbennig fawr neu swmpus. Byddwch yn cael i mewn y rhai mwy o faint swyddogaethau yn ôl pob tebyg, P gosod 2, P gosod 3, yn bendant P gosod 4 ac ymlaen. Ar hyn o bryd y rhan fwyaf o'ch rhaglenni, os nad pob un ohonynt, yn sicr ar gyfer P Gellir set 1 yn cael ei wneud yn gyfan gwbl yn y brif. Os yw eich rhaglen yn unig bum llinell, 10 llinell, hyd yn oed 20 llinell o hyd, yn berffaith rhesymol i ysgrifennu iddo i gyd yn brif ac i beidio â gor gymhlethu eich cod, ond yr hyn rydym yn ei wneud heddiw ac ymlaen yn ceisio hefyd cyflwyno rhai technegau dylunio da fel eu bod fel eich cod yn cael mwy cymhleth ac wrth i'r problemau rydych am ei ddatrys gael galetach ac yn fwy diddorol sydd gennych, rhyw fath o, yr offer yn eich blwch offer gyda lle i ddylunio atebion da i'r rheini. Felly, gadewch i ni edrych yn sydyn yn ôl ar rhaglen hon o fy wythnos diwethaf, a oedd yn Roedd swyddogaethau sero dot C. A sylwi bod, yn syml, mae'n edrych fel hyn gyda dau swyddogaethau, prif ac enw'r print. Ac yn meddwl yn ôl neu efallai peirianneg cefn heddiw, beth oedd y cymhelliant ar gyfer cyflwyno swyddogaeth yn unol 28 o'r enw, Enw'r print? Neu beth oedd hyn yn enghraifft o mewn telerau egwyddor neu tecawê, os fyddech. Mae rhai murmurs. Beth? Yeah Dadelfeniad mor Swyddogaethol yn fath o ffordd ffansi o ddweud, dadelfennu eich rhaglen i'w rhannau cyfansoddol ac yna defnyddio y rhannau hynny i ymgynnull yn ei gyfanrwydd. Felly, mae hynny'n rhy garedig yn unig o lond ceg yn barod, ond efallai mae hyn yn hyd yn oed gwell enghraifft o rywbeth Gelwir tynnu dŵr yn unig. Iawn? Tynnu Dŵr yn mynd i fod yn un o'r themâu cylchol yn CS50 a hefyd gwyddoniaeth gyfrifiadurol yn fwy cyffredinol gan ei fod yn techneg gallwch chi ddatrys ag ef problemau yn fwy effeithiol oherwydd eich bod gallu ysgrifennu atebion mwy reddfol ac mewn ffordd sy'n graddfeydd ac yn ddealladwy gan bobl eraill. Beth ydw i'n ei olygu wrth hynny? Felly, gellir dadlau ei fod yn llawer mwy darllenadwy i edrych ar raglen fel hyn, super fyr er ei bod yn. Pan welwch ar linell 22 fod yna swyddogaeth o'r enw, enw print. Bod enw ei ben ei hun yn dweud yr hyn y mae'n ei wneud. Swyddogaeth honno yn ôl pob golwg yn cymryd mewnbwn rhwng ei cromfachau, ac i bob golwg yn gwneud rhywbeth, yn ôl pob tebyg yn argraffu'r enw. Ac felly, er ein hollol allai gael wneud yr hyn a wnaethom wythnos yn ôl, a oedd yn dim ond yn cymryd y llinell hon gwirioneddol y cod, cael gwared o hyn, a chael gwared ar hyn i gyd gyda'i gilydd, rydym yn fath o dynnu i ffwrdd y syniad o argraffu enw. Nid wyf yn poeni os ydych yn defnyddio print def. Nid wyf yn poeni os oes gennych y cant S a slaes N. rhain mae manylion hynod arcane. Yr hyn yr wyf yn poeni am fel rhaglennydd yn argraffu enw. Ac felly, pa well ffordd o wneud hynny nag drwy ffonio swyddogaeth, enw argraffu? Ac felly, dyna oedd un o'r cymhellion ar gyfer gwneud rhywbeth fel hyn. Gwneud y cod yn fwy darllenadwy, yn fwy y gellir eu hailddefnyddio, ac mae hefyd yn hunan disgrifiadol. Yn awr, gadewch i ni edrych yn enghraifft arall, sef swyddogaethau un, oedd gennym dros yma. Felly, mae hyn mae un yn efallai hyd yn oed yn fwy cymhellol oherwydd, yn yr achos hwn, Dydw i ddim eisiau i ddim ond cael int. Rwyf am gael int cadarnhaol. Ac mae'n troi allan i gael cadarnhaol int rhaid i chi wneud bagad o legwork. Iawn? Nid yw'n un llinell syml yn galw fel enw print oedd, sydd yn rhaid cyfaddef llai grymus. I gael int cadarnhaol, logically-- gadewch i mi sgrolio yn ôl i lawr i guddio hyn. Beth sy'n rhaid i chi ei wneud? Fel yr holl offer yr ydym yn cael ar hyn o bryd yn cael eu pethau fel print def o Safon Llyfrgell a hefyd o lyfrgell CS50 yr ydym wedi Get Int, a Get arnawf, Get Hir Long, Get Llinynnol, ond yr unig un, germane, ar hyn o bryd yw Get Int. Felly, os mai'r unig arf sydd gennych yn eich blwch offer yn Get Int, sut rydym yn mynd ati i weithredu hi i gael int cadarnhaol? GYNULLEIDFA: Creu log a gwirio ynghylch a yw'r mewnbwn a roesant yn gadarnhaol neu beidio. SIARADWR 1: Perffaith. Yn union. Offeryn arall sydd gennym yn ein blwch offer o wythnos neu ddwy yn ôl dim ond y lluniad dolennu. Ac felly, ie, os ydym yn defnyddio tra dolen, neu do tra dolen, neu blaen dolen gallem yn ôl pob tebyg gael i ffwrdd gydag unrhyw un o'r rhai ar ryw ffurf. Gallwn weithredu y syniad o get int cadarnhaol at jyst yn defnyddio Get Int, ac yna dim ond yn cadw ei alw'n eto a chadw aflonyddu defnyddiwr hyd nes y bydd ef neu hi mewn gwirionedd rhoi i ni yr hyn yr ydym ei eisiau. Ac felly yn awr, mae hyn yn tynnu dŵr o'r broses o gael int cadarnhaol i mewn i swyddogaeth o'r enw Get Cadarnhaol Int ychydig yn fwy cymhellol oherwydd edrych ar hyn. Mae'r rhain yn debyg 10 a mwy llinellau o god sy'n yn cymryd rhan mewn cael int cadarnhaol, ac nid wyf yn wir yn poeni sut yr ydych yn ei wneud. Y cyfan yr wyf yn gofalu yw eich bod gallu ei wneud, ac felly yr wyf i wedi cuddio holl fanylion hyn y tu ôl i swyddogaeth o'r enw Get Cadarnhaol int hynny, yn wir, mae gan do hwn tra ddolen. A gweld yr wythnos diwethaf ar gyfer y gystrawen yno, ond 'i jyst yn datgan N, ac mae'n printiau allan y cyfarwyddyd i'r defnyddiwr. Mae'n galw Get Int ac yna mae'n gwirio cyflwr hwn eto, ac unwaith eto, ac eto nes bod y defnyddiwr yn cydweithio. Felly nawr, mae ychydig o gwiriadau callineb. Ar gyfer y rhai cyfarwydd o bosibl gyda rhywfaint o raglennu, pam mae N ddatgan, pam ydw i'n creu N tu allan i'r do tra ddolen? Pam ei fod ar linell 29 ac nid ymlaen fel 33, er enghraifft. GYNULLEIDFA: Oherwydd pan fyddwch yn yn datgan ei fod y tu allan, mae'n fath o fwy, y scope-- mwy o faint SIARADWR 1: Da. GYNULLEIDFA: --and os byddwch yn datgan y tu mewn i'r ddolen, [Anghlywadwy] gan nad yw'n gwybod am y peth. SIARADWR 1: Yn union. Os gallaf simplify-- ei fod yn fater o gwmpas. A chwmpas yn cyfeirio at y cyd-destun y mae newidyn bodoli neu sydd ar ddefnyddiadwy. A'r rheol neis o bawd yma yw bod Yn gyffredinol, pan fyddwch yn datgan neu greu newidyn gallwch ond ei ddefnyddio y tu mewn o'r agosaf gofleidio braces cyrliog. Felly beth mae hynny'n ei olygu? Os byddaf, yn lle hynny, dadwneud hyn ac yn mynd â rhywbeth sy'n teimlo ychydig yn symlach. Iawn? Llinell 32 yn unig yn edrych yn lanach i mi nawr. Rwy'n gwneud y ddau beth ar unwaith ac yna aseinio y llaw dde ar y llaw chwith. Y broblem ar sail nawr diffiniad hwnnw o gwmpas yw y gellir N yn cael ei ddefnyddio yn y llinellau 31 a 32 tu mewn dolen hwn, ond lle trwy ddiffiniad sy'n gellir peidio ei ddefnyddio? Yn unol beth? Yeah. GYNULLEIDFA: 35. SIARADWR 1: 35. Yn bendant nid yw 35. A hefyd ble arall? GYNULLEIDFA: 34. SIARADWR 1: Hyd yn oed 34 yw broblematig oherwydd ei fod yn y tu allan i'r braces cyrliog. Ac felly yn wir, gadewch i ni weld beth sy'n digwydd. Iawn? Gallai hyn ymddangos ychydig 'n athrylithgar nid neu a allai, ond gadewch i ni weld beth y compiler i'w ddweud pan rydym yn mynd i mewn i cyfeiriadur ffynhonnell heddiw. Gwnewch swyddogaeth un. Oh, fy dduw. Wel, yr wyf wedi gorffen yn olaf hynny, gyda llaw. Iawn. A beth yw'r broblem yma? Arcane iawn i edrych ar. Ond dyma beth rwy'n typed-- yn gwneud swyddogaeth un. Dyma beth gwneud ysgogwyd, sydd mewn gwirionedd gan ddefnyddio'r chlang compiler gyda rhai o'r baneri rhai y byddwn yn gweld eto cyn hir. Ac eto, bob amser yn edrych yn y camgymeriad cyntaf, oherwydd efallai y bydd yn cael raeadru Effaith diystyr ar linellau eraill. Felly, beth mae hyn yn ei olygu yw bod y broblem yw mewn 1.c. swyddogaeth Mae ar linell 32. Ac mae'n ar golofn, neu gymeriad, 13. Felly, pan fydd eich golygydd testun y gall eich helpu i nodi ble mae'r mater yn. Felly, os wyf yn sgrolio i fyny, beth yw llinell 32? Dyna wir yr un yma sy'n amlygwyd eisoes n amrywiol iawn Yma-- heb ei ddefnyddio. Ond nid yw'n heb ei ddefnyddio. Im 'yn ei ddefnyddio. Ond mae'r compiler yn ddryslyd, oherwydd bod mae'n bodoli yn unig y tu mewn o gwmpas yma. Ac felly ni allaf ei ddefnyddio yma. Nid wyf yn gallu ei ddefnyddio yma. A'r casglwr, felly, ddim yn poeni hyd yn oed fy mod i'n ceisio. Mae'n ymddangos i fod heb eu defnyddio o fewn ei gwmpas gwirioneddol. Felly, gallwn ehangu cwmpas drwy wneud yn union beth yr ydym yn dechrau with-- int n. A hyd yn oed er nad yw'n gwneud edrych mor gain, efallai, ac rydym yn cymryd linell ychwanegol yma, awron 'i' o fewn y cwmpas ym mhob man. Felly gadewch i ni roi cynnig arall arni. Felly gwnewch yn swyddogaeth un. Nice. Ac yn awr os wyf os byddaf yn rhedeg swyddogaeth un, gadewch i ni roi negyddol 10, negyddol 1, 0, 1, ac mae'n wir yn gweithio. Felly mae yna ateb arall yma. Ti'n gwybod beth? Beth os Fi 'n sylweddol wyf yn reslo gyda hyn? Nid wyf yn gwybod ble mae'r n yn fod i fynd. Ti'n gwybod beth? Im 'jyst yn mynd i roi i gyd y ffordd ar frig fy ffeil yma. Beth fyddai hyn yn ei wneud, yn eich barn chi? Yeah? GYNULLEIDFA: [Anghlywadwy]. SIARADWR 1: Yeah. Felly yr wyf wedi ei gwneud yn fyd-eang, fel petai. Os oes gennych newidyn sy'n tu allan eich holl swyddogaethau sy'n cael ei ganiatáu, a dylai'r cod lunio, ac n yn awr ar gael, nid yn unig yn get int cadarnhaol, ond hefyd mewn main-- sy'n ychydig yn worrisome oherwydd mae eisoes yn n yn y prif, felly mae mwy ar hynny mewn dim ond moment-- ond byddai hyn yn cael ei ystyried dylunio gwael. Iawn. Os oes rhaid i chi droi at rhywbeth fel, o, 'n annhymerus' jyst roi i fyny yma oherwydd mae'r cod yn ymddangos i lunio yn gyffredinol nid yw'r arfer gorau. Yn hytrach ydych am ddewis cwmpas culaf posibl ar gyfer eich newidynnau, a fyddai'n golygu mynd â'n cynllun gwreiddiol, a oedd yn yn iawn yma. Nawr fel o'r neilltu, os oedd gennych yn union-enwi amrywiol yma, byddai'r ffordd c trin this-- er na fydd hyn yn digwydd yn rhy often-- yw bod hyn yn dal i fod yn berffaith iawn yn fan hyn. Ond y diffiniad hwn o n yn unol Bydd 22 gysgodi'r un byd-eang. Felly, bydd hyn yn un yn gweithio o fewn prif, ac mae'r un byd-eang Bydd mewn gwirionedd yn berthnasol pan fyddwch chi yn cael bositif int Ond yn fwy ar hynny amser arall, ond dim ond ar gyfer y rhai chwilfrydig. Felly, yn fyr, rydym yn atgyweiria hon fan hyn. Nawr, gadewch i ni tynnu ar wahân dau ddarn arall cyn i ni edrych ar un llinell olaf o god yn y rhaglen hon. Cael int cadarnhaol. Ar yr ochr chwith ei air yw'r gair int. Beth mae bod yn arwyddo yn eich barn chi? Hyd yn hyn rydym wedi gweld yn ddi-rym yn bennaf. Yeah? GYNULLEIDFA: Mae'n y math o newidyn sy'n ydych yn gofyn am. SIARADWR 1: Yeah Mae'n y math o, gadewch i mi Nid yw dweud amrywiol, ond y math o werth fy mod yn gofyn yn ôl ar gyfer. Ac yn wir, dyna 'n athrylithgar yma, gobeithio. Iawn? Os ydych chi am gael int cadarnhaol, beth ydyw chi am i'r function-- fel ein gwirfoddolwyr o wythnos ddiwethaf wrth law i chi yn ôl darn o bapur gyda int arno? Ac felly rydym wedi nodi bod y hyn a elwir yn y math dychwelyd y swyddogaeth hon yn cael int cadarnhaol. Pe na baem yn eisiau iddo dychwelyd unrhyw beth, yr ydych yn dweud yn ddi-rym. Os ydych am iddo ddychwelyd llinyn, yr ydych yn dweud llinyn. Os ydych am iddo ddychwelyd fflôt, yr ydych yn dweud arnofio. Ond yr unig un sy'n berthnasol yma rhesymegol, oherwydd fy mod i'n defnyddio int get, hyd yn oed er fy mod i'n cyfyngu i gwerthoedd cadarnhaol, yn dychwelyd yn int. Felly gwrthwyneb, beth mae'n ei olygu fod yna gwagle mewn cromfachau? Beth mae'r cromfachau ddiffinio yn gyffredinol? Yeah? GYNULLEIDFA: Mae'n golygu y swyddogaeth yn Nid yw mewn gwirionedd yn ei gael. SIARADWR 1: Mae'n golygu y swyddogaeth yn Nid yw mewn gwirionedd yn cael yr hyn? GYNULLEIDFA: Mae mewnbwn. SIARADWR 1: mewnbwn, o gwbl. Felly yn wir, os parenthesis dyma eich bod yn nodi ddi-rym, mai dim ond yn golygu nad wyf am unrhyw fewnbwn. 'N annhymerus' yn delio â'r broblem fy hun. Ac yn wir, nid oes rhaid i chi dywedwch cael unrhyw beth int cadarnhaol. Rydych yn unig yn dweud, yn cael int cadarnhaol, a bod Bydd swyddogaeth yn mynd i ffwrdd ac yn gwneud ei beth. Ond mae wedi bod ychydig tric rwyf wedi bod yn chwarae yma y tro hwn cyfan i wneud yn siŵr y cod hwn yn llunio. Sylwch fod int-- cael bositif void-- int ar linell 27. Ond am ryw reswm sy'n ymddangos yn rhyfedd mae hefyd yn fan hyn i fyny ar-lein 16. A dim ond ar gyfer mesur da byddaf yn ailadrodd mae hyn felly mae'n berffaith union yr un fath. Ac yr wyf wedi dweud prototeip gyda ychydig o sylw un-lein. Beth fydd yn digwydd os byddaf yn dileu hynny, a Erbyn hyn ailgynnal gwneud swyddogaeth 1, fynd i mewn. Wps. Arhoswch funud. Ble mae fy tab? Huh? Standby. Gwneud ffwythiant 1. Dyna ni. IAWN. Pe heb eu cadw yn iawn. Felly, yr wyf yn meddwl bod yna ychydig bug yma os nad ydw i'n gweld enw'r tab ar hyn o bryd. Felly, yr hyn sy'n digwydd yma? Datganiad ymhlyg o swyddogaeth cael int cadarnhaol yn annilys yn C99. Felly ddryslyd eto. Felly beth yn arwydd hwn o? Wel, mae'n ymddangos fod C yn eithaf dwp. Wel, 'i' y rhaglennu iaith, neu yn hytrach y compiler yn. Dim ond yn gwybod beth sydd gennych nysgu ynddi, a dim ond mynd i wybod rhywbeth os byddwch yn eu dysgu o'r blaen. Mewn geiriau eraill, yn prif ar hyn o bryd, rwy'n ceisio i alw swyddogaeth Gelwir cael int cadarnhaol. Ond nid yw'r compiler yn mynd i hysbysiad bod yn cael int cadarnhaol yn bodoli tan llinell 26. Ac felly yr hyn y mae'r compiler yn ei wneud yn unig camgymeriadau cyn gynted ag y mae'n mynd i linell 17, gan ddweud datganiad ymhlyg o gael int cadarnhaol, sy'n yn unig yw ffordd ffansi o ddweud, nid wyf yn ei wneud gwybod beth cael int cadarnhaol eto. Ieithoedd eraill fel Java a Gallai Python a Ruby edrych ymlaen. Nid yw C yn ei wneud. Ac felly y ffordd yr ydym atgyweiria mae hwn yn un o ddwy ffordd. Naill ai un, os yw'r broblem yw bod cael Nid yw int cadarnhaol wedi'i weld o'r blaen, yn dda, gadewch i mi dim ond symud cyrraedd y brig. Byddai hynny'n atgyweiria hon broblem. Ond yn gyffredinol, mae'n techneg gwell hystyried i roi eich prif swyddogaeth ar yr union top fel bod dynol yn darllen eich cod yn gwybod yr hyn y mae'r rhaglen yn ei wneud, oherwydd nad yw prif ei gladdu gyd y ffordd ar y gwaelod neu yn y canol. Mae'n ar y brig. Felly nid yw hynny'n teimlo'n ddelfrydol. A gallwch ei gael mewn gwirionedd i mewn i sefyllfaoedd lle os alwadau un swyddogaeth un arall, sy'n galw un arall, gallwch gael i fater lle nad Gall fynd uwchben y llall, yn rhesymegol. Nid dim ond yn bosibl. Ac felly y ffordd i'r gwaith o amgylch hyn yw dim ond yn cymryd Llofnod y swyddogaeth, felly i speak-- y llinell gyntaf pan ei fod yn declared-- a dim ond copïo, gludo yn y top, ond nid gyda'r braces-- cyrliog dim ond gyda hanner colon. Mae fel ychydig awgrym o'r hyn sydd i ddod. Ac yn wir, i gyd amser hwn pan fyddwn yn wedi gweld pethau fel io.h safonol a cs50.h, yn yr un modd, mewn rhai dot f ffeiliau a oes prototeipiau eraill. A byddwn yn gweld bod cyn bo hir. Felly, yn fyr, pan fydd gennych raglen mewn ffeil gyda swyddogaethau lluosog heblaw prif, chi bron bob amser yn awyddus i ddatgan eu dim ond drwy gyfrwng eu cyntaf llinell, wedi'i ddilyn gan hanner colon, ar frig y ffeil. Dyna oedd llawer i gyd ar unwaith. Unrhyw gwestiynau? Unrhyw gwestiynau? Iawn. Felly gadewch i ni symud ymlaen wedyn i rywbeth fel peswch. Oh. Pa mor addas. Iawn. Peswch. Felly dyma yn c gweithredu rhaglen gwnaethom y diwrnod o'r blaen yn Scratch bod yn syml iawn yn unig Dywed peswch, peswch, peswch. Iawn. A rhywun dywedodd ychydig diwrnod yn ôl fod yna ffordd o lanhau cod hwn i fyny yn barod. Iawn? Cyn gynted ag y byddwch yn copïo a gludo dylunio yn ôl pob tebyg drwg. O leiaf unwaith y byddwn yn cyrraedd pedwar neu bump neu 20 peswch, mae'n teimlo arfer gwael. Rydym yn unig yn cadw copi, gludo. Beth yw'r ateb amlwg i lanhau rhaglen hon fyny? GYNULLEIDFA: Dolen. SIARADWR 1: Yeah. Felly defnyddiwch ddolen. A gallwn ddefnyddio er-dolen, beth amser dolen, unrhyw nifer o ddulliau. Ac yn wir, dyna beth rydym yn ei wneud yn y fersiwn un yma. Rwyf yn lle hynny wedi hailysgrifennu ei mewn fersiwn un o cough.c i fod yn peswch chyfiawn o fewn er-ddolen. Mae pob hawl, ond mae 'na cyfle yn awr i fath o gychwyn i ddylunio hyn ychydig yn fwy fel y wers yr ydym yn eu dysgu eiliad yn ôl, sef this-- debyg fy mod eisiau i greu swyddogaeth o'r enw peswch, gadewch i ni ystyried am ychydig funudau'n beth mae'n mynd i edrych fel. Felly, os ydw i eisiau rhywbeth i peswch, Fi jyst angen i ddefnyddio print f tu mewn i'r swyddogaeth. Ac yn wir yr wyf. Ac yn y ffaith hon, i gyd amser, unrhyw adeg rydych yn argraffu rhywbeth i y sgrin, yn rhaglennydd Byddai galw bod sgîl-effaith. Nid wedi fy drosglwyddo yn ôl rhywun gwerth. Mae wedi fy cymryd rhai camau a allai fod yn weledol amlwg. Ond mae hyn peswch swyddogaeth, a yw'n dychwelyd yn seiliedig ar ei llinell gyntaf unrhyw beth? Na, oherwydd o'i fath yn dychwelyd yn ddi-rym, a oedd yn unig yn golygu nid yw'n trosglwyddo unrhyw beth i mi yn ôl. Gallai fod yn gwneud rhywbeth ar eu golwg, ond nid yw'n trosglwyddo i mi yn ôl ddarn o bapur fel wythnos diwethaf. Oes angen unrhyw fewnbwn? Na Ac felly mae'n ddi-rym yma hefyd. Felly, mae hyn hefyd yn fath o -lunio dros y broblem hon. Iawn? Rwyf wedi gwneud y rhaglen yn fwy cymhleth, yn fwy o cod llinellau, Nid wyf wedi ei gwneud yn unrhyw fwy ymarferol, ond mae hyn fyddai yn gam, efallai, ar gyfer ehangach cyd-destun gyda chod mwy cymhleth. Ond beth am hyn? Beth ydw i done-- jyst glancing ar hyn heb edrych ar y sylw ar frig y file-- hyn sydd gan Yr wyf yn gwneud hyn yn sylfaenol yma gyda fy peswch gweithredu sy'n wahanol? Yeah, yn ôl? GYNULLEIDFA: Ei gwneud yn fel y gallwch fod â chymeriad droi i ffwrdd. SIARADWR 1: Yeah. Felly, mae hyn yn teimlo rhyw fath o 'n glws. Iawn? Mae fel ychwanegu nodwedd at eich rhaglen neu eich swyddogaeth, yn yr achos hwn. Mae'n dal i yn dychwelyd dim. Gallai fod yn cael sgîl-effaith weledol, oherwydd ei fod yn galw print f. Ond yn awr yr wyf wedi parametrized y swyddogaeth, a oedd yn golygu Rwyf wedi penodedig a gyflawnir mewnbwn math int a galw yn n, ond gallwn i alw unrhyw beth yr wyf eisiau. Yn wir, gallai fod yn unig fod weithiau i fod hyd yn oed yn fwy eglur. Ac yna gallwn i jyst newid hyn yma. Ond y pwynt yw bod hyn yn sut yr wyf yn creu swyddogaeth sy'n cymryd mewnbwn. Ac os ydych yn cofio flipping trwy-lein efallai mewn un y daith-throughs, mae'r bedwerydd ac enghraifft peswch terfynol, byddwch yn sylwi yma rwyf wedi cyffredinol fy cod fath further-- o dynnir ymhellach. Fel peswch a tisian, mae'r ddau yn am fel dweud rhywbeth neu wneud rhyw fath o sain. Byddai Save yn y cyfatebol bloc Scratch. Ac felly yr hyn a wnaeth i mi yn y fersiwn hwn, sydd o fewn ein gallu dim ond cipolwg ar, yw peswch yn unig fel dweud, [Peswch], peswch, ac yn y cyfamser, tisian yn fel dweud, [ACHOO]. Ac felly dwi wedi cyffredinol y gwaith o hynny ar waith erbyn hyn gweithredu swyddogaeth generig hwn, dweud, sydd yn ddiddorol ar gyfer dibenion heddiw dim ond am ei fod yn dal i Nid oes gan math dychwelyd. Ond faint o mewnbynnau sydd ganddo? GYNULLEIDFA: Two. SIARADWR 1: Two. Ac felly os ydych chi am cymryd mewn dwy ddadl, dim ond eu gwahanu gyda choma. Ac os ydych chi am hynny ffoniwch y swyddogaeth honno, yn sylwi eich bod newydd ffoniwch dweud, dyfynnwch, unquote, am y ddadl gyntaf, sy'n gyffredin n, ar gyfer yr ail ddadl. Felly unwaith eto, rydym yn unig yn awr y blociau adeiladu fel y gallwn mewn gwirionedd gweithredu rhai o'n swyddogaethau eu hunain. Iawn. Unrhyw gwestiynau am y rhain? Felly nawr gadewch i ni croen yn ôl haen os felly. A'r nod, yn y pen draw, yw problem gosod yr wythnos nesaf yn mynd i fod ar cryptogrophy-- y grefft o sgrialu gwybodaeth. Ac yn benodol, y wybodaeth Bydd yn rhaid i chi amgryptio neu dadgryptio yn mynd i fod testun. Ac felly y math hwnnw o gwahoddiadau y cwestiwn heddiw fel yn dda, beth sy'n mynd ymlaen o dan y cwfl gyda thestun y tu hwnt i ASCII o wythnos sero, a sut y gallwn mewn gwirionedd dechrau i drin hyn? Felly dyma yw enw Zamyla yn. Ac yn y testun, a allai fod yn cael ei fewnbynnu i mewn fel y swyddogaeth llinyn get. Ac yn dechrau nawr, pan fyddwch yn gweld llinyn fel this-- Z-A-M-Y-L-A-- ddechrau meddwl am y peth fel pe mhob o gymeriadau rhai mewn bocs o'i eu hunain. Ac yn wir, mewn wythnos neu ddwy yn amser, pob un o'r blychau hyn yn mynd i gynrychioli benodol iawn bloc o memory-- damaid o gof. Felly pob un o'r llythyrau hyn, yn y pen draw, bydd yn cynrychioli 8 did. A byddwn yn mewn gwirionedd yn gweld beth sy'n mynd ar o dan y cwfl yn fy chyfrifiadur. Ond am nad yw'n suffices dim ond i edrych ar Zamyla drwy'r lens hwn, lle pob un y llythyrau hyn yn ei flwch ei hun. Ac yn ddigon 'n glws yn C y gallwn gael gafael ar bob un o'r blychau hyn yn uniongyrchol. Felly, os ydych am gael y cyntaf llythyr ei henw, super hawdd yn C. Os ydych chi am gael y diwethaf llythyr, super hawdd yn ogystal gyda darn o gystrawen newydd. Felly dw i'n mynd i fynd yn ei flaen i mewn i CS50 IDE ac yn agor i fyny 'r llinyn sero dot C. Ac yn yr enghraifft hon yma, mae yna un neu ddau o bethau newydd yn digwydd. Felly yn gyntaf yn llinell 19, rydym wedi gweld y llinyn get before--. Felly, yn union fel gwiriad bwyll cyflym, pe gallai rhywun gynnig hyd lafar esboniad lleygwr o beth sy'n mynd ymlaen yn unol 19. Fel dim ond drosi hyn yn Saesneg nad yw roommate yn CS50 Gallai deall. Yeah. GYNULLEIDFA: A yw'r defnyddiwr mewnbynnu llinyn ac yn ei storio mewn s amrywiol. SIARADWR 1: Da. Cael y mewnbwn defnyddwyr llinyn ac yn ei storio mewn s amrywiol. Mae hynny'n wych. Felly, ar y dde ochr, rydym yn galw llinyn get. Mae hynny'n dychwelyd gwerth nad oedd yn cael ei neilltuo o ochr dde i'r chwith-law ochr i mewn i enw s newidyn sy'n cynllunio i storio llinyn. Yn union. Felly nawr llinell 22, fesul y sylw yn unol 21, yn amlwg printiau bod llinyn un cymeriad bob llinell. Ond sut? Felly, yn gyntaf oll, rydym yn ymgychwyn i mi 0. Ac yna sut mae cyrraedd at diwedd enw Zamyla yn? Wel, ar ddiwedd y Enw Zamyla, a gallwn teipiwch llaw yn y cymeriad olaf ei henw rhywsut, neu nifer y peth. Iawn? Os ydym yn mynd yn ôl Yma-- Z-A-M-L-- Y-L-A-- fel y gallwn i deipio i mewn. Beth yw y mynegai o Llythyr olaf Zamyla yn? Os yw hyn yn 0-- siarad fel programmer-- 0, 1, 2, 3, 4, 5, Rwy'n heard-- mor wir, mae'r llythyr olaf yn enw'r Zamyla yw'r chweched, ond os ydym yn cyfrif o 0, mae'n mynd i fod yn rhif 5. Felly cadwch hynny mewn cof yma. Mae'n troi allan mae 'na swyddogaeth mewn C enw strlen, ac yn ôl yn y dydd a hyd heddiw yn dal, llawer o rhaglenwyr dewis i cydamseru enwau ar gyfer eu swyddogaethau sy'n swnio fel geiriau maent yn ceisio ei ddweud. Felly strlen yw hyd llinyn. Ac felly beth fyddai hyd llinyn o S dychwelyd pan Zamyla yw'r mewnbwn? GYNULLEIDFA: Pum. SIARADWR 1: Z-A-M-Y-L. Chwech. Iawn? Beth yw hyd y enw Zamyla yn? Iawn? Ac yn union mewn gwirionedd, chwe llythyr. Iawn? Ac felly beth mae hynny'n ei olygu ar gyfer ein dolen? Rydym yn mynd i fynd o 0 hyd at chwech, a oedd yn yn mynd i roi pum iteriadau ni. Beth ydym yn ei wneud ar bob iteriad? Wel, y cant C, rhywun dyfalu y diwrnod o'r blaen, yn golygu dalfan ar gyfer yr hyn? GYNULLEIDFA: Torgoch. SIARADWR 1: Dim ond torgoch. Felly character-- sengl nad lluosog cymeriadau fel llinyn. Ac yna dyma y llinell newydd ein bod wedi cael argraffu. Ac yna dyma 'r gystrawen newydd. Os ydych eisiau argraffu'r i-fed cymeriad yn y S llinyn, fel petai, gallwch ddweud y enwi y S llinyn, ac yna agor braced sgwâr, ac Yna gau braced sgwâr, gyda fi y canol. Ac mae'n fath o braf yn y mae'n fath o edrych fel sgwâr yn union fel y sgwariau lle Zamyla yn cymeriadau yn bodoli ar y llun yno. Felly os wyf mewn gwirionedd yn rhedeg hyn yn awr, gadewch i ni weld beth sy'n digwydd. Gwneud llinyn 0 dot slaes llinyn 0, ac yna rwy'n mynd i deipio enw Zamyla yn. Does dim brydlon, gan nad wyf yn gwneud defnyddio print f, ond mae hynny'n iawn. Fi jyst yn gwybod beth i wneud. Ac yn wir, mae'n printiau allan Enw Zamyla, yn un i bob llinell. Nawr, gadewch i ni fod ychydig yn di-hid. Tybiwch nad oeddwn yn gwybod am strlen ac yr wyf yn cyfrifedig, i gyd yn iawn, does neb yn mynd i gael enwi yn fwy na 50 fel cymeriadau. Gadewch i ni fynd yn ei flaen ac yn ail-grynhoi hyn ac ailgynnal, ac yna teipiwch Zamyla eto. Yn rhesymegol, beth yw'r Rhaglen mynd i geisio argraffu? Z-A-M-Y-L-A, yna tebyg i 45 beit anhysbys o gof. Ac yn wir, byddwn yn dod yn ôl i'r syniad hwn o gof. Ond dim ond yn rhesymegol, os Enw Zamyla yw hyn o hyd, yn unol â'r darlun yma, yr hyn yr ydym yn ei ddweud yn cadw argraffu, cadw argraffu, cadw argraffu, cadwch argraffu, cadw argraffu, yr holl ffordd i gymeriad 50fed, sy'n pwy a ŵyr beth sy'n mynd i ddigwydd. Felly gadewch i ni mewn gwirionedd yn cymryd golwg. Gadewch i deipio i mewn Zamyla. Diddorol. Rydym yn cael lwcus. Dim ond criw cyfan o ofod gwyn. Oh. Mae un cymeriad ffynci. Mae'n edrych yn fath o fel cwestiwn rhyfedd marcio yno, ond mae enw Zamyla yn. Gadewch i ni gael yn wirioneddol di-hid. Beth am i ni argraffu 500 blociau i mewn i'r anhysbys? Gadewch i ni fynd yn ei flaen ac yn gwneud hyn yn ogystal ac yna ail-redeg. A gadewch i sgrin lawn, oherwydd mae angen inni weld mwy o le. Zamyla. Got lwcus eto. Dare rydym yn cael mwy di-hid? Gadewch i ni gael mwy di-hid. 50,000 o gymeriadau. Mae hyn yn fwyaf sicr nid yn syniad da. Iawn. Gwnewch llinyn 0. Bydd hyn yn ein demo diwethaf. Zamyla. Ych. Ych. IAWN. Felly fy nghof yn wirioneddol wag ar hyn o bryd, sydd mewn gwirionedd fath o gyfleus. Yr hyn yr wyf i'n ceisio cael canlynol-- pob hawl. Ac yn awr Im 'jyst yn mynd i gael di-hid. 500,000. Make-- gadewch i llawn-sgrîn iddo. Enter. Zamyla. Dyna ni. Does gen i ddim syniad beth sy'n yw, ond mae'n swnio'n ddrwg. Iawn. Ac yn wir, yn fuan, os ydych ymysg yr ychydig ffodus oriau swyddfa ac yn broblem sefydlu un, yr ydych Efallai yn dda iawn yn dod ar draws hyn. Fai segmentiad yn ei wneud ag ystyr diffinio'n dda. Mae'n golygu rhyw fath o gamgymeriad sy'n ymwneud â segment o gof. Ac mewn termau lleyg, mae'n golygu ein bod yn cyffwrdd memory-- rydym yn defnyddio RAM yn fy chyfrifiadur na ddylai wyf wedi cael gafael ar. A dyna beth y ddau bwerus ac mae hefyd yn beryglus am C yw bod chi mewn gwirionedd yn cael mynediad dilyffethair i gyfanrwydd y cof eich rhaglen neu bytes neu RAM, yn fwy penodol. Felly, er bod enw Zamyla yn Dim ond chwech nod o hyd, Rwy'n dal i fynd i unrhyw le mewn cof rwyf eisiau. Ac wrth fynd heibio, os ydych chi wedi erioed wedi darllen rhywfaint o erthygl dros y blynyddoedd am rai gweinydd neu ryw raglen cael cracio neu hacio dyna manteisio ar rywbeth Gelwir gorlif byffer manteisio ein bod yn chi helpu mewn gwirionedd siarad am mewn ychydig wythnosau, dyna gan gyfeirio yn gyffredinol i twyllo'r rywsut cyfrifiadur i mewn i mynd yn dda tu hwnt i ffiniau cof y dylai gael, a dod o hyd i rywbeth llawn sudd yn hynny o memory-- cyfrinair, efallai, yn ffordd o circumventing rhywfaint rhif cyfresol gwirio, neu dim ond yn gyffredinol yn gallu twyllo y cyfrifiadur yn gweithredu cod nas fwriadwyd. Ond gadewch i ni ddod yn ôl i'r realiti i ychydig funudau'n lle mae rhaglen hon oedd gweithredu gydag strlen, a chyflwyno un peth yma. Beth sy'n newydd ymhlith y rhain tair llinell uchaf? Felly dot llinyn h. Mae'n troi allan mae yna llyfrgell hon a elwir yn Llinynnol Dot H, neu Lyfrgell Llinynnol, y mae ei ffeil flaen, fel petai, yn dot llinyn h sy'n rhoi i mi mynediad at swyddogaeth strlen hwn. Os byddaf yn hepgor hynny, mae'r compiler yn mynd i gweiddi arna i ar ryw ffurf. Ond eich bod yn gwybod beth? Nawr, gadewch i ni fynd yn wirioneddol cynnil. Yn unol 22, mae rhywbeth caredig o inefficient-- cynllunio'n wael, arguably-- am y llinell hon o god. Meddyliwch yn ôl i sut er-dolen yn cael eu rhoi ar waith a pha gamau yn digwydd eto ac eto ac again-- y initialization, cyflwr, mae'r cod sy'n yn cael ei gyflawni, yna bydd y gynyddran neu'r newid, yna bydd y cyflwr, yna bydd y cod, yna bydd y newid, yna cyflwr, yna bydd y cod, yna bydd y newid, ac yn y blaen. Felly yr hyn a allai fod ychydig yn worrisome neu ei wneud yn wael yma? Yeah, mewn glas. GYNULLEIDFA: Strlen yw a elwir yn llawer, lawer gwaith. SIARADWR 1: Yeah. Felly strlen cael ei alw'n nifer o weithiau, ond yr hyn sy'n hyd y enw Zamyla yn y tro cyntaf y ddolen executes? GYNULLEIDFA: Chwech. SIARADWR 1: Chwech. Wel, beth yw hyd ei henw yr ail dro y cod executes? GYNULLEIDFA: Chwech. SIARADWR 1: pob hawl. Mae'n dal i fod chwech. Iawn? Nid yw enw Zarla Mae gan newid, hyd yn oed os ydw i'n edrych yn rhan yn unig o'r llythyrau yn ei henw. Ac felly mae'r ffaith fy mod yn effeithiol gofyn y cwestiwn hwn, beth sydd hyd Zamyla, beth yw'r hyd o Zamyla, beth yw'r hyd Zamyla, chwe gwaith ar wahân, neu saith hyd yn oed, yn unig dwp, oherwydd dyna digyfnewid yr ateb hwnnw. Ac felly yr hyn y gallwn mewn gwirionedd wneud yw this-- mewn llinyn un Mae gen i fersiwn ychydig yn well yma. There-- llinyn whoops-- dau gen i fersiwn ychydig yn well wherein I ei wneud this-- hytrach na dim ond ymgychwyn ff i 0, yr wyf hefyd gyda choma ddatgan ail newidyn enw Nid n-- oes rhaid i mi ddweud int eto. Nid wyf ddylai, mewn gwirionedd. Ond yr wyf yn dweud n. Ac yna yr wyf ymgychwyn n â y strlen o n, fel bod bellach faint o weithiau mae strlen cael eu gweithredu i gyd? Dim ond unwaith. Ac felly dyma beth yr ydym yn ei olygu gynharach am ddyluniad gwell. A dweud y gwir unwaith y bydd eich cod yn gywir, mynd yn ôl a meddwl drwy, wyf yn defnyddio cyn lleied cof neu fel ychydig eiliadau neu milieiliadau o amser cyfrifiadur fel modd gweithredu rhai broblem? Ac yr wyf i'n mynd i sgrolio i fyny a dim ond sôn am fod yna sôn hwn o'r null yn y fersiwn hwn, ond byddwn yn dod yn ôl at hynny cyn bo hir. Oherwydd am y tro, gadewch i ni edrych ar ble mae hyn yn mynd i arwain ni. Felly un, mae'n ymddangos fod nawr bod gennym y gallu i edrych ar gymeriadau unigol, gallwn trosoledd rhywbeth o wythnos 0 a oedd yn ddirgel iawn ac math o anniddorol ar y pryd. Ond yn awr, ac yn enwedig pan fyddwn yn dod i cryptograffiaeth mewn wythnos, mae'n mynd i fod yn eithaf pwerus. Mae'n ymddangos bod gyda rhai ints a fflotiau data types-- a chars a llinynnau a eraill things-- rai ohonynt Gellir eu trosi yn hawdd iawn i un arall. Er enghraifft, pan fyddwn yn siarad am ASCII beth amser ago-- dyma y priflythrennau A trwy M, dot, dot, dot-- dywedasom fod yna mapio rhwng llythrennau a rhifau hyn. Ac yn wir, mae'n dal yn wir ar gyfer llythrennau bach hefyd. Llythrennau bach a yw 97, cyfalaf yw 65. Ac mae 'na nifer o ASCII, sef mapiau hyn yn unig system ar gyfer pob un o'r llythyrau eraill hynny. Felly beth mae hynny'n ei olygu? Wel, dw i'n mynd i fynd yn ei flaen ac yn agored i fyny go iawn yn gyflym rhywbeth o'r enw ASCII 0, y rhan fwyaf ohonynt yw sylwadau. Ac eto ar-lein y gallwch bob amser cipolwg trwy'r sylwadau. Ac edrych beth mae hyn yn mynd i'w wneud. Felly 'i' got prif swyddogaeth. Rydw i wedi hard-coded y rhifau yn unig ar gyfer yn awr, gan fy mod yn gwybod beth rwy'n ei wneud. Yr wyf yn gwybod yr hyn yr wyf am ei weld yma. Ac yr wyf wedi initialized wyf i 65. A dwi'n gyfrif i fyny trwy 26 lythyrau cyfanswm. A beth ydw i'n mynd i argraffu un llinell ar y tro os gallwch ddehongli hyn yn tynnu sylw at y llinell? Hyn sy'n cael ei argraffu? Yeah. GYNULLEIDFA: A ydych yn mynd i argraffu'r llythyr a cyfateb i'r map y Gwerth llythyr a gwerth cyfanrif? SIARADWR 1: Yn union. Rydw i'n mynd i argraffu'r llythyr sy'n cyfateb i'r gwerth cyfanrif, ac i'r gwrthwyneb, fel a ganlyn. Wel mae hyn, dywedodd rhywun yn gynharach, yn unig yw dalfan ar gyfer torgoch. Mae'n dal i fod. Mae hyn, wrth gwrs, yn placeholder am nad yw int-- llinell newydd. Ac yn awr yn sylwi, fy ngwerth cyntaf Im 'yn plygio i mewn ar gyfer y placeholder yn nid dim ond I. i ddim yn dweud, mewn cromfachau, cols I, y mae'r torgoch parenthetical yn dweud wrth y compiler, yn trin yr wyf yn nid fel beth ydyw, sydd yn nifer. Ei drin fel gymeriad go iawn. Er bod yr ail gwerth Im 'yn plygio in-- Dylai I-- yn unig fod yn rhif. Felly, os wyf yn llunio program-- hon felly mae hyn yn gwneud ASCII 0, ASCII slaes dot 0-- Fi jyst cael y siart bach defnyddiol sy'n dangos i mi yr holl posibl mapiadau heb orfod meddwl ei fod trwy neu ffigur allan ar fy mhen fy hun. Ac rwyf hefyd yn argraffu, sylwi ar y llythrennau bach, gan fod ychydig o linellau yn ddiweddarach, yr wyf yn hefyd argraffu'r mapiau hyn yn ogystal, sydd ychydig i yn dweud bod unwaith y byddwch yn deall beth sy'n mynd ymlaen o dan y cwfl, gallwch chi trosi yn ôl ac ymlaen yn awtomatig. Ac yn wir, os unrhyw un ohonoch byth yn gwneud hyn yn yr ysgol radd neu wedi clywed am rywun mythically cymryd nodyn a throsglwyddo at ei neu ei ffrind yn y dosbarth, ond eich sgramblo y llythyrau gan fel A yn dod yn B, a B yn dod yn C, neu rywbeth fwy cymhleth na hynny, yn dda, sut y byddech yn mynd ati gweithredu hynny fel plentyn? Wel, 'ch jyst fath o wybod A dod yn B, B yn dod yn C, ond yn fathemategol, beth oedd y plentyn yn ei wneud? Beth oeddech chi'n ychwanegu at bob llythyren? I bob pwrpas, 1. Felly, pan fyddwch yn newid A i B, dyna math o fel newid 65 oed i 66, sydd yn fathemategol yn golygu dim ond ychwanegu 1. Ac felly os ydych yn gweithredu mai ychydig dechneg twyllodrus ar gyfer eich athro mewn cod, yr ydych Gallai gwneud yn union hynny yn unig drwy ychwanegu un llythyren gyda'i gilydd. Felly, cyn hir, rydym yn mynd i weld sut yr ydym Gellir manteisio ar hynny i mewn gwirionedd scramble wirioneddol a Dadgymysgwch gwybodaeth. Yn y cyfamser, yn gwybod ein bod wedi dechrau i gyflwyno cwpl llyfrgelloedd eraill Yma-- y llinyn un heddiw. A safle defnyddiol iawn gobeithio y byddwch yn dod o hyd i yn cael ei alw'n reference.cs50.net, a oedd yn mae'r staff addysgu wedi rhoi at ei gilydd, felly os ydych chi eisiau edrych i fyny gweithfeydd sut strlen, gallwch ddechrau teipio enw y swyddogaeth, yn cliciwch strlen yno, ac yna esboniad llai cyfforddus yn mynd i ymddangos. Neu os ydych am i'r swyddog Esboniad sy'n seiliedig ar Linux, gallwch glicio fwy cyffyrddus ar dde uchaf, ac mae'n yn cyflwyno'r un wybodaeth, ond mewn termau mwy cymhleth. Dyna yn adnodd defnyddiol i mewn gwirionedd yn gwybod beth popeth yn ei wneud. Y tro nesaf rydym yn mynd i cymerwch olwg ar Ovaltine a mwy, ac yn cyflwyno ein hunain i fyd cryptograffeg. Cyn hynny, byddwn yn gweld chi ddiweddarach yr wythnos hon. Ac yn awr, Colton Ogden. Welwn ni chi ar ddydd Mercher. [CHWARAE CERDDORIAETH] [CHWARAE CERDDORIAETH] SIARADWR 1: Beth mae'r [Bib] ydych chi'n ei wneud? SIARADWR 1: Yr wyf yn bwyta fy bwdin? Sut ydych chi'n ei fwyta? Gyda eich dwylo? [CHWARAE CERDDORIAETH]