[CHWARAE CERDDORIAETH] JASON Hirschhorn: OK, bawb. Croeso i Adran. Mae hyn yn CS50, ein iawn adran super gyntaf. Fel y gwyddoch, yr wythnos nesaf Bydd adrannau yn rheolaidd yn cychwyn, ond yr wythnos hon rydym ni i gyd gyda'n gilydd. Mae fy hun. Fy enw i yw Jason. Rwy'n ddarlithydd mewn Cyfrifiadureg. Rydym wedi Andi, pwy yw pennaeth TA o CS50. Ac Scaz, yr Athro Brian Scassellati, ei fod yn athro mewn Cyfrifiadureg. Yr ydym yn y pennau CS50 yn Iâl. Gallwch bob amser anfon e-bost ni heads@cs50.yale.edu. Byddwn yn mewn darlithoedd. Byddwn yn oriau swyddfa. Os oes byth unrhyw beth y gallwn ei wneud i chi, unrhyw beth sydd ei angen arnoch, mae croeso i estyn allan i ni. Felly, beth ydym yn mynd i'w wneud heddiw? Neu cyn hynny, beth sydd dod i fyny yr wythnos hon? Felly oriau swyddfa yw dydd Llun, dydd Mawrth, Dydd Mercher, a dydd Iau, 8:00-11:00. Mae 'na amserlen ar y wefan. Adrannau, fel y soniais, yn dechrau yr wythnos nesaf. A byddwch yn cael gwybod yr wythnos hon beth amseru eich adran yn, pa ddiwrnod yw hi, a phwy yw eich TA yw. Problem Set 1 yn ddyledus yn dydd Iau am hanner dydd, dydd Gwener am hanner dydd gyda diwrnod yn hwyr. Oes, mae gennych naw diwrnod yn hwyr. Ac mae naw set broblem. A dim ond yn gallu defnyddio un yn hwyr y dydd am bob set problem. Ie, i bob pwrpas, pob problem setiau yn ddyledus Dydd Gwener am hanner dydd. Dyna i gyd. Y cyfan y manylion ar y maes llafur. Bob dydd Gwener, yr ydym wedi cinio. Rydym yn awyddus i wneud hyn yn fawr cwrs yn teimlo ychydig yn llai. Felly, mae croeso i chi RSVP. Cinio am ddim gyda chyd cyd-ddisgyblion a staff. cs50.yale.edu/rsvp. Mae'r holl bethau hyn sydd Mae gen i ar y sgrin, a mwy, gallwch ddod o hyd cs50.yale.edu neu cs50.harvard.edu, os byddwch yn mynd i Harvard ac yn gwylio hon ar-lein. Hefyd ar y gwefannau hynny, mae yna yn tunnell o adnoddau i chi. Mae pob darlith nid yn unig y mae'r fideo y ddarlith, ond hefyd yn nodi. Bydd rhywun yn gwylio'r darlith a chymryd nodiadau ar eich rhan. Felly, gallwch dalu sylw yn ystod darlithoedd, neu gallwch ddefnyddio eu nodiadau / ein nodiadau i ychwanegu at eich nodiadau eich hun. Mae yna sleidiau ar-lein. Y ffynhonnell code-- popeth David mynd dros yn y ddarlith, neu Scaz yn mynd dros ddarlith, bod cod ffynhonnell ar gael ar-lein yn ogystal, fel fel fi, a grybwyllwyd fideos. Mae adrannau, yn yr un modd, bydd yr holl cael ei ffilmio. Bydd pob un o'r sleidiau hynny ar gael. Mae pob un y cod bydd fod ar gael i chi. Mae siorts ar y wefan lle Aelodau o staff CS50 yn treulio pump i 10 cofnodion mynd drwy destunau ar eich cyfer. Mae rhai o'r rhai yr ydych chi wedi eisoes dod ar eu traws yn y setiau broblem. Oriau swyddfa, fel y soniais, Dydd Llun trwy Iau, 8:00-11:00. Astudiaeth CS50 yn adnodd gwych. Mae yna broblemau ymarferol, sleidiau sampl, bygiau hysbys bod myfyrwyr yn hoffi rhedeg i mewn i, am ei hanfod pob rydym pwnc Bydd yn ymdrin yn y cwrs hwn. Ac yn olaf, ar y sleid hon o leiaf, Reference50 sy'n rhoi gwybodaeth i chi ar bob un o'r swyddogaethau C Gallai chi erioed o bosibl yn gobeithio i'w defnyddio ac yn llawer, llawer mwy. Unwaith eto, mae hynny'n dot dot dot ar waelod y sgrîn yw i ddangos bod mae hyd yn oed mwy o adnoddau ar y rhai ddwy wefan: cs50.yale.edu, cs50.harvard.edu. Felly, beth ydym yn ei wneud heddiw? Wel, yn gyntaf dwi'n mynd i roi ydych yn edrych ar yr adnoddau. Gwnaeth bod un yn barod. Edrychwch ar ni. Yn awr, rydym yn mynd i fynd dros mathau data a gweithredwyr yn C. Yna bydd Andi dod i fyny yma ac mynd dros lyfrgelloedd yn C, printf (), swyddogaeth ydych eisoes â hwy cyfarwydd neu a fydd yn dod yn gyflym iawn cyfarwydd. A byddwch hefyd yn mynd dros conditionals a dolenni. Ac yna yn olaf, Scaz yn mynd dros y ID CS50. Os nad ydych wedi colomen mewn sydd eisoes yn Problem Set 1, yn ogystal â sut i ddefnyddio'r terfynol a gorchmynion defnyddiol ac yna rhoi rhywfaint o demos i chi a codio arfer yn y ID CS50. Cyn i mi neidio i mewn i hyn cynnwys ar yr ochr hon, oes unrhyw un gennych unrhyw gwestiynau hyd yn hyn? Great. IAWN. Newid gêr. [GEARS NEWID] Dyna oedd fy symud gerau mewn car â llaw. Felly fathau o ddata yn C, yr ydych yn gallu nid yn unig gael newidyn x ac wedi iddo fod ar llinell 10, yn gyfanrif, efallai y rhif 1, ar-lein 20, rhif degol 10.5, a llinellau yna cwpl yn ddiweddarach llinyn, yr wyf yn caru CS50. Yn C, gall newidynnau dim ond un peth, ac un peth yn unig. Ac felly rhaid i chi roi mathau iddynt. Ac ar y bwrdd hwn, rydym restr o fathau. Mae chars, a oedd yn sefyll ar gyfer cymeriadau. Felly dyna un llythyren A, B, C, D. Gall hynny hefyd fod yn ofod, neu gellir hefyd fod yn cymeriad llinell newydd. Mae gyfanrifau, sydd yn unig rhifau, numbers-- cyfan neu cyfanrifau rather-- ond dim degolion. Ar gyfer degolion, mae gennym fel y bo'r angen rhifau pwynt. Fel y bo'r angen rhifau pwynt niferoedd gyda degolion. Yna mae longs, sy'n cael eu gyfanrifau y bôn yn hwy. Byddwch yn sylwi bod hir yw 8 tra mae int yw 4. 'N annhymerus' yn dod i hynny mewn eiliad. Mae hyn oherwydd y gall longs storio hyd yn oed gall mwy o gyfanrifau na int storio. Dwbl yn arnofio hir. Ac yn olaf, rydym wedi llinyn, sef math eich bod yn ôl pob tebyg wedi eu defnyddio o'r blaen. Os ydych yn cynnwys hashtag # IncludeCS50.h yn eich ffeil ffynhonnell, yna gallwch ddefnyddio math llinyn. Dyw hi ddim yn ei adeiladu mewn gwirionedd i mewn i C. Mae cwpl o fathau eraill hefyd. Ond mae'r rhain yn y prif rai gyda y byddwch yn defnyddio ac yn dod ar draws. C fel, unwaith eto y soniais, pob variable-- ei Gall dim ond un math, ac un math yn unig. Mae hynny oherwydd C yn llonydd iaith teipio, yn hytrach na i ieithoedd teipio ddeinamig lle os ydych yn creu newidyn gallwch newid yr hyn sy'n cael ei storio mewn wrth i chi fynd ymlaen yn eich rhaglen. Dros yma ar y llaw dde ochr, Mae gen i'r gwahanol feintiau o'r mathau hyn o ddata mewn bytes. Felly mae cymeriad yn 1 beit. Dyna 8 did. Ac mae hynny'n golygu oherwydd bod 8 darnau mae wyth o 0au ac 1s. Gwelsom demos hynny yn y cyntaf wythnos gyda hynny bylbiau deuaidd. Gyda 8 did neu 1 beit, y gallwn yn cynrychioli rhifau 0-255. Hawl. Os bydd pob 8 did yn 0 dyna 0. Os bydd y darn cyntaf yw 1, dyna'r rhif un, ac yn y blaen, yr holl ffordd i fyny at 255. A dyna pam gyfer cymeriadau gallwch rhaid ei hanfod hyd at 255 ohonynt, ond mae hynny'n ddigon i gynnwys yr holl y cymeriadau mae angen i ni ddefnyddio. Ar gyfer cyfanrifau, gallwch gael 0 a Yna, mae gennych 2 i 32 minws 1. Mae'r rheini'n faint o opsiynau sydd gennych ar gyfer gyfanrifau. Am hir, mae gennych 0 i 2 i 64 minws 1. Felly, mae gennych lawer, lawer, mwy o ddewisiadau ar gyfer longs. Strings, dyna marc cwestiwn oherwydd dyna yn Cliffhanger ar gyfer yn ddiweddarach. Yeah. Gallwn i ddweud wrth bawb yn ar ymyl eu sedd, fel beth sy'n bod marc cwestiwn? Mae'n Cliffhanger. Byddwn yn y pen draw yn cynnwys y maint llinynnau a siarad mwy am llinynnau. Gan fod llinyn mewn gwirionedd un o'r olwynion hyfforddiant rydym yn rhoi ymlaen yn hyn cwrs ar y dechrau ac yna cymryd oddi nes ymlaen ymlaen, oherwydd llinynnau yn C mewn gwirionedd Awgrymiadau i araeau gymeriad. Ond unwaith eto, mae hynny'n Cliffhanger ar gyfer yn ddiweddarach. Cyn imi symud ymlaen unrhyw gwestiynau, sylwadau, pryderon am sleid hon? IAWN. Mae'n rhaid i mi fod yn esboniadol ffantastig. Hefyd, pan fyddwch yn rhaglennu, ydych yn mynd i ddefnyddio gweithredwyr hyn. Arwyddion Really syml a all wneud syml gweithrediadau, mae'n debyg eich bod â hwy eisoes yn gyfarwydd iawn. Er enghraifft, ar y dde ochr, rydym yn gweld yn ychwanegu. I ychwanegu, 'ch jyst yn gwneud arwydd Plus. Ac felly gallai fod gennych ddau newidyn x ac y. Gallwch wneud x + y yn eich cod. Efallai eich bod am canlynol-- dweud eich yn cael y rhif 7 a 3, ydych am i storio bod yn swm newidyn enw. Gallwch wneud int ar gyfer y math, gofod swm, enw'r newidyn, = 7 + 3; Beth fyddai hynny storio mewn swm? Dylai unrhyw un? Os oedd I yn swm = 7 + 3. Beth fyddai'n cael ei storio yn y swm? Alli jyst gweiddi 'ii maes. GYNULLEIDFA: 10. JASON Hirschhorn: 10! Dyna'n union gywir. Beth am yn swm = 7-3, Fi jyst yn defnyddio'r arwydd llinell doriad. Beth sy'n mynd i gael eu storio? GYNULLEIDFA: 4. JASON Hirschhorn: 4. Swm mae'n debyg, yw'r enw anghywir ar gyfer y newidyn, byddai ond 4 yn cael ei storio. I luosi yn C, defnyddiwch y bach Cymeriad seren, nid ydych yn defnyddio x. I rannu, defnyddiwch Ymlaen Slash nid yw'r symbol is-adran. Ac i modulo, defnyddiwch y symbol Canran. Felly, gadewch i ni ddweud Rwyf am weld int z = 7% 3, beth fyddai'n cael ei storio yn z? Felly, dyna yn y bôn gofyn beth mae modulo yn ei wneud? Oes rhywun yn gwybod beth modulo yn ei wneud? Yeah. y 4. SIARADWR 1: Mae'n y gweddill. JASON Hirschhorn: Dyma'r gweddill pan fyddwch yn rhannu. Felly 7 wedi'i rannu â 3 yw 2 gweddill 1. Felly byddai 1 yn cael ei storio. Gwnaethoch tynnu, ond dyna sut mae'n gweithio. Dyna beth mae'r gweithredwr modulo yn ei wneud. Mae'n cymryd nifer rhannu iddo gan rhif a ffurflenni arall i chi y gweddill. Felly eto, 7% 3 yn rhoi i chi 1, oherwydd 7 wedi'i rannu â 3 yw 2 gweddill 1, ac yn dychwelyd y gweddill. Beth am gadewch i ni fynd yn ôl i fyny un cam i'r arwydd rhannu. Os byddaf yn gwneud 7 / wedi'i rannu gan 3 yn gwneud unrhyw un yn gwybod beth fyddai bod yn dychwelyd? SIARADWR 2: 2. JASON Hirschhorn: Pam 2 ac nid 2.333? SIARADWR 2: Rwy'n credu ei fod yn torri ar ôl rhif cyfan. JASON Hirschhorn: Felly dyna'n union gywir. Yn C, os ydych yn gwneud is-adran o dau rif cyfan 7 rannu â 3, mae'n mynd yn yr ateb a oedd yn yr achos hwn 2.3333 am byth ac mae'n canfod bod pwynt degol a golwythion popeth ar ôl y degol yn ac 'i jyst yn dychwelyd i chi 2. Felly os gwnes 8 rannu â 3. Sydd mewn gwirionedd, rydym yn gwybod hynny i ddychwelyd 2.666, ond mae'n golwythion popeth i ffwrdd yn o'r degol, truncates y cyfan, a dim ond yn dychwelyd i chi 2. Felly 6 rannu â 3, 7 wedi'i rannu 3, 8 rannu â 3, i gyd yn mynd i ddychwelyd i chi 2. Oes rhywun yn gwybod, neu os oes gennych dyfalu, o ran sut y gallwn i mewn gwirionedd yn cael yr ateb llawn os ydw i am fod degol? Yeah. Cer ymlaen. SIARADWR 3: Defnyddiwch arnofio? JASON Hirschhorn: Beth ydych chi'n ei olygu? SIARADWR 3: Oherwydd eich dywedodd y fflôt ar gyfer niferoedd [Anghlywadwy] JASON Hirschhorn: Iawn. Felly, dyna yn union gywir. 7 yn gyfanrif. Ond os oeddwn i eisiau i droi hynny i nifer pwynt arnawf, Byddai'n rhaid i mi storio bod fel 7.0 oherwydd bod y cyfrifiadur yn wirioneddol stupid-- gwelsom fod gyda'r PB a J example-- ni fydd yn gwneud yn union yr hyn yr ydych yn dweud hynny. Felly, os ydych yn ysgrifennu 7, mae'n credu bod yn gyfanrif. Os byddwch yn ysgrifennu 7.0, er ein bod gwybod y pethau hynny yn gyfwerth, mae'n trin hynny fel fel y bo'r angen rhif pwynt. Felly, os ydych yn gwneud 7.0 Rhennir gan 3, neu rannu â 3.0, byddai'n dweud, OK, yn awr rydym yn delio â fflotiau. Byddaf yn dychwelyd atoch 2.333333 am byth. Ond nid mewn gwirionedd am byth, oherwydd fel y gwelsom hefyd yn y ddarlith, y rhifau pwynt arnawf Nid yn union fanwl gywir. Felly, os ydych chi eisiau hynny degol, neu yn rhan o hynny degol, yna rhaid i chi use-- un ohonynt wedi i fod yn rhif pwynt arnawf a'r cyfrifiadur wedi ei deall fod hwn yn pwynt arnawf eich bod delio â, nid yn gyfanrif. Unrhyw gwestiynau am y tabl ar yr ochr dde, hyd yn hyn? Neu eich ochr chwith, eich chwith, eich ochr chwith. Yeah. SIARADWR 4: Iawn. Am ddim ond yn hoffi rheolaidd cyfanrifau, fyddech chi Byddai write-- rhaid i chi ysgrifennu arnofio? JASON Hirschhorn: Yeah hynny. Wel, os ydych chi am greu newidyn sy'n arnofio, mae angen i chi ddweud arnofio z yn dychwelyd rhywbeth. SIARADWR 4: OK. JASON Hirschhorn: Ond os oeddwn i eisiau gwneud 7 wedi'i rannu â 3 a chael bod degol, Byddwn yn gwneud arnofio z = 7.0 / 3.0; ac a fyddai'n rhoi'r pwynt arnawf i mi rhif. SIARADWR 4: OK. JASON Hirschhorn: Os byddaf yn gwneud rhywbeth fel int z = 7/3, fyddai'n rhoi yn gyfanrif i mi, oherwydd bod y rheini i gyd yn gyfanrifau. A yw hynny'n gwneud synnwyr? SIARADWR 4: Ie. JASON Hirschhorn: OK. Great. Unrhyw gwestiynau eraill am y bwrdd? Really? Rydw i mor gyffrous. IAWN. Felly, mae rhai pethau eraill y byddwch yn eu defnyddio, oftentimes mewn amodau neu dolenni, yn y mathau hyn o operators-- mathau hyn o ymadroddion Boole. Ac wrth i ni ei ddysgu, == yw hyn yr ydych yn defnyddio i gadarnhau a oes dau beth yn gyfartal. Felly, dyma dw i'n gwirio os x == y, gadewch i ni unwaith eto yn cymryd yn ganiataol bod x yn 7 ac y yw 3. Felly os Ysgrifennais 7 == 3, beth a fyddai'n dychwelyd i mi? A yw hynny'n wir neu anwir? GYNULLEIDFA: Anghywir. JASON Hirschhorn: OK. Rwy'n teimlo fel pawb yn gallu cael yr un yma. Felly, pawb, beth fyddai bod yn dychwelyd? GYNULLEIDFA: Anghywir. JASON Hirschhorn: Anwir. Great. Nid yw 7 yn gwneud hynny gyfartal 3. Felly byddai 7 == 3 yn dychwelyd ffug. Dim rhaid i chi arwydd nid gyfartal, felly os wyf yn gwirio 7! = 3, beth fyddai bod yn dychwelyd? GYNULLEIDFA: Gwir. JASON Hirschhorn: Gwir. Ardderchog. Rhywun yn bendant iawn yn y cefn ac yn gwerthfawrogi hynny. Yna mae gennych lai na gweithredydd, llai na neu'n hafal i weithredwr, fwy na gweithredydd, mwy na neu'n hafal i weithredwr. Felly, un yn fwy gwirio bwyll. Os byddaf wedi 7 yn fwy na neu'n hafal i 3. Beth fyddai bod yn dychwelyd? GYNULLEIDFA: Gwir. JASON Hirschhorn: Gwir. Ydw. Hynny ystafell gefn, ochr yn ôl yr ystafell, ffantastig. Gallwch gyfuno'r rhain ymadroddion os mynnwch chi, yn ogystal, gyda rhesymegol A sydd yn && Neu resymegol NEU sy'n || ||. Ac felly nawr gallwch brofi dau pethau together-- A yw hynny'n ddoniol? Pam yw bod yn ddoniol? Felly, os oeddwn i eisiau, gallaf ei ddweud yw 7 fwy na 3 A 2 yn llai na 4? Wel, os 7 yn fwy na 3, mae hynny'n wir. 2 yn llai na 4, mae hynny'n wir. Felly byddai hyn yn holl beth yn dychwelyd yn wir. Os byddaf yn profi 7 yn fwy na 3 ac-- Im 'jyst yn pigo rhifau ar hap Yma-- 4 yn llai na 2, yn dda, mae hynny'n anghywir. Felly gwir a gwneud ffug ffug. A gallwch fynd ymlaen ac yr ydych yn cyfuno fel llawer o gyflyrau ynghyd ag yr hoffech. A oes unrhyw un gennych unrhyw gwestiynau, sylwadau, pryderon hyd yn hyn? Ac yr wyf yn gweld rhai ohonoch gymryd lluniau o fi yn y sgrin, ac yr wyf yn gwerthfawrogi. Gobeithio, nid yw'n Snapchat. Gobeithio, mae ar gyfer eich nodiadau. Ond mae pob un o'r rhain yn mynd i fod ar gael ar-lein. Fel nad oes rhaid i chi cymryd lluniau o hyn. Fel y soniais, mae popeth ar gael ar-lein i chi. IAWN. Rwy'n ar fin gael oddi ar y llwyfan, felly hefyd y mae unrhyw un am ddweud unrhyw beth cyn i hynny ddigwydd? Cwestiynau? [LLEISIAU gosod eu hunain yn] JASON Hirschhorn: O, rhoi'r gorau. Rydych guys yn rhy neis. IAWN. Rydw i'n mynd i dagio allan. Gadewch i ni fynd. Andi Peng: Rydym yn mynd i wneud newid mic lletchwith yn awr. JASON Hirschhorn: Rwy'n mynd i gymryd hyn i ffwrdd. Andi Peng: Gwerthfawrogi cymorth, guys. Allwch chi fy nghlywed? A yw hynny'n dda? Perffaith. Beautiful. Gadewch i mi fwyta hynny mewn. IAWN. Felly, rwy'n ar fin ei wneud fel cawr gwybodaeth daflu i lawr ar chi guys ar hyn o bryd. Ac nid oes unrhyw bryderon o gwbl os ydych yn peidio â dilyn pob llinell ychydig o'r hyn Rwy'n am i ddangos i chi. Fel y dywedodd Jason, popeth yn gwbl ar-lein. Dim ond rydyn ni'n mynd i geisio cyflwyno pawb i'r cysyniadau a gwmpesir yn rhai o'r sleidiau hyn. Felly, dim ond yn dilyn ar hyd. Dim pryderon os nad ydych yn deall popeth; fodd bynnag, os ar unrhyw adeg chi deimlo'n goll, codi eich law, byddwn yn rhoi'r gorau i, dim pryderon. Cool. Felly, rwy'n credu rhywbeth y mae David eisoes yn fath o grybwyll yn darlithio a Jason math o wedi cyfeirio i heddiw yw'r hyn yw llyfrgell. Felly, yn rhaglennu, rydym wedi y pethau hyn a elwir yn llyfrgelloedd. Lle, yn y bôn, i gyd maent yn cael eu yn unig yw set swyddogaethau, hynny yw yn y bôn yn unig cod sy'n eisoes wedi cael ei ysgrifennu gan rhywun arall y gallwn i gyd ddefnyddio o fewn ein rhaglenni. Felly sut yn gwneud normal gwaith llyfrgell, dde? Rydych yn mynd i mewn i'r drws llyfrgell. Mae gennych y rhain i gyd llyfrau y gallwch dynnu allan a gallwch gael gafael ar wybodaeth o fewn y llyfrau hynny. Yr un peth yn rhaglennu. Mae gennych lyfrgell sydd eisoes â Ysgrifennwyd gan bobl eraill. A'r ffordd y gallwch, fel rhaglennydd neu fyfyriwr, Gall cael mynediad at y llyfrgell yw drwy #include hashtag. Er enghraifft, yn C ydym gael tri C-- y mwyaf a ddefnyddir yn gyffredin tri C safonol libraries-- llyfrgell mewnbwn / allbwn, y llyfrgell llinyn, a'r llyfrgell mathemateg. Felly, o fewn eich cyntaf problem cwpl yn gosod, Bydd hynny yn y tri eich bod yn defnyddio yn bennaf. Felly, fel Dafydd yn barod esbonnir yn y ddarlith, y Rwyf safonol / llyfrgell O, neu'r llyfrgell mewnbwn / allbwn safonol gwneud yn union hynny. Mae'n caniatáu i chi, yn eich cod, i fewnbynnu unrhyw beth o'r defnyddiwr ac allbwn sy'n i'r sgrin, yn y bôn argraffu i'r sgrin. Ac felly mae unrhyw tro y byddwch yn defnyddio unrhyw swyddogaethau, er enghraifft, y printf swyddogaeth () sy'n rydym yn mynd i fynd dros y sleid nesaf, gwneud yn siwr i gynnwys y safon I / O llyfrgell neu arall nad ydych yn mynd i yn gallu defnyddio'r printf () yn. Oherwydd eich bod, fel y rhaglennydd byth mewn gwirionedd yn ysgrifennu swyddogaeth honno, ydych ond yn defnyddio rhywun cod arall o fewn eich cod eich hun. A yw bod pawb yn gwneud synnwyr? Cool. Ac yna rydym yn ei hanfod mynd ar llyfrgell string.h a'r math.h llyfrgell, .h yn unig yn arwydd llyfrgell, llyfrgelloedd eraill sy'n wnewch chi helpu yn y pen draw yn defnyddio o fewn eich cod. Fodd bynnag, at ddibenion y llyfrgell hon, rydym hefyd yn have-- o class-- hwn rydym hefyd wedi yr hyn a elwir y llyfrgell CS50, cs50.h, lle'r ydym, ar gyfer eich harchwilio wedi creu llawer o swyddogaethau pwysig a defnyddiol. Er mwyn i chi fel rhaglennydd Gall ddilyn yn sgîl off yr hyn yr ydym eisoes wedi ysgrifennu fel bod swyddogaeth hon ar gael i chi ar gyfer eich defnydd. Byddaf yn ymdrin ag un neu ddau o y swyddogaethau a ddefnyddir yn gyffredin, ond yn gwybod bod y rhain yn pob googleable ar-lein. Teimlwch yn rhydd, dynnu i fyny y llyfrgell CS50 a yna mae gennych yr holl swyddogaethau yno. Yeah. SIARADWR 5: Felly, os nad oeddech yn gan ddefnyddio'r feddalwedd sy'n cael ei ddarparu i ni drwy y dosbarth, yn gwneud hynny yn golygu y byddai'n rhaid i'w llwytho i lawr a dod o hyd header hwn ffeilio ein hunain ac yn dweud y cyfrifiadur lle y mae? Andi Peng: Cwestiwn Fawr. Yn union. Felly mae fel os nad ydych yn bresennol yn gorfforol mewn llyfrgell, does dim ffordd i chi mewn gwirionedd yn mynd a mynediad ato. Felly yr un peth gyda rhaglennu yn C, yr ydych rhaid i ni wneud yn siŵr eich bod yn defnyddio ein peiriant oherwydd bod y llyfrgell yn barod wedi'u hymgorffori i mewn iddo. Ac yna pan fyddwch yn hashtag #include, y llyfrgell yno. Yeah. Cwestiwn da. Mae pawb yn dda? Cool. Iawn. Felly rydym yn mynd i daro, yn y bôn, yr hyn sy'n y swyddogaeth gyntaf Rydym ni fel rhaglenwyr yn mynd i gael ei ddefnyddio o fewn ein cod. Gelwir hyn yn y printf () yn. Felly, printf () yn, gan fy mod i wedi Dywedodd eisoes yn y sleid olaf, wedi ei gynnwys yn y safon I / O, safon mewnbwn / allbwn, llyfrgell. Felly gwnewch yn siwr beth bynnag eich bod yn using-- oh, gadewch i mi chrafangia 'r laser pointer-- pryd bynnag y byddwch yn ei ddefnyddio y printf () yn, rhaid i chi gynnwys y safon I / O llyfrgell neu arall, pan fyddwch yn llunio, rydych yn mynd i gael gwall oherwydd bydd y cyfrifiadur yn cael ei hoffi, oh Nid wyf yn gwybod ble printf () yw, nad ydych yn dweud wrthyf ble printf () mae. Wel printf () yn cael ei gynnwys yn y Rwyf safonol / O, felly pan fyddwch yn defnyddio printf (), gwnewch yn siwr i gael y llinell uwchben eich cod. Felly, er enghraifft, printf () dyma un o swyddogaethau. Mae'r holl mae'n ei wneud yw argraffu rhywbeth y tu mewn i'r cromfachau i'r defnyddiwr. A fyddai unrhyw un yn hoffi i gymryd drywanu ar yr hyn y llinell hon o god hawl yma yn mynd i argraffu? Felly, yr ateb sydd ar y sgrin. Dylai unrhyw un? VERDI: Y gwaelod. Andi Peng: Verdi, pam na wnewch chi fynd ei flaen a dweud y datganiad cyfan? VERDI: Helo, fy enw i yw Andi, ac yr wyf yn 20 mlwydd oed. Andi Peng: Ah, hyfryd. Felly, yn y llinell hon rydym yn mynd i argraffu, Helo, fy enw i yw Andi, ac yr wyf yn 20 mlwydd oed, a oedd yn mewn gwirionedd yn ddatganiad cywir. Cystrawen. Felly cwpl o faterion cystrawennol sy'n chi guys eisiau gwneud yn siŵr eich bod yn gwybod. Dyfyniadau. Dyfynodau dwbl dweud wrth y cyfrifiadur bod popeth y tu mewn yn mynd i gael ei argraffu. Popeth y tu mewn can yn unig fod yn union sut chi ei deipio, ac eithrio ar gyfer yn gyffredin ar y diwedd, rydym yn mynd i eisiau cynnwys a hash-- oh sorry-- a n dash. Felly diferyn n. A oes unrhyw un am gymryd dyfalu ar yr hyn sy'n gwneud i'n cod? Yeah. SIARADWR 6: Rhoi ar linell newydd. Andi Peng: Yn union. Felly yr holl mae hyn yn ei wneud yw caniatáu beth bynnag sy'n digwydd ar ôl hyn, ar ôl y datganiad hwn, i gael eu hargraffu i linell newydd. Felly, pan fyddwch yn ysgrifennu eich Cod nad ydych wedi pethau ar hap chael ei ychwanegu ar hyd y diwedd nad ydych yn dymuno. Bod popeth yn cael daclus argraffwyd un llinell ac yna rydym yn dechrau ar y llinell ganlynol. A oes unrhyw un yn cofio yr hyn sy'n hanner colon yn pan fyddwn ni'n codio? Yeah. SIARADWR 7: Datganiad. Andi Peng: Mae'n ddrwg gennyf? SIARADWR 7: A yw'n terfyn ar y datganiad? Andi Peng: Yeah. Felly, yn C, neu unrhyw raglenni iaith, mae'r hanner colon yn dynodi diwedd llinell rhaglennu. Felly, er enghraifft, yn Saesneg rydym yn defnyddio cyfnod i ddweud, oh hyn yn y diwedd brawddeg. Yn rhaglennu, un peth, mae gennym hanner colon i ddynodi ddiwedd llinell. Oftentimes, pan fyddwch yn dechrau i raglennu, byddwch yn sylweddoli eich anghofio ychwanegu hanner colon ac yna rydych yn ceisio i redeg eich Nid yw cod a yw'n gweithio. Ac ydych chi fel, Ah, nid i ddim gwybod pam, dylai fod yn gweithio. Tebygolrwydd yw mae'n debyg y byddwch wedi anghofio am hanner colon neu fraced neu rywbeth rhywle. Felly, mae hynny'n bwysig i'w gofio. Cool. Mae pob hawl, godi dwylo, sut llawer o bobl yma yn cael erioed cymryd Cyfrifiadureg AP neu rhaglennu yn Java blaen, erioed? IAWN. Hyfryd. Ni fydd hynny'n berthnasol bryd hynny, ond yn Java, byddwch yn cael rhywbeth o'r enw System.out.println nad yw'n bodoli yn C. Felly, yn C, pryd bynnag y byddwch am ychwanegu mewn newidynnau i mewn i unrhyw beth rydych am i'w hargraffu, mae ' cystrawen penodol yr ydym yn mynd i ddefnyddio. Mae hynny'n cael ei alw y placeholding-- y bôn rydym yn ychwanegu dalfannau ar waith o'r cyfanrif neu y newidyn ein bod eisiau argraffu. Felly, fel y gallwch chi weld guys rydym wedi cynnwys pheniad llyfrgell newydd ffeil yma. Mae'r llyfrgell CS50. Ac a gynhwysir yn y llyfrgell CS50 yn swyddogaeth gyffredin byddwn yn defnyddio yn ein cwrs o'r enw GetInt (). Oes rhywun eisiau cymryd trywanu ar yr hyn a allai GetInt () o bosibl fod yn ei wneud. GYNULLEIDFA: [Anghlywadwy] Andi Peng: Mae'n ddrwg gennyf. Methu clywed chi. Maddie, unrhyw un. Maddie: O, mae'n awgrymiadau chi am yn gyfanrif. Andi Peng: Yn union. Felly y swyddogaeth hon, un arall swyddogaeth sydd eisoes ei ysgrifennu gan rywun arall ein bod yn gallu galw ar hyn o bryd. Mae'r holl mae'n ei annog y chi, y defnyddiwr, i fewnbynnu beth bynnag yr ydych am i gymaint y cod yn rhedeg ac mae'n storio whatever-- yn yr achos hwn rydym yn GetInt () - ing, felly mae hynny'n golygu ein bod yn cael yn gyfanrif. Ac rydym yn mynd i storio bod yn cyfanrif arall yr ydym wedi ei wneud yn unig o'r enw oedran. Mae hynny'n gwneud synnwyr i bawb? Cool. Felly nawr ein bod wedi eu storio cyfanrif hwn, ein bod wedi ysgogi gan y defnyddiwr, yn y newidyn hwn, rydym wedi a grëwyd o'r math int a elwir oedran, gallwn fynd ymlaen ac mewn lle hynny yn ein printf () yn. Felly, y gystrawen fel arfer ar gyfer printf () yn lle bynnag yn eich corfforol fel y cyfryw llinell ydych am gynnwys y cyfanrif, chi wneud hynny symbol iawn yno, y symbol y cant, gyda'r math o newidyn a 'ch angen. Felly, yn yr oes yr achos yn gyfanrif. Felly, rydych chi'n mynd i gynnwys % Ff oherwydd ei fod yn gyfanrif. Ac yna ar ôl eich datganiad, rydych yn mynd i wneud coma a'r enwi y newidyn. Felly dyma, rydym yn mynd i argraffu allan, Helo, fy enw i yw Andi, ac yr wyf mlwydd wag oed. Hashta-- neu, sorry--, oed gyda beth bynnag yr wyf mewnbwn. Felly, pe bawn i fewnbynnu 20 ar gyfer fy GetInt () fan hyn, byddai'n argraffu'r un peth yn union. Ond, os oeddwn i eisiau mewnbwn rhywbeth arall, fel efallai 40 neu 45, Yna, byddech yn gweld a oedd yn adlewyrchu yn unol â hynny yn y cod. Felly, mae hyn yn enghraifft o rywbeth y mae mae'n printiau allan ac yn edrych i chi fel pe ei fod yr un peth, ond o dan y cwfl o y cyfrifiadur mae mewn gwirionedd pethau yn wahanol iawn yn digwydd. Cool. Iawn. Felly beth os ydym am newidynnau lluosog? Eithaf hawdd. Un peth. Mae gennym hefyd swyddogaeth newydd yma o'r enw GetString (), hefyd yn cynnwys o fewn y llyfrgell CS50, fod yr holl mae'n ei wneud yw annog y defnyddiwr ar gyfer llinyn, sef dim ond set o gymeriadau, felly fel brawddeg neu fel enw. Felly, yn yr achos hwn, byddai gennym ddau dalfannau% s ar gyfer llinyn a% ff ar gyfer cyfanrif. Ac rydym yn mynd i ddilyn bod gan y ddau newidyn rydym eisiau eu cynnwys, yn y gorchymyn y maent yn ymddangos yn y frawddeg. Felly, er enghraifft, fy enw i yw yn wag, yr wyf am enw yno, felly dw i'n mynd i gael y enw cyntaf. Ac yna ar ôl hynny, yr wyf am oedran, am gael ail oedran. Ac felly os oeddwn i eisiau mewnbwn, Helo, fy enw i Andi, ac yr wyf yn 20 mlwydd oed. Os byddaf yn fewnbynnu Andi a 20, mae'r Byddai un peth yn union argraffu; Fodd bynnag, erbyn hyn mae gennym ddau storio newidynnau o enw yn ogystal â int. Yeah. SIARADWR 8: A fyddai'n gallu rhedeg os ydych yn newid enwi a oed ar ddiwedd hynny? Andi Peng: Yeah. Dyna gwestiwn da iawn. Felly stori hir yn fyr, dim. Gan fod enw a age-- beth math o newidyn yw enw? SIARADWR 8: Llinynnol. Andi Peng: A beth math o newidyn yn oed? SIARADWR 8: Cyfanrif. Andi Peng: Felly dyma gennym placeholder ar gyfer llinyn a cyfanrif, dde? Felly, os ydych yn newid hyn, Nid y cyfrifiadur yn mynd i wybod. Mae'n mynd i wirio am llinyn, ac os ydych yn ceisio rhoi ei wneud yn int, mae'n mynd i fod fel aros Rwy'n ddryslyd, yr ydych dweud wrthyf y dylwn i fod yn dyrannu cof ar gyfer int. Ac i'r dde yma, pan mae'n disgwyl yn gyfanrif a'ch bod yn rhoi enw a llinyn yn lle hynny, mae hefyd yn mynd i fod yn ddryslyd iawn, mae'n Ni fydd yn rhedeg yn union y ffordd yr ydych ei angen. Felly dyma, enwi a chystrawen yn bwysig iawn ar gyfer rhedeg cod. Mae pawb yn dda? Yeah. Maddie. Maddie: Yma, yr wyf yn gwybod ein bod wedi edrych ar enghreifftiau yn y dosbarth, lle maent yn gofyn beth yw eich oedran, beth yw eich enw. Yma, byddai hynny'n ei doesn't-- pe baem yn rhedeg y cod hwn, ni fyddai'n gofyn am hynny? Ond byddech yn unig mewnbwn dau rif ac yna byddai'n rhedeg fel 'na? Andi Peng: Yeah, yn union. Felly, os ydych eisiau iddo arddangos, rhowch eich oedran, gallwch ychwanegu printf () yn sy'n dweud, os gwelwch yn dda rhowch eich oedran, uwch ei ben. Dyna gwestiwn da. Yeah. SIARADWR 9: Felly, yn barod fyddai cynnwys yn GetInt () [Anghlywadwy]. Andi Peng: Na, nid mewn gwirionedd. Felly yr holl yw hyn yn unig Awgrymiadau sgrîn gwag i'r defnyddiwr i fewnbynnu rhywbeth. Os ydych yn dymuno hynny, os ydych am iddo argraffu ar rywbeth sy'n dweud wrth y defnyddiwr yn ei gael, rhowch eich oed i mi, yna rydych Byddai'n rhaid i printf () bod chi eich hun. Gan fod pawb yn defnyddio hyn swyddogaeth ar gyfer gwahanol bethau, gallech fod yn storio oedran, gallech fod yn storio cyfeiriad, gallech fod yn storio rhifau ffôn. Ac felly mae'n wirioneddol hyd at defnyddiau unigol eich guys ' ar gyfer yr hyn rydych am iddo ddweud. Yeah. SIARADWR 10: Felly, dim ond er mwyn egluro, lle yn gwneud cyfraniad yr enw ac oedran yr ydych fel ei fod yn dangos i fyny yn lle% s? Andi Peng: Fel yn y defnyddiwr? SIARADWR 10: Ie, fel sut ydw i'n gwneud iddo-- ble ydw i'n rhoi Andi, a ble y gallaf oedi 20? Andi Peng: Yeah. Felly, os ydych yn cael mewn gwirionedd yn rhedeg y cod hwn, Nid wyf mewn gwirionedd yn ddim yn rhedeg y cod, mae hyn yn unig yma ar hyn o bryd. Pe bawn yn rhedeg y cod, fyddwn i lunio y cod, yn gwneud y ffeil, rhedeg, y cod ac yna byddai yn unig fod dau le i mi mewnbwn iddo. Yeah. Byddwch yn gweld guys pan fyddwch yn chwarae o gwmpas â'r cod eich hun. Mae pob hawl rydyn ni'n mynd i symud i mewn i'r adran nesaf o'r hyn byddwn yn ymdrin â heddiw. Rydym yn mynd i fynd dros yr hyn datganiadau amodol yn cael eu. Felly, os ydych guys yn cofio a galw i gof o ddarlith, Datganiadau amodol, pob maent yn set o gyfarwyddiadau i'r cyfrifiadur mewn ac os cyflwr penodol yn wir, chi weithredu cod tu mewn cyflwr hwnnw. Felly, yn y bôn Scratch-- y thema fawr o heddiw yw eich bod guys eisoes wedi gyd gweld y rhesymeg y tu ôl i bopeth ein bod yn ymdrin. A'r holl ydym yn ei wneud yw cyfieithu rhywbeth a oedd yn iawn 'n athrylithgar yn Scratch, ac yn galed codio ei i mewn i'r gystrawen byddwn yn defnyddio ar gyfer y dosbarth sydd yn C. Felly rhesymegol, pob bloc hwn oedd yw bod darn o cod iawn yno. Yeah. IAWN. Rydym hefyd yn cael i mewn i os ... arall datganiad sydd ychydig haen ychwanegol o gymhlethdod i'r datganiad os lle y cyfrifiadur yn edrych ar hyn ac yn gweld, os yw cyflwr hyn yn wir, yn ei wneud beth bynnag y tu mewn y ddau cromfachau, else-- felly math o fel 'r ball os Nid yw'n bodloni'r condition-- wneud hyn. Mae fel fforch yn y ffordd. Os yw'n bwrw glaw tu allan, yr wyf yn rhoi ar siaced glaw, arall unrhyw beth arall Nid wyf yn rhoi ar siaced glaw. A yw hynny'n rhesymeg gwneud synnwyr i bawb? Cool. Iawn. Felly, fel enghraifft caled o hyn y byddem yn gweld yn C yw os oeddwn i eisiau creu Oriau gwaith cartref a elwir yn amrywiol. Ac os oriau gwaith cartref yn llai na phump, yr wyf yn dweud Mae bywyd yn wych. Mae'n wych. Fodd bynnag, yn dweud Y frwydr yn real-- sef yr hyn yr ydym i gyd ar ddydd Llun hwn prynhawn fyny Gwyddoniaeth Hill yn yn ôl pob tebyg yn gwneud yn iawn now-- GYNULLEIDFA: [chwerthin] Andi Peng: Maent ffordd yr ydym yn Byddai, diolch i chi am hynny. Mae'r ffordd y byddem yn hardcode mae hyn yn C yw Os-- gadewch i ni dybio gennym eisoes newidyn o'r math Gelwir int Oriau gwaith cartref yma. Os oriau gwaith cartref yn llai na pump printf (), Mae bywyd yn wych. Cofiwch gadw / n oherwydd yr ydych am linell newydd ar ôl. Print Else, Y frwydr yn real. Ydy pawb yn deall sut Yr wyf yn transitioned o'r bloc hwn i mewn i bloc hwn o god? Cool. Iawn. Felly nawr rydym yn mynd i gymryd golwg ar Datganiadau Os lluosog yn gyfan gwbl. Felly gadewch i ni dybio y Diben y rhaglen hon oedd ein annog y defnyddiwr i gael gradd. Rydym yn brydlon gan ddefnyddio GetInt () am gradd, ac maent yn mewnbynnu gwerth, ac rydych am i arddangos pa fath o radd a maent yn cael. Felly, pe bawn yn cynllunio rhaglen, yr wyf yn yn golygu fel arfer ym mhob un o'n llygaid, 90-100 yw A, 80-90 yn B, ac yn y blaen ac yn y blaen. Beth sy'n bod ar hyn darn o cod sy'n nid yw'n gwneud yr hyn yr wyf am ei wneud. Yeah. SIARADWR 11: Mae ganddynt derfynau is, ond nid oes ganddynt derfynau uchaf. Andi Peng: Yn union. A wnaeth pawb yn clywed yr hyn a ddywedodd hi? Mae mynd i fod uchaf terfynau, ond dim cyfyngiadau is. Mae'n ddrwg gennym, ffordd arall o gwmpas, cyfyngiadau is, dim terfynau uchaf. Felly hoffech chi cymryd drywanu yn dweud beth fyddai'n cael ei argraffu ar hyn sgrin petawn yn rhedeg y cod hwn. SIARADWR 11: gwall? Andi Peng: gwall? Dyfalu mawr, ddim yn hollol gywir. A oes gan unrhyw un yn cael drywanu arall? Yeah, Aaron. AARON: Os ydych yn rhoi mewn rhywbeth sy'n fwy na 90, byddai'n dangos holl raddau a gawsoch. Byddai'n dangos i chi got an A, gennych chi B, gennych chi C. Andi Peng: Yeah. Dyna'n union gywir. Felly, byddai hynny'n wych. Fodd bynnag, maent yn ei gilydd unigryw, dwi'n meddwl. Pe bawn yn rhedeg y darn hwn o god. Ac yna gadewch i ni ddweud, yr wyf yn fewnbynnu y radd o 95. Felly 95 awr yn cael ei storio mewn y Int Gelwir gradd. Ac felly C yn iaith sydd yn rhedeg i fyny top i'r gwaelod, felly mae'n mynd i bob amser cyfnod yn arwain at y gwaelod. Felly, mae'n mynd i ddod yma, darllen os radd yn fwy na neu'n hafal i 90, printf () gennych chi A. Great, yr wyf yn cael 95, mae hynny'n fwy na 90. Mae'n mynd i argraffu, Cefais A. Mae'n mynd i edrych ar hyn os, mae'n mynd yn dweud, yn dda 95 hefyd yn fwy na 80, mae'n mynd i argraffu eich bod hefyd yn cael Got marc B ebychnod, ac yn y blaen ac yn y blaen blaen. Felly, fel y gallwn ni i gyd yn gweld, mae hwn yn bug cyffredin a allai ddigwydd pan fyddwn ni'n ysgrifennu cod i chwilio amdanynt. Dylai unrhyw un, unrhyw gwestiynau ar pam hynny oedd yn digwydd? Great. IAWN. Felly sut rydym yn atgyweiria hon, yn amlwg y cwestiwn nesaf rhesymegol. Wel, mae gennym rhain yn hardd pethau a elwir os arall os arall os arall ddatganiadau. Fel y gallwch weld, os ydych yn dymuno i newid y broblem honno, ydych yn awyddus i wneud pob un o'r amodau annibynnol ar ei gilydd, byddech yn ychwanegu arall ... os ddatganiad. Ac mae'r rhain o course-- meddwl amdanynt fel ysgolion, neu fel gris ar y ladder-- gallwch ychwanegu cynifer o'r rhain wrth i chi eisiau ar gyfer gymaint o amodau ag y dymunwch. Felly dyma, os wyf fewnbynnu radd i fod yn 95. Os radd yn fwy na 95, printf (), cefais A. Fawr. Mae'n mynd i weld arall ... os ac mae'n mynd i wybod, O na, Rwyf eisoes gyflawnodd y cyntaf arall. Rwy'n know-- neu'r Os-- cyntaf Gwn fod Nid oes rhaid imi edrych ar unrhyw un o'r rhain oherwydd bod un ohonynt eisoes wedi bod yn wir. Felly, mae'n mynd i redeg o'r brig i lawr. Cyn gynted ag yr un cyntaf yn wir, yna mae'n mynd i sgip dros yr holl weddill y arall ... IFS. A yw hynny'n gwneud synnwyr? Felly, yn y ffordd hon sydd gennych lefelau gwahanol o wirio a chyn gynted ag un ohonynt yn ffug, y gweddill hefyd, ni fyddant hyd yn oed yn gwirio. Cool. Iawn. Felly mae hwn yn enghraifft o wahanol fath o ddatganiad amodol rydym yn gweld yn llai aml, ond byddwn yn eu gweld ac yn eu defnyddio. Ac maen nhw'n aml yn fwy effeithlon ar gyfer achosion penodol. Felly, rydym wedi hyn a elwir datganiad switsh. Felly, cyn i ni ei gynnwys beth 'an arall datganiad, mae arall ddatganiad os .... Yma, mae gennym beth yw'r Gelwir datganiadau switsh. Felly, pan ydym yn defnyddio switsh datganiadau yn allweddol? Felly, mewn datganiad switsh, byddwch yn Fel arfer, fel arfer, mewn gwirionedd yn eich dim ond gyfanrifau mewnbwn ar gyfer eich newidyn eich bod yn gwirio. Felly, os wyf yn awyddus i edrych i weld os yw number-- penodol, er enghraifft gradd, os Ges i 90. Rwyf am iddo weld os dyna A, B, neu C. gallwn i gael achos yma. Fodd bynnag, mae'r achos wedi i fod yn gyson arall. Felly, yn yr ystyr hwn, mae'r Datganiad switsh dim ond gwirio am gydraddoldeb dau rif. Nid yw'n edrych am unrhyw beth arall. Felly dyna rhywbeth i fod yn iawn yn ofalus pan fyddwch yn defnyddio hyn. Felly yma, os oeddwn i eisiau edrych i weld os yw fy graddfa o 90 yn hafal i 90 neu 80 neu 70 neu 60, ac yna argraffu y radd gyfatebol, Byddwn i'n gallu ysgrifennu bod mewn datganiad switsh. Felly, mae'n mynd i ddod yma, siec yn cyfanrif hwn gyfartal i gyson hwn? Os nad yw, mae'n mynd i sgip. A yw'n gyfartal â cyson dau, ac yn y blaen ac yn y blaen, hyd nes y byddwch yn taro 'r ball, os nad oes un ohonynt yn gyfartal. Cyn gynted ag un ohonynt yn mynd i fod yn gyfartal, mae'n mynd i wneud hyn llinell o god a seibiant. Sy'n golygu mae'n mynd i daro hynny rhedeg, torri, a dim ond yn gyfan gwbl sgip i waelod y cod. Felly, yn yr ystyr honno y math o swyddogaethau fel arall, os os arall os ddatganiad. Felly dyma concrid enghraifft ar eich cyfer chi guys. Felly gadewch i ni dybio fy mod i eisiau creu newidyn a elwir blwyddyn sefydlu. Ac yr wyf yn awyddus i annog y defnyddiwr i fewnbynnu y flwyddyn bod eu hysgol ei sefydlu. Felly yr wyf yn gallu creu datganiad switsh yma. A gadewch i ni ddweud, yr wyf yn mewnbynnu 1636. Mae'r côd hwn yma yn mynd i weld newid blwyddyn a sefydlwyd sy'n hafal i 1,636. Mae'n mynd i weld achos 1636, oh hynny yn gyfartal, printf () Ni Os oes gennych yn yr ysgol honno i fyny i'r gogledd? Oherwydd ein bod yn cymryd yn ganiataol na fyddant yn ei wneud ewch yma os byddant yn mynd i Harvard, torri a sgipio hyd y diwedd. Pe bawn yn fewnbwn 1701, a oedd yn Yr wyf yn tybio pob un ohonom byddai mewnbwn, byddai'n hepgor yr achos hwn, yn dod i lawr at achos dau, sef 1701, ac argraffu Croeso i Iâl! Break, sgipio hyd y diwedd. Arall rydych yn ôl pob tebyg yn cymryd y cwrs hwn ar-lein lle y achos-- croeso anhygoel i Yale-- fod yn mynd i fynd i'r print diofyn, Helo Rhyngrwyd! Ac egwyl. Yeah. SIARADWR 12: Allwch chi ddefnyddio arall yn lle diofyn yno? Andi Peng: Na, oherwydd y ffordd y mae hyn yn swyddogaeth cyfan ei adeiladu switsh, y gystrawen chi angen defnyddio yn ddiofyn achosion achos. Mae fel y pe arall os, mae hyn yn un ei fod yn ball achos achos. Yeah. SIARADWR 13: Yr ydych efallai dweud hyn yn barod, ond gallwch gael mwy na dau achos? Andi Peng: Yeah, gallech gael cynifer o achosion ag y dymunwch. Meddyliwch am y peth fel yn union fel gan ychwanegu anfeidrol ar. SIARADWR 14: Os ydych yn troi 1,701 gyda 1,636, nid yw'n wir yn gwneud gwahaniaeth iawn? Dim ond ei fod yn mynd i gael ei wirio ar ei gyfer. Andi Peng: Mae hynny'n Cwestiwn da iawn. A byddwn yn cyffwrdd ar mae hyn yn ddiweddarach, ond dim ond yn gwybod bod yn y switsh datganiad yn cael ei infinitely-- 'i' yn fwy effeithlon nag y mae'n ac os arall os am ei fod yn gweithredu gan ddefnyddio gwahanol fath o swyddogaeth sy'n yn caniatáu i chi, er mwyn ei hanfod, i ddim ond neidio yn syth i'r achos mae angen i chi fod ar. Yeah. SIARADWR 14: Cool. Diolch. Andi Peng: Yeah SIARADWR 14: Ac nid gallech gwneud achosion fel ac yn fwy na. Andi Peng: Na Felly, dyna beth sy'n cyfyngu am y Datganiad switsh yw bod gennych i gael cysonion yn unig, dim ond cyfanrifau. Yeah. IAWN. Felly, mae hyn yn rhywbeth y byddwch yn Bydd guys yn dod ar draws yn llai aml o, ond roeddwn i eisiau gyflwyno yn achos. Gennym yma beth Gelwir gweithredwr teiran. Lle y bôn, 'i' jyst yn hoffi cael os datganiad grynhoi mewn un llinell. Yma, byddaf yn mynd ymlaen i'r llinell nesaf, mae'r dudalen nesaf, oherwydd mae'n haws gweld. Felly, yr ydym i gyd wedi gweld hyn yn iawn? Mae hyn yn eithaf hawdd i'w ddilyn. Os wyf eisiau gwneud newidyn enw llinyn a enwir s, os nifer penodol Rwy'n rhoi ei fod yn llai na 100, yr wyf yn eisiau i neilltuo isel i'r llinyn, arall yr wyf am i neilltuo uchel. Mae hyn yn fan hyn yn gwneud yr un peth yn union y rhai wyth linellau o god yn ei wneud. Felly dyma fi eisiau creu llinyn amrywiol. Ac mae hyn yn y cyflwr rwy'n gwirio, os bydd nifer yn llai na 100, yna byddwch yn aseinio gwerth isel, arall yn aseinio gwerth uchel. Bydd y rhain sleidiau fod ar-lein, dim pryderon os ydych yn guys ddim yn cael hyn i lawr. Mae hyn yn unig yn ffordd symlach, yn fwy ffordd effeithlon o god ysgrifennu. IAWN. Felly nawr rydym yn mynd i fynd i mewn yr hyn, i'r rhan fwyaf o bobl yn debyg iawn, yn ddryslyd iawn beth i feddwl amdano ar y dechrau. Mae'r adran ddolen. Felly heddiw, rydym yn mynd i siarad tua tri math o dolenni. Rydym yn mynd i ddechrau gyda tra dolen, yna siarad am do tra dolen, ac yna yn siarad am ar gyfer dolenni. Felly y bôn, i'r rhai mwy dysgwyr gweledol i maes 'na, gennym, yn y bôn, mae graffigol portread o'r hyn y dolen tra yn ei wneud. Felly, mewn rhaglennu, byddech yn dechrau ac yn mynd i mewn i'r ddolen ar bwynt penodol. Yn gwirio amod. Ac os bydd y cyflwr yn wir, chi weithredu y cod y tu mewn. A ydych yn dod yn ôl o gwmpas ac yn gwirio. Os yw'n dal i fod yn wir eich bod yn cadw rhedeg cod hwn o gwmpas ac o gwmpas mewn cylch. Fodd bynnag, yr ail fod y cyflwr yn dod yn ffug, ydych yn mynd i dorri a diwedd ar y ddolen. Ac mae hyn yn ei hanfod yr cystrawen ydych yn mynd i'w defnyddio. Er bod cyflwr penodol yn yn wir yn gwneud hyn, os nad yw'n wir, ydych yn mynd i neidio i'r diwedd a symud ymlaen gyda eich rhaglen. IAWN. A oes unrhyw un gennych enghraifft ar yr hyn y gall o bosibl ddigwydd os wyf yn ceisio rhedeg y darn hwn o god? Gyda llaw, SAJ-- dyna Scaz, Andi, Jason-- byddwn yn cymeradwyo ein negeseuon e-bost, Cariad, Saj. Dyna ni. IAWN. Dylai unrhyw un gennych enghraifft, neu os oes gennych syniad ar yr hyn y byddai hyn yn argraffu? Fath o gwestiwn tric. Felly dyma, cofiwch y cyflwr rydym yn gwirio amdano yw tra wir. Felly, er bod hyn yn wir, 'i' mynd i'r wasg, Rwyf wrth fy modd Saj! A oes unrhyw bwynt lle y byddem newid hyn i unrhyw beth arall? Na, dde? Felly, yn fan hyn, rydym wedi dod ar eu traws beth sydd yn ôl pob tebyg mynd i fod yn bugging llawer o eich rhaglenni, mae'r dolen ddiddiwedd. Fe welwch fod os ydych yn rhedeg y darn hwn o god, dim ond ei fod yn mynd i gadw argraffu, Rwyf wrth fy modd Saj! Er ein bod yn gwerthfawrogi'r gefnogaeth, nid ydym am eich cyfrifiaduron i ddamwain oherwydd eich bod cadw argraffu Rwyf wrth fy modd Saj! Felly os gwelwch yn dda, os gwelwch yn dda, osgoi'r dolen ddiddiwedd oherwydd nid yw byth yn mynd i werthuso i ffug a byth rydych yn mynd i adael y ddolen. Ac ydych chi'n mynd i yn cael ei sugno i mewn am byth. Cool. IAWN. Yr ail fath o ddolen byddwn yn siarad amdano heddiw yw'r do tra ddolen, wneud tra dolen. Ac fe'i gelwir yn do tra dolen oherwydd bod gennych do ac sbel. Felly, mae hyn yn eithaf tebyg i ychydig dolen, ond ychydig yn wahanol. Yma, rydych chi'n mynd i'w wneud beth bynnag y tu mewn o hyn tra bod cyflwr penodol yn wir. Felly, os wyf yn C a'r cyfrifiadur rwy'n yn rhedeg i lawr y darn hwn o god, Rwyf yn edrych ar y brig. Rwy'n mynd i C, yr wyf yn dweud y peth hyn. Ac yna yr wyf yn gwirio, er bod hyn yn wir, rhaid i mi ailadrodd. Ond er bod hyn yn ffug, yna rwyf yn symud ymlaen ac yr wyf byth yn mynd yn ôl at y ddolen eto. A all unrhyw un gymryd drywanu ar yr hyn y gwahaniaeth rhwng y dolen hwn a'r un yr ydym yn dim ond yn edrych arno oedd yn ymarferol. Yeah. SIARADWR 15: Y cyflwr dod ar ôl yn lle o'r blaen? Andi Peng: Yn union. Felly dywedodd y cyflwr dod ar ôl, nid cyn hynny. Yn y pen draw, mae'r gwahaniaeth rhwng hyn a'r ddolen tra yw eich bod yn jyst yn mynd i wneud beth bynnag y tu mewn hyn heb ystyried a yw eich cyflwr yn neu beidio yn wir, ac yna gwirio'r cyflwr. Felly, yn yr achos hwn, rydych yn always-- yn y modd hwn, eich bod bob amser yn gwneud yn siŵr beth bynnag sydd y tu mewn yn rhedeg o leiaf unwaith cyn edrych i weld os ydych am iddo redeg eto. A dyma yn enghraifft o bryd byddem yn ei ddefnyddio. Felly, er enghraifft, os wyf am gael newidyn o'r math int oedran a enwir, ac yr wyf am i ysgogi y defnyddiwr ar gyfer eu hoedran, Rydw i'n mynd i wneud printf () Beth yw dy oedran? oedran = GetInt (), a oedd yn yn annog y defnyddiwr. A bydd rhai pobl yn wirioneddol yn blino. Ac nad ydych am chwilod yn eich rhaglen rhywun mewnbynnu fel, oh Rwy'n negyddol 4 oed neu beth bynnag. Yn yr achos os ydynt yn wneud hynny, mae hyn yn gwerthuso yn wir, sy'n golygu fy mod i'n mynd i rhaid i gadw i fynd yn ôl a gwneud hyn. Felly, mae hyn yn mynd i gadw ail-annog y defnyddiwr i roi i chi fel go iawn Rhif oedran a 'i' mynd i gadw i fynd yn ôl a redoing hyd nes eu bod yn rhoi oedran go iawn i chi mwy nag un, neu beidio sero. Felly awgrym, awgrym. Bydd hyn yn iawn, yn ddefnyddiol iawn ar gyfer un o'ch problemau PSet. Yeah. SIARADWR 16: Wps, sori. Andi Peng: Yep. SIARADWR 16: A oes, nid i fod yn asshole, but-- Andi Peng: Dim pryderon. SIARADWR 16: --are yno rheolau gwahanol yma, neu wnaethoch chi jyst yn anghofio i roi'r dyfyniad? Andi Peng: Oh Yeah. Mae'n ddrwg gennym, mae hynny'n hollol fy ddrwg. Dyna oedd yn bendant i fod i fod dyfynbris. Dal Da. Na fyddai wedi rhedeg. IAWN. Felly, y math olaf o dolen byddwn yn siarad am ac, yn y pen draw, caredig y mwyaf gymhleth yw'r am ddolen. Peidiwch â phoeni os nad ydych yn ei wneud gwybod beth mae hynny'n ei olygu. Mae'n eithaf ddryslyd ar y dechrau. Byddwn yn mynd dros enghraifft. Y cyfan sydd yn digwydd mewn i ddolen yw bod gennych tri datganiad eich bod yn mynd i gynnwys. Felly, ar gyfer beth penodol, rydych yn mynd i ymgychwyn newidyn. Rydych yn mynd i ychwanegu'r amod i a fydd yn ddolen hon yn cadw rhedeg. Ac yna, ar ddiwedd y dolen, rydych chi'n mynd i'w ddiweddaru. Gallwch ddiweddaru y newidyn eich bod am gadw golwg ar. Felly, rydym fel arfer yn defnyddio ar gyfer dolenni ar gyfer pan fyddwn eisiau rhedeg dolen ar gyfer swm penodol o amser ac yr ydym eisoes yn gwybod, O rwyf am dolen hwn i weithredu fel 10 gwaith, yna rydych do-- byddaf yn mynd dros enghraifft ar y dudalen nesaf. Felly dyma er enghraifft, mewn Scratch, os ydych yn eisiau rhywbeth i ailadrodd 10 gwaith, i gyd oedd gennych i'w ddweud oedd, ailadrodd 10 gwaith Rwyf wrth fy modd Saj! sydd yn fwy derbyniol yn dangos y gefnogaeth i ni yn hytrach na'r dolen ddiddiwedd. Yma, sut y byddech newid i C ac ysgrifennu hynny yw ar gyfer int-- fy mod i'n mynd i greu neu ddatgan newidyn o'r math int a enwir i. Rydw i'n mynd i ymgychwyn i 0, felly fi = 0; ac mae hyn yn mynd i fod fy nghyflwr. Felly, fi yn llai na 10. Ac yna yn y end-- y datganiad diwethaf eich bod yn mynd i gael yn ddiweddariad o beth sy'n digwydd i'r ff newidyn ar ddiwedd eich am ddolen. Felly mae'n fath o ddryslyd, oherwydd gwahanol rannau o'r llinell hon yn digwydd ar wahanol math o ddolen. Ond byddaf yn mynd dros enghraifft pseudocode o hynny ac efallai esbonio hyn dim ond ychydig yn well. Felly dyma. Dyna y ddolen rydym jyst yn gweld. Yn y bôn yn pseudocode, beth yn digwydd yn y rhaglen hon, yn gyntaf i ddim yn creu ff, ymgychwyn i 0. Im 'yn gwirio i weld os i yw llai na 10, ac os felly y tro cyntaf, mae'n gan fod 0 yn llai na 10. Felly mae'r ddolen yn mynd i redeg. Ac yna dwi'n mynd i argraffu y llinell hon. Ac yna ar ddiwedd y llinell hon, ar y dde yma, yr wyf i'n mynd i wneud gynyddiad i, fi ++, bob cyfrif sy'n incrementing iddo gan un. Felly, fi yn awr yn 1. Oherwydd ei fod ar un adeg 0, os wyf cynyddiad 'i', 'i' yn awr 1. Ac yna dwi'n mynd i fynd yn ôl i gychwyn y ddolen ac yr wyf yn edrych ar y cyflwr. A yw'r cyflwr yn dal yn wir? Oes, mae 1 yn dal i fod yn llai na 10. Felly, mae'n mynd i argraffu'r dudalen hon, unwaith eto, mynd ac yna gynyddiad i, a gwirio y cyflwr yn barhaus, yn barhaus, hyd nes y byddwch yn y pen draw yn cael i'r pwynt lle i yw 10. Rydych yn mynd i argraffu'r hyn 10 gwaith ac yna i yn mynd i fod yn gyfartal 10. Rydych yn mynd i wirio cyflwr. A yw 10 yn llai na 10? Na, sy'n anwir. Felly, nid yw dolen hyn yn mynd i'w redeg, mae'n mynd i dorri, ac rydych chi'n mynd i parhau ar gyda eich cod. Felly, fel y gallwch weld guys, mae hyn yn yn enghraifft wirioneddol wych dolen gallwch rhaglen yn hynny yn rhedeg am swm penodol o weithiau. Mae pob un yn glir? Yeah. SIARADWR 17: Beth am cynyddiad gynt a chynt, mae'n wahanol codio? Andi Peng: Yr ydych can-- byddwn yn mynd dros hyn yn y sleid nesaf. Cwestiwn da. A yw anyone-- cyn i mi symud on-- unrhyw un o gwbl ddryslyd, gan fod hwn yn gysyniad anodd iawn. Dim pryderon, os you're-- OK. Cool. Iawn. Dim ond sleid cyffredinol. Mae'r ddolen tra yn gwneud y un peth yn union yr oedd am ddolen. Mae'n dim ond ysgrifennu yn wahanol. Gallwch chi guys ddarllen y sleidiau yn eich hwylustod yn nes ymlaen. Ond dim ond yn gwybod bod yna lluosog ffyrdd o ysgrifennu yr un peth i ddigwydd gyda gwahanol dolenni. IAWN. Felly, yn awr rydym yn cael yn y cwestiwn o beth os oes gennym dolen tu mewn i ddolen. Rydym yn mynd i go iawn Math o stwff Dechreuol yma. Pan fyddwch am wneud pethau lluosog adegau tu mewn bethau eraill bod yn gwneud pethau sawl gwaith, byddwch yn eisiau hyn a elwir yn nythu ar gyfer dolen. I'r rhai ohonoch sydd yn gweld hwn yn gyntaf ac cael ddryslyd iawn, cyfan yr ydym yn ei wneud yma yn cael ar gyfer dolen lle mae gennym amrywiol o res. Ond tu mewn iddo, mae gennym hefyd un arall i ddolen o colofn o'r enw newidyn. Ac yr wyf yn hynod awgrymu pob un ohonoch sy'n cael eu drysu i gadw yn gyntaf track-- tynnu hyn allan, tynnu hyn allan. Peidiwch â cheisio reswm yn unig drwyddo, tynnu 'ii maes. Yn eich pen, ar y darn hwn o papur, neu beth bynnag, rhes ysgrifennu, cadw golwg ar yr hyn rhes yn hafal i. Ysgrifennu colofn, cadw golwg o'r hyn y golofn yn hafal i. Ac yn cadw golwg ar yr hyn sy'n argraffu gyda phob ailadroddiad. Mae pob iteriad y ddolen hon, mae pob ailadrodd y ddolen mwy o faint, jyst cadw yn dilyn y rhesymeg. Ac yr wyf yn gwarantu i chi, byddwch wrth eich bodd yr hyn yr ydych yn gweld, oherwydd mae hefyd yn iawn perthnasol ar gyfer eich setiau problem. Cool. Iawn. Felly, y peth mwyaf pwysig eich bod guys yn debyg i gyd meddwl am ar hyn o bryd, yw eich Problem Gosod 1s, sydd i fod Dydd Iau / Gwener. Yn eich rhaglen water.c, awgrymu eich bod yn mynd i gael i annog y defnyddiwr ar gyfer mewnbwn. O fewn eich rhaglen mario.c rydych yn mynd i gael i ddefnyddio nythu ar gyfer dolen, sef mae i dolen tu mewn i ddolen, i argraffu bloc o pyramid, yn y bôn fel beth Mario wedi i neidio drwyddo. Ac yna y tu mewn i'ch greedy-- neu efallai Gwneud i Newid, os unrhyw un ohonoch guys erioed wedi clywed am that-- rydych yn mynd i gael i fod yn iawn gofalus o werthoedd pwynt arnawf cyntaf. Cofiwch degolion fel y bo'r angen a Nid yw gyfanrifau yn yr un peth. Cadwch olwg ar pa un yw pa. A ydych yn mynd i ddefnyddio Datganiadau amodol, yn ogystal. Mae pob, peth olaf y dde. Mae gen i ychydig o funudau ar ôl. Arddull. Felly, mae hyn yn rhywbeth nad yw'n mewn gwirionedd yn effeithio ar effeithlonrwydd, neu rhedeg gwirioneddol eich cod. Fodd bynnag, mae'n ein effeithio fel eich graders, fel eich darllenwyr. Mae'n effeithio ar eich hun, os ydych yn ceisio dod o hyd yn broblem. Mae'n effeithio darllenadwyedd eich cod. Felly arddull, fel pan fyddwch yn ceisio arddull traethawd ar gyfer Saesneg, os ydych Nid oedd gan paragraffau, gennych bopeth caredig o cymysgu gyda'i gilydd ar un llinell, mae'n yn ei gwneud yn anodd iawn i unrhyw un i ddarllen eich traethawd, hyd yn oed os eich pwyntiau yn gadarn yn rhesymegol. Yr un peth yn rhaglennu. Gallwch gael ofnadwy aneglur cod y bydd Scaz cwmpasu, a gall fod yn dal redeg a'i swyddogaeth. Ond i ni, fel eich CA hyfryd, a fydd yn darllen ac yn gwerthuso eich PSets, nid yw hynny'n neis iawn. Felly os gwelwch yn dda, er mwyn ohonom a chi eich hun, pan fyddwch yn ceisio at atgyweiria yn broblem yn eich cod, ac rydych yn ceisio ei darllen eich cod eich hun, gwnewch yn siŵr eich bod yn dilyn rhai confensiynau ein bod yn mynd i fynd drosodd. Felly gyntaf. Rhowch enwau ystyrlon eich newidynnau. Os ydych am i storio yn gyfanrif Gelwir oedran, os gwelwch yn dda ei enw oedran. Peidiwch â enwi uchder. Pan fyddwch yn ceisio storio oedran o uchder, mae'n gwneud popeth ddryslyd iawn i ni. Nid ydym yn hoffi cael eu drysu. Dydych chi ddim yn hoffi cael eu drysu. Nid oes unrhyw un yn hoffi i gael eu drysu. Os ydych yn mynd i greu rhywbeth, ei enw yn rhywbeth ystyrlon. Fodd bynnag, mewn ar gyfer dolen, sengl newidynnau gymeriad fel arfer yn iawn. Ac mewn ar gyfer dolen, os ydych am dim ond i, a j, k, mae croeso i ddim ond gwneud hynny. Initialization gyson. Felly beth mae hynny'n ei olygu? Mae hynny'n golygu dechnegol, yn ddamcaniaethol, gallwch gychwyn a chreu lluosog newidynnau ar yr un llinell. Felly, er enghraifft, gallaf greu yn gyfanrif o'r enw scaz_age, a cyfanrif a elwir andi_age = 20, ac yn gyfanrif o'r enw jason_age ar yr un llinell. A Gallaf hefyd yn neilltuo dim ond un o'r hwy ac nid y lleill i werthoedd. Gofynnwn i chi os gwelwch yn dda yn gwneud hynny. Oherwydd dyma ydych chi wedi eu creu yn y bôn tri newidyn, ond dim ond un ohonynt mewn gwirionedd mae ganddo werth. Ac yna pan fyddwn ni'n ceisio darllen eich cod, neu os ydych yn ceisio at atgyweiria yn broblem yn eich cod, mae'n ddryslyd iawn i ddilyn. Felly, dim ond ar gyfer eich darllenadwyedd, am ein ddarllenadwy, peidiwch â gwneud hynny. Bresys cyrliog gyson. Mae rhai pobl yn hoffi i roi eu bresys cyrliog mewn gwahanol leoedd. Nid oes llawer o bwys. Jyst gwnewch yn siŵr eich bod yn gyson yn eich cod hun ar ble rydych yn hoffi ei roi iddynt. Bylchiad gyson. Os byddwch yn rhoi lle ar ôl ar gyfer dolen, bob amser yn gwneud hynny. Ddim yn union fel fath o yn ei wneud yn rhai lleoedd, peidiwch â gwneud hynny mewn eraill. Dim ond fod yn gyson. Yn ail, os byddai unrhyw un yn hoffi i ddarllen y Canllaw Arddull CS50, mae gennym ganllaw arddull yn swyddogol y yn dweud wrthych i gyd o'r confensiynau hyn, a llawer mwy. Mae'n ar-lein. Mae fel cs50.net/style neu rywbeth fel 'na. Gallwch google ef. Cysondeb yn allweddol. Felly peidiwch â phoeni beth pobl eraill yn ei wneud, dim ond gwnewch yn siŵr eich bod yn gyson o fewn eich cod eich hun. Dylai unrhyw un gennych unrhyw gwestiynau am hynny? Yeah. SIARADWR 18: Felly, y peth cywir yn ymwneud â initialization yn unig yn eu cael i gyd mewn ar wahân llinell, yw bod yr hyn yr ydych yn ei ddweud? Andi Peng: Felly, yr wyf yn anaml wedi i hyn ddigwydd. Ond os ydych yn dymuno, os ydych yn dymuno i fod fel arbed lle yn eich cod, neu beth bynnag, gallwch wneud hyn. Rydym yn gofyn i chi nid yn unig yn ymgychwyn un peth ac nid y lleill. Felly, os ydych am wneud scaz_age int, int andi_age, jason_age int, mae hynny'n iawn. Nid yn unig yn ymgychwyn un ac nid y lleill i gyd. Cwestiynau? Iawn. Rydw i'n mynd i basio oddi ar y meicroffon, ac mae'r pwyntydd laser, ac mae'r baton i Scaz yn y fan hon. Mae hyn yn lletchwith. Dyma hi. BRIAN SCASSELLATI: Diolch yn fawr. Sut mae bod ar gyfer sain? Sound yn dda? . Ardderchog. IAWN. Felly, hi bawb. Rydw i'n mynd i geisio gweithio drwy enghraifft ymarferol gyda chi. Ac rydym yn mynd i ddefnyddio CS50 yn amgylchedd datblygu, yr hyn a elwir yn yr Amgylchedd Datblygu Integredig. A ydych wedi gweld hyn Dangosodd yn y ddarlith. Ac yn Problem Set 1, rydych yn mynd i gael cyfle i'w ddefnyddio, a chwarae o gwmpas gyda iddo, ac yn cael gyfarwydd ag ef, oherwydd ein bod yn mynd i ddefnyddio ei drwy weddill y semester. Felly, yn IDE hwn, mae'n rhaid i chi beth edrych yn fel porwr ffeil draddodiadol iawn drosodd ar un ochr. Rydych chi wedi got a dogn i fyny top ble rydych yn mynd i weld eich cod ffynhonnell, eich Cfile, mae'r cod eich bod yn ysgrifennu. Ac i lawr gwaelod, wnewch chi helpu cael derfynnell ffenest pa byddwch yn defnyddio i y ddau yn llunio eich rhaglen ac i redeg neu weithredu eich rhaglen. IAWN. Felly, dim ond i roi ychydig o ni sylfaen, yn y ffenestr terfynell, ydych yn mynd i fod yn gan ddefnyddio set o orchmynion sy'n cael eu gorchmynion safonol drwy gydol y rhan fwyaf o systemau Unix neu Linux. Ac felly os ydych chi wedi defnyddio erioed unrhyw ffurf ar Unix, Ubuntu, neu unrhyw un o'r blasau eraill, mae'r rhain yn mynd i edrych yn gyfarwydd. Os nad oes gennych, peidiwch â phoeni. Does dim byd cymhleth yn eu cylch. Maent yn unig gan ddefnyddio gwahanol cystrawen, mae enwi gwahanol confensiwn nag yr ydych wedi ei weld o'r blaen. Felly, i restru allan ffeiliau o fewn cyfeiriadur penodol, eu bod yn mynd i ddefnyddio o'r enw gorchymyn ls, neu restr. Os ydych chi eisiau gweld popeth gyda'r holl fanylion, byddwch yn defnyddio gorchymyn ddadl unol â ls -L. A bydd sy'n dangos popeth yr ydych yn yn fwy manwl, gan gynnwys y caniatadau i ffeil. I newid cyfeiriadur, byddwch yn defnyddio'r gorchymyn cd. A byddwch yn gallu newid cyfeiriadur y ddau i fynd at eich cyfeiriadur cartref. Dyna dim ond cd i gyd gan ei hun, cd gyda dau Bydd dotiau dychwelyd chi i fyny un lefel eich cyfeiriadur blaenorol. A ydych hefyd yn gallu cd at subdirectory trwy deipio cd ac enw'r y subdirectory. Gallwch hefyd greu cyfeiriaduron newydd. Ac rydym yn mynd i gerdded drwy hyn mewn dim ond munud. Ond dim ond i roi popeth ar y sgrin. Fel y gallwch eu gweld. Byddwch hefyd yn cael y gallu i drin ffeiliau yn uniongyrchol o'r llinell orchymyn. Byddwch yn gallu copïo nhw, i symud hwy, neu i gael gwared arnynt, hynny yw, yn effeithiol, i'w dileu. Mae'r IDE CS50 yn rhoi i chi y llawn pŵer dadleuon llinell orchymyn. Ac mae hynny'n golygu y gallwch hefyd gwneud pethau peryglus iawn. IAWN. Er enghraifft, gallwch tynnu, neu fod yn dileu, ffeil heb ofyn am gadarnhad. A gallwch hyd yn oed gael gwared ar recursively-- dyna y llinell doriad r flag-- yn gyfan subdirectory a'i holl gynnwys. IAWN. Maen nhw'n rhestru yn goch oherwydd eich bod Dylai feddwl "Perygl" bob tro byddwch yn gweld y pethau hynny. IAWN. Iawn. Nawr yn olaf, y pethau sy'n cael eu mynd i fod yn wirioneddol werthfawr i chi, a oes yna ychydig o driciau da ei wybod fel eich bod yn mordwyo drwy'r ffenestr terfynell. Yn gyntaf, gallwch glir y sgrin yn unrhyw bryd drwy jyst deipio yn glir. A ydych yn mynd i weld mi wneud hynny yn aml iawn. Gallwch hefyd jyst arddangos testun o ffeil drwy deipio mwy ac yna enw'r ffeil. Yna byddwch yn gallu sgrolio yn ôl ac ymlaen â hynny yn unig gyda'r spacebar a saeth allweddi. Os oes gennych chi, fel y gwnaethom heddiw yn y ddarlith, rhaglen sy'n cael ei rhedeg yn barhaus mewn dolen ddiddiwedd, byddwch yn Gall atal y rhaglen rhag gweithredu trwy deipio mewn rheolaeth, sy'n cael ei dal i lawr Rheoli-C. Ac efallai y bydd rhaid i chi ei wneud mae hyn sawl gwaith. Mae'r cyfrifiadur yn cael bell o'ch blaen. A ydych Weithiau bydd angen i rhoi cwpl o geisiau cyn y bydd yn mewn gwirionedd yn dod drwodd. Byddwch hefyd yn gallu didoli drwy'r gorchmynion ond eich bod yn teipio gan ddefnyddio'r fyny allweddol, arrow allweddol, ac yna mae'r allwedd saeth i lawr. A beth fwyaf defnyddiol yn lle hynny o teipio allan enwau ffeiliau hir, byddwch yn gallu i ddefnydd Tab i AutoComplete ychydig o gyfarwyddiadau. Nawr rydyn ni'n mynd i ddangos pob un o'r rheiny mewn dim ond eiliad. Felly, os nad ydych yn cofio nhw, peidiwch â phoeni. Mae'r rhain yn bethau yr ydych yn chi helpu codi a defnyddio wrth i ni fynd ymlaen. IAWN. Felly, yn C-- yn wahanol i Scratch-- C yn iaith llunio. Mae hynny'n golygu ein bod yn mynd i gymryd yn ffynhonnell file-- dyna'r testun eich bod yn ysgrifennu, y gorchmynion eich bod yn ysgrifennu, mae'r printf () datganiadau, mae'r dolenni, popeth else-- ac rydym yn mynd i gymryd y ffeil a'i roi i ffwrdd i raglen o'r enw y compiler. Bydd y compiler wedyn yn cymryd bod testun yr ydych wedi ysgrifennu ac yn ei gyfieithu i'r y cyfarwyddiadau deuaidd bod eich cyfrifiadur yn mewn gwirionedd yn mynd defnyddio. Mae hynny'n cael ei alw y gwrthrych neu y ffeil gweithredadwy. Os ydych yn edrych ar y ffeil, rydych yn mynd i weld y cod eich bod wedi ysgrifennu. Os ydych yn edrych ar y ffeil, rydych yn mynd i weld dilyniant ar hap o gymeriadau sy'n gwneud dim synnwyr o gwbl. Mae hynny oherwydd dyma'r deuaidd. Nid yw'n golygu i chi gael darllen. Fodd bynnag, bydd unrhyw tro y byddwch eisiau rhedeg rhywbeth, yr hyn yr ydych chi'n mynd i fod yn rhedeg yn y ffeil gwrthrych. Felly, pan fyddwn yn gweithio gyda'r rhain ffeiliau, byddwn yn ysgrifennu ffeil yn C. Yna byddwn yn llunio ei, gan ddefnyddio gorchymyn fel gwneud a fydd yn galw y chlang compiler ar gyfer yr iaith C. A fydd yn cynhyrchu gwrthrych ffeil, fel allan, neu yn yr achos hwn, yr enw, fy ffeil, fy mod i wedi rhoi i mewn. Iawn. Felly gadewch i ni mewn gwirionedd yn rhowch gynnig ar hyn. Felly, yr wyf yn dod i fyny ag enghraifft o'r hyn yr oeddwn am ei roi cynnig. Ac un o'r pethau y hudo mi yw animeiddio. Felly rydym yn mynd i geisio gwneud ychydig o animeiddio gan ddefnyddio dim ond cymeriadau ASCII. Cymeriadau gallwn argraffu yn hawdd yn awr. Felly dyma yw fy ymgais gorau ar greu ar eich cyfer chi yr animeiddiad o bunny yn rhedeg drwy'r glaswellt tal. Yno y mae. IAWN. Felly nid mae'n rhedeg eto, ond ei fod yn yn sefyll yno yn y glaswellt tal. Nawr, os wyf yn animeiddiwr, yn yr hen ysgol Fersiwn o animeiddio, yr hyn yr wyf yn Byddai ei wneud yw y byddwn yn cynhyrchu llun o bunny hwn yn y glaswellt. Ac yna byddwn yn cynhyrchu picture-- arall yr hyn y maent yn galw un arall cell-- bod Roedd y gwningen dim ond ychydig yn symud. Ac yna un rhan o dair yn un nad oedd gan y Symudodd bunny ychydig ymhellach. A byddwn yn cynhyrchu cyfan dilyniant o celloedd hyn. Mae rhai lle mae'r gwningen i ben ar yr ochr chwith. Ac yna symud yn araf, un gan un tuag at y canol. Ac yna o ganol drosodd i'r dde. Ac os wyf yn hynny, mewn gwirionedd lwcus, gallwn roi at ei gilydd a gallwn i animeiddio nhw. Ac mae fy gwningen rhedeg drwy'r glaswellt. Dyna fy PowerPoint gwych tric ar gyfer y diwrnod. IAWN. Felly, mae hyn cystal ag y mae'n mynd. IAWN. Felly, dyma un mwy o amser, dyma yw ein bunny yn rhedeg drwy'r glaswellt. SIARADWR 19: Eto. BRIAN SCASSELLATI: One mwy o amser, iawn. Mae eich cwningen. IAWN. Felly heddiw beth rydym yn mynd ei wneud yw ein bod yn mynd i geisio awtomeiddio'r broses o gynhyrchu celloedd hyn. Ni fyddwn yn hollol yn cyrraedd y pwynt o yn gallu rhoi nhw i gyd at ei gilydd. Ond, rydyn ni'n mynd i geisio awtomeiddio'r broses o gynhyrchu dilyniant hwn. Ac mae hyn yn llawer o'r hyn animeiddio heddiw yn debyg. Hynny yw, nad ydych yn gwneud pethau o angenrheidrwydd drwy dynnu popeth â llaw. Rydym yn defnyddio cyfrifiadur i awtomeiddio rhannau o'r broses honno. IAWN. Felly gadewch i mi newid drosodd yn awr at ein IDE CS50. Ac yr wyf wedi creu ar gyfer us-- a gadael mi chwyddo i mewn fan hyn ychydig yn bit-- rwyf wedi a grëwyd i ni yn fan cychwyn. Bob tro yr ydym yn gofyn i chi eistedd i lawr ac ysgrifennu darn o god, yr hyn rydym yn wirioneddol yn gofyn i chi ei wneud yn rydym yn gofyn i ddatrys problem. A'r modd y dylech yn meddwl am wneud hynny yw drwy ddechrau gyda rhai rhan syml o'r ateb hwnnw. Ac yna adeiladu allan o'r rhan honno. A dyna beth yr ydym yn mynd i'w wneud heddiw. Felly yn hytrach na cheisio i gyd ar unwaith i ysgrifennwch y criw cyfan o cod sy'n mynd i gynhyrchu rhai 10 celloedd animeiddio, rydym yn mynd i ddechrau yn lle hynny gydag un darn sy'n gweithio. Ac yna byddwn yn adeiladu ychydig bach o gwmpas y ac ychydig yn fwy ac ychydig yn fwy. Nawr bod y peth da am datrys problemau fel hyn yw y bydd yn caniatáu i chi ddechrau bob amser gyda rhywbeth eich bod yn gwybod yn gweithio ac yn cyflwyno un newid graddol. A dyna ffordd wych i ddysgu sut i roi cod, oherwydd bod gan bob tro y byddwch yn gwneud newid, byddwch yn gweld pa effaith a gaiff. IAWN. Felly dyma ein man cychwyn. IAWN. Felly, ar ddechrau fy ffeil, Rwyf wedi stdio.h #included hash. Dyna fel y gallaf gael y printf () yn gweithio. Yna mae gen i fy mhrif swyddogaeth. Ac mae hyn yn dal i edrych ychydig yn arcane neu aneglur i rai ohonoch. Mae hynny'n iawn. Mae'r holl mae'n ei ddweud yw bod y prif swyddogaeth yn cymryd yn golygu dim arguments-- ddi-rym nid oes dim yn C. Ac mae'n yn dychwelyd yn ôl confensiwn yn gyfanrif. Prif bob amser yn dychwelyd yn gyfanrif, Fel arfer côd dweud pethau aeth yn dda, neu nid oedd yn mynd yn dda. IAWN. Ond mae prif rhaid iddo gael bod ffurfio i ni ar hyn o bryd. Yna i wedi rhoi mewn tair llinell o god. Ac ynghyd â phob llinell cod, dwi wedi rhoi sylw. Bellach yn un o'r pethau y byddwn yn mynnu eich bod yn gwneud, ac mae'n fath yn bwysig arferion rhaglennu, yw bob amser yn gwneud sylwadau eich cod. Bob amser yn ysgrifennu mewn Sylwadau Saesneg rhywbeth eich bod yn meddwl bod y cod i fod i wneud. Y ffordd honno, yn nes ymlaen pan fyddwch yn dod yn ôl i , gallwch edrych arno a gallwch ddweud, oh, yr wyf yn cofio yr hyn yr wyf yn ceisio ei wneud gyda hyn. Neu pan fydd TA yn eistedd i lawr gyda chi i ceisio eich helpu chi ar oriau swyddfa, gallant edrych ar hyn a mynd, yr wyf yn gweld yr hyn yr ydych yn ceisio'i wneud, ond yn hytrach mae hyn yn beth sy'n digwydd mewn gwirionedd. IAWN. Felly, mae gen i dair rhan i fy cod, Rydw i'n mynd i yn gyntaf oll brint rhai dotiau ar y dechrau. 'N annhymerus' wedyn yn argraffu fy bunny hynod ffansi. Ac yna ryw ychydig o ddotiau ar y diwedd. A dylai'r rhain tri datganiad print edrych yn gyfarwydd i chi ar y pwynt hwn. Mae pob fy mod yn gwneud yn pob un ohonynt yn rwy'n argraffu dilyniant o gymeriadau. Does dim newidynnau sy'n gysylltiedig. Mae popeth yn unig yw wastad. IAWN. Felly, os byddaf yn mynd i lawr yn awr at fy terminal-- gadewch i ni weld os gallaf fynd yn ôl yma out-- ac yr wyf i'n mynd i deipio yn glir eto. SIARADWR 20: A ydym yn defnyddio'r slaes dwbl i wneud sylwadau? BRIAN SCASSELLATI: All defnyddiwch y ie double--. Mae ffyrdd lluosog i gadael sylwadau yn C. Un ffordd yw defnyddio'r slaes dwbl. Y llall yw defnyddio slaes a seren ac yna caewch gyda seren a slaes. Iawn. Yn gyntaf oll, yr wyf i'n mynd i dechrau lywio o gwmpas fan hyn. Felly, os wyf yn mynd i fy cyfeiriadur cartref, Rwyf wedi newid cyfeiriaduron yno, Rydw i'n mynd i edrych i weld beth sydd yn y cyfeiriadur, ls, rhestrwch allan. Dw i'n mynd i weld fy mod i wedi got dau subdirectories. Gadewch i ni wneud hyn ychydig yn fwy yma fel y gallwn ni i gyd ei weld. Gallaf weld fy mod i wedi got dau subdirectories. 'N annhymerus' yn newid cyfeiriadur i fynd i mewn i le gwaith. Ac yr wyf i'n mynd i dim ond teipio allan rhan ohono, ac yna dim ond daro Tab. A bydd yn cwblhau gweddill i mi. Ffansi. 'N annhymerus' yn edrych i weld yn lle gwaith. Ac yn hyn o bryd, rwy'n gweithio ar y SuperSection ein bod yn dysgu ar hyn o bryd. Felly, byddaf yn mynd i mewn i'r cyfeiriadur. Ac yn olaf, yn edrych ac yn gweld. Ac mae gen i fod bunny.c ffeil. Mae pob hawl, felly gadewch i mi glir unwaith eto. Ac yr wyf i'n mynd i now-- eto rwy'n yn dal i aros yn y cyfeiriadur ac mae'n dweud wrthyf fy mod yn hynny cyfeiriadur SuperSection. Rydw i'n mynd i fynd yn ei flaen a wneud fy bunny rhaglen. A bod gorchymyn, yn gwneud bunny, tra'n swnio'n ychydig yn rhyfedd, hefyd yn galw ar y compiler chlang. Ac mae'n ei gynhyrchu ar gyfer mi allbwn sy'n bydd yn funny-- weithredadwy cyflawnadwy ffeilia a elwir yn bunny. IAWN. Gallaf wedyn, ac mae hyn yn swnio hyd yn oed yn waeth, gweithredu bunny. IAWN. A gadewch i ni weld beth mae'n ei wneud. IAWN. Dyna ychydig o hyn yr oeddwn yn ei ddisgwyl. Mae gen i fy llun gwningen i mewn 'na, ond yr wyf yn fath o eisiau iddo i gyd ei ben ei hun. Beth wnes i golli? SIARADWR 21: lachia l neu slaes n. BRIAN SCASSELLATI: Slash n. IAWN. Felly gadewch i ni fynd yn ôl allan fan hyn. A byddaf yn mynd allan o hynny. A byddaf yn mynd yn ôl i mewn i hyn yn un. A gadewch i ni edrych yn awr o fy mhrif swyddogaeth yma. Felly, beth ddylwn i ei wneud? Rwyf am i roi terfyn ar y llinell. Felly byddaf yn rhoi mewn sylwadau. 'N annhymerus' rhoi mewn printf (). A beth rhaid i mi ei roi i mewn? / N. IAWN. Beth sydd rhaid i mi ei ben ei gyda nhw? Hanner colon. Iawn. Yn awr, un o'r gwirionedd pethau pwysig yw gwneud yn siwr bob tro y byddwch yn gwneud newid yn eich cod, eich bod yn ei gadw. Os nad ydych wedi arbed eich cod, rydych yn mynd i hysbysiad ychydig yn seren i fyny yno. A bod seren yn dweud eich Nid wedi arbed y cod hwn. Os byddaf yn llunio ei fod ar hyn o bryd, nid yw'n mynd i adlewyrchu unrhyw newidiadau hynny, oherwydd bod y compiler yn edrych ar y ffeil sydd ar y ddisg, nid y ffeil sy'n agor yn eich golygydd. Iawn. Felly gadewch i ni ei gadw ac yna byddwn yn mynd i'r dde ar lawr yma, yn dod yn ôl allan. Dewch i lawr at fy terfynol. A gadewch i ni glirio'r lle eto. A gallwn fynd yn ei flaen ac un yn fwy amser yn gwneud ein rhaglen bunny. A gweithredu'r gwningen. Nad oedd yn gweithio naill ai. Slaes Anghywir. Felly os ydych yn edrych ar yr hyn yr wyf wedi cael, yr wyf yn rhoi / N mewn 'na, ond cefais y slaes anghywir. Mae popeth sy'n eich cyfrifiadur A yw yn eglur iawn. IAWN? Un camgymeriad bach o atalnodi, a yn sydyn nad ydych yn cael yr hyn yr ydych ei eisiau. Iawn. Felly gadewch i ni chwyddo yn ôl allan eto. Byddwn yn mynd yn ôl. Wel wneud y gwaith atgyweirio gyflym iawn. Byddwn yn rhoi'r slaes cywir i mewn. Byddwn yn ei chadw. Byddwn yn chwyddo yn ôl yn. Am ryw reswm, nid yw hynny'n bod yn hapus, ond gadewch i ni fynd yn ei flaen a byddwn yn mynd yn ôl i'r derfynell yma. Glir i fyny. Byddwn yn chwyddo i mewn. Ac un mwy o amser, byddwn yn gwneud bunny. Ac yn awr yn sicr ddigon, mae'n gweithio. Hwre. IAWN. Felly gadewch i ni geisio gwneud hyn ychydig yn fwy cyffredinol. Gadewch i ni weld os hytrach na dim ond argraffu un ffrâm arbennig, gadewch i ni weld os allwn ni wneud hyn fel y gallwn gael yr holl 10 o fframiau animeiddio rhai ein bod am ei gael. Felly unwaith eto, gadewch i ni mae hyn yn gam ar y tro. Gadewch i ni cyffredinoli yn gyntaf, nid er mwyn i mi wneud yr holl fframiau, ond felly yr wyf yn gwneud unrhyw un ffrâm y gallai rwyf am. Felly beth yw'r gwahaniaeth rhwng y fframiau? A yw'r gwningen yr un fath? GYNULLEIDFA: Oes. BRIAN SCASSELLATI: Yeah. Beth yw'r gwahaniaeth? GYNULLEIDFA: Swydd. BRIAN SCASSELLATI: ei safle, dde? A sut ydw i'n rheoli ei sefyllfa? Faint o ddotiau rwy'n rhoi ar y dechrau a faint o ddotiau rwy'n rhoi ar y diwedd. Felly roedd gen pump yn y dechrau a phump ar y diwedd. Gadewch i ni gymryd lle'r pump gyda gyfer dolen. IAWN. Ac yr wyf i'n mynd i greu ar gyfer ddolen nawr bod yn mynd i ddweud, Rydw i'n mynd i argraffu rhyw rif y dotiau ar y dechrau. Rydw i'n mynd i ddefnyddio newidyn. Gadewch i ni ddweud, beth am i fel y cownter yn fy ddolen. Ac yr wyf i'n mynd i ddatgan ei fod i fyny top. Ac yna yn y ddolen ar gyfer Mae angen i mi ei wneud tri pheth. Y peth cyntaf sydd angen i mi ei wneud yw angen i mi ymgychwyn i. Beth ddylwn i ei ymgychwyn iddo ddechrau i fod? 0. IAWN. Yna mae angen i mi ddweud, beth sydd y cyflwr terfynu? Pryd y dylwn roi'r gorau? Wel faint o ddotiau ydych chi'n eisiau argraffu ar yr un yma? GYNULLEIDFA: Pum. BRIAN SCASSELLATI: Pum eto? Beth am gadewch i ni wneud rhywbeth yn wahanol, gwnaethom bump. Gadewch i ni ddangos ei fod yn wahanol. SIARADWR 22: Dau. BRIAN SCASSELLATI: Two. IAWN. Felly, os wyf am ddau dotiau, beth ddylwn i ei rhoi yma? GYNULLEIDFA: Tri. BRIAN SCASSELLATI: Tri. IAWN. Faint o weithiau yw bod mynd i fynd drwy? Mae hynny yn mynd i fynd drwy dair gwaith, 0, 1, a 2, Iawn? Mae pob hawl, gadewch i ni fynd yn ôl i lawr i ddau. Nawr byddwn yn cael dau dotiau. A beth ydw i am wneud pob tro yr af drwy'r ddolen? Beth sydd wedi newid bob tro y byddaf yn mynd drwy? SIARADWR 23: Ychwanegu dot. BRIAN SCASSELLATI: Mae'n rhaid i mi ddal ati. Rydw i'n mynd i ychwanegu dot. Rydw i'n mynd i argraffu dot, bob tro trwy'r ddolen. Ond sut ydw i'n cadw golwg ar faint sawl gwaith yr wyf wedi bod drwy'r ddolen? Im 'yn arfer i, bod amrywiadwy, bod cownter. Felly bob tro drwy, dw i'n mynd cynyddiad y cownter fesul un. Nawr, dyna yr un fath ar gyfer mi fel dweud i = i + 1. Mae hynny'n iawn. Gallwn i wneud hynny that-- Rwy'n hoffi'r llaw-fer, felly dwi'n mynd i ddweud i ++. IAWN. Gadewch i ni wneud yr un peth lawr yma ar y gwaelod. Yr wyf yn unig fath o yn gwneud hynny un. Rydw i'n mynd i adael i chi guys yn gwneud hyn yn un yn gyfan gwbl. Iawn. Felly, beth ddylwn i ysgrifennu yma? Dyma fy gyfer dolen. Rydw i'n mynd i wneud printf () ac rwy'n mynd i'w gwneud yn er mwyn i mi dim ond argraffu un dot ar y gwaelod. Beth ddylwn i ysgrifennu tu hon ar gyfer dolen nawr? Wel, yn gyntaf oll beth Dylai newidynnau i ei ddefnyddio? SIARADWR 24: j. BRIAN SCASSELLATI: Gallwn i ddefnyddio j. A allaf ddefnyddio'r un un? A allaf ddefnyddio i eto? Yeah. Mae hynny'n iawn, oherwydd bod y Is bod Im 'yn arfer i fyny yma, Dydw i ddim angen nhw eto pan Rwy'n cael i lawr at y pwynt hwn. Felly, beth ddylwn i ymgychwyn ff i? SIARADWR 25: 10. BRIAN SCASSELLATI: 0. Beth ddylwn i ei wirio? Faint o ddotiau sydd eu hangen arnaf yn awr ar y diwedd os gen i ddau dotiau ar y dechrau? Mae angen i mi wyth ar y diwedd, felly beth dylwn wirio, fi llai than-- GYNULLEIDFA: Saith, wyth, naw. BRIAN SCASSELLATI: Clywais saith. Clywais wyth. Ac yr wyf yn clywed naw. IAWN. Felly, rydym i gyd yn yr hawl ball-- Jason Dywed 10. IAWN. Os byddaf angen dau dotiau ar gyfer yr un cyntaf, faint yn ei wneud I-- ac yr wyf angen wyth dotiau gyfer y diwethaf one-- wyf yn rhoi i fyny dau uchod, beth ddylwn i roi i lawr isod? GYNULLEIDFA: Wyth. BRIAN SCASSELLATI: Wyth. Oherwydd bod hynny'n mynd i cyfrif sero drwy saith. A dyna wyth gwaith trwy'r ddolen. IAWN. A beth sy'n rhaid i mi ei wneud ar y diwedd? GYNULLEIDFA: i ++. BRIAN SCASSELLATI: i ++. Iawn. Fel bod yn edrych 'n bert da yno. Gadewch i ni roi cynnig arni a gadewch i ni weld beth mae'n ei wneud. IAWN. Felly rydym yn mynd i'w achub. Nice ac achub. Byddwn yn chwyddo yn ôl allan. Byddwn yn ceisio yma yn y derfynfa. Byddwn yn chwyddo i mewn. Wps. Byddwn yn, un mwy o amser, gwneud ein rhaglen bunny. Ac yn mynd yn ei flaen a gweithredu bunny. Ac yno y mae. Felly mae ein bunny. Lle mae ganddo ddau dotiau ar y dechrau ac wyth dotiau allan ar y diwedd. Mae pawb yn dal gyda mi? IAWN. Felly rydym yn adeiladu i fyny. Rydym yn adeiladu un gwningen, un ffrâm penodol. Nawr rydym wedi bod yn gallu cyffredinoli'r hynny i adeiladu mwy o wahanol fathau, o fframiau. Nawr, gadewch i ni fynd yn ei flaen, ac mae ganddynt yn cynhyrchu nid dim ond un ffrâm, ond gadewch i ni gynhyrchu 10 fframiau, lle'r ydym yn araf yn gwneud y gwningen symud yr holl y ffordd ar draws y cae. Iawn. Gadewch i ni fynd yn ôl. A byddwn yn ceisio nawr. Felly beth mae wir angen i mi newid yma? Beth sydd angen i mi newid? SIARADWR 26: Rydych angen yn gyntaf newid nifer yr uchafswm dotiau ar y dechrau. Oherwydd os ydym yn ei wneud 10 dotiau, mae'n mynd i angen i hyd i raddfa. BRIAN SCASSELLATI: Yeah. Felly, ar hyn o bryd yr wyf wedi ei fath o Hardwired gwneud dau dotiau bob amser ar y dechrau a bob amser yn gwneud wyth dotiau ar y diwedd. Rwyf am adeiladu dolen arall, dde? Oherwydd nad wyf am adeiladu dim ond un llun gwningen, Rwyf am i adeiladu 10 lluniau bunny. Felly, mae angen i mi i adeiladu dolen arall, ac wrth i mi fynd drwy y ddolen, Wyf am newid faint o dotiau i'n argraffu ar y dechrau a faint o ddotiau i'n argraffu ar y diwedd, yn seiliedig ar ba beicio drwy'r ddolen Im 'i mewn. Iawn. Felly gadewch i ni fynd cownter arall. Cyn Rhywun wedi dweud j, felly byddwn yn gwneud j arall. Ac yn awr, rydym yn mynd i adeiladu un arall ar gyfer ddolen. Beth sy'n mynd y tu mewn y ddolen? Mae'r pethau wedi mynd y tu mewn i'r ddolen, dde? A oes gan y gwningen gael i fynd y tu mewn i'r ddolen? A oes angen i gwningen yn I pob un o'r rhai 10 fframiau? GYNULLEIDFA: Uh-huh. BRIAN SCASSELLATI: Yeah. Rwyf am gwningen ym mhob o'r 10 fframiau, dde? Beth am y dotiau ar y diwedd, oes angen i mi? IAWN. Felly dw i'n mynd i indent pob un ohonynt. Rydw i'n mynd i dynnu sylw at bob un hwn, ac yr wyf i'n mynd i daro Tab. Ac mae hynny'n mynd i wthio nhw i gyd drosodd ychydig bach, fel ei bod yn hawdd i mi i weld beth sydd yn y ddolen. Ac yna byddaf yn ben arno. Gadewch i ni ddweud. IAWN? Yn awr, yn ddolen hon y Rwy'n whoops building--, gwneud hynny er mwyn i chi see-- Mae gen i fy cownter j. 'N annhymerus' gallu dechrau arni ar 0. Sawl gwaith ydw i eisiau i fynd drwy'r ddolen hon? GYNULLEIDFA: 10 gwaith. BRIAN SCASSELLATI: 10 gwaith. Felly, pa rif ddylwn i roi yma? GYNULLEIDFA: 9, 10. BRIAN SCASSELLATI: 9, 10, ganddo rywun i ddweud 11, dde? Roeddwn i eisiau dau dotiau cyn ac yn rhoi ff llai na 2. Roeddwn i eisiau wyth dotiau, Yr wyf yn rhoi i lai nag 8. Nawr rwyf am i fynd drwy 10 adegau, felly yr wyf yn rhoi j llai than-- GYNULLEIDFA: 10. BRIAN SCASSELLATI: 10. Dyna ni. A beth ddylwn i ei wneud ar y diwedd i j? ++, Cynyddiad ef. IAWN. Yn awr, dyma y rhan anodd, beth sydd mynd i ddigwydd ar hyn o bryd os byddaf yn gwneud hyn? Ydw i'n mynd i argraffu 10 o fframiau? SIARADWR 27: Yr wyf yn meddwl byddant i gyd yr un fath. BRIAN SCASSELLATI: Maent chi helpu i gyd fod yr un fath, dde? Gan fod pob un ohonynt yn dal i fynd i roi dau dotiau ar y dechrau. Ond dydw i ddim nhw i gyd yn awyddus i cael dau dotiau y dechrau. Faint o ddotiau ydw i'n eisiau ar y dechrau? GYNULLEIDFA: Newid. BRIAN SCASSELLATI: I am iddo newid, dde? Felly, beth ddylwn i ei wedi yma sy'n newid bob tro y ddolen yn mynd trwy? GYNULLEIDFA: Nifer y dotiau, j. BRIAN SCASSELLATI: j, mae nifer y dotiau. Felly gallaf newid hyn i fod yn j. Y tro cyntaf trwy'r dolen, beth sy'n bod yn mynd i fod? Beth ddylwn i ei osod j i ar y dechrau? GYNULLEIDFA: 0. BRIAN SCASSELLATI: Felly faint o Amseroedd ydw i'n mynd i wneud hyn? 0. Yr ail dro drwy'r ddolen, j yn mynd i fod yn 1 gan fy mod yn ei cynyddiad. Faint o ddotiau ydw i'n mynd i argraffu? 1. Y trydydd tro trwy'r ddolen, faint o ddotiau ydw i'n mynd i argraffu? GYNULLEIDFA: Tri. BRIAN SCASSELLATI: j yn mynd i fod yn 3. Faint o ddotiau ydw i'n mynd i argraffu? O, sori, j yn mynd i fod 2. Faint o ddotiau ydw i'n mynd i argraffu? GYNULLEIDFA: 2. BRIAN SCASSELLATI: 2. Iawn, felly dwi'n mynd i gadw incrementing, wrth i ni fynd ymlaen. Beth am i lawr isod? Beth sy'n mynd i lawr fan hyn? Nid wyf am 8 bob amser ar y diwedd anymore? SIARADWR 28: 10. BRIAN SCASSELLATI: Rwyf am 10 dotiau? Yr wyf am iddo newid, hefyd. Felly, sut ydw i'n eisiau iddo newid? GYNULLEIDFA: [Anghlywadwy]. BRIAN SCASSELLATI: Wel, os wyf yn bum dotiau ar y dechrau, faint o dot yn galla i gael ar y diwedd? GYNULLEIDFA: Pum. BRIAN SCASSELLATI: Os oes gen i chwe dotiau ar y dechrau, faint ydw i'n cael ar y diwedd? GYNULLEIDFA: Four. BRIAN SCASSELLATI: Os wyf yn got saith dotiau ar y dechrau, faint ydw i'n cael ar y diwedd? GYNULLEIDFA: Tri. BRIAN SCASSELLATI: Os wyf i wedi got dotiau j ar y dechrau, faint ydw i'n cael ar y diwedd? 10-j. IAWN. Felly gadewch i ni geisio hynny. Felly dw i'n mynd i achub ein rhaglen bunny. Unwaith eto, byddwn yn chwyddo allan. Byddwn yn mynd i lawr at ein terfynell. Byddwn yn glirio. A chwyddo mewn. Byddwn yn gwneud ein rhaglen bunny, unwaith eto. A byddwn yn chyflawni. Uh-oh. Dal ymlaen, gadewch i ni chwyddo allan. Oeddwn i'n cael 10 fframiau? Wel, faint o gwningod ydw i'n gweld i fyny yno? 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Cefais 10 fframiau. A ydynt i gyd yr un fath? GYNULLEIDFA: Yeah. Na BRIAN SCASSELLATI: Na Dyna un cyntaf, mae'r bunny yn bell ar y chwith. Ac dros yma, y ​​gwningen yn bell ar y SIARADWR 29: Iawn. BRIAN SCASSELLATI: Felly, yr hyn wnes i anghofio ei wneud? SIARADWR 30: Dechrau llinell newydd. BRIAN SCASSELLATI: Wedi anghofio i ddechrau llinell newydd, unwaith eto. Un camgymeriad yr wyf yn gwneud o'r blaen. Mae pob hawl, gadewch i ni fynd atgyweiria hynny. Yn awr, rydw i wedi dal i got y cod yn yno i wneud llinell newydd. Pam nad oedd yn gweithio? SIARADWR 31: Dyw hi ddim yn y tu mewn i'r ddolen. BRIAN SCASSELLATI: O, nid yw'n y tu mewn i'r ddolen. Mae hynny'n iawn. Mae'n eistedd y tu allan fan hyn. Ac mae'r gyfer ddolen yw popeth dyna y tu mewn y testun. Felly dw i'n mynd i symud mae hyn y tu mewn i'r ddolen am. Ac byddaf Tab o'i flaen i ddangos ei fod yn y lle iawn. Ac yn awr, byddwn yn achub 'eto. Byddwn yn chwyddo allan. Byddwn yn newid i ein terfynell. Chwyddo i mewn. Byddwn yn ail-wneud ein rhaglen bunny. Ac yn awr, yn awr mae gennym ni ein 10 fframiau. [Clapio] BRIAN SCASSELLATI: OK. So. Dyma yw ein nythu ar gyfer dolenni. Roeddem yn gallu cynhyrchu yn y dolen mewnol faint o ddotiau roeddwn i eisiau i argraffu ar y dechrau, ar y diwedd. Ac mae'r ddolen allanol a reolir faint o fframiau oeddwn yn adeiladu. Rydym yn dechrau gyda un bach cnewyllyn y broblem, ac rydym yn adeiladu allan oddi wrth y pwynt hwnnw. Iawn. Gadewch i ni wneud un cam yn fwy. Rydych yn barod? Mae un peth yn fan lle rydym wedi mewn gwirionedd yn fath o got mwy o gymhlethdod nag sydd ei angen. Gadewch i ni edrych. Felly, yn ein rhaglen cwningen, os byddaf yn chwyddo allan fan hyn, Fi 'n weithredol yn gwneud rhai o'r un peth drosodd a throsodd. Beth ydw i'n gwneud hynny fath o yr un peth dro ar ôl tro ddwywaith? SIARADWR 32: Argraffu y dotiau. BRIAN SCASSELLATI: Yeah Rwy'n argraffu dotiau rhai ddwywaith. Really, dylwn gael sylw hwn i lawr yma. Rwy'n argraffu rhai dotiau yn y dechrau, i'r dde i fyny yma. Ac yna yr wyf yn argraffu rhai dotiau ar y diwedd. Ac yr wyf yn gwneud y math o union yr un peth. Yr hyn yr ydym ni'n mynd i ddechrau gweithio arnynt yn ystod yr wythnosau nesaf yn gallu cymryd blociau hynny cod a ddefnyddiwn drosodd a throsodd, a drwy broses a elwir yn tynnu dŵr, rydym yn mynd i dynnu nhw allan ac ysgrifennwch nhw unwaith fel y gallwn wedyn hailddefnyddio drosodd a throsodd. Felly gadewch i ni geisio hynny. Yn barod? Rydym yn mynd i gymryd y bloc hwn o god. Ac yr wyf i'n mynd i fynd ag ef allan o yno. Ac yr wyf i'n mynd i define-- i lawr ar y gwaelod, Rydw i'n mynd i ysgrifennu swyddogaeth newydd. Dyw hi ddim yn mynd i ddychwelyd unrhyw beth. Ac yr wyf i'n mynd i alw printDots. Mae'n mynd i gymryd un dadl, yn gyfanrif sy'n Dywed howManyDots dylwn argraffu. Ac yn awr yn lle argraffu dotiau j, 'n annhymerus' argraffu dweud wrth howManyDots dylwn argraffu. Ac mae un broblem bach yma. Unrhyw un yn gwybod beth ydyw? Beth sydd gen i sydd wedi eu rhestru mewn yma nid dyna'r diffinio? GYNULLEIDFA: [Anghlywadwy] BRIAN SCASSELLATI: Wel sut llawer o ddotiau ei ddiffinio dde i fyny yma, ond Im 'yn arfer y newidyn i. Felly dw i'n mynd i gymryd y newidyn i ac yr wyf i'n mynd i ddiffinio lawr i mewn yma yn lle hynny. Felly nawr mae'n mynd i stay-- wps, got y capiau clo ar somehow-- rwy'n mynd i gadw fi i lawr yn y fan hyn. Felly nawr dyma fy swyddogaeth bach neu is-drefn, ac mae'n ei ddweud, faint o ddotiau ydw i'n mynd i argraffu? A bydd yn mynd drwy'r ddolen hon a argraffwch nhw drosodd a throsodd. Yna gallaf addasu fy rhaglen hyd yma. A beth oedd yr wyf yn galw y swyddogaeth honno? printDots. Felly byddaf yn galw printDots. Faint o ddotiau ydw i'n eisiau argraffu y tro cyntaf cyn y gwningen? GYNULLEIDFA: j. BRIAN SCASSELLATI: j. Faint o ddotiau ydw i'n eisiau argraffu ar y diwedd, ar ôl y gwningen? 10-j. Ac mae un peth i ddim goll. Wrth i chi weld yn y ddarlith heddiw, rydym yn mynd i ddatgan printDots hyd uchod i roi prototeip. IAWN. Felly, yr hyn yr wyf wedi ei wneud yw fy mod wedi ceisio ynysu bod ailddefnyddio rhan o'r cod fy mod wedi gwneud drosodd a throsodd. Ac yr wyf wedi ceisio ei dynnu allan fel bod hynny i gyd wedi'i gynnwys mewn un lle. Drwy hynny, os oes gen i gamgymeriad yn rhywle, Dim ond rhaid i mi atgyweiria 'mewn un man. Iawn. Felly gadewch i ni ei gadw. A gadewch i ni wneud yn siŵr ei fod yn gweithio. Felly gadewch i ni fynd allan. Byddwn fynd eto at ein terfynell. Byddwn yn chwyddo i mewn. Byddwn yn gwneud hynny proses bunny. Oh. Ac mae wedi rhoi rhybudd i mi. Beth sy'n cael ei ddweud wrthyf? Yn dda yn unrhyw un o'r rhain adegau, byddwch bob amser yn awyddus sgrolio i fyny at y error-- cyntaf un erbyn hyn ar yr un yma, dim ond wedi cael un. Mae'n dweud wrthyf yn bunny.c, ar-lein 8, colofn 9, mae 'na broblem. Mae'n dweud, rydych chi wedi datgan hyn ff amrywio ac nad ydych wedi ei ddefnyddio. Yn awr fel arfer, dyna nid oedd y gwall gwaethaf. Dyna un hawdd at atgyweiria. Ac yn wir, gallwn fynd yn ôl i mewn. Gallwn fynd yn ôl i'r bunny. Ac yn yr achos hwn, cyfan yr ydym rhaid ei wneud yw cael gwared ar i, oherwydd nid ydym yn eu defnyddio ff o fewn prif anymore. Rydym yn unig yn ei ddefnyddio o fewn ein is-arferol. Felly gadewch i ni arbed hynny. Byddwn yn mynd yn ôl. A chwyddo mewn. Byddwn yn un mwy o amser yn gwneud bunny. Ac yno eto yw ein 10 o fframiau. IAWN. Unrhyw bryd y byddwch chi'n ei roi a procedure-- Yeah. SIARADWR 33: Mae gen i a-- fy mod wedi drysu. Allwch chi fynd yn ôl at y cod? BRIAN SCASSELLATI: Yep. SIARADWR 33: Felly, pan fyddwch yn ysgrifennu eich prototeip, y ddadl yr ydych Roedd ei enwi ei alw howMany? Ond, below-- BRIAN SCASSELLATI: O ie. SIARADWR 33: --called rhywbeth iddynt yn wahanol, nid wyf yn deall. BRIAN SCASSELLATI: Pam maen nhw'n wahanol. Felly dyna gwestiwn mawr. Felly, y cwestiwn oedd, i fyny yma, ysgrifennais howMany, ac i lawr isod, ysgrifennais howManyDots. Y rheswm yw bod i fyny yn eich prototeip, 'i' mewn gwirionedd yn peidio â thalu sylw at yr enwau eich bod yn rhoi. Mae pob 'n sylweddol yn gofalu am yw ei fod yn gyfanrif. Mae'n eisiau gwybod y ffurflen yr hyn yr ydych yn ei roi i mewn. Nawr stylistically-- oops-- beth ddylwn i yn, yn cael ei hoffwn i wneud y gêm. IAWN. Oherwydd fe wna hynny yn cael ei gadw'n haws i mi gofio. Ond dyna oedd fy camgymeriad Yeah. SIARADWR 34: Ac felly ar gyfer y prototeip i'r gwaith, dim ond ysgrifennu llinell honno, ysgrifennu'r prototeip, yn caniatáu swyddogaeth honno sy'n dod hawl isod i fynd at y diwedd ac adalw beth mae hynny'n ei olygu? BRIAN SCASSELLATI: Beth mae'n ei olygu yw pan fydd y casglwr yn mynd drwy, mae'n mynd o ben uchaf eich cod i'r gwaelod. A beth prototeip hwn, yw ei fod yn y bôn yn addewid. Mae'n dweud, mae mynd i fod yn swyddogaeth a ddiffiniwyd yn rhywle. Mae'n mynd i fod yn enw printDots. Ac mae'n mynd i gymryd un ddadl sy'n mynd i fod yn gyfanrif ac mae'n mynd i ddychwelyd dim byd, math ddi-rym. IAWN. Rwy'n addo i chi fod yn mynd i fod yn a ddiffinnir yn rhywle i lawr y ffordd. Ond unrhyw tro y byddwch yn gweld hynny, wrth i chi fynd i lawr drwy weddill fy prif swyddogaeth, yr wyf am chi drin hynny fel swyddogaeth sy'n cymryd un mewnbwn cyfanrif. Ac felly pan fydd y compiler yn mynd i lawr drwy hyn, mae'n gweld addewid hwnnw. A phan mae'n mynd i lawr, cadw i fynd, yn cadw mynd, yn dod o hyd y tro cyntaf printDots cael ei grybwyll. Ac y mae'n ei ddweud, O, rydych yn rhoi mi j hwn. j 'an cyfanrif. Wel i chi addo i mi y byddai fod yn gyfanrif ac sy'n iawn. Mae hynny'n iawn. Ac yna yn olaf, i lawr ar yr union gwaelod, cyn i mi gyrraedd at ddiwedd fy ffeiliau, yr wyf yn gwneud yn dda ar fy addewid ac yr wyf yn ei ddiffinio. IAWN? SIARADWR 35: Felly, mae'n saves-- y bydd y rhaglen yn arbed bylchau gwag ei fod yn mynd yn ôl ac yn llenwi ar y diwedd? BRIAN SCASSELLATI: Nid yw'n am y dyraniad cof. Mae'n mewn gwirionedd dim ond am yr hyn y math yr ydych yn disgwyl ei weld. Os bydd y peth hyn gael un dadl, neu bum dadleuon? A ddylai gael ei cyfanrifau fod a roddir iddo, neu dannau? Dyna i gyd mae'n edrych ei wneud yw i wirio, ydych yn ei roi i mi y math iawn o ddadl. IAWN? Iawn. Gadewch i mi eich gadael gyda un did eraill i edrych ar. Nid yw celf ASCII yw'r model mawr o animeiddio fel y mae heddiw. Ond mae rhai pobl, wrth gwrs, cymryd pethau ac maent yn gwthio i'w eithafion. Mae hyn, fel David dangos mewn darlith, darn o god bod dylech dan unrhyw amgylchiadau ceisio dyblygu eich hunain. Oherwydd ei fod yn ofnadwy arddull. Yn wir, mae'n cael ei gynllunio i fod mor anodd â phosibl i ddarllen. IAWN. Felly, i wneud eto, gadewch i chwyddo i mewn yma. Rydw i'n mynd i fynd nawr, cyfeiriadur newid. Rydw i'n mynd i fynd i fyny un lefel, yn ôl i fy lle gwaith. 'N annhymerus' wedyn yn newid y cyfeiriadur i mewn i hyn cyfeiriadur arall fy mod i wedi creu. Ac mae hyn yn y Rhyngwladol Obfuscated C Rhaglennu Contest. Fodd obfuscated mor galed ag y bo modd i'w deall. Felly os gwelwch yn dda, peidiwch â bod ofn os ydych yn edrych ar hyn a mynd, ni allaf ddarllen hynny. Dyna'r pwynt ohono. IAWN? Ond, rydym wedi hyn rhaglen wych fy mod mynd i edrych ar ddim ond teipio mwy. A gadewch i ni weld os gallaf chwyddo allan dim ond ychydig, fel y gallwch ei weld Ac mae hyn yn y rhaglen. Mae wedi ei enwi endo.c. Ac mae'n edrych fel bwced hwn gyda math o'r llythyrau F-L-U-I-D ynddo. Mae hyn mewn gwirionedd yn rhaglen. Mae wedi ysgrifennu yn y mwyaf aneglur ffordd y gallai'r awduron o bosib ysgrifennu. Ond mae'n ddarn bach gwych y yn cynhyrchu model o ddeinameg hylif. Ac felly rydym yn mynd i roi y model mewnbwn sy'n yn edrych fel hyn, o staired set o gynwysyddion gyda rhywfaint o hylif, rhai hylif, i fyny ar y brig. A bydd yn rhaid iddo efelychu beth sy'n digwydd iddo. Felly byddaf yn galw y swyddogaeth honno, endo. A byddaf yn rhoi bod ffeil mewnbwn fy mod i wedi cael. Ac mae ein ymgorfforiad o gelf ASCII. Mae efelychydd deinamig hylif llawn rhedeg mewn dim ond ychydig linellau o god. Nawr beth sydd mewn gwirionedd mewn gwirionedd rhyfeddol am y rhaglen hon bach yw fy mod eisiau rhoi'r gorau iddo yn awr, felly dwi'n mynd i ddefnyddio'r hyn archa? GYNULLEIDFA: Rheoli-C. BRIAN SCASSELLATI: Rheoli-C. IAWN. Felly byddaf yn defnyddio Reoli-C. C Mae hynny bydd yn atal. 'N annhymerus' yn glir eto. Ac yn awr rwy'n mynd i weithredu'r rhaglen, cyflawni'r rhaglen, gan ddefnyddio ei hun fel mewnbwn. A byddwn yn gweld y deinameg hylif efelychiad ohono toddi. IAWN. Peidiwch â gadael i hynny rhaglen fod y peth sy'n drysu chi. 'I' jyst fel y gallwn i ben ar rhywbeth oer a diddorol. IAWN. Pob lwc gyda'ch setiau problem. Byddwn yn hapus i ateb cwestiynau ar ôl y dosbarth. Diolch llawer, guys.