[CHWARAE CERDDORIAETH] DAVID Malan: Helo, bawb. Mae hyn yn supersection CS50 yn. Ni fydd adrannau neilltuo yn dechrau am wythnos arall. Ac felly heddiw, dwi yma with-- MARIA: Maria. DAVID Malan: --to mewn gwirionedd yn edrych ar broblem sefydlu un, y cwrs wythnos gyntaf o ddeunydd, cael chi oriented gyda IDE CS50, ychydig o Linux, y system weithredu sy'n rhedeg ar DRhA, yn ogystal â edrych ar rai o'r pontio o Scratch i C yn arwain hyd at broblem sefydlu un. Felly, heb ado pellach, yn broblem sefydlu un, ydych yn mynd i fod yn cyflwyno i CS50 IDE, a oedd yn yw hyn rhaglennu ar y we amgylchedd a ddefnyddiwn er mwyn i ysgrifennu rhaglenni. Mae wedi ei gynllunio i edrych yn iawn atgoffa rhywun o gyfrifiadur nodweddiadol system yn rhedeg gweithredu system o'r enw Linux. Ond mae'n yn y cwmwl fel y'i gelwir, sy'n golygu pawb yn y dosbarth Gall mewn gwirionedd yn cael ei gyfrif ei hun ac yn ei ddefnyddio, yn ogystal. Felly, mae'r rhan fwyaf ohonoch yn ôl pob tebyg erioed wedi defnyddio amgylchedd Linux cyn neu efallai hyd yn oed yn amgylchedd llinell orchymyn. A llinell gorchymyn amgylchedd yn wahanol. Mae hyn i gyd testunol. Mae hyn i gyd orchmynion bysellfwrdd. Ac mae'n dim mousing, dim eiconau, dim ffenestri deialog, dim bwydlenni. Mae'n gwbl testun. Felly ar y dechrau, mae'n fath o yn teimlo fel cam yn ôl o ran soffistigedig. Ond mae'n dod i ben i fyny fod yn llawer yn fwy pwerus, yn sicr, am gwyddonydd cyfrifiadurol, yn y pen draw. Felly, gadewch i ni edrych. Dyma fi yn CS50.io, drwy lle gallwch logio i mewn i IDE CS50. A llawer fel yn Scratch, mae ' tri maes cynradd i sgrin hon. Felly, ar yr ochr chwith, mae gennym beth fydd y porwr ffeiliau. Ac mae blygell hon yn top, sydd ar hyn o bryd yn wag ers i mi cael gwared o'r holl fy ffeiliau cyn supersection. A dyna lle rydym chi helpu cadw ffeiliau C ein bod yn ysgrifennu. Yn y dde uchaf, mae gennym fan lle pob un o'n cod yn mynd i gael ysgrifenedig. Ac yn wir, os wyf cliciwch ogystal hwn, mae hyn yn yn mynd i adael i mi ddewis Ffeil Newydd. Ac yma y gallaf ddechrau ysgrifennu cod C neu, mewn gwirionedd, unrhyw nifer o ieithoedd eraill. Ac yna ar y gwaelod lle mae'n Dywed jharvard @ ide50-- a chi bydd dweud rhywbeth ychydig yn different-- beth oedd hyn a elwir yn? Ffenestr Terminal. Yeah. Felly y ffenestr derfynell yn y llinell orchymyn hyn a elwir yn rhyngwyneb trwy y gallwch ryngweithio gyda'r system weithredu sylfaenol. Ac am y tro, rydym yn mynd i gwneud ychydig iawn o ddefnydd o this-- dim ond i lunio, i edrych ar negeseuon gwall a welwn, ac i gynnal ein rhaglenni. Ond yn y pen draw, rydym yn mynd i wneud hynny yn llawer mwy, yn ogystal. A allwch chi hyd yn oed yn gosod meddalwedd a gweinyddu eich lle gwaith o fewn CS50 IDE, yn ogystal. Ond mwy am hynny rywbryd arall. Felly gadewch i ni fynd yn ei flaen ac ysgrifennu rhaglen syml iawn yn unig i fynd drwy cynhesu o hello.c, sydd o bosibl y rhaglen symlaf y gallwn ei ysgrifennu. Rwyf eisoes wedi agor tab newydd. Rydw i'n mynd i fynd yn ei flaen a dweud gynnwys io.h. safonol Yna int prif (ddi-rym). Ac yna printf ("helo, byd" slaes n, dyfynnwch agos, cromfachau agos, a hanner colon. Iawn. Felly nawr yn sylwi fy ffenestr yn heb deitl. Felly dw i'n mynd yn gyflym iawn i fynd i fyny i File, Save. Ac mae'n bwysig bod Rwy'n galw nad yw hyn "helo." Felly yn gamgymeriad cyffredin iawn, yn enwedig yn broblem sefydlu un, yw ddamweiniol yn unig ffoniwch eich rhaglen "dŵr" neu "barus" neu "Mario" neu "credyd" neu debyg. Ond rydych mewn gwirionedd yn awyddus i wneud yn siŵr eich bod yn cael y estyniad ffeil oherwydd dyma'r unig ffordd y y compiler a hefyd y golygydd cod yn gwybod eich bod yn mewn gwirionedd yn ysgrifennu cod C. Felly gadewch i mi fynd yn ei flaen a chliciwch Save. Ac yn awr, hefyd, beth CS50 IDE wedi gwneud i ni yn 'i' hefyd Amlygodd cystrawen popeth. Felly mae wedi gwneud popeth lliwgar iawn. A'r holl bwrpas nid yw hynny'n ymarferol. Dim ond i dynnu fy llygaid i gysyniadol gwahanol ddarnau o'r rhaglen hon. Felly gadewch i ni fynd yn ei flaen ac yn llunio hyn. A gallaf lunio hyn mewn cwpl o ffyrdd. Ac yn wythnos un, mae'r ffordd hen-ysgol a wnaethom yr oedd yn llythrennol yn y "hello.c chlang." command line-- Ac yna yr wyf daro Chofnoda. A dim byd yn ymddangos i ddigwydd yn y ffenestr terfynell. Ond yr hyn a wnaeth newid yn y DRhA? Lle, unwaith eto, IDE yn unig yn golygu Yr Amgylchedd Datblygu Integredig. Mae'n ffordd ffansi o ddweud y datblygiad integredig amgylchedd ar gyfer datblygu meddalwedd. Felly, beth yn newid yn y UI? Beth wnaethoch chi sylwi mae hynny'n wahanol, Maria? MARIA: Sylwais rhywbeth o dan y IDE50 ffolder i fyny yma. DAVID Malan: Yeah. Felly i fyny yma, nid yn unig sydd gennym "hello.c." Mae gennym hefyd "a.out," sydd yn fath o enw fud ar gyfer rhaglen. Ond yn wir, mae'n yr enw diofyn ar gyfer rhaglen pan ydych yn unig lunio eich cod ac nid ydynt yn dweud wrth y compiler pa ffeil allbwn. Felly, os wyf eisiau rhedeg hyn, yr wyf yn Mae angen i ddweud wrth y compiler-- neu yn hytrach, mae angen i I dweud wrth y lle gwaith yr wyf yn eisiau rhedeg y rhaglen o'r enw "a.out." Enter. Ac mae "helo, byd. "Erbyn hyn mae'r" ./ ". mewn gwirionedd bwysig. Hyd yn oed er fel arfer rydym yn unig ysgrifennu enwau o orchmynion, pan ei fod yn rhaglen eich bod wedi ysgrifenedig, ydych chi eisiau i ddweud "./" oherwydd dyna yn dweud yn benodol Linux eich bod eisiau rhedeg rhaglen o'r enw "A.out" dyna yn hyn, lle dot yn golygu y cyfeiriadur hwn fy mod ar hyn o bryd i mewn, sy'n digwydd bod yn a elwir yn lle gwaith, "a.out. Oherwydd os wyf newydd ei ddweud "a.out," Rhowch, Rydw i'n mynd i gael "a.out gorchymyn peidio dod o hyd "oherwydd bod y computer-- oherwydd fy mod yn dyfeisio "a.out;" nid oedd yn dod gyda'r computer-- nid yw'n gwybod lle i chwilio amdano, hyd yn oed er 'i' iawn dan fy nhrwyn, fel petai. IAWN. Felly, gallem newid hyn i fod yn "chlang -O helo hello.c." Ac os wyf yn taro Mewnbynnu, pa raglen mae hyn yn mynd i allbwn i mi? Beth yw enw'r ffeil? Yeah, yn ôl. Mae hynny'n iawn. "Helo." Felly, "helo" yn mynd i fod enw'r rhaglen oherwydd ein bod wedi defnyddio hyn a elwir yn ymresymiad llinell orchymyn, sydd ychydig ffordd o newid ymddygiad y compiler i allbwn mewn gwirionedd enw ffeil benodol. Ac yn wir, os wyf yn chwyddo allan ac yn edrych i fyny yma, yn awr yr wyf wedi nid yn unig "a.out" ac "Hello.c" ond hefyd yn "helo," yn ogystal. Felly, yn awr y gallaf ei wneud "./hello," Enter. Ac mae "helo, byd." Ond mae lastly-- ac mae hyn yn awr yn y confensiwn rydym yn defnyddio drwy gydol y semester, typically-- yw y gallwch hefyd jyst ddweud "helo wneud." Ac yn wir, mae'n dweud mae i fyny hyd yma gan ei fod eisoes yn bodoli. Gadewch i mi fynd yn ei flaen a chael gwared, gyda y gorchymyn rm, y ddau "a.out" - ac yn dweud "tynnu a.out ffeil rheolaidd?" Mae hynny'n ei olygu yw, a ydych siŵr eich bod am ddileu? Rydw i'n mynd i ddweud ie. Ac yna dwi'n mynd i gael gwared ar "Helo" ond nid "hello.c." Rydw i'n mynd i ddweud "ie" yn benodol, ond "y" yn ddigonol, yn ogystal. Ac yn awr yn sylwi os byddaf deipio ls-- sydd, galw i gof, golygu list-- ei fod yn rhestru pob o'r ffeiliau yn fy ffolder. Ac yn wir, os wyf yn chwyddo allan ac edrych ar top chwith, mae'n cadarnhau bod yr hyn sydd yn y ffolder hwn, hyd yn oed er 'i' labelu fel IDE50 fyny yma ac nid lle gwaith, dim ond "hello.c." Felly nawr lawr yma, os wyf peidiwch "gwneud helo," Rhowch, yn awr yr wyf yn gweld orchymyn llawer mwy o amser, ond mae gorchymyn mwy soffistigedig sy'n mynd i fod yn ddefnyddiol yn yr wythnosau i ddod. Ac yn awr y gallaf ddweud "./hello." Felly gadewch i ni fynd ar daith gyflym rhai Linux arall gorchmynion. Yna, pam nad ydym yn cymryd cam yn ôl ac mewn gwirionedd yn edrych ar C fwy Yn gyffredinol, trawsnewid o Scratch i C, ac yna i ben gyda golwg ar y broblem gyntaf a osodwyd yn C. Mae pob hawl. Felly, yr wyf i'n mynd i fynd yn ei flaen a dim ond yn lân i fyny fy lle gwaith gyda Control-L yn unig i gadw'r sgrîn daclus. Ond sydd heb unrhyw swyddogaethol cael effaith fel arall. Dwyn i gof bod rydym wedi gweld ychydig o orchmynion yn awr. Felly, rydym wedi gweld chlang, sydd yn gyffredinol ydych Ni fydd yn rhaid i weithredu â llaw anymore. Byddwn yn lle hynny yn defnyddio gwneud. Ond rydym hefyd yn gweld ls, sy'n dangos rhestr o'r ffeiliau yn fy cyfeiriadur. Ac yn awr pam mae there-- mae 'dau Ffeiliau yn awr, "helo" a "hello.c." Pam mae seren neu seren ar ôl "helo"? Beth oedd hynny yn arwydd, yn seiliedig ar yr hyn a welsom mewn un wythnos? Beth yw eich barn? Beth mae'r seren yn arwyddo? MARIA: For-- y rhaglen "helo"? DAVID Malan: "Helo *". Yeah. O, ie? O, cyflawnadwy. Mae hynny'n iawn. Felly mae hynny'n golygu bod "Helo" yn weithredadwy. Felly yn wir, dyna pam Gallaf ei wneud "./hello." Iawn. Felly, beth arall y gallaf ei wneud yn fan hyn? Wel, mae'n troi allan y gallaf hefyd yn creu cyfeiriaduron. Felly gadewch i mi fynd yn ei flaen ac yn creu, er enghraifft, yn "pset1" cyfeiriadur. A'r fanyleb broblem a osodwyd Bydd yn rhaid i chi wneud yn union hynny, felly nid oes rhaid i chi gofio heddiw. Ond "pset1 mkdir" yn ymddangos i cael unrhyw effaith. Ond unwaith eto, dim neges gwall yn gyffredinol yn beth da. Felly, os wyf yn teipio "ls" now-- AH, yn awr Mae gen i ffeil weithredadwy enw "Helo," ffeil C o'r enw "hello.c." Ac yna y slaes sy'n llusgo, felly i siarad, yn golygu bod hyn yn gyfeiriadur. Felly yn wir, yn awr yr wyf am i agor. Ac nid wyf yn ddwywaith cliciwch arno fel mewn GUI, amgylchedd graffigol. Rwyf yn lle hynny yn dweud "pset1 cd." Enter. Dim byd diddorol yn ymddangos i gael digwydd ac eithrio fy brydlon bach Yma-- hyn yn ffordd Linux o atgoffa mi lle yr wyf, felly beth ffolder ar agor. Dim ond ei fod yn dweud wrthyf yn benodol yn hytrach na ffurf graffeg. Ac os wyf yn teipio "ls," pam ydw i'n gweld un arall brydlon ar unwaith, yn eich barn chi, pan fyddaf yn rhestru cynnwys pset1? MARIA: Rydych yn debyg nad yn ei wneud gennych unrhyw beth i mewn 'na. DAVID Malan: Yeah. Felly, yna nid ydym wedi amlwg creu unrhyw beth i mewn 'na oherwydd fy mod newydd ei greu cyfeiriadur. Yn awr, os wyf eisiau creu file-- am enghraifft, gallwn greu ffeil newydd. Ac yna gallwn fynd i Arbed a'i gadw fel, fel, "mario.c" os ydych chi'n ei wneud rhifyn safonol pset un. Ac yna, fel unrhyw Mac neu PC, dim ond dewiswch y ffolder "pset1, Save. Ac yn awr y ffeil yn wag. Ond gadewch i ni chwyddo i mewn eto am eiliad. Gadewch i ni wneud ls yma. Nawr rydym yn gweld "mario.c". Felly mae yna ychydig o orchmynion eraill sy'n Mae'n werth cadw mewn cof dros adeg-- yn glir, neu Control-L yw hyn yr wyf i wedi bod yn taro; mkdir rydym wedi gweld; rm rydym wedi gweld, yn ogystal, sef ar gyfer symud neu ddileu ffeil. Byddwch yn ofalus, gallwch also-- ac os ydych yn edrych mewn sesiynau tiwtorial ar-lein, byddwch yn Yst -rf yn ffordd gyffredin iawn o ddweud dileu ffolder sydd wedi stwff ynddo. Dim ond yn super, super ofalus. -rf golygu recursively ddileu beth bynnag ydych yn ceisio dileu ac rymus ddileu. Felly dulliau recursive os yw'n ffolder gyda ffolder gyda ffolder gyda ffolder, dileu pob un ohonynt. Ac rymus yn golygu ddim hyd yn oed gofyn i mi ydw neu nac ydw, a wyf yn siŵr? Felly mae'n ffordd super peryglus o dileu llawer o bethau yn gyflym. Ond yn beware-- rhy aml yn gwneud yn dewr myfyriwr yn ddamweiniol dileu, dyweder, pset un, er enghraifft. MARIA: Ac os byddant yn unig gwneud -R, maent yn mynd i ofyn iddynt am bob ffeil. DAVID Malan: Pa un yw gymharol blino. MARIA: Yeah. DAVID Malan: Felly dyna pam cymaint ohonom, hunan yn cynnwys, wyf yn yr arfer o ddefnyddio -rf. Ond mae'n beryglus. Felly byddwch yn ofalus prynwr. Ac yna mv yn fath o enwir ddiddorol. Felly, mae hyn yn symud gorchymyn, sy'n teimlo ychydig yn od oherwydd gallwch yn wir ei ddefnyddio i symud ffeiliau o un lle i'r llall. Er enghraifft, mae'n debyg fy mod yn smonach. Tybiwch fod wyf yn creu ffeil newydd ar gyfer y pset. Ac yr wyf yn arbed fel "greedy.c." Ond mae'n debyg fy mod yn ddamweiniol ei gadw yn IDE50-- hynny yn fy lle gwaith ei hun ac nid mewn pset1. Gallwch weld cymaint ar dop chwith. Mae "greedy.c." Ac mae ychydig o atebion. Felly un, gallaf ddefnyddio'r ffordd hawdd ei ddefnyddio super o ychydig llusgo a gollwng hi. A byddai hynny mewn gwirionedd atgyweiria hon broblem. Ond heddiw, rydym yn ceisio i edrych ar y ffyrdd mwy dirgel ond pwerus o wneud hyn. Felly gadewch i mi gymryd "ls" yn pset1. Ac yr wyf yn gweld "mario.c." Gadewch i mi fynd yn ei flaen ac yn gwneud "cd ..". Felly CD eto yn gyfeiriadur newid. ".." Yn golygu yr hyn, er bod? Y tro diwethaf dywedais "cd pset1 "i fynd i mewn i pset1. Felly, pan fyddaf yn dweud "cd ..", beth ydw i'n ei wneud? Backwards. Yeah. Felly mae'n mynd at y rhiant fel y'u gelwir. Ewch un lefel i fyny, fel cyffrous allan o ffolder. Felly Enter. Ac yn wir, yn edrych yr hyn a wnaeth ef. Symudodd i mi jyst i mewn lle gwaith yn lle hynny o mewn i pset1, sydd mewn llefydd gwaith. Ac yn awr os wyf yn teipio "ls", mae criw cyfan o bethau. Yn oes "greedy.c". Felly nawr gadewch i mi ddefnyddio mv i llythrennol symud "greedy.c" i mewn i pset1. Ac felly mae llawer o Linux orchmynion gweithio yn union fel hyn. Maent yn cymryd unrhyw ddadleuon neu maent yn cymryd un dadl neu eu bod yn cymryd dwy llinell orchymyn dadleuon ac yn y blaen. Ac yn yr achos hwn, mae'n gwneud yn llythrennol beth y mae'n ei ddweud, er succinctly-- yn symud i mewn i greedy.c pset1. Enter. Nid oes dim yn digwydd wedyn. Ond os wyf yn gwneud ls eto, barus wedi mynd. Ac os wyf yn gwneud "pset1 cd", Mewnbynnu, ac yna ls eto, erbyn hyn mae yn y lle iawn. Fel o'r neilltu, os am rhai reason-- arbennig os oes gennych ysbeidiol cysylltedd rhwydwaith neu os ydych yn cerdded o gwmpas campws gyda'ch clawr y gliniadur gau ac yna agor i fyny unwaith eto a bod eich lle gwaith ymddangos braidd allan o sync, dim llawer mawr. Dim ond ail-lwytho eich porwr ffenestr, ac y dylai resync fel bod y chwith file porwr edrych yn union fel y ffenestr terfynell. Beidio â phoeni. Pan fyddwch mewn amheuaeth, ail-lwytho'r dudalen, felly ar yr amod eich bod wedi arbed y ffeiliau yn barod. IAWN. Felly gall mv hefyd ei ddefnyddio i ail-enwi ffeiliau. A gadewch i ni edrych ar y gorchymyn terfynol yma. Felly suppose-- ac mae hyn yn super gyffredin, hefyd, yn gynnar. Mae rhai myfyrwyr yn achlysurol creu ffeil alw, gadewch i ni say-- beth sy'n un arall? Fel "WATER.C." Felly byddaf jyst gweiddi, ar gyfer unrhyw reswm, yn yr holl gapiau. Ond nid yw hyn yn enw cywir ar gyfer y ffeil os mai dim ond oherwydd bod ein problem a osodwyd Nid yw manyleb wnaethoch ddweud wrthych chi i achub y ffeil fel ag yr holl gapiau "WATER.C." Yn lle hynny, rydym yn disgwyl "Water.c" mewn llythrennau bach. Ac, mewn gwirionedd, mae hyn yn gan fod check50 problemus, rhaglen rydych yn mynd i gyfarfod yn broblem gosod un sy'n profi awtomatig cywirdeb eich cod yn mynd i gweiddi ar chi os na all dod o hyd i "water.c" ym mhob llythrennau bach. Felly, mae angen i mi atgyweiria hon. Felly, mae llawer o ffyrdd gwahanol i'r yn gwneud hyn, y cyntaf o'r rhain fyddai i Reoli-glicio neu dde-glicio enw'r ffeil a dim ond newid Rename. Hollol iawn i wneud hynny. Ond unwaith eto, heddiw, gadewch i ni yn ei wneud ychydig yn ffansi. Gadewch i ni ddefnyddio mv i newid "WATER.C" i "water.c." Felly gallwch hefyd ddefnyddio'r ddadl gyntaf i ailenwi'r i'r ail ddadl os nad yw, yr ail ddadl yw mewn wir, a folder neu enw cyfeiriadur. Iawn. Ac yn olaf, ychydig o trick-- felly rwy'n mewn fy cyfeiriadur lle gwaith ar hyn o bryd. Os ydw i eisiau mynd i mewn i pset un, Yn sicr, gallaf deipio "pset1 cd." Ond mae mor ddiflas i deipio "pset1" neu hirach enwau ffeiliau neu enwau cyfeiriadur o hyd. Felly, yn aml iawn yn Linux, beth y gallwch ei wneud yw dechrau teipio "ABCh" a dim ond yn diflasu, taro Tab, a gadewch y ffigur cyfrifiadur allan i chi. Super ddefnyddiol i fynd i mewn y arferiad. Yr unig dal yw os oes gennych ffeiliau neu ffolderi lluosog cychwyn â'r llythyren "t" neu "Ps," a allai fod gennych teipio ychydig mwy cyn y cyfrifiadur yn gwybod beth i'w wneud. MARIA: Rydym yn hoffi llwybrau byr. DAVID Malan: Bydd hyn yn arbed cymaint o amser i chi. A hefyd, fel y dywedasom yn y ddarlith, chi Gall sgrolio i fyny mewn hanes, i fyny ac i lawr, i ddod o hyd ddienyddio yn ddiweddar gorchmynion, yn ogystal. Iawn. Felly nawr, gadewch i ni droi ein sylw yn ôl i raglen syml, helo byd. Felly, rydym wedi llunio hyn yn union. Ac yn awr nid pam yr ydym yn cymryd yn edrych ar y mathau data ac yna pontio o rai blociau Scratch cyfateb i C. MARIA: Awesome. Felly nawr eich bod wedi dechrau ysgrifennu rhaglenni yn C, rydyn ni'n mynd i ddechrau siarad am fathau data a newidynnau. Felly, mae rhai mathau o ddata y byddwch yn Byddai eisiau gwybod dechrau nawr yw'r rhai sy'n cael eu hamlygu mewn glas. Felly mae gennym int cyntaf, sy'n sefyll am gyfanrif. A bod yn dal gyfanrifau, wrth i chi Efallai y bydd rhaid guessed-- felly 1, 2, 3, ac unrhyw cyfanrifau eraill y gallwch feddwl amdano. DAVID Malan: A hefyd negyddol. MARIA: A hefyd rhai negyddol, yep. A 0. Yna, mae gennym fflotiau, a oedd yn yn arnofio rhifau pwynt. Felly dyna i gyd y rhifau real sydd â phwyntiau degol. Felly 5.0, 5.2, a hyd yn oed yn fwy digidau ar ôl y pwynt degol, yn ogystal, ac mae hefyd yn rhai negyddol. Yna, mae gennym golosg sydd yn gymeriad. Felly, yr wyf yn meddwl buom yn siarad am hyn mewn darlith heddiw. Ond mae gennym llythyrau, am example-- A, B, C-- gellir eu storio fel torgoch. Ond yna mae gennym lawer mwy o symbolau gellir eu storio fel torgoch. A'r rhai yn cael eu storio fel ASCII. Ac yna rydym wedi bool, sy'n cael eu Booleans. A'r rhai gwerthuso i Gwir neu Ffug neu 1 a 0, yn y drefn honno. DAVID Malan: A dwyn i gof sy'n bool yn dod o'r llyfrgell CS50. Felly, nid yw'n hadeiladu i mewn C, ond mae'n super ddefnyddiol i gael y syniad o gwir a ffug. A hyd yn oed er eich bod Efallai think-- ffaith hwyl. Mae bool yn dechnegol mae angen faint o ddarnau, yn wir, i gynrychioli Gwir yn erbyn Anghywir? Faint o ddarnau yn eich barn chi byddai angen i chi, maximally? Yeah, dim ond un. Felly, mae'n troi allan y C Ni all roi dim ond un did i chi. Mae'r uned leiaf o fesur allwch gael yw wyth. Felly mae'n ychydig gwastraffus maent rydych yn gan ddefnyddio beit cyfan, neu wyth did, i gynrychioli Gwir neu Gau. Ond dyna dim ond y ffordd mae'n rhoi ar waith yn C gan y llyfrgell CS50. MARIA: Ac yna y rhai yr ydym ni'n Nid yw mynd i siarad am mor helaeth i'r dde now-- dwbl, mae hynny'n fflotiau mwy. Hir hir a byr hefyd i gyfanrifau. DAVID Malan: Yn wir. Yn y rhifyn haciwr o pset un, rydym yn ei ddefnyddio hir hir. Ond ar gyfer y rhifyn safonol, Ni ddylai fod yn angenrheidiol. MARIA: Cool. IAWN. Felly operators-- dylech fod yn ôl pob tebyg yn gyfarwydd â'r rhan fwyaf o'r rhain. Hefyd, +; tynnu, -. Ar gyfer lluosi, mae gennym y *. Felly, nid yw'r X yr ydym fel arfer yn defnyddio. Yr Is-adran, mae gennym y slaes. Ac mae modulo yw ein gweithredwr diwethaf fod rydym yn mynd i siarad am ar hyn o bryd. Mae'n gweithredydd sy'n caniatáu i ni cymryd gweddill adran. Felly, os ydym wedi 4% 2, 4 wedi'i rannu erbyn 2 yw 2 gyda gweddill 0. Felly 4% 2 yw 0. 4% 3 yn 1. 4% 5 yw 4, gan y gallech wedi dyfalu. A chofiwch wrth ddefnyddio'r pob un o'r rhain gweithredwyr i ddefnyddio'r rheolau PEMDAS. DAVID Malan: Felly, i fod yn glir, os ydych gwneud 4% 2, pam yw bod 0, yn union? MARIA: Achos 4 rannu gan 2 yw 2 gyda gweddill 0. Felly modulo yn rhoi y gweddill â ni gwrthwynebu i'r canlyniad yr is-adran. DAVID Malan: Ac yn wir, yr hyn y byddwn yn gweld hyn yn ddefnyddiol i yw bod mewn rhai problemau nid yw hynny o reidrwydd yn un, os ydych am gael y effaith o gyfyngu eich hun i ystod o rifau fel 0 drwy rywbeth, gallwch ddefnyddio modulo i lapio o gwmpas gynharach nag fel yr 2000000000 neu mae'r 4 biliwn a gwerth y rydym wedi trafod yn y ddarlith. MARIA: Yeah. A hyd yn oed yn "barus" gallem. DAVID Malan: Oes, yn problem sefydlu un, yn ogystal. MARIA: Yeah, 'n glws. DAVID Malan: awgrym da. MARIA: Mae'n ddrwg gennyf. Boolean expressions-- felly ar gyfer gweithredwyr Boole, rydym yn mynd i siarad am yr holl y bod y rhain a welwch yma. Felly ar hyn o bryd, mae gennym ddau arwyddion cyfartal a restrwyd ar gyfer gyfartal. Felly, y rhai ar gyfer cymharu. Hyd yn hyn, rydym wedi gweld dim ond un arwydd hafal. Dyna pryd yr ydym yn neilltuo gwerth i newidyn. Felly, os ydym wedi gweld int n = 5, ac yna rydym wedi neilltuo 5 i n amrywiol. Ond os ydym eisiau defnyddio == am cymhariaeth, gallwn gadarnhau a oes n == 5. Ac os n == 5, yna mae hynny'n wir. Gweithredwyr Felly Boolean caniatáu i ni, yn y bôn, i werthuso Boolean ymadroddion i Gwir neu Gau. Felly nid equals-- gennym y ebychnod a gydradd. Felly, gallem hefyd gadarnhau a oes n nid yw'n gyfartal 5-- felly n! = 5. Llai na, llai na neu'n hafal i, fwy na, fwy na neu'n hafal i, ac yna mae gennym y rhesymegol A a'r rhesymegol OR. A'r rhai yn ein galluogi i werthuso ymadroddion Boole lluosog at ei gilydd i ddod at ei gilydd fel y bôn un mynegiad Boole cyfan. Felly, os ydym am ddod o hyd i rif, yn dweud, sy'n fwy na 5 ond yn llai na 15 ar yr un pryd, byddem yn defnyddio'r rhesymegol AC gweithredwr i weld a yw n yw sy'n fwy na 5 && n llai na 15. DAVID Malan: Ac yma, hefyd, mae'n hawdd iawn gynnar i ddamweiniol Defnyddiwch dim ond ampersand sengl neu far fertigol sengl. A gobeithio y bydd compiler gweiddi ar chi oherwydd eu bod mewn gwirionedd ag ystyr gwahanol iawn. Ar gyfer y rhai chwilfrydig, maen nhw'n a ddefnyddir ar gyfer gweithrediadau bitwise, gweithredu ar ddarnau unigol. Ond chi ei wneud am i'r pâr ohonynt yma. A super bwysig yw bod un cyntaf, yr arwydd cyfartal, sef y gweithredwr cydraddoldeb fel hytrach na'r gweithredwr aseiniad. MARIA: A'r bar fertigol yn lleoli rhwng y Delete a Dychwelyd. DAVID Malan: Ydw. Ar nodweddiadol bysellfwrdd Unol Daleithiau. MARIA: Yep. Felly gadewch i ni neidio i'r dde i mewn Datganiadau amodol. Yn Scratch, eich bod wedi weld yn barod, yn ôl pob tebyg, os datganiadau sy'n eich galluogi i gadarnhau a oes rhywbeth yn wir, yna gwneud rhywbeth arall. Felly, efallai y byddwch wedi bod eisiau i wirio a yw eich corlun yn cyffwrdd rhyw corlun arall neu y ffin o'r sgrin. Ac yna efallai y byddwch wedi bod yn awyddus i terfyn ar y gêm, neu wneud rhywbeth arall. Felly mae'r cystrawen ar gyfer hynny yw "os (cyflwr)." Felly os yw eich corlun yn cyffwrdd rhywbeth, yna peidiwch yw tu mewn i'r braces cyrliog. Yna, mae gennym ddatganiadau os-arall. Else yn caniatáu i ni wneud rhywbeth os yw'r cyflwr yr ydym yw'n edrych am yn y dechrau yn wir. Felly, os y corlun yn cyffwrdd y border yn gwneud hyn, arall yn gwneud rhywbeth arall. Felly, fel arall yn gwneud rhywbeth arall. Yna, mae gennym enghraifft fer ar gyfer hyn. Felly os (military_time <12), rydym yn eisiau printf "Bore da!" Arall rydyn ni'n mynd i printf "Noswaith dda!" Enghraifft Sylfaenol. DAVID Malan: Da. MARIA: Cool. Felly, erbyn hyn mae gennym ddatganiadau switsh. Datganiadau mewn tun gyffredinol Switch yn ein galluogi i wneud llawer o'r un peth yr ydym newydd ei siarad am â os ddatganiadau. Er enghraifft, ar hyn o bryd mae gennym y ffurf cyffredinol y datganiad switsh sy'n ein galluogi i gymryd newidyn a elwir yn n a'i gymharu i lawer o gwahanol werthoedd, sy'n dyma ni wedi galw constant1, constant2. Efallai y byddwn yn cael llawer mwy. A gelwir y rhai yn achosion. Felly, os oes gennym switsh statement-- ac mae hyn yn gweithio dim ond ar gyfer integers-- gennym newidyn yn yr achos hwn mae hynny'n n. Os bydd y n amrywio yn cyfartal i constant1, rydym yn Bydd gweithredu rhyw snippet o god neu rhywbeth yr ydym am ei wneud. Ac yna byddem yn torri. Felly y toriad yn golygu bod y datganiad switsh Bydd rhoi'r gorau i weithredu os n yn hafal i constant1, ac yna bydd eich rhaglen yn parhau. Bydd yn gadael allan o'r newid datganiad ac mae'n chi helpu parhau i wneud rhywbeth arall. Os, fodd bynnag, nid yw'n n gyfartal constant1, yna achos dros constant2 yn cael eu gwirio. Felly, os n hafal constant2, hynny arall Bydd snippet cod gael eu gweithredu. Ac yna bydd yn torri os yw hynny'n gyfartal iddo. Ac yna gallwn gael also-- nid o reidrwydd, though-- achos diofyn, a fydd yn digwydd os nad yw'n n gyfartal unrhyw un o'r achosion yr ydych wedi'u rhestru. Ac yn yr achos ball, rydym hefyd yn Nid oes angen seibiant o reidrwydd oherwydd bydd y datganiad switsh yn gwybod bod angen iddo i ben ar ôl 'r ball achos os yw hynny'n wir. DAVID Malan: Ond yn arddull, rydym bob amser yn ei roi mewn 'na. MARIA: Yeah. DAVID Malan: Yeah. Felly, yn enwedig wrth ddechrau allan, yn enwedig os ymhlith y rhai llai cyfforddus, Hoffwn yn bersonol dim ond yn argymell aros gyda'r IFS ac IFS-elses ac os-arall-os-elses ac yn y blaen os mai dim ond oherwydd eu bod ychydig yn yn symlach. Mae hwn yn Optimization braf, neu weithiau hyd yn oed esthetaidd ei gwneud y cod fwy darllenadwy. Ac yn wir, yn ôl pob tebyg canol-semester byddwn yn gweld problem gosod ble 'i jyst yn edrych yn well ac yn haws i'w ddarllen gyfer y bobl drwy ddefnyddio datganiad switsh. Ond peidiwch â phoeni am glynu at hyn yn rhy gynnar. MARIA: Yeah. Os oes gennych lawer o os ddatganiadau, dim ond nid allai fod yn ddarllenadwy iawn. Efallai na fydd yn gyflym iawn i chi fynd drwyddo. Felly newid ddatganiadau y gall fod yn ddefnyddiol iawn, yn ogystal. A hefyd, peidiwch â remember-- peidiwch anghofio rhoi egwyl i mewn 'na. DAVID Malan: Ddim yn cofio hyn. MARIA: Gan fod yna efallai y byddwch yn dod o drwy o un achos i'r llall. Felly, gadewch i ni ddweud bod constant1 achos Nid oedd gennych ddatganiad toriad ynddi. Yna, efallai y byddwn yn syrthio trwy constant2 achosion y tu mewn. Ac nid ydym am wneud hynny, os rydym eisoes wedi cyrraedd constant1 achos ac mae'n hafal i'r n. Felly, er enghraifft, os oes gennym newidyn n sy'n cynnwys nifer ddosbarth, ac yr ydym am weld beth sy'n dosbarth yw-- os n hafal 50, ydym yn mynd i argraffu "CS50 yn Cyflwyniad i Cyfrifiadureg I. " Yna, rydym yn mynd i dorri. A dyna ni. Os, fodd bynnag, n yn gyfartal i 51, rydym yn mynd i argraffu "CS51 yw Cyflwyniad i Cyfrifiadureg II. " Yna, unwaith eto, rydym yn mynd i dorri. Fodd bynnag, os hynny rydym yn rhoi 124, 61, unrhyw Rhif arall y byddech yn ei feddwl am, neu beidio rhaglen yn mynd i gydnabod hynny. Felly, mae'n mynd i ddweud, "Mae'n ddrwg gennym, rwy'n nad ydynt yn gyfarwydd â'r dosbarth hwnnw. " Ac mae'n mynd i dorri. DAVID Malan: Felly, gallwch chi wir yn gweld mae'r os, arall os, arall syniad yma. Mae'n cystrawen jyst yn wahanol ar gyfer fynegi'r un syniad union. MARIA: Yn union. Nawr rydym wedi ein gweithredwyr teiran. Gweithredwyr Felly teiran cael tri parts-- amod, rhywbeth i'w wneud os amod hwnnw yn wir, ac yna rhywbeth i'w wneud os yw cyflwr sy'n anwir. Felly, byddwch yn gweld, yn y bôn, cystrawen hynny yma. Mae gennym y marc cwestiwn, a Yna the-- beth ydym yn galw hyn? DAVID Malan: Y colon. MARIA: Colon. Diolch. Mae'n ddrwg gennym. Felly gadewch i ni edrych ar ein esiampl i weld a allwn ni wneud synnwyr o this-- == class_num 50. Felly dyma ni weld ein gweithredwr Boole == sy'n cymharu class_num amrywiol i 50. Siopau Felly class_num yn gyfanrif. Ac os y cyfanrif yn hafal i 50, yna rydym yn mynd i storio "David Malan" y tu mewn i'r athro llinyn. Os nad yw rhif y dosbarth yn gwneud yn gyfartal 50, "Nid yw David Malan" yn mynd i fod yr athro. DAVID Malan: Diolch yn fawr. Ac felly mae hyn yn ymddangos cyfateb i beth, fyddech chi'n dweud, ar yr olwg gyntaf? MARIA: I mi mae'n ymddangos fel arall-os ddatganiadau. DAVID Malan: Yeah. Ac yn wir, mae hyn yn garedig o 'n bert un leinin, fel petai, ar gyfer gweithredu yn union y rhesymeg os-arall ond gwneud popeth mewn un cam. MARIA: Yn union. Yeah. Felly, os-arall ddatganiadau gallai cymryd llawer o le. Efallai eu bod yn rhy hir am rhywbeth mor syml â hyn. Felly gall hyn fod yn iawn cryno a iawn 'n glws. Felly nawr rydym yn mynd i mewn i edrych ar gweithredu rhywbeth eto ac eto, felly wirio am cyflwr sawl gwaith ac yna barhau i wneud rhywbeth tra bod amod hwnnw yn wir. Felly, mae hyn yn dod â ni 'n glws i mewn i dolennau tra. I'r chwith, mae gennym ein dolen tra gyntaf. Felly, er rhywbeth yn wir, yn gwneud rhywbeth eto ac eto. Felly gwnewch yn siwr i hysbysiad bod ein cyflwr yma cael ei ddilysu ar y brig. Tra gyda'n hail loop-- rydym yn galw bod gwneud-tra loop-- ni wneud rhywbeth, Yna, rydym yn gwirio ar gyfer cyflwr. Ac os amod hwnnw yn parhau i fod yn wir, rydym yn mynd yn ôl ac yn gwneud y peth eto. Felly, y prif wahaniaeth yw lle y cyflwr yn cael ei wirio ar gyfer. Ac efallai y bydd y cod byth yn ddienyddio os nad yw'r cyflwr yn yn wir gyda'r ddolen tra. Tra gyda'r do-tra dolen, mae gennym y cod sydd bob amser yn cael ei gyflawni o leiaf unwaith. Ac yna tra bod y cyflwr yn parhau i fod yn wir, gallwn fynd yn ôl a ailadrodd unwaith eto y tu mewn. Felly pam yn eich barn chi byddem yn defnyddio a gwneud-tra ddolen dros dolen tra? Hawl. Felly os ydym am annog y defnyddwyr ar gyfer rhyw fath o fewnbwn, os ydym am ofyn iddynt i fynd i mewn eu henw, rydym am o leiaf ofyn iddynt unwaith. Ac os ydynt yn mynd i mewn a enwa, nid ydym yn mynd i ofyn iddynt eto gan ein bod eisoes yn gwybod ei fod. Ond os nad ydynt yn mynd i mewn eu henw, neu os ydynt mynd i mewn rhywbeth sy'n Yn amlwg, nid enw, rydym yn dal yn awyddus i barhau gofyn iddynt ar gyfer eu henw. DAVID Malan: Ac yn y ddarlith oedd gennym un fel hyn gyda'r cael int cadarnhaol enghraifft, lle does dim byd i gwirio ar y dechrau oherwydd nad ydych wedi hyd yn oed gotten yn int. Felly rydym am ei wneud this-- cael int gan y user-- yna ei wirio, efallai, dro ar ôl tro ar ôl tro. MARIA: Yn union. Ar gyfer OK loops--. Ar gyfer y gall dolenni yn ein galluogi i wneud bron yr un peth yn union, yn ogystal. Mae'n mewn gwirionedd yr un peth yn union. Felly does dim byd sy'n gallwch ei wneud gyda gyfer dolenni na fyddech yn gallu i'w wneud gyda dolenni tra. Ond ar gyfer dolenni yn ymddangos ychydig yn ychydig yn fwy cymhleth syntactically oherwydd bod ganddynt tair rhan y tu mewn yr hyn oedd cyn dim ond y cyflwr gyda dolenni tra. Felly, y rhan gyntaf eich bod yn y môr, y chwith-fwyaf, rydym wedi "int dwarves = 0." Felly, dyma lle yr ydym ymgychwyn ein amrywiol. Yna, mae gennym hanner colon a "dwarves <7." Felly dyma lle allan cyflwr mewn gwirionedd. Felly dyna beth y byddem yn cael rhoi yn unig yn y tra loop-- "Tra dwarves <7." Yma, sy'n mynd yn y nghanol ein gyfer dolen. Felly, "dwaves <7." Ac yna mae ein rhan olaf yw "dwarves ++," a dyna lle rydym yn diweddaru ein amrywiol. Felly, y peth pwysig i sylweddoli yw bod hyn yn mynd i fynd drwy hyn ar gyfer dolen saith gwaith a gweithredu saith gwaith. Felly mae gennym saith dwarves, ac maen nhw i gyd yn mynd i ddweud, "Rwyf yma i'ch helpu chi, Eira Wen " oherwydd eu bod yn barod i helpu Snow White. Gyda tra dolenni, byddem wedi gwneud y initialization a diweddaru Nid yw tu mewn i'r cyflwr, unwaith eto, ond naill ai cyn neu y tu mewn i'r ddolen tra i wneud yn siŵr bod we-- oherwydd rydym bob amser angen rhannau hynny. Felly, er mwyn gwneud yn siŵr ein bod yn cael hwy, byddem yn i wedi dal yn eu hychwanegu ar, dim ond nid y tu mewn i'r cromfachau. DAVID Malan: Ac felly mae'n edrych yn like-- yn y ddarlith, er enghraifft, Rwyf bron bob amser yn defnyddio, fel, fi a n a newidynnau eithaf diflas. Mae'n edrych yn debyg y gallwch ddefnyddio mwy newidynnau a enwir cleverly, hefyd. MARIA: Yeah, mewn gwirionedd mae'n neis iawn i ddefnyddio newidynnau ychydig yn fwy disgrifiadol oherwydd yn enwedig os oes rhywun arall yn ddarllen eich code-- efallai eich bod grader neu os ydych yn cydweithio gyda somebody-- ydych am wneud yn siŵr eu bod yn yn deall yr hyn yr ydych yn ei wneud. IAWN. Felly, mae hyn yn rhywbeth funky-- iawn am ddolen y tu mewn i am ddolen. Nid wyf yn gwybod a ydym wedi gweld hyn o'r blaen. Mae'n debyg nad. Ond gallwn mewn gwirionedd yn cael this-- felly dolenni yn lle dolenni. Felly oes unrhyw un yn dymuno cerdded efallai fi drwy hyn sy'n digwydd yma? DAVID Malan: 'n annhymerus' yn cymryd drywanu. MARIA: Cool. DAVID Malan: Iawn. Felly, spoiler-- rydym am argraffu'r stwff hynny sydd yn y gornel dde isaf yno. MARIA: Iawn. Yeah, yeah. DAVID Malan: Felly rydym wedi dim ond roi hynny allbwn sampl yno. Felly gallaf gasglu oddi wrth y dolen topmost eich bod yn ailadrodd dros rhesi yr dolen pellaf, fel petai. Ac rydych yn ailadrodd drosodd colofnau gyda'r ddolen dyfnaf. Ac yn reddfol, mae hyn yn Dylai gobeithio, yn gwneud synnwyr oherwydd erbyn natur y pob rhaglen yr ydym wedi gweld o'r blaen, printf, sef y swyddogaeth yr ydym yn ei ddefnyddio, yn y pen draw, y gallu i argraffu pethau allan yn y bôn fesul llinell. Fel, unwaith y byddwch wedi outputted llinell newydd, mae ' dim dyblu yn ôl ac argraffu rhywbeth uwch yn y sgrîn, o leiaf peidio â defnyddio printf fel hyn. Ac felly yn hynny o beth, mae'n gwneud ystyr bod y ddolen pellaf Dylid cyfeirio at y rhesi oherwydd ar gyfer pob rhoddir rhes, ydych yn mynd i eisiau argraffu XXXXX, ac yna symud ymlaen i'r rhes nesaf, XXXXX. Felly rhesi dod yn gyntaf. Ac yna o fewn pob rhes, byddwch yn argraffu colofnau. Os byddwch yn ceisio gwneud iddo y gyferbyn, mae'n debyg na fyddai dod allan wrth i chi yn bwriadu. MARIA: Yeah. Rydym yn unig ni allai fynd yn ôl at y rhes blaenorol gyda printf. DAVID Malan: A beth sy'n ddiddorol fesul sgwrs heddiw am gwmpas, mewn gwirionedd, yw bod rhes yn int sy'n datgan yn y ddolen topmost. Ond yn sylwi ei bod yn dal tu mewn, fel petai, y braces cyrliog sy'n ar unwaith yn dilyn, er nad yw'n dechnegol o fewn y braces cyrliog hynny. Felly rhes yn lle i'r gyfanrwydd y snippet cod, y tu mewn i'r allanol ar gyfer ddolen a tu mewn i'r mewnol ar gyfer ddolen. Ond ar y llaw arall, lle yw colofn o fewn y cwmpas? Mae'r golofn amrywiol? Yeah, dim ond yn y ddolen tu mewn. Ac mae hynny'n iawn oherwydd nad ydym yn cael mynediad ei fod y tu allan i'w bresys cyrliog. Y cyfan yr ydym yn ei wneud yw argraffu newydd llinell ar ddiwedd yno. Fel bod mewn gwirionedd yn iawn. Felly, mae hyn yn cael yr effaith, mae'n edrych yn debyg, o wneud tair rhes a pedair colofn. MARIA: Iawn. Felly, yn gyntaf rydym yn mynd trwy ein rhes gyntaf. Ac yn union yn ein rhes gyntaf, rydym yn gwneud y pedair colofn y tu mewn i'r rhes gyntaf. Felly, rydym yn argraffu pedwar X. Ac yna gallwn adael yr am ddolen, gan fod rydym eisoes wedi argraffu'r pedwar X. Ac rydym yn argraffu llinell newydd. Ac yna rydym yn mynd drwy'r un broses ar gyfer dwy res mwy i wneud cyfanswm o dri. DAVID Malan: Ac mae'n werth nodi ei fod yn dim ond yn arteffact o ffont, y ffaith bod yr allbwn sampl ymddangos gymaint yn dalach, fel pe mae mwy rhesi na cholofnau. Ond mae'n dim ond oherwydd y X yn dalach nag y mae o led. Dyna'r cyfan sy'n digwydd yno, yn ogystal â'r gofod gwyn rhwng llinellau. MARIA: Iawn. Cwl. DAVID Malan: pob hawl. Felly edrych yn sydyn ar broblem sefydlu un, gymryd unrhyw gwestiynau, ac yna ohirio? Iawn. Felly, yn broblem sefydlu un, mae tri heriau cynradd, yn y pen draw. Ond yn gyntaf, fe ddewch o hyd bod y broblem a osodwyd manyleb, fel yn achos llawer y psets gostyngiad hwn, yn mynd i gerdded chi drwy ychydig o ymarferion cynhesu, pwyntio chi allan ychydig o adnoddau y gallech chi neu efallai Nid yw wedi gweld yn barod. Er enghraifft, CS50 Mae cyfres o siorts, sy'n cael eu fideos byr, nid annhebyg hyn, ond bod yn specific-- pwnc iawn efallai pum munud, 10 munud o hyd ar dolenni neu ar amodau neu ar algorithmau neu'n hwyrach ar fwy pynciau uwch, yn ogystal. Ac rydym yn gyffredinol yn ymgorffori y rhai i mewn i'r broblem setiau fel bod myfyrwyr gennym adnodd â hwy i adolygu deunydd a allai gael eisoes yn dod i fyny mewn darlith neu adran. Ond y ffordd hon mae'n fwy o ffocws a mwy ar flaenau eu bysedd. Rydym hefyd yn tueddu i ymgorffori yn broblem yn gosod pethau o'r enw walkthroughs. Felly, mae bron pob un o'r enghreifftiau yr wyf yn ei wneud yn y ddarlith, ar y llwyfan yma, rydym hefyd yn wedi saethu ar gamera yn ymlaen llaw yn fwy arafach, mae walkthrough mwy cartrefol gennyf ar fy ngliniadur y cod, fesul llinell fel eu bod yn y dosbarth, yr ydym annhymerus 'yn aml sgimio drwy rywbeth neu rywun Bydd interject gyda ateb i gwestiwn. Ond nid yw o reidrwydd yn suddo mewn ar gyfer pawb yn y gynulleidfa. Felly, fe welwch cod walkthroughs am y rhan fwyaf o'r enghreifftiau ein bod yn ei wneud yma yn darlith er mwyn i chi Gall cerdded trwyddo ar eich cyflymder eich hun a ailddirwyn neu gyflym ymlaen neu sgipio yn gyfan gwbl, os hoffech. Mae aml ychydig Cwestiynau cynhesu sy'n yn gofyn i chi i roi trefn ar atgyfnerthu deunydd hwn a gwnewch yn siŵr eich bod yn gyfforddus cyn byddwch yn symud ymlaen gyda gweddill y pset. Ac yna, wrth gwrs, mae y pset ei hun. Ac un o'r pethau rydym yn fwriadol iawn ei wneud yn CS50 bron pob anniddorol neu ddeallusol anniddorol cam mecanyddol sy'n Efallai y bydd rhaid i chi ei wneud wedi ei gofnodi'n bron bob amser yn dda iawn. Yn ystod y tymor, rydym yn chi helpu yn dechrau gofyn cwestiynau mwy rhethregol fel cofio sut i wneud hyn neu fod? Ond yn gyffredinol, fe welwch fod y broblem yn gosod yn mynd â chi drwy'r mecaneg o rywbeth fel bod yr heriau diddorol, deallusol yn y pen draw, eu gadael i chi i'r myfyriwr. Gyda hynny ddywedodd, Zamyla, i bwy ydym gedwir cyfeirio heddiw yn y ddarlith, yn un o'n staff longtime aelod sydd hefyd yn dal walkthroughs ar broblemau pset penodol fel Mario a barus, er nad dŵr eleni. Ac mae'n yn y rhai hynny walkthroughs ei bod yn aml yn yn cynnig rhai awgrymiadau a driciau ar gyfer sut i symud ymlaen, byth yn dweud wrthych yn union beth i'w wneud, ond rather-- fel amod, os ydych yn will-- rhoi i chi o leiaf cwpl o syniadau fel y mae i fyny i chi, yn y pen draw, er mwyn penderfynu sut i fynd atynt. MARIA: Trefnu o hoffi lefel-uchel dealltwriaeth o'r rhesymeg yr hyn rydym yn gofyn i chi ei wneud. DAVID Malan: Yn union. Ac, mewn gwirionedd, Zamyla yn walkthroughs i fod i ateb y aml cwestiwn a ofynnwyd o gyflwr lle Dechreuais wneud, yn enwedig pan manylebau hir yw'r rhain ychydig yn frawychus o ystyried yr holl destun a delweddau sydd ganddynt ynddynt. Felly water.c, fe ddewch o hyd ar ôl i chi ei gwblhau, mewn gwirionedd gymharol syml. Hollol yn griw ohonoch yn mynd i bang eich pennau yn erbyn y wal yn ceisio at chyfrif i maes pam nad yw'n llunio neu pam nad yw'n rhedeg yn gywir. Ond unwaith rydych yn ei wneud ag ef ac unwaith eich bod wedi Treuliodd beth amser yn ymgodymu ag unrhyw o'r chwilod a allai fod gennych, fe welwch ei fod yn rhaglen fer iawn. Gellir ei wneud mewn dim ond ychydig linellau o god, y rhan fwyaf ohonynt ydym wedi ei weld yma yn y ddarlith yn barod, os byddwch yn cydosod y blociau adeiladu cywir. Ac wrth i ni awgrymu yma, mae'n mynd i ofyn chi nodi faint o funudau rhywun yn cymryd cawod ar y campws. Rydym yn nodi yn y broblem yn gosod cyfradd y llif y dŵr i mewn, fel, cawod llif isel pen, yn debyg iawn i'r clip Seinfeld gwelsom ddoe neu y gwrthwyneb o hynny. Ac yna os oes gen ti i wneud ychydig o mathemateg, really-- rhifyddeg gan ddefnyddio C i ddweud wrthym faint o, yn fras, poteli o ddŵr yw bod gyfwerth â os ydym yn cymryd cawod n munud. Yn awr, yn mario.c, mae hyn yn mynd i fod yn rhaglen ychydig yn hirach. Mae'n dal yn mynd i fod yn hyn o hyd. Dim ond ychydig o linellau yn hwy nag water.c. Ond mae'n mynd i fod yn gyfle i ail-greu'r hen ysgol Mario pyramid o Super Mario Brothers neu ryw dilynol. Dyw hi ddim yn mynd i edrych fel prettier neu mor lliwgar fel bod un yno. Rydym yn jyst yn mynd i ddefnyddio hashtags bach fel sydd gennym yma ar y sgrin ddefnyddio testun ASCII. Ond bydd yn fras yr un syniad. Ac mae'n mynd i fod yn arfer y ar yr olwg gyntaf ymddangos yn eithaf simple-- unig argraffu pyramid syml. Ond mae cwpl nodweddion dyma sy'n ddiddorol. Sylwch fod yr ymyl rightmost o mewn gwirionedd wedi lled dau y pyramid. Felly mae dau cyfartal colofnau uchder, a oedd yn ei gwneud yn ofynnol ychydig ychydig o feddwl i wneud yn siŵr eich bod yn cael bod yn union gywir, fel y hytrach na dim ond yn berffaith ar ongl llinell. Felly dyna dipyn o achos cornel ond yn cyfateb i'r gêm ei hun. Ac mae hefyd yn heb fod yn amlwg ar y dechrau yr olwg sut i argraffu gofod gwyn. Felly, pan fyddaf yn edrych ar y sampl Yma-- allbwn ac mae hefyd yn y spec-- ei fath o edrych fel petryal, ond mae lletraws o'r petryal wedi ei dorri'n fân i ffwrdd, ac mai dim ond bylchau gwyn, fel petai. Ac felly mae ofynnir yn aml cwestiwn yma bob amser, yn dda, sut ydw i'n symud y hashtags draw i'r dde? Neu sut ydw i'n argraffu bylchau? Ac mae'n mewn gwirionedd yn haws na'r rhan fwyaf o fyfyrwyr yn meddwl. Iawn? Gallwch fras ei weledol o ddim ond taro'r bar gofod unwaith neu ddwywaith neu dair gwaith. Ac felly hyd yn oed er gyda printf rydym bron bob amser yn argraffu llinyn neu int neu air fel "helo, byd "neu gyfres o o eiriau, gallwch hefyd jyst argraffu dyfyniad, gofod, unquote. A fydd yn mewn gwirionedd yn rhoi chi gofod gwyn yno. Felly cadwch hynny mewn cof a peidiwch â overthink hyn. 'N sylweddol yn rhaid i Chi penderfynu rhes gan res gan res, nid annhebyg eich enghraifft eiliad yn ôl, faint o'r rheiny Dylai colofnau fod yn fannau gwyn a faint ohonynt ddylai fod hashtags. Bydd yn cymryd ychydig o amser, ond mae'n yn y pen draw pos rhesymeg o ryw fath. MARIA: Yeah. Ond y rhesymeg y rhes yn mynd yn ôl rhes yn mynd i fod yn ddefnyddiol iawn yma. DAVID Malan: Yeah. Rwy'n meddwl bod y cod enghreifftiol rydych gave-- hyd yn oed er nad oedd yn rhaglen gyflawn. Dal angen int a phrif Chi a stdio.h ddi-rym ac #include, mae llawer o'r pethau o ddarlith. Ond mae'r blociau adeiladu ymddangos i fod yno. Ac yna yn olaf yn rhywbeth ychydig yn fwy algorithmig. Felly, mae'n ymddangos bod unrhyw tro y byddwch yn mynd i mewn i CVS neu unrhyw siop gyfleustra a rhywun yr ydych yn dwylo yn y biliau ariannwr neu ddarnau arian wrth i newid, mae'n troi allan eu bod, bodau dynol, a ydynt yn gwybod ei fod neu beidio, yn ôl pob tebyg yn defnyddio beth sydd a elwir yn algorithm barus, lle os ydych yn ddyledus, yn dweud, $ 21 yn y newid yn oherwydd am ryw reswm byddwch wedi prynu rhywbeth rhad iawn gyda bil mawr iawn yn CVS, byddai'n wirioneddol yn blino os bydd y Rhoddodd ariannwr 21 senglau neu, yn waeth i chi eto, mae llawer gyfan o ddarnau arian. Yn hytrach, yr hyn y mae person rhesymol yn yn ôl pob tebyg yn mynd i wneud yw eu bod yn mynd i fachu $ 20- ac yna a $ 1- bil, a llaw 'ch jyst dau biliau yn yr achos hwnnw. MARIA: Felly maent yn ceisio lleihau y newid eu bod yn rhoi yn ôl i chi. DAVID Malan: Yn union. Ac un yn delio â darnau arian, yn ogystal. Os ydych yn ddyledus, yn dweud, $ 0.50, gobeithio nad ydych am 50 ceiniog. Rydych yn lle hynny am ddau chwarteri, er enghraifft. Yn awr, mae hyn yn cymryd yn ganiataol bod yr ariannwr wedi digon o bob enwad sy'n gallai ef neu hi eisiau rhoi i chi. Ond rydym yn caniatáu i chi gymryd yn ganiataol gymaint yn y broblem. A'r nod, yn y pen draw, yw rhoi ar waith yn y cod C algorithm barus. Felly, yn cael ei ganiatáu i'r defnyddiwr teipio faint newid ef neu hi yn ddyledus gyda ddoleri a cents, rhyw fath o bwynt fel y bo'r angen gwerth mwy na thebyg. Ac yna rhaid i chi wneud y math a chyfrif i maes algorithmically, yn dda, faint o ddarnau arian y gallaf roi chi cyn lleied â phosibl i roi i chi yn union y swm hwnnw o newid. Ond mae mynd i fod yn ychydig o rannau anodd yma, dde? Fel mae y cyfan mater imprecision. MARIA: Yn union. Pwynt Felly fel y bo'r angen Gwerthoedd yn cael imprecision. A wnaethom sôn am hyn mewn darlith heddiw? DAVID Malan: Gwnaethom y tro diwethaf yn y ddarlith. Buom yn siarad am imprecision. Ac nad ydych am i dwyllo y defnyddiwr o faint o newid mae ef neu hi yn ddyledus. Ac felly y walkthrough, yn y fanyleb broblem a osodwyd, rhoi rhywfaint o feddwl, yn y pen draw, o ran sut y gallwch liniaru'r rheini imprecision camgymeriadau, o bosibl. Mae'n y gellir eu hosgoi, yn sicr, am mewnbynnau rydym yn sôn am. Ac, mewn gwirionedd, pennies-- efallai y byddwn yn gohirio i Zamyla, Yr wyf yn meddwl, ar gyfer y triciau yno. Felly yn y pen draw, byddwch yn dod o hyd i cynnydd o broblemau yr wythnos hon, y cyntaf sydd yn eithaf bach, Yna, canolig, yna ychydig yn fwy. Ond mae pob un ohonynt yn defnyddio'r adeilad blociau o'r wythnos hon ddiwethaf, o'r supersection hwn, gosod manyleb problem eich rhoi mewn adnoddau di-rif. Ond o hyd, os o gwbl trafferth, yn enwedig ymysg y rhai llai cyfforddus heb unrhyw gefndir o flaen llaw, dod i oriau swyddfa ar ddydd Llun a dydd Mawrth a Mercher a dydd Iau. Ewch i CS50 Trafod drwy gwefan y cwrs, trwy y gallwch chi sgwrsio gyda staff a chyd-ddisgyblion. Ond yn y pen draw, yr wyf yn meddwl bod y cyngor gorau yw dim ond dechrau yn gynnar. Dyw hi ddim yn y math o ddosbarth sy'n chi Dylid dechrau psets ar ddydd Mercher nos, neu nos Iau waeth. MARIA: Fy cyngor gorau yw i wedi dechrau erbyn dydd Llun. DAVID Malan: Dydd Llun. Felly, os nad ydych wedi dechrau already-- dim. Ond hyd yn oed os nad yw Dydd Llun, yna dydd Mawrth. Gorau po gyntaf y gorau. A dyna y rheswm y Mae cwrs cymaint o ddyddiau yn hwyr yn i roi tipyn o chi bwysau seicolegol i ddechrau yn gynt ond yn dal i adael pethau llithro pan fydd pethau'n cymryd mwy o amser nag ydych yn disgwyl. MARIA: A ydych am wneud defnydd o oriau swyddfa gymaint ag y gallwch, hefyd. DAVID Malan: Unrhyw gwestiynau? Iawn. Wel, nid pam yr ydym yn gohirio'r yma?