[Powered by Google Translate] DAVID Malan: Mae hyn yn CS50, ac mae hyn yn dechrau Wythnos 1. Beth rydym yn meddwl y bydden ni'n ei wneud heddiw yw cymryd golwg yn ôl ar rhywbeth y mae llawer ohonoch wedi thebyg yn cerdded heibio i rai amser efallai nawr ac yn edrych ychydig yn gyfarwydd. Mae hyn yn beth yma, mae hyn wrth gwrs yn y - GYNULLEIDFA: Gwyddoniaeth. DAVID Malan: Gwyddoniaeth ganolfan. Felly, mae hyn mewn gwirionedd yn un o'r cyfrifiaduron cyntaf gefn o'r 1940au. Roedd yn un o'r cyfrifiaduron cyntaf electromechanical a oedd yn gallu arbennig o hir, hunan-barhaus cyfrifiannau, a beth y byddwn yn gweld yn y y ganolfan wyddoniaeth yn unig yw darn bach y peth hyn. Beth rydym yn meddwl y bydden ni'n ei wneud wedyn yw cymryd golwg yn ôl ar fideo a wnaethpwyd beth amser yn ôl, cyflwyno'r beth i'r byd. A byddwch yn gweld o'r gerddoriaeth a llais sy'n wir y rhai Roedd adegau hapus iawn. [Chwarae fideo] -A fuddugoliaeth o sgiliau mathemategol a mecanyddol yn hyn cyfrifiannell awtomatig newydd gwych ym Mhrifysgol Harvard. Problemau cymhleth mewn mathemateg, rhowch drwy'r peiriant ar ffurf cod ar dâp, yn cael eu datrys yn gywir mewn ffracsiwn munud o'r amser sydd ei angen ar gyfer pobl cyfrifiad. Cynllun i hwyluso pob math o mathemategol a gwyddonol ymchwil, bydd yr ymennydd mecanyddol mawr yn gweithio ar gyfer y Deyrnas Unol Llynges tan ddiwedd y rhyfel. DAVID Malan: Felly beth efallai nad ydych yn gwybod yw ei fod yn hwn yn un ddyfais bod amod ydym i gyd yn awr yn cymryd 'n bert lawer yn ganiataol ei fathu, sef a bug. Felly un o'r peirianwyr sy'n gweithio yn y cyfrifiadur dod o hyd llythrennol wyfyn bach yn y peiriant a arweiniodd at mewn rhai cyfrifiadau anghywir. Ac wrth i'r stori fynd y gwyfyn yn eu tapio at y log cylchgrawn yma, yn ôl o fis Medi 9 yn 1940-rhywbeth, ac felly ei eni ar gyfer y byd y term "nam". Felly o hyn ymlaen byddwn yn ystyried bygiau i fod yn unrhyw fath o gamgymeriadau yn y rhaglenni, boed yn ddyn-wneud neu, yn yr achos hwn, pryfed. Felly, cyhoeddiadau ychydig, wrth inni fwrw ymlaen. Felly CS50 draddodiad o gynnig cinio o ryw fath ar Dydd Gwener fwyaf yn ystod y semester, pan fyddwn yn cymryd 30 i 40 o fyfyrwyr i Tân ac Iâ yn y Sgwâr ar gyfer achlysurol cecru, yn sôn am wyddoniaeth gyfrifiadurol, siarad am y dyfodol. Rydym yn gwahodd alumni a ffrindiau o ddiwydiant i sgwrsio i fyny myfyrwyr yn ogystal. Really tuag at ben o wneud beth dosbarth eithaf mawr yn fwy agos, o leiaf unwaith yn tra is-setiau o fyfyrwyr. Felly os hoffech chi ymuno â ni ddydd Gwener, 1:15 PM, ewch i CS50.net/lunch i RSVP. A byddwn yn gwneud hyn yn gylchol, felly â phoeni os nad ydych chi'n ymhlith y 30 cyntaf neu felly yr wythnos hon. Felly nodiadau ysgrifennydd. Mae gair ar yr adnoddau a fydd yn awr yn dechrau ar gael i fyfyrwyr yn y dosbarth. Fel bod eich pennau Nid oes yn rhaid i lawr yn ystod darlithoedd sgriblo i lawr popeth yr wyf yn dweud ac yn y blaen, yr hyn rydym yn ei wneud hytrach yn cael ei darparu gan y staff addysgu a set o nodiadau canonaidd. Felly mae gennym un o'n cymrodyr addysgu, Andrew Sellergren, sy'n eistedd i lawr bob wythnos, yn adolygu y fideos, ac yna ysgrifennu i lawr yr hyn yr ydym yn meddwl yn weddol set awdurdodol o nodiadau. Ac Andrew hoff, hefyd, o roi troednodiadau snarky yn y gwaelod. Felly, byddwch yn mwynhau gobeithio y rhain fel llyfr cyfeirio ar gyfer hwyl, a hefyd, yn dod cwis amser, fel cyfle i adolygu yr hyn a ddigwyddodd mewn darlithoedd unigol. Felly, y rhai yn cael eu cysylltu ar y dudalen darlithoedd. 0 set Problem, yn y cyfamser, allan. Ac o ran yr adnoddau sydd ar gael i chi - y walkthrough. Milo Arweiniodd y cyntaf ar ddydd Gwener. Cafodd ei ffilmio, rhoi ar-lein erbyn dydd Sadwrn. Ac felly yn sylweddoli, os nad ydych yn siŵr ble i ddechrau, ar gyfer hyn neu yn y dyfodol p-setiau, bob amser yn troi yn gyntaf i'r walkthrough neu'r ohono fideo. Rhannu'r mynd rhagddo, yn cs50.net/section yw lle rydych yn Dylai gyflwyno eich dewisiadau, os nad oes gennych yn barod, erbyn heddiw. Gan y bydd adrannau yn dechrau ddydd Sul hwn yn dod, Dydd Llun, a dydd Mawrth. Rydym yn gwneud adrannau y tri diwrnod, bob wythnos o'r semester ar gyfer y rhan fwyaf. Ac rydym hefyd yn cyflwyno, unwaith eto, traciau gwahanol. Felly, byddwch yn cael eich gofyn ar y ffurflen hon rhannu a, os ydych wedi ei weld yn barod, os ydych chi ymhlith y rhai llai cyfforddus, yn fwy cyfforddus, neu rywle yn y canol. Ac os ydych yn fath o ar y ffens, yn gyffredinol yn rhywle yn rhwng yr hyn y rhan fwyaf o fyfyrwyr yn y pen draw gwirio. Oriau swyddfa yn dechrau heno. Felly Scratch yn allweddol yn weddol isel, hyd yn oed er 'i' eithaf naturiol i redeg i mewn i bugs amrywiol, neu fod yn ansicr ynghylch sut i gweithredu rhywbeth. Felly, yn sylweddoli y byddwn yn dechrau oriau swyddfa yr wythnos hon. Byddant fod yn Annenberg Dydd Llun, Mawrth, Mercher, Dydd Iau, 20:00-11:00 yn ystod egwyl ymennydd. Gall classmen Uchaf mynd i mewn, ac os ydych chi erioed wedi cael trafferth cael yn y drws, oherwydd fe wna nhw yn ymosodiadau, dim ond siarad eich ffordd i mewn ac esbonio eich bod gyda CS50. Yn nodweddiadol, bydd 20 i 30 o ni ar staff yno i helpu chi'n un ar un. Ar ôl cyrraedd y syniad yw hyn: byddwch yn dod â'ch gliniadur, byddwch yn cael eich charger, bydd gennym cordiau pŵer ychwanegol, yn arbennig ar hyd y wal i'r de o Annenberg lle mae llawer o siopau trydanol. Ac mae'r prif bwynt mynediad i oriau swyddfa Q & A yn mynd i cs50.net/discuss, ac i osod i'ch cwestiwn yno. Ac i labelu gyda pset 0 neu pset 1, beth bynnag yr wythnos allai ddigwydd i fod. Ac yna beth byddwn yn ei wneud yw cael tabl o'r cymrodyr addysgu cynorthwywyr cwrs ac, yn gyffredinol 8 neu 10 neu fel un ohonom, mynd drwy, gan gadw llygad barcud ar y bwrdd, a plicio oddi ar y cwestiynau gwirioneddol mor gyflym ag y gallwn, eich cyfeirio at swyddi cysylltiedig os nad ydych wedi dod o hyd rhai eich hunain, cyfeiriadau ar-lein, fel y bo'n briodol. Ac yna os oes problemau, gan fod yn anochel yn, neu'n 'i jyst yn gwneud mwy o synnwyr i eistedd i lawr un ar un, weithio drwy broblemau gyda rhywun. Neu 'ch jyst yn dod i oriau swyddfa mewn gwirionedd angen y meddylfryd hwnnw. Dydych chi ddim eisiau mynd trwy'r ffurflen electronig, rydych wir am gwrdd â rhywun. Cyfathrebu hynny i ni, a beth fydd yn digwydd yw pan fydd eich cwestiwn wedi cael ei gweld gan aelod staff, ac rydym yn penderfynu, yup, dylai hyn gael ei anfon at un o'r 20 neu 30 o aelodau tîm yma yn lleol, byddwch yn gweld yn y gornel chwith uchaf y ychydig Rhowch y botwm Ciw yn dechrau fflachio ar cs50.net / trafod. Ac mae hyn yn dweud wrthych eich bod bellach wedi cael eu gwahodd, felly i siarad, i fynd i mewn i'r ciw. A thrwy glicio y botwm, bydd eich enw yn ymddangos ar iPad bod y cyfarchwr CS50 un o bennau y cwrs, bydd yn cynnal ger y fynedfa Annenberg, a fydd wedyn yn weld yn cael ei darlunio fel yma, y ​​myfyrwyr sydd â chwestiynau am y chwith, yr aelodau staff sy'n bresennol ar y dde. Ac trwy roi clic chwith a dde, bydd eich porwr gwe yn dechrau fflachio cyn gynted ag, er enghraifft, yr Athro McGonnagal yn barod i weld chi ar fwrdd arbennig yn Annenberg. Felly, rydym yn gwneud rhywfaint o hyn y llynedd. Rydym wedi hailgychwyn oriau swyddfa a ail-weithredu llawer o'r meddalwedd. Felly, yn sylweddoli y bydd hyn yn cael ei gynhesu i fyny yr wythnos hon. Ond hefyd yn sylweddoli hefyd, yn ystod y blynyddoedd diwethaf, fel y byddech wedi clywed gan ffrindiau, oriau swyddfa oedd yn wir 50 i 150 o fyfyrwyr ar unwaith. Ac nid yn syml bosibl i ni ymdrin â hynny yn effeithiol, un ar un, trwy gydol y noson. Ac felly yr hyn yr ydym ni'n wir yn mynd i geisio gwneud eleni yw manteisio ar y ffaith bod llawer o gwestiynau yn a ofynnir yn aml ac yn aml yn cael eu hateb yn well asynchronously. Felly, gallwch ddatrys o feddwl drwy ymateb y staff, a gallwn feddwl drwy eich cod, heb y gwresogi pwysau o reidrwydd yn ei chael hi'n anodd drwyddo ochr yn ochr. Felly, rydym yn amcangyfrif bod tua thraean neu hanner y cwestiynau yn cael eu hanfon yn bersonol, a byddwn yn ceisio dynnaf i ffwrdd fel cymaint â hanner neu fwy yn electronig, yn ystod oriau swyddfa. A byddwn yn parhau i ddefnyddio Trafod drwy gydol yr wythnos yn ogystal. Ac yn olaf, yn sylweddoli y gall y cwrs hwn yn cael eu cymryd pasio / methu. Felly, os ydych ar y ffens neu jyst yn meddwl eich bod yn wirioneddol ddim yn siŵr os yw hyn yn y byd i chi, neu mae hyn yn wir eithaf tramor i chi, yn sylweddoli bod hyn yn ffordd wych o ennill i fyny rhywfaint o hyder i'w defnyddio i gamu i mewn i'r dosbarth, fel y gwnes i dweud y gwir, flynyddoedd yn ôl. Ac yna bum wythnos i ddatrys y ffigur ar gyfer eich hun os ydych am aros pasio / methu, newid i lythyr radd, neu yn y blaen. Ac fel arfer beth pasio / methu ei wneud, yr wyf yn meddwl, ar gyfer myfyrwyr yn hynny, os ydych yn eu rhoi yn y 10 awr, 20 awr, beth bynnag Efallai y bydd ar rai o'r problemau, ac rydych yn taro eich pen yn erbyn y wal, ac ydych yn wir ni all dim ond mynd ar drywydd rhywbeth i lawr, ac rydych yn cael cymaint o bethau eraill mae angen i chi ei wneud, yn onest, yr hyn yr wyf meddwl pasio / methu yw, mae'n cymryd ymyl oddi ar sefyllfaoedd fel 'na. Os ydych wedi cymryd y peth 90% o'r ffordd. Rydych yn gwybod, nid yw'n hollol berffaith. Ond byddwch yn cael llawer allan ohono, serch hynny. Felly, yn ystyried pasio / methu â rhoi i chi y model meddwl, efallai. Mae pob hawl, yr wythnos diwethaf, felly colomen i mewn i Scratch, ac rydym yn siarad am raglennu ar lefel weddol uchel graffigol. A heddiw rydym yn gwneud y newid i iaith o'r enw C, iaith raglennu lefel is ar ben pa ieithoedd modern yn cael eu hadeiladu yn awr, gan gynnwys rhai o'r rhai y byddwn yn eu defnyddio tuag at ddiwedd tymor. Ac syntactically, yr hyn y maent yn edrych fel i gyd yn eithaf tebyg. Felly, gadewch i ni ddechrau i wneud y newid yma. Felly mae hwn yn rhaglen yr wythnos diwethaf a oedd yn y symlaf o helo rhaglenni byd. Mae'n hargraffu yn syml at y sgrin hello byd, gyda swigen siarad bach yn dod allan o'r gath. Wel, os ydym yn dechrau yn awr i gyfieithu hyn i un arall iaith, yn sylweddoli bod y syniadau heddiw ac ar ddydd Mercher yn union yr un fath, ond y gystrawen yn dechrau newid. Felly, tra yr wythnos diwethaf yr oedd gennym, pan fydd baner werdd glicio, yn dweud helo byd. Heddiw rydyn ni'n mynd i gael int, prif ddi-rym, printf, dychwelyd, gyda rhai chystrawen eraill yn yno yn ogystal. Braces cyrliog, a cromfachau, a dyfyniadau, a whatnot. Ond yn sylweddoli bod craidd y syniad yma yn y argraffu, ac yn y pen draw, y ffaith bod prif awr yn mynd i fod yn gyfystyr â cychwyn rhaglen. Main yn mynd i fod yn lle y faner werdd yn cychwyn pethau i ffwrdd. Felly nawr gadewch i ni ar wahân canfod rhai o'r blociau adeiladu yma cyn i ni plymio i mewn i rai enghreifftiau pendant. Felly, byddem ni'n ei alw yr wythnos hon datganiad diwethaf, lle dim ond cyfarwyddyd. Gwnewch hyn - yn yr achos hwn, yn dweud helo byd. Wel yn C, os edrychwn ar hynny llinell, dyma sut rydym yn mynd i ddechrau yn mynegi y darn pos arbennig: printf ("helo byd");. Ac yn awr byddwn yn canfod y rhain ar wahân yn fwy a mwy dros gyfnod o amser, ond yn sylweddoli bod yna batrwm yma. Felly, yr ydym yn cael y peth a elwir yn printf, sydd yn yn y bôn sy'n cyfateb i'r gair Dweud. Dyna beth mae'n mynd i wneud. Printf, a f yma yn golygu "wedi'i fformadu". Felly, 'i jyst yn golygu y gallwch fewnosod manylion esthetig amrywiol. Felly unquote dyfyniad yn dechrau o'r hyn yr ydym yn mynd i ddechrau galw llinyn. Mae gair, ymadrodd, yn frawddeg. Mae llinyn mewn iaith raglennu dilyniant o sero neu fwy o gymeriadau. Felly h-e-l-l-o, coma, ac yn y blaen yw, , unquote dyfynbris gan un llinyn. Ac yn awr slaes n, ychydig syntactically od, ond rydym yn sydd eisoes wedi'u diffinio yr wythnos diwethaf i olygu beth? Dim ond llinell newydd. 'I' jyst yn ffordd o gyfleu at y cyfrifiadur rydych am i'r cyfateb yn taro 'r Rhowch yno, ond nad ydych yn gwneud eisiau mewn gwirionedd daro Enter a llanast i fyny, felly yr holl fformatio eich rhaglen wirioneddol. Nawr bod y cromfachau amgáu llinyn yma, yn agored paren a paren agos, ac y tu mewn o hynny yw ein llinyn. Oherwydd hynny oherwydd yn C, a rhaglenni eraill ieithoedd, pethau fel printf cymryd dadleuon, neu gymryd paramedrau. Felly, ddechrau meddwl nawr am y bloc hwn Dweud porffor fel swyddogaeth, fel dull, fel gweithdrefn. Gallwch wir yn ei alw beth bynnag yr ydych ei eisiau ar hyn o bryd, ond mae'n fath o raglen bychan mai dim ond y mae un beth, mewn llinell sengl, dim llai. Felly printf hefyd yr hyn rydym yn mynd i ddechrau galw swyddogaeth, a swyddogaethau gwneud rhywbeth - yn yr achos hwn argraffu llinyn fformatio i'r sgrin - ond mae swyddogaethau hefyd yn cymryd dadleuon neu baramedrau. Ac erbyn dadleuon neu baramedrau, diolch i chi, rydym yn golygu y gall eu hymddygiad yn cael ei dylanwadu gan yr hyn byddwch yn mynd heibio yn tu mewn i'r cromfachau. Felly, yn yr achos hwn, anghenion printf cael gwybod beth i'w argraffu, ac rydym yn dim ond pasio i mewn, mewn dyfynodau dwbl yma, y ​​llinyn yr ydym yn mewn gwirionedd eisiau argraffu. A'r hanner colon ar ddiwedd y llinell hon yn unig yw niwsans hanesyddol lle ar ddiwedd y llinellau mwyaf o god, chi roi hanner colon i wneud super glir i'r cyfrifiadur fod y llinell o god yn dod i ben yma. Nawr mae hyn yn dda oherwydd fel byddwn yn gweld fel rhaglenni yn cael mwy cymhleth, bydd y colon yn gwneud pobl yn glir i ni super, a hefyd y cyfrifiadur, lle mae llinellau o ddechrau ar ddiwedd cod a. Sylweddoli nad yw rhai ieithoedd yn cael rhywfaint o o'r un manylion. Ac yn wir, yn JavaScript, nid oes bob amser angen rhywbeth fel y colon. Ond mwy am hynny i ddod. Felly, dolennau. Cawsom rhywbeth fel hyn, yn reddfol, yn amlwg, yn rhywbeth eto ac eto ac eto. Fel rhoi ar sanau, neu ddweud helo, yn yr achos hwn. Wel, gan ddechrau heddiw yn C, gallem fynegi hyn yn Scratch bloc fel tra (gwir) printf ("helo byd"). Felly sylwi rydym yn dechrau i adeiladu ar llythrennol y pos darn o'r blaen. Mae gennym y bloc porffor un, ond mae'n y tu mewn o hyn cromfachau Forever bloc, a'r ffordd orau i gyfieithu bod i C fel a ganlyn. Does dim Forever keyword. Ni allwch jyst deipio f-o-r-e-v-e-r yn C. Felly mae'r analog agosaf yw tra bod. Yn awr, tra (yn wir) yn ymddangos ychydig yn dwp oherwydd y mae'r gwerth o newid yn wir erioed? Yn ôl pob tebyg peidio. Mae fel dweud wrth un, tra ar, tra bod wir. Mae hyn i gyd yr un peth, yn wir bob amser yn wir. Felly, mae hyn mewn gwirionedd yn ddolen yn cymell pa fath o ddolen? Dim ond dolen ddiddiwedd, ar y dde. Mae dolen Forever neu fel byddem ni'n ei alw yr wythnos diwethaf, dim ond dolen ddiddiwedd. Felly, weithiau mae hynny'n ddrwg. Weithiau, mae hynny'n bug, weithiau dyna pam yr ydych yn ei gael y bêl traeth nyddu neu hourglass neu debyg. Ond yn yr achos hwn, rydym yn fwriadol, am ba bynnag reswm, yn awyddus i argraffu yr un peth eto ac eto ac eto. Neu yn achos o fel gwylio, ydych am ei wneud rhywbeth eto ac eto ac eto. Efallai Felly dolenni diddiwedd yn gwneud synnwyr. A dyma sut yn C gallem cyfieithu Forever i cod. Felly nawr hyn yn un 'ychydig yn fwy penodol. Rydym wedi ailadrodd 10 gwaith y datganiad canlynol. Felly, er na (yn wir) yn eithaf gweithio yno, oherwydd yn wir yn bob amser yn wir. Felly, os ydym yn hytrach yn edrych ar y fersiwn C, sydd bellach yn y gystrawen yn cael ychydig yn fwy cryptig. Ond i fod yn onest unwaith i chi ddechrau i weld hyn, mae'r cyfan yn cael eithaf gyfarwydd cyflym. Felly mae hyn yn hyn a elwir yn ddolen i. A am ddolen yn mynd i ddweud wrth y cyfrifiadur i wneud rhywbeth eto ac eto ac eto am gyhyd ag y pethau hyn yn wir. Nawr beth ydym yn ei olygu wrth hynny? Wel, mae tair rhan i am ddolen, ac rydym yn mynd i yn dod yn ôl at hyn yng nghyd-destun gwirioneddol enghreifftiau mewn munud. Felly peidiwch â phoeni os nad yw'n hollol suddo yn i gyd ar unwaith. Ond int i = 0 yw, stori fer hir, gan ddweud yn rhoi i mi amrywiol sy'n o cyfanrif fath, felly rhowch mi nifer enw i, ac yn ymgychwyn i 0. Dyna yw rhoi mi fel newidyn x algebraidd a ymgychwyn i 0. Ond yn yr achos hwn byddem ni'n ei alw i. Yna, yn y canol, mae'n dweud i yn llai na 10. Dyna ddweud wrth y cyfrifiadur yn y pethau canlynol cyn belled fel fi yn llai na 10. Ac yn amlwg ei fod yn dechrau llai na 10 oherwydd fydd yn dechrau ar 0. Yna yn olaf, allwch chi ddyfalu beth efallai i + + modd. Mae'n ychydig o gystrawen mai dim ond yn golygu cynyddiad i. Felly, ychwanegu 1 i i, eto ac eto ac eto. Ac felly gan y byddwn yn gweld y ddolen, mae hyn yn cystrawen, yn hytrach, yn gweithredu union yr un peth a dweud y gwir, yn Scratch yn unig er mwyn llawer haws i fynegi. Ailadroddwch 10, ac rydych yn ei wneud. Yn C, ac mewn ieithoedd rhaglennu y rhan fwyaf o, mae'n rhaid i ni fod yn ychydig yn fwy addysgiadol ar gyfer y cyfrifiadur ac mewn gwirionedd yn nodi rhywbeth fel hyn. Ond byddwn yn dod yn ôl at hyn a chystrawen eraill. Beth am newidynnau? Yn Scratch cawsom rhywbeth fel hyn blociau oren, lle y gallwn ddatgan amrywiol. Gadewch i ni fympwyol ei alw cownter. Gadewch i ymgychwyn i 0, ac yna gadewch i ni wneud rhywbeth am byth. Yn yr achos hwn yn Scratch i ddim yn dweud y cownter, felly mae'r cath yn mynd i gael swigen siarad ychydig sydd wedi siarad y nifer sy'n sydd yn y newidyn. Ac yna mae gennym gownter newid erbyn 1. Felly, hyn i gyd wedi'i lapio tu mewn clo Forever. Felly, rydym yn barod yn awr y blociau adeiladu yn C gyda sydd i gyfieithu hyn. Un ffordd y gallem wneud hynny yw hyn. Rhowch i mi cyfanrif, ei alw'n cownter. Ymgychwyn ei i 0 yn y llinell gyntaf yno. Er (gwir), felly rwy'n dwyn y syniad o ychydig ennyd yn ôl, mynd yn ei flaen ac yn gwneud y canlynol. Argraffwch y cownter, ac yna hicyn y cownter, unwaith eto, ac unwaith eto, ac unwaith eto. Neu eto, + + yn unig yn golygu ychwanegu 1 i rywbeth. Ond mae yn ddarn newydd o gystrawen yma. Beth sy'n neidio allan gan na ymhlith ein enghreifftiau blaenorol? Ydy, mae hyn yn d%. Felly, efallai y gallwch gasglu beth mae hyn yn ei wneud, a dweud y gwir, yn seiliedig ar yr hyn y bloc Scratch yn ei wneud. Ond unwaith eto yn C, rydym yn unig rhaid i ni fod ychydig yn fwy penodol pan ddaw i fynegi ein hunain. Felly printf ("% d \ n"). Wel y rhan fwyaf o hynny y gallwn daflu i ffwrdd mor gyfarwydd. Mae'r dyfyniadau yn unig yn golygu ei fod yn llinyn, slaes n yn unig yw llinell newydd. Felly, y peth newydd yn unig yma yw% d. A'r hyn oll sydd yn placeholder. D% yn mynd i ddynodi rhif degol. Ac cyfrifiadur% d modd, rhowch rif degol yma. Wel, pa rif ydych chi eisiau ei roi ynddo? Wel, fel y gallwch o bosibl casglu, ar ôl y coma rydym yn dweud cownter, dyna enw'r newidyn yr ydym yn datgan neu creu ychydig o linellau yn gynharach. Felly, mae hyn yn unig yw C yn ffordd o lenwi'r mewn newidyn i mewn i llinyn ddynamig. Oherwydd y llaw arall, os ydw i wedi wneud yn lle rhywbeth fel hyn, printf ("gwrth"), beth fyddai hyn yn rhaglen yn hytrach yn ei wneud, yn ôl pob tebyg? Bydd yn llythrennol argraffu "gwrth". Nid Pa un yw'r effaith yr wyf am. Angen i mi gymryd lle mewn rhai gwerth rhifol. Felly, byddwn yn gweld bod swyddogaethau hynny, fel printf ni all gymryd dim ond dadleuon unigol, fel "Helo byd". Gallant gymryd coma unquote dyfyniad, ac yna rhai newidynnau a fydd yn cael blygio i mewn, gan y byddwn yn gweld y llinyn blaenorol drwy hyn bachau% arwydd. Wel beth am mynegiadau Boole? Mynegiadau Boole oedd y rhain gwerthoedd, yn wir neu'n anwir. Ydw neu nac ydw. 1 neu 0. Ar neu i ffwrdd. Felly, yn Scratch maent yn edrych fel hyn, ac yn sylwi bod y bloc gwaelod dyma mewn gwirionedd y cyd dau floc llai. Felly, yr wyf yn fath o llusgo a gollwng tri darn pos gyda'i gilydd i wneud y darn pos yno bellach er mwyn i mi gallai gyfleu'r syniad yr wyf am x i fod yn llai na y a y i fod yn llai na z. Ac felly rwy'n gallu cyfieithu'r rhain ddwy linell ar wahân fel a ganlyn. Gall Ar y brig yn cael ei iawn trivially cyfieithu i C, gyda dim ond x yn unig yw ein ffordd ni o ddweud, yn C, yn rhoi i mi mynediad i swyddogaethau sydd ysgrifennodd rhywun arall. Ac yn yr achos hwn rwyf yn gofalu am fy mod eisiau printf. Nawr rydym yn cael y prif int (gwag). Felly, mae hyn yn un o'r pethau hyn, a dweud y gwir, bod ar ddiwrnod 0, 'n bert lawer yr wyf i wedi i fath y tu allan i barth, oherwydd dim ond Nid yw diddorol ddeallusol, mae rhai o'r gystrawen. Ond am nawr yn gwybod bod swyddogaethau, a elwir fel arall yn gweithdrefnau, neu ddulliau, yn gyffredinol yn cynhyrchu rhywfaint o werth. Maent yn gwneud rhywbeth. Maent yn dod o hyd i'r ateb. Maent yn cynhyrchu allbwn. Felly, int nesaf i'r brif yn unig yw ein ffordd law-fer o ddweud bod y swyddogaeth hon, y weithdrefn hon, yn y pen draw yn mynd i roi i chi yn ôl nifer. A pham hynny yw, byddwn yn dod yn ôl i. Main yn unig 'r ball safon byd ar gyfer y rhagosodiad swyddogaeth sy'n mynd i gael eu gweithredu mewn rhaglen C pan fydd ydych yn ei redeg. Void yn unig yn golygu y peth hyn, prif, yn cymryd unrhyw dadleuon, yn yr achos hwn. Felly, fy mod yn cael super penodol. Does dim llinynnau i mewn 'na, does dim atalnodau. Void yn golygu unrhyw ddadleuon to main. Nawr yn olaf, diolch i'r drefn, y ddwy linell olaf yn gyfarwydd. Y tu mewn i'r braces cyrliog gennym printf ac mae gennym dychwelyd. A dychwelyd yn fath o anffodus bod rhaid i ni roi yno, oherwydd yn yr achos hwn nid yw'n gwneud popeth a llawer o ddiddordeb. Ond mewn rhaglen gyfrifiadur, pan fydd ffwythiant yn dychwelyd 0, sy'n golygu popeth yn iawn. Nid oes dim yn mynd o'i le. Ar y llaw arall, os yw ffwythiant yn dychwelyd 1, neu 1 negyddol, neu 1337 negyddol, neu rai rhifau ar hap fel 'na, bod gyffredinol yn golygu bod camgymeriad wedi digwydd mewn gwirionedd. Felly, os ydych chi ar eich Mac neu PC eich, os ydych chi erioed wedi gweld ryw neges blino oherwydd bod eich cyfrifiadur wedi chwalu neu rhewi, ac mae 'na neges gwall cryptig, ac yna rhai cod, cod system fel 1,2,3,4, ryw nifer, yn gyffredinol yn manylion diangen i ddweud rhan fwyaf ohonom pobl, ond dyna rhyw swyddogaeth neu ryw rhaglen wedi dychwelyd mewn gwirionedd, mae gwerth ychwanegol di-sero. Ac y fantais o hyn yw bod 0 yn golygu i gyd fel yn dda, ac yna rydych yn y bôn yn cael nifer anfeidrol o bethau y Gall mynd o'i le. Pa un yw pam eu bod wedi dewis 0 am da a gwerth ychwanegol di-sero ar gyfer ddrwg, fel y gwelwn cyn hir. Felly, gadewch i ni fynd yn ei flaen ac yn ysgrifennu hyn. Felly dwyn i gof bod y diwrnod arall yr wyf yn defnyddio fy Mac i agor i fyny , ffenestr terfynell ac yna yr wyf yn agor rhaglen destun, fel Dechreuodd TextEdit, ac yr wyf ysgrifennu rhai cod. Wel mae hynny'n iawn. Ond eich profiad yn mynd i fod yn wahanol ar Mac, neu ar gyfrifiadur Solaris, cyfrifiadur Linux, beth bynnag gweithredu system yr ydych yn ei ddefnyddio. Ac felly yn y cwrs, yr hyn rydym yn lle hynny i ddefnyddio yn rhywbeth a elwir yn Appliance CS50. Felly, y Appliance CS50 yn ddarn o feddalwedd i'w llwytho i lawr sy'n caniatáu i chi redeg system weithredu o'r enw Linux, yn benodol Fedora Linux, Mac ar eich hun neu PC. A ydych yn gwneud hyn trwy lawrlwytho rhywbeth a elwir yn hypervisor. Felly bydd hyn oll yn cael ei dogfennu yn 1 set problem. A byddwch yn eu harwain tuag at yr hyn y mae angen i chi lawrlwytho. Ond y canlyniad, a oes gennych Mac neu PC, yn eich lawrlwytho rhai meddalwedd am ddim. Yna byddwch yn lawrlwytho'r Offer CS50, ac rydych yn dweud bod meddalwedd am ddim - y hypervisor - i redeg y Appliance CS50 mewn ffenestr ar eich cyfrifiadur. A beth fydd yn digwydd yw hyn. Rwyf wedi yn awr, sylwi yma, yr hyn sy'n ymddangos i fod yn ben-desg amgylchedd. A gadewch i mi mewn gwirionedd yn crebachu y ffenestr hon sengl. Felly, mae hyn yn awr yw fy Mac, gyda ffenestr bach yma, ac y tu mewn y ffenestr hon yn digwydd i fod yn gwbl system gweithredu gwahanol. Yn wir, mae hyn chychwyn ddewislen i lawr yma, sy'n atgoffa rhywun o Windows, sydd â criw cyfan o fwydlenni is, gan gynnwys dolen i llawlyfr CS50, Dropbox, ac yn y blaen. A beth mae hyn yn amgylchedd yn awr yn amgylchedd safonol y gall pob un ohonom yn defnyddio, fel nad oes ots beth yw eich cyfrifiadur yn, yr hyn yr ydych wedi gosod arno, pa fersiwn o Mac OS neu Windows ydych yn rhedeg, rydym i gyd yn awr yn cael y un amgylchedd. Ac yn awr yn yr amgylchedd hwn gallwn ddechrau ysgrifennu rhai cod. Felly, yr wyf i'n mynd i fynd yn ei flaen ac agor rhaglen o'r enw gedit. Mae hyn yn debyg i notepad.exe, neu TextEdit ar Mac. Ac mae hyn yn unig yw rhaglen super destun syml golygu sy'n edrych fel hyn ar yr olwg gyntaf. Nawr ar frig, mae gen i palet gwyn, ar y gwaelod I cael y ffenestr ddu sy'n dweud jharvard @ offer. Ac mae hynny oherwydd bod y cyfrif defnyddiwr yr ydym yn rhag-greu i bawb ei alw'n John Harvard. Mae ganddo ffolder lle ei holl ffeiliau yn mynd i fynd, a dyma lle y gallwn ddechrau ysgrifennu rhai cod. Felly, gadewch i mi fynd yn ei flaen yma ac chwyddo i mewn dim ond ychydig, ac rwy'n mynd i wneud # cynnwys , prif int (gwag), a yna yr wyf i'n mynd i wneud printf ("helo byd") , Dychwelyd 0. Nawr mae hyn i gyd yn eithaf du a gwyn. Gadewch i mi fynd yn ei flaen ac yn gwneud un peth i ddysgu gedit hyn yr wyf i'n ei wneud mewn gwirionedd. Gadewch i mi fynd i Save As. Rydw i'n mynd i ddewis ar yr ochr chwith yma jharvard. Felly eto, hyd yn oed os nad ydych erioed wedi defnyddio Linux o'r blaen, a dweud y gwir y dyddiau hyn, pob un ohonynt yn datganoli i mewn i hanfod y un math o ryngwyneb - Mac OS, Windows, Linux a. Felly, yr wyf wedi dewis ffolder cartref jharvard yma. Ac yr wyf i'n mynd i achub y ffeil fel hello.c. Felly, ar y brig, yr wyf deipio hello.c; enwi C rhaglen gyda'r. estyniad c yn yr hyn yn arfer cyffredin. Ac yr wyf yn taro Achub. Ac yn awr beth braf yw fy mod i wedi dysgu effeithiol gedit, bod hon yn rhaglen C. Sylwch fod fy testun du a gwyn erbyn hyn codio yn ôl lliw, neu cystrawen tynnu sylw, a dim ond yn tynnu fy sylw at y rannau semantig gwahanol o'r rhaglen. Ar ochr chwith uchaf yno, gan fod fy rhaglenni yn cael mwy cymhleth, rwy'n mynd i gael crynodeb o'r holl bethau yr wyf wedi ysgrifennu. Felly dyna ni i fyny yno. Felly, gadewch i mi yn awr chwyddo allan ac ewch i lawr at y ffenestr terfynell. Felly mae hyn yn bosibl newydd i lawer o bobl. Os nad ydych erioed wedi defnyddio gorchymyn amgylchedd llinell, nad ydych erioed i wedi ddefnyddio DOS, neu nad ydych erioed wedi defnyddio Linux, neu nad ydych erioed wedi agor eich Mac OS ffenestr terfynell, mae 'na lot o bethau rydych gallai ei wneud gyda'r GUI, fel pwyntio, a chlicio, a llusgo, a gollwng, ac ati, ond yn gyffredinol - bendant yn y byd gwyddoniaeth gyfrifiadurol - ddefnyddio, llinell orchymyn lle nad oes gennych eich llygoden gyffredinol, dim ond eich bysellfwrdd, mewn gwirionedd yn llawer yn fwy pwerus na rhyngwyneb, unwaith y byddwch yn cael acclimated i gorchmynion amrywiol. A ydych yn fath o rhad ac am ddim eich hun o fod angen i bwynt a chliciwch ar bopeth. Felly, yn gedit byddwn yn didoli o'r cael y gorau o ddau fyd. Gallwn llusgo a gollwng testun, gallwn weld 'n glws a lliw godio. Ond pan ddaw amser i redeg ein rhaglen, gallwn eich weithiau dim ond yn defnyddio ffenestr hon bach yma. Felly, yr wyf i'n mynd i fynd yn ei flaen ac yn gwneud hyn. Yn y ffenestr isaf du a gwyn, yr wyf i'n mynd i fynd yn ei flaen ac ysgrifennu clang. Ac clang yw enw'r casglwr. Mae'n rhaglen sy'n trosi fy cod ffynhonnell i mewn i, felly, cod gwrthrych. 0au ac 1, a welsom yn gyflym yr wythnos diwethaf. Dwyn i gof o wythnos diwethaf, rydym yn addo ein bod yn mynd i mynd o rywbeth fel hyn - angen i ni fod rhywbeth fel hyn - ac mae hyn nid yn sicr yn rhywbeth y mae pobl yn mynd i wneud â llaw. Felly, yn lle hynny rydym ni'n mynd i ddefnyddio rhaglen, a bod y rhaglen yn yr achos hwn gelwir Clang. Ac enw fy rhaglen yn hello.c. Felly, er mwyn llunio hello.c o cod ffynhonnell i mewn i cod gwrthrych, neu 0s a 1s, dylai fod yn ddigon i ychydig wneud hyn a daro Chofnoda. Iawn, dim byd yn ymddangos i fod wedi digwydd. Ond yr wyf yn gwybod yn awr, neu o wythnos diwethaf, fod enw diofyn o rhaglen, pan ysgrifennwyd yn C, a elwir ffôl a.out. Enw mwyaf anniddorol gallech ddod o hyd. A yw llythyren gyntaf y wyddor, allan yn yr hyn a oedd outputted, ond dyna ni. Mae hyn yn fy rhaglen, ac yn awr dot slaes, gan y byddwn yn gweld, yn mewn gwirionedd dim ond rhyw fath o nodwedd diogelwch, oherwydd a.out yn rhaglen ysgrifennais. Nid oedd yn dod gyda fy nghyfrifiadur, mae'n nid mewn Ffeiliau Rhaglen. Dyw hi ddim yn Mac OS ar geisiadau folder. Angen i mi fod yn eglur super gyda'r cyfrifiadur, ac yn dweud rhaglen hon, a.out, yn y ffolder ar hyn o bryd, mae'r cyfeiriadur cyfredol. A'r ffordd yr ydych yn cynrychioli hyn mewn amgylchedd fel hyn yn dot yn cynrychioli beth bynnag ffolder yr ydych ar hyn o bryd mewn Ac felly. / Yn unig yn golygu a.out rhedeg yn y ffolder ar hyn o bryd. Ac yr wyf yn rhedeg hyn gyda Mewnbynnu, a voila, fy rhaglen gyntaf. Nawr, gadewch i mi gymryd cam yn ôl. Mae'r ffenest yn ychydig yn fach, ac yn sylweddoli bod y gwaelod gadael y peiriant yma arall eicon. Mae un yn Chrome, a ddylai fod yn eithaf cyfarwydd, dim ond ar y we porwr tu mewn i'r offer. Ac mae hyn yn eicon du a gwyn yn unig yw ffenestr terfynell mwy. Felly, os yw'n cael blino llai i gadw trefn ar yr union y sleisen bach bach o ffenestr y mae i ryngweithio â rhaglenni, gallwn wneud hyn yn lle hynny. Ac yn awr gadewch i mi ddechrau teipio ychydig yn fuan i fod yn gorchmynion cyfarwydd. ls. Felly ls yw'r gorchymyn ar gyfer rhestru. Felly, mewn OS Mac neu Windows, byddech fel arfer dwbl-cliciwch ar un o'r ffolder ac yna, voila, byddwch yn gweld yr holl ffeiliau amrywiol a ffolderi. Mewn llinell gorchymyn amgylchedd, lle gallwch deipio gorchmynion neu destun, ls yn cyfateb. Felly, dangos i mi beth sydd yn y cyfeiriadur hwn. Nawr mae 'na griw o bethau yma mae hynny yn cynnwys ychydig cyfarwydd ac ychydig yn anghyfarwydd. Ond rhybudd bod yn union fel Windows a Mac OS, jharvard Mae ffolder n ben-desg. Felly unrhyw eiconau sydd ar fy n ben-desg yn digwydd i fod yn y ffolder. Mae 'na, ffolder llwytho i lawr pethau sy'n Efallai Chrome rhoi yno. Dropbox. Felly, yr offer yn dod gyda adeiledig yn cefnogaeth ar gyfer Dropbox fel bod dros y semester, gallwch cydamseru gyda'ch Dropbox hystyried fel bod eich holl raglenni yn cael eu cefnogi. Maent yn hygyrch ar eich cyfrifiadur arall. Os oes unrhyw beth byth yn mynd o'i le gyda'r offer, gallwch yn hawdd iawn dod dros Dropbox. Felly y ffolder yno am hynny. Mae dwy ffeil a wneuthum - hello.c a a.out. Ac yna i'r dde mae rhai ffolderi eraill y gallwn eich cyrraedd tuag at ddiwedd y semester, gyda ar y we rhaglennu. Felly, pan fyddaf yn ei wneud. /, A.out, Mewnbynnu, mae hynny'n dweud mynd yn y cyfeiriadur Im 'i mewn, y cyfeiriadur ar hyn o bryd, a rhedeg y raglen o'r enw a.out iawn yno. Mae pob hawl, felly dyna braf ac yn dda, ond nid yw'n bob un sy'n chymhellol i ysgrifennu rhaglen o'r enw helpu a.out. Felly gallwn ei wneud mewn gwirionedd hyn ychydig yn wahanol. Felly yn hytrach na dim ond clang rhedeg, hello.c, gadewch i ni ychwanegu hyn a elwir yn ymresymiad llinell orchymyn. Felly gorchymyn, ymresymiad llinell neu switsh yn yr achos hwn, dim ond arall gair neu ymadrodd yr ydych yn teipio ar brydlon ar ôl y rhaglen rydych am ei redeg. Felly, yn yr achos hwn, clang yw'r rhaglen yr wyf am redeg,-o allbwn golygu ffeil sydd wedi bellach o'r enw a.out. Allbwn ffeil o'r enw helo, a gwneud hynny drwy gasglu'r gair olaf ar y lein, hello.c. Felly, yn fyr, mae hyn yn welliant ymylol iawn, lle yn hytrach na cael y a.out ffeil o'r enw wirion, Gallaf ei wneud yn awr clang-o helo, ac yna hello.c, a yna pwyswch Enter. Nid oes dim yn ymddangos i ddigwydd, ond eto yn debyg iawn fel gyda 0 - pan dim byd yn ymddangos i ddigwydd yw hynny'n golygu dim o'i le yn digwydd - felly gadewch i ni wneud ls yn awr, Mewnbynnu, ac yn wir yr wyf yn awr gennym raglen helo. Felly, os wyf yn teipio helo yn awr, nid gorchymyn dod o hyd. OK,. /. Felly, yn union gywir. Felly, oherwydd bod y rhaglen hon ysgrifennais i, ac nid oedd yn dod â y cyfrifiadur,. / helo, Rhowch, yn golygu Rwyf nawr yn rhedeg helo. Felly dyna ni yno. Nawr yr hyn fydd yn y pen draw mynd i'r llinell orchymyn mwy a mwy o dadleuon sy'n caniatáu i ni wneud mwy, ond dim ond ar gyfer rhai ar gyfer y gallai hyn fod yn hen het, gadewch i mi mewn gwirionedd yn mynd i mewn i cyfeiriadur yma a dim ond yn rhoi teaser o sut arall rydym yn Gallai fynd ati i weithredu byd helo. Gadewch i mi fynd i mewn yma, a dw i'n mynd i'w agor. Felly, mewn gwirionedd, dw i'n mynd i esbonio hyn yr wyf i'n ei wneud, felly mae hyn yn ddefnyddiol. Gadewch i mi yn ôl i fyny. Felly, yr wyf wedi bod yn gwneud hyn yn amser hir. Felly sylwi drosodd ar y dde mae yna gwpl o cyfeirlyfrau sy'n cael eu henwi rhyfedd source1m a source1w. Mae hyn yn unig confensiwn wirion a ddefnyddiwn. Ffynhonnell unig yn golygu cod ffynhonnell, 1 yn golygu ei bod yn wythnos un, a m yn golygu ei bod yn ddydd Llun, ac w yn golygu ei fod yn ddydd Mercher. Felly, dim byd cryptig yno. Dim ond nodiant llaw-fer. Mae'r pethau hyn glas yn ffolderi, a elwir fel arall yn cyfeirlyfrau. Dw i eisiau mynd i mewn i'r ffolder yn awr, ac ar gyfrifiadur arferol Gallai Fi jyst dwbl-gliciwch ar eicon ffolder a mae fy holl ffeiliau. Ond mewn llinell orchymyn amgylchedd, ni allaf wneud hynny, felly yn lle, rhaid i mi newid cyfeirlyfrau llaw. Felly, os wyf yn teipio cd ac yna source1m, Mewnbynnu, yn sylwi bod fy brydlon, y peth mewn gwyn ar y chwith, newid yn unig. Ac felly yn wir, pan newydd ei ddweud cromfachau ac yna'r squiggle bach, y symbol tilde, mai dim ond yn golygu fy mod yn mewn cyfeiriadur cartref John Harvard, mae ei My Documents, ei ffeiliau personol. Ond yn awr mewn cromfachau mae'n ei ddweud ~ / source1m. Mae hyn yn unig golygu fy mod mewn ffolder o'r enw source1m dyna yn y cyfeiriadur cartref John Harvard yn. Felly os wyf yn awr am i gael rhestr y ffeiliau yn y ffolder hwn, hawdd cwestiwn, rwyf yn teipio yn unig ls. Ac yn awr yr wyf yn gweld yr holl ffeiliau a achubaf y-chreu ar gyfer heddiw ddarlith, pob un ohonynt, neu'r rhan fwyaf ohonynt, yn digwydd dod i ben yn. c. Felly, gadewch i mi fynd yn ei flaen yn awr ac yn rhedeg gedit o'r rhaglen o'r enw holloway.c, sy'n cael ei ysgrifennu gan rai haciwr ar hap ar y Rhyngrwyd, sy'n edrych ychydig fel hyn. Ac nid ydym yn mynd i fynd drwy'r un mewn unrhyw fanwl, ond i'r rhai yn fwy cyfforddus, yn benodol, os ydych am gymryd dyfalu ynghylch beth y rhaglen hon yn yma. Rest yn sicr, p'un a ydych yn llai neu fwy cyfforddus, Nid ydym yn hyd yn oed yn cyrraedd y math hwn o beth erbyn diwedd y semester hwn. Mae hyn yn beth enghraifft o gystadleuaeth C obfuscated, sy'n golygu ysgrifennu rhaglen mwyaf cryptig yn edrych i chi o bosibl Gall gwneud yn well na'r pobl smart eraill, sydd yn yr un modd ceisio ysgrifennu pethau a dangos eu bod yn gallu ysgrifennu mwy o bethau cryptic na chi. Felly, nid yw hyn yn enghraifft o raglen wedi'i ysgrifennu'n dda gan y safbwynt arddull, mae hyn yn enghraifft o raglen sy'n yn ennill cystadleuaeth, i bobl sy'n ceisio fod yn amwys a haniaethol. Felly, os byddwn yn rhedeg y peth hyn, gadewch i mi fynd i mewn i fy ffenestr terfynell, felly, i siarad. Felly, yr amgylchedd du a gwyn a elwir yn ffenestr terfynell yn gyffredinol. Gadewch i mi fynd yn ei flaen ac yn llunio ei. Dydw i ddim yn mynd i ddefnyddio clang, gan fod y rhaglen hon yn ychydig yn cryptic ac mae angen gwahanol compiler, un o'r enw Cyngor Gwynedd. Ond mae'n gwneud yr un peth. Mae'n cymryd cod ffynhonnell i cod gwrthrych. Ac yn awr os byddaf yn rhedeg a.out, y rhaglen honno i chi jyst yn gweld yn gwneud hyn. Er mwyn cyd-y flwyddyn honno enillodd y gystadleuaeth. Anyhow, nid ydym yn mynd i'r cyfeiriad hwnnw, fel y cyfryw. Felly, gadewch i ni fynd ati i geisio canfod yn awr ar wahân yr hyn y gallwn ei wneud gyda'r blociau adeiladu sylfaenol i wneud mwy a mwy o rhaglenni diddorol. Felly rydym wedi ysgrifennu rhaglen, rydym wedi cynnal rhaglen. Nawr gallwn mewn gwirionedd yn symleiddio ac nid oes rhaid i chi ysgrifennu y clang gair wrth yr anogwr. Mae'n troi allan fel ein rhaglenni yn cael mwy cryptic, gallwn, neu yn fwy cymhleth yn hytrach, gallwn mewn gwirionedd hidla hon archa. Felly, gadewch i mi fynd yn ôl at fy cyfeiriadur cartref, fel petai, gadewch i mi dynnu - rm yw'r gorchymyn remove - I'm mynd i ddileu y ffeil o'r enw a.out a helo. Ac yn awr sylwi mewn llinell orchymyn yr amgylchedd, yn debyg iawn mewn a GUI, rydych yn cael eu hannog. Ni allaf glicio botwm er; I rhaid i deipio y ar gyfer ie, y ar gyfer ie. Ac yn awr os byddaf yn teipio ls eto, hysbysiad bod y rhai gwyrdd rhaglenni - a.out a helo - yn mynd. Gwyliwch rhag rm. Gall wneud pethau drwg, yn union fel y gallwch drwy lusgo pethau i'ch sbwriel. Felly nawr gadewch i ni fynd ymlaen - a gallwn wneud hyn - clang-o helo, helo - Rwyf wedi diflasu yn barod teipio y gorchymyn. Hyd yn oed er fy mod yn ei deipio ychydig yn gyflym. Felly gallwn yn lle hynny yn gwneud helo. Felly, nid yw gwneud yn compiler. Mae'n dim ond rhaglen gyfeillgar a ddaw gyda Linux, yn y achos - y system weithredu - sy'n awtomeiddio'r broses o lunio rhaglenni. Felly, yn lle cofio clang-o enw'r ffeil a'r wedyn yn y blaen, yn enwedig unwaith y bydd y llinellau mynd yn hirach ac yn hirach, gallaf ysgrifennu eu gwneud. Ac mae hyn yn mynd i boeri allan criw cyfan o bethau y byddwn yn gweld hyn yn y pen draw semester. Ond sylwi nawr os ls math I, helo yn ôl yn fy cyfeiriadur. Ac yn wir y gall Rwy'n rhedeg i ag. / Helo. Felly gwnewch yn unig awtomeiddio'r broses o redeg yr hyn a oedd, yn yr achos hwn, mae llawer mwy o amser, gorchymyn yn fwy cymhleth. Felly, rydym yn mynd i ddechrau defnyddio gwneuthuriad, dim ond oherwydd ei fod yn llawer yn fwy cyfeillgar i'r defnyddiwr. Ond yn awr, gadewch i ni wneud rhaglen fwy diddorol na dim ond dweud helo. Felly, yn y rhaglenni rydym wedi ysgrifennu hyd yn hyn mae prif. Dyna dim ond y peth diofyn sy'n dod i rym popeth i ffwrdd. Ond mae yna swyddogaethau eraill ar gael hefyd, ac stdio.h yw'r peth a welsom ar frig ein ffeil o'r blaen, a dyna beth a elwir yn y llyfrgell safonol. Y tu mewn y llyfrgell safonol yn criw cyfan o swyddogaethau Ysgrifennodd y mae rhywun arall, a gallwn ddechrau defnyddio'r rhain swyddogaethau i ysgrifennu mwy rhaglenni diddorol ein hunain. Felly, gadewch i mi fynd yn ôl i'r ddyfais. Rydw i'n mynd i gau'r ffenestr hon terfynol. Rydw i'n mynd i gau y pethau yr ydym ysgrifennais yn gynharach, a dim ond yn mynd i mewn i hello.c, ac yn sylwi nawr gallaf wneud y canlynol. Nid Helo byd yw'r cyfan sydd ddiddorol; Hoffwn i bersonoli rhaglen hon ar gyfer fy hun. Felly, yn hytrach na dweud byd, yr wyf i'n mynd i mynd yn ei flaen a dweud - Gallwn i deipio David - ond mae hyn yn wir yn fath o sylfaenol yr un fath. Ond gadewch i ni roi cynnig ar y syniad dalfan. Dwyn i gof bod yn C, yn hytrach yn printf, rydym yn cael y rhain bachau, ac mae mwy na% d yn unig. Felly,% oedd d, gwiriad pwyll gyflym. Iawn, rhif degol, dyna ni. Digidau Degol, dyna i gyd. Felly c%, gan y byddwn yn dod ar eu traws, yn mynd i fod yn gymeriad. Rhowch gymeriad yma, llythyr drwy z, symbol atalnodi neu. Mae cymeriad unigol, f%, unrhyw un yn gwybod o ieithoedd eraill? Felly, mae Gwerth pwynt arnawf. Mae nifer go iawn. Felly nid rhif degol - mae hyn mewn gwirionedd mae nifer go iawn gyda pwynt degol, ac mae rhai nifer o ddigidau ar y chwith ac i'r dde ohono. % S, llinyn. Dyna un yr ydym yn mynd i weld yn eithaf aml. Mae llinyn, unwaith eto, yn unig yw gair, ymadrodd, cyfres o cymeriadau unigol. Ac yn olaf, LLD? Felly, mae hyn yn fwy o achos cornel. Long, degol hir. Felly os nad ydych eisiau dim ond rhif sy'n ydyn nhw fawr, byddwch yn am gael rhif fwy, rydych chi'n mynd i gael i nodi i y cyfrifiadur ei fod o faint penodol. Felly, gadewch i tweak y darn ychydig. Yn hytrach na dim ond cod caled yn David, gadewch i mi ychydig yn ddynamig ddweud% s. Felly, yn rhoi% s yma, sydd yn dalfan ar gyfer llinyn. Yna gadewch i mi wneud coma, ac yna "David" dros yma. Nawr nid yw hyn yw'r cyfan sydd ddeallusol ddiddorol, gan fod yr holl Rydw i wedi wneud yn awr yn wir yn creu mwy o waith i y cyfrifiadur. Yn hytrach na dweud wrth y cyfrifiadur yn gwneud hyn i gyd ar unwaith, rwy'n awr yn ddweud yn gwneud hyn ac yn mewnosod llinyn yma yn y pen draw, coma, yma yw bod llinyn. Felly, nid yw hyn yn welliant well, ond mae'n leiaf yn gam tuag at raglen fwy diddorol. Oherwydd yn awr, gadewch i mi fynd yn ei flaen ac yn gwneud y ffenestr hon ychydig yn mwy, gadewch i mi fynd yn ei flaen ac yn rhedeg yn gwneud helo. Ac yn awr,. / Ddim a.out yn gweithio, pam? Mae pob hawl, erbyn hyn fe'i gelwir helo. Felly, unwaith eto yn gwneud, a hefyd clang gyda o-, ailenwyd y rhaglen i fod yn rhywbeth mwy diddorol. A voila: yn awr y mae'n ei ddweud helo David. Mae pob hawl, dal i fod yn rhaglen dwp. Felly nawr gadewch i ni mewn gwirionedd yn mynd yn ôl yma a chyflwyno'r syniad o amrywiol. Oni fyddai'n braf pe gallwn ddatgan newidyn mae ei fath yn llinyn? Ac gwerth y newidyn yn mewn gwirionedd yn dod oddi wrth y defnyddiwr ef neu hi ei hun. Felly fympwyol, dw i'n mynd i alw fy s amrywiol, sydd yn dim ond confensiwn cyffredin pan fydd gennych un newidyn a elwir yn y llinyn. Rydw i'n mynd i wneud arwydd cyfartal, ac yna yr wyf i'n mynd i alw swyddogaeth a elwir yn GetString. Felly, nid GetString yn rhywbeth sy'n ddaw hadeiladu i mewn C. Mae'n swyddogaeth a ysgrifennodd y staff CS50, mewn gwirionedd yn unig ar gyfer rhain yn ychydig wythnosau cyntaf, i symleiddio'r broses o cael mewnbwn defnyddwyr a chael mewnbwn defnyddwyr yn y ffurflen o linynnau, neu rifau, ac o'r fath. Felly GetString yn debyg printf, ond yn amlwg yn hytrach nag argraffu mae'n mynd i wneud beth oedd ei enw yn dweud, yn cael llinyn. Ond i ddefnyddio GetString, rydym yn mynd i gael i wneud newid yma, tu hwnt i hyn. Felly, yn reddfol, mae'r rhaglen hon, gobeithio, yn mynd i rhywsut cael llinyn gan y defnyddiwr, ac yna beth rwyt ti'n mynd i'w wneud gyda'r llinyn, a elwir yn s? Mae'n jyst yn mynd i argraffu, dde? Still nad yw rhaglen ysgogol gan fod yr holl mae'n mynd ei wneud yw plwg yn y gwerth i ble% s yn dweud y dylai fynd. Felly, gadewch i ni o leiaf yn gweld hyn ar waith. Gadewch i mi arbed a chwyddo allan. Nawr yn fy ffenestr terfynell i lawr yma, y ​​dafell bach o un, gadewch i mi unwaith eto yn gwneud helo. Iawn, ac AH, damn; cefais criw cyfan o wallau. Gadewch i mi sgrolio i fyny, ac rydym yn gweld ein gyntaf - felly gadewch i ni mewn gwirionedd yn gwneud hyn mewn ffenestr hyd yn oed yn fwy er mwyn i chi gallu gweld pa mor wael yr wyf sgriwio i fyny - felly gwnewch helo. Iawn, mae hynny'n drychineb, dde? Yr wyf wedi ysgrifennu tair llinell o god, ac mae wedi rhoi i mi 12 gwallau. Felly, pam mae hyn? Felly, yn ffodus, oftentimes pan fyddwch yn gweld llawer, llawer o gamgymeriadau poeri allan ar unwaith, mae'n wirioneddol dim ond oherwydd ydych wedi drysu y cyfrifiadur yma. Ac mae'n dal drysu gan yr amser y mae'n mynd i lawr yma. Ac felly 'i jyst yn dechrau baglu, ac yn baglu, ac poeri allan yn fwy bethau brawychus nag mewn gwirionedd yn berthnasol. Felly, yn gyffredinol, bob amser yn dechrau â'r un uchaf. Felly, y lle iawn uchaf y rhan fwyaf o goch, y neges gwall yw hwn. Defnyddio llinyn dynodwr heb ei ddatgan, wnes i olygu safon i mewn? Wnes i ddim. Rwyf yn golygu llinyn, ond mae hyn oherwydd, hefyd, y llinyn gair fy mod yn parhau i ddefnyddio'r lafar mewn gwirionedd yn bodoli yn C chwaith. Mae'n rhywbeth y byddwn yn eu defnyddio yn unig ar gyfer yr wythnos gyntaf neu ddwy yma, ond mae'n bodoli mewn ffeil o'r enw cs50.h. Felly, ar hyn o bryd, yn gwybod bod yna llyfrgell hon eraill y mae'r Ysgrifennodd staff, felly mae'n cael ei ysgrifennu yn fwy diweddar na stdio.h. Ond y tu mewn o cs50.h yn ddiffiniad, yn gyfystyr o fath, sy'n creu llinyn yma gair. Felly nawr gadewch i mi fynd yn ôl at fy ffenestr terfynell. Rydw i'n mynd i glirio'r llanast cyfan gan Ctrl-L. Gallwn eich unig sychu popeth yn lân, ac yr wyf i'n mynd i fynd yn ei flaen ac yn gwneud helo eto, Enter. Felly beth sydd wedi digwydd nawr? Nawr pob un o'r gwallau hynny aeth i ffwrdd. Felly beth rwyf wedi ei wneud mewn gwirionedd? Rydw i wedi dysgu dim ond y cyfrifiadur y llinyn yn bodoli, ac mae'n yn y ffeil o'r enw cs50.h. Felly rhoi'r gorau i gwyno, oherwydd yn awr eich bod yn gwybod ble i ddod o hyd i datganiad y swyddogaeth honno fel eu siarad. Lle mae'n bodoli yn y byd. Felly nawr rwy'n mynd i fynd yn ei flaen ac yn rhedeg helo. Yr wyf yn ymddangos i gael dolen ddiddiwedd, dim byd yn digwydd yn. Felly, mae angen i mi deipio rhywbeth yma, ar y dde. Mae'r llinell gyntaf y cod yn fy rhaglen GetString. Felly, mae'n llythrennol yn aros i mi gael llinyn. Felly, yn yr ystyr hwnnw ie, mae'n dolen ddiddiwedd. Mae'n debyg yn GetString yw ymddygiad diofyn ein bod yn Ysgrifennodd - y staff - mai dim ond yn dweud aros ac aros ac aros ac aros ac aros, nes bod y defnyddiwr yn rhoi llinyn trwy deipio rhywbeth i mewn Felly, gadewch i mi fynd yn ei flaen a theipiwch D-a-v - i-d, Enter. Ac yno y mae hi, helo David. Nawr mae hyn yn ymddangos fel mai dim ond gweithred? Gadewch i mi fynd yn ei flaen a theipiwch yn Tommy. Mewnbynnu, iawn, ymddengys ei fod yn gweithio. Gwaith i Rob, sy'n gweithio i Zamyla, yn gweithio ar gyfer - iawn. Felly, mae'n mynd i weithio, yn fwyaf tebygol. Felly, dylai argraffu beth bynnag yr ydym mewn gwirionedd yn ei roi, a gallwn fod ychydig yn anodd yma. Gadewch i ni weld os ydym yn gwneud rhywbeth fel helo. A all fynd dros yma, gadewch i ni weld, copi, past. Dydw i ddim yn mynd i fod yn gallu bastio hynny droeon yma. Gludo, iawn, Shift + Ctrl + V. Felly, yr hyn y gallai digwydd sy'n ddrwg yma? Iawn, felly, segfaults. Felly, bydd rhai ohonoch sydd â chefndiroedd blaenorol yn gwybod bod yn gyffredinol, gan roi cyfrifiaduron llawer o fewnbynnau pan fyddant yn yn ôl pob tebyg ni fwriedir iddynt dderbyn enwau hir fel hyn - drwg i bethau ddigwydd. Yn wir, yn y byd y we, hefyd, bydd hyn yn digwydd gryn dipyn, lle pan fyddwch yn dylunio gwefan, pan fyddwch yn dylunio Facebook, rhaid i chi wneud penderfyniadau mympwyol i fyny blaen, fel pa mor hir y bydd rhywun Facebook enw defnyddiwr fod yn? Neu pa mor hir fydd enw rhywun gyntaf? Pa mor hir fydd rhif ffôn rhywun fod yn ac yn y blaen. Ac os rhaglenwyr gwneud rhagdybiaethau drwg, rhaglenni torri oherwydd eich bod yn ceisio rhoi mwy o allbwn, mwy o fewnbwn yn hytrach, nag sydd ganddynt cof. Neu RAM a ddyrannwyd ar ei gyfer, ac felly os cefais yn awr daro Enter, y rhaglen yn gweithio mewn gwirionedd, oherwydd ein bod yn y llyfrgell ac rydym mewn gwirionedd yn disgwyl yr achos arbennig hwn. Ond heb os y semester hwn, byddwch yn ysgrifennu o leiaf un rhaglen a fydd yn dweud y geiriau hyn. Cofiwch hyn wythnosau o hyn, efallai dau ddiwrnod o hyn. Wall yn beth drwg. Bydd yn cyfeirio at eich gwneud rhywbeth bod y cyfrifiadur nid oedd yn rhagweld. Ac yn yr achos hwnnw, gallwch chi, rhaglennydd, nid oedd yn rhagweld. Mae llawer yn hoffi beth mae hyn yn pentwr o sanau, roedd amryw o achosion cornel gallem fod wedi dod ar eu traws. Yn yr un modd mewn rhaglenni os nad ydych yn rhagweld faint o amser yn enw rhywun yn mynd i fod. Neu beth os oes gen i ddefnyddiwr maleisus, a'i enw i yw mewn gwirionedd yn eithaf byr, ond maen nhw jyst yn ceisio i llanast gyda mi? Beth sy'n mynd i fod yn ymddygiad fy rhaglen? Wel, yn yr achos hwnnw, gallai rhywbeth mewn gwirionedd yn damwain. Felly, gadewch i ni wneud hyn. Mewn 90 munud, mae hwn yn ofnadwy o hir amdano i wneud gwyddoniaeth gyfrifiadurol. Pam nad ydym yn mynd i'r arfer o gymryd pum munud torri yma, a phan fyddwn yn dod yn ôl, byddwn yn plymio i mewn i rai rhaglenni mwy cymhleth a chymhellol? Pum munud. Mae pob hawl. Felly, un sylw cyflym. Dywedir wrthyf fod er bod hyn oedd ar y sgrîn cyn, beth ddaeth allan o fy ngheg yn cs50.net/rsvp. Mae hyn yn gywir. cs50.net/lunch. Felly nawr gallwch roi cynnig RSVPing ar gyfer hyn ar / cinio. Ond gadewch i ni wneud hyn yn awr. Felly, mae hyn wedi bod yn super gyflym, super newydd ar gyfer llawer o Folks. Hen het ar gyfer rhai Folks. Felly, gadewch i ailddirwyn am ddim ond ennyd, a gweld sut y cawsom ein yr allbwn y byd helo dim ond funud yn ôl. Felly, yn gyntaf, mae hyn Offer CS50. Unwaith eto, darn o, problem meddalwedd osod 1 yn mynd i ddweud wrth i chi sut i lawrlwytho, lle i lwytho i lawr, beth i glicio ac yn y blaen. Ac yna ar ôl i chi ddilyn y cyfarwyddiadau, byddwch yn gallu i wneud y gorau eich ffenestr, a bydd eich Mac neu PC edrych yn rhywbeth bach fel hyn. Mae cefndir du, blygell gartref ar y brig lle mae pob eich ffeiliau yn mynd, a sbwriel yn gallu ar yr ochr chwith uchaf, dewislen ar y gwaelod. Felly, unwaith eto, 'n bert yn debyg o ran ysbryd i'r Mac OS neu Windows, er ei fod yn digwydd i fod Linux. Felly, beth oedd y cam nesaf fydd yn ei wneud? Wel, rydym yn dechrau ysgrifennu rhaglenni. Ac yn cofio ers yr wythnos ddiwethaf bod yr holl mae'n ei gymryd i ysgrifennu rhaglen yn olygydd testun syml, fel Notepad neu TextEdit. A dweud y gwir, hyd yn oed gallwch ddefnyddio Microsoft Word. Ond bydd pethau drwg yn digwydd yn y pen draw, oherwydd dyna iawn llawdrwm ateb ar gyfer ysgrifennu rhaglen, yn ogystal mae'n chi helpu achub ef yn y fformat ffeil anghywir. Ond dim ond, golygydd testun prosesydd geiriau, yn ymwneud ag sy'n sydd eu hangen i ysgrifennu rhaglen. Felly, yn y Appliance CS50, gallwn wneud hyn mewn un ffordd syml. Gallwn cliciwch ar yr eicon ar y chwith gwaelod. Ac eto, problem a osodwyd 1 Bydd eich cynghori am hyn, a voila - byddwch yn cael y rhyngwyneb du a gwyn lle gallwn ddechrau ysgrifennu cod. Felly, gadewch i ni ddechrau ysgrifennu rhaglen syml super eto. Rydw i'n mynd i fynd i fyny i Ffeil, Achub, ac yr wyf i'n mynd i alw hyn, gadewch i ni ddweud, hello2.c. Ac Im 'jyst yn dweud iddo gan glicio ar jharvard, roi yn ei cyfeiriadur cartref, nid wyf yn wir gofal lle mae hyn yn un yn mynd. Ac yna Achub. Ac yn awr y gallaf ddechrau ysgrifennu fy rhaglen. Ac yr wyf yn cofio o'r cyfnod cyn bod rhaid i mi ysgrifennu int prif (gwag). Zoom i mewn ar y chwith uchaf. Ac yna yr wyf am ei ddweud printf, cymryd dau. Ac yn awr mae Newline, dyfynnwch agos, yn agos cromfachau, hanner colon. Ac yna dwi'n mynd i lawr yma i fy ffenestr terfynell sy'n yn rhan annatod o gedit, dim ond er hwylustod. Ac yr wyf i'n mynd i fynd yn ei flaen ac ysgrifennu gwneud helo, ond nid helo ei ben ei hun, hello2. Felly, fy ffeil a elwir hello2.c. Fy ffeil felly dylid galw hello2, yn yr achos hwn. Dammit, beth wnes i ei wneud o'i le? Mae pob hawl, felly yr wyf yn amlwg hepgor llinell, os ydych yn cofio beth rhaglenni blaenorol yn edrych fel. Ond gadewch i ni weld os na allwn canfod hyn ar wahân. Yn anffodus, rhan fwyaf o bobl sy'n ysgrifennu y rhaglenni y mae byddwn yn ysgrifennu nid yw rhaglenni yn symleiddio pethau i gyd fod yn dda. Felly mae'n rhaid i fath o sgimio dros hyn nad yw'n hollol gwneud synhwyro yma a gweld os gallwn chyfrif i maes beth sydd o'i le. Mae'r llinell gyntaf yn dweud mae ymhlyg datgan C swyddogaeth llyfrgell printf gyda int fath. OK, yr wyf yn deall yn rhan o hynny. Ond mae'n ymddangos ei fod yn crybwyll y ffaith fy mod yn defnyddio printf anghywir, rhywsut. A pha synnwyr a yw'n anghywir? Doeddwn i ddim yn dysgu y cyfrifiadur ei fod mewn ffeil a elwir yn stdio.h. Nawr dim ond rhaid i jyst gofio nawr bod printf yn yn stdio.h, ac yn wir, bydd yna eraill swyddogaethau yn y ffeil ag y byddwn yn dod i arfer ag. Felly nawr gadewch i mi fynd yn ei flaen a tharo Ctrl-L i ddim ond glir bod i ffwrdd, ailgynnal gwneud hello2, a voila. Ac mae hyn yn gorchymyn unwaith eto, yn fwy cymhleth nag y byddwn yn esbonio i dibenion heddiw. Ond yn rhedeg clang, a clang yn cymryd cod ffynhonnell a poeri allan 0s a 1s. A'r rhai 0au ac 1 yn yr achos hwn yn cael eu galw yr hyn? Iawn, gwrthwynebu cod. Ac y ffeil eu bod yn ei alw, felly, hello2, yn yr achos hwn. Gan fod fy ffeil testun yn hello2.c, Enter. Ac yn awr yr wyf wedi cymryd dau, pwynt ebychnod ebychnod pwynt, pwynt ebychnod. Mae pob hawl, felly mae gennym bellach y gallu i gael llinynnau, mae'n debyg. Wel, beth arall allwn ni ei gael gan ddefnyddwyr? Wel yn y llyfrgell CS50, mae swyddogaethau eraill sy'n yn mynd i symleiddio ein bywydau yn y dyddiau cyntaf. GetChar, GetDouble, GetFloat, GetInt, GetLongLong, GetString. Wel, gadewch i dynnaf oddi ar yr hawsaf y rhain yn gyntaf. GetString llythrennol yn gwneud hynny. 'I jyst yn eistedd yno, yn disgwyl i'r defnyddiwr i deipio rhywbeth i mewn, a chyn gynted ag yr wyf deipio rhywbeth i mewn ac tharo Enter, mae'n gwneud rhywbeth gyda gwerth hwnnw. Felly, gadewch i ni fynd yn ôl at yr enghraifft honno i weld yn union beth GetString yn ei wneud. Gadewch i mi fynd yn ei flaen ac yn agor i fyny yn gedit, hello.c, a dwyn i gof yr hawl honno cyn yr egwyl, dyma lle rydym yn gadael i ffwrdd. Felly, gadewch i ni bellach yn ymhelaethu ar wahân mewn mwy o fanylder. Felly, ar llinell 6, mae dau beth digwydd ar hyn o bryd. Mae'r arwydd cyfartal yn gwahanu hanner cyntaf ac ail hanner. Felly, ar yr ochr chwith yr arwydd cyfartal, rydym yn dweud llinyn s. Ac yna, dim ond termau lleygwr, beth yw llinyn s wneud, yn eich barn chi? Mae'n creu beth? Felly, mae'n creu llinyn o'r enw s. Nawr beth mae hynny'n ei olygu mewn gwirionedd? Wel, mae'n cadw lle ar gyfer llinyn o'r enw s. Dyw hynny ddim yn hollol iawn. Beth mae hyn yn ei wneud? Cyfrifiaduron Wel, fel y gwyddoch, yn cael 'n anawdd drives, dyna lle eich ffeiliau yn cael eu storio. Cyfrifiaduron wedi RAM, a dyna lle mae rhaglenni yn cael eu llwytho tra eu bod yn rhedeg. Felly, pan fyddwch yn dwbl-glicio ar eicon a Microsoft Word yn agor i fyny, Microsoft Word yn rhedeg, fel petai, yn RAM, sydd yn y rhan electronig o'ch cyfrifiadur. Nid y corfforol, rhan mecanyddol sy'n ei nyddu, lle data yn cael ei storio yn gyffredinol yn y tymor hir. Felly llinyn s wedi ei 'n bert lawer ddweud wrth y cyfrifiadur roi i mi digon o RAM i osod llinyn. Nawr bod 'na dipyn o gorsymleiddio, oherwydd pa mor fawr yw'r llinyn yn mynd i fod? Wel nid ydym mewn gwirionedd yn gwybod eto, felly yn ystod yr wythnosau i ddod byddwn mewn gwirionedd yn tynnu'n ôl yr haen sydd yn llinyn a byddwn yn dweud wrthych beth y mae mewn gwirionedd. Llinynnol, ar hyn o bryd, yn unig yw symleiddio braf ein byd. Ond mae llinyn s datgan llinyn o'r enw s, am y tro. Yn datgan llinyn. Mae'n cadw'r ychydig o le yn RAM ar gyfer y llinyn y defnyddiwr yn am i deipio. Nawr gadewch i ni edrych yn hawl yr arwydd cyfartal. Felly, mae'n dweud GetString (). A bwyll bach gwirio. Mae'r ffaith nad oes dim byd tu mewn i'r cromfachau awgrymu beth am GetString? Mae'n cymryd unrhyw ddadleuon. Hynny yw, nad ydych yn gallu dylanwadu ar ei hymddygiad mewn unrhyw ffordd. Bob tro y byddwch yn ei ddefnyddio, bydd yn cael llinyn a dyna ni. Mewn cyferbyniad, printf, gobeithio ei ymddygiad yn newid bob tro. Fel arall, mae'n swyddogaeth argraffu 'n bert ddiwerth os mae'n ei wneud yr un peth. Os yw'n bob amser yn argraffu David neu rywbeth fympwyol drwy'r amser. Felly printf yn gwneud synnwyr i gael dadl. Nid GetString oes ei gwir angen dadl, gan fy mod am i gael llinyn gan y defnyddiwr ac mae'n y defnyddiwr pwy sy'n mynd i gyflenwi egni trwy deipio mewn llythrennau gwahanol bob tro ar y bysellfwrdd. Felly beth mae GetString yn y pen draw? Meddyliwch am y peth fel y blwch hwn fach ddu. Ac mae hyn yn blwch du yn cymryd unrhyw fewnbwn, ond pan fyddwch yn bang ar , mae'n poeri allan llinyn fod y defnyddiwr wedi teipio i mewn Ac mae'r ffaith fod yna arwydd cyfartal yno yn golygu cymryd yr hyn sy'n boeri allan ar y dde ac yn ei storio y tu mewn beth sydd ar y chwith. Arwydd Felly gyfartal yma, nid mewn gwirionedd yn golygu cydraddoldeb, yn hytrach dechnegol olygu aseiniad. Cymerwch y gwerth ar y dde, ac yn ei roi yn y amrywiol ar y chwith. Felly dyna'r cyfan sy'n digwydd yno. Nawr yn llinell 7, rydym yn galw printf. Felly, gobeithio printf yn cael braidd yn ddiflas erbyn hyn. Felly argraffu llinyn fformatio. Beth llinyn? Argraffwch, "h-e-l-l-o,% s ! \ N ". Mae pob hawl, felly beth ydw i eisiau plug-in ar gyfer% s? Yn llythrennol, beth bynnag ei ​​storio yn s. Felly, yn yr achos hwn, gwiriad pwyll bach, faint o ddadleuon yn printf cymryd? Iawn, yr wyf yn clywed un. Clywais un eto. Dau, clywais ddau. A beth am dri? Iawn, tri? Ardderchog. Mae tri ateb posib, dim ond un ohonynt sy'n gywir. Felly, unwaith eto dadleuon dylanwadu ar ymddygiad swyddogaeth. Yn y gorffennol, printf oedd dim ond un ddadl. "Helo byd" oedd dadl un. Fodd bynnag, yn awr, sylwch lle mae hyn yn coma. Mae'r coma y tu allan i'r dyfyniad / unquote, sy'n golygu hey printf, dyma daw ail ddadl. Felly, atalnodau yn y rhan fwyaf o ieithoedd rhaglennu dadleuon lluosog ar wahân. Felly, yr ateb yma yn bendant nid un, oherwydd mae hyn yn coma. Felly cyn lleied â phosibl, printf yn ymddangos yn cymryd dwy dadleuon hyn o bryd. Ond mae'r cyfle ar gyfer cwestiwn tric yma yw beth am y coma? A yw hyn yn awgrymu bod yna mewn gwirionedd 3 dadleuon? Mae hyn, mae hyn, ac mae hyn. Felly dim, oherwydd bod coma yn y tu mewn o'r dyfyniadau, a oedd yn golygu ei fod yn wir dim ond esthetig Saesneg. Mae ganddo ddim i'w wneud gyda'r nifer o dadleuon yn y rhaglen hon. Felly, mae hyn coma y tu allan i'r dyfynodau dwbl. Ac yna yn dychwelyd 0. Am y tro gadewch i 'jyst fath o gymryd y un ar ffydd ar gyfer heddiw, a dim ond yn gwybod bod pan fydd swyddogaethau yn cael eu gwneud gweithredu linellau o god, dylai fel rheol ddychwelyd rhywfaint o werth. Yn yr achos hwn, dim ond oherwydd mae'n rhaid i brif dychwelyd int, dim ond y ffordd y mae'r C iaith yn gweithio. Felly, am fod dim byd yn mynd o'i le, yn teimlo fel hyn rhaglen iawn, Fi jyst galed godio yn gyfnewid 0. Ond mewn gwrthgyferbyniad, a dw i'n mynd i ysgrifennu hyn mewn cod ffug yn awr, yn debyg iawn i Joseff oedd pan wnaethom yr hosan enghraifft yr wythnos diwethaf. Os oes rhywbeth yn mynd o'i le - nid yw hyn yn cod gwirioneddol - aeth anghywir, yna dychwelyd, gadewch i ni ddweud, 1. Arall dychwelyd 0. Felly, dyma lle rydym yn mynd â hyn. Nid yw hyn yn wir C cod, dim ond pseudocode. Ond mae hyn yn sut y byddwch yn dychwelyd werthoedd posibl gwahanol. Ond am nawr, Im 'jyst yn mynd i fynd yn ei flaen ac yn dychwelyd 0. Mae pob hawl, unrhyw gwestiynau hyd yma ar, ymarferoldeb cystrawen, neu debyg? Yeah, yn ôl. GYNULLEIDFA: [Anghlywadwy] DAVID Malan: A allwch chi siarad ychydig yn uwch? Pam wnaeth y rhaglen 0 dychwelyd, a? GYNULLEIDFA: [Anghlywadwy] DAVID Malan: O, mae hynny oherwydd cefais ddiog, sori. Dim ymateb academaidd da, yn dychwelyd 0. I fath o achub hyn, drwy ddweud dechnegol C, os y prif nid yw'n benodol dychwelyd gwerth, bydd 0 yn cael eu dychwelyd yn awtomatig i chi. Pa yn wir, nid Im 'jyst yn cynnwys i fyny. Ond, dylwn fod wedi ei wneud fel hyn. Dim bwyd parod diddorol na'r hyn a heblaw am fy camgymeriad. Yeah? GYNULLEIDFA: Fel arfer pan fyddwch yn teipio yn ddi-rym, sy'n golygu eich bod Peidiwch â dychwelyd rhywbeth. DAVID Malan: Cywir. Os yn lle hynny, gallwch nodi cyn i'r enw swyddogaeth, er enghraifft yma, ddi-rym, yna bydd y swyddogaeth nid yw'n dychwelyd unrhyw beth. Ac felly byddwn yn dweud, dychwelyd neu dim byd o gwbl, a byddai hynny'n gyson. A byddwn yn dod yn ôl at hynny. A dim ond FYI, un o'r dalfeydd ag anableddau dysgu rhaglennu mewn byd sydd â channoedd o lyfrau a cannoedd o wefannau allan yna byddwch yn ddieithriad gweld cystrawen gwahanol mewn gwahanol lyfrau gan wahanol bobl. Sylweddoli fe wnawn ein gorau yn adrannau a darlithoedd i fod yn gyson. Ond weithiau fe welwch cystrawen sy'n gwrthdaro. Felly, pryd bynnag yn ansicr, gofynnwch. Ac yn gyffredinol, byddwn yn cymryd gofal mewn darlithoedd ac adrannau i bron bob amser ei gyflwyno yn y ffordd gywir. Ac yr wyf yn dweud bron bob amser, oherwydd bod achos dan sylw. Cwestiynau eraill? GYNULLEIDFA: A yw% s yn bodoli y tu allan i'r teclyn? DAVID Malan: A yw% s yn bodoli y tu allan i'r teclyn? Ydw. Felly,% s wedi ei wneud gyda C. Mae'r ffaith ein bod yn ei ddefnyddio mewn yr offer sylfaenol wedi ddim i'w wneud â'r nodweddion yr iaith rydym yn ei ddefnyddio. Yn wir, yr wythnos diwethaf pan fyddwn yn defnyddio fy Mac, ysgrifennais C cod ar fy Mac. Gallwn fod wedi defnyddio% s ar fy Mac, a gallech ei ddefnyddio ar 'ch Ffenestri chyfrifiadur os ydych yn gosod casglwr, fel Visual Studio gan Microsoft. Felly,% s. Mae popeth rydym yn ei wneud tu mewn y ffenestr heddiw wedi i wneud gyda C. Ac yn y bôn dim byd i'w wneud â'r gweithredu system dan sylw. Ar y llaw arall, y ffenestr derfynell du a gwyn - pan Rwyf i'n teipio pethau fel ls, a rm, a cd - sydd wedi ei wneud gyda'r system weithredu a'r lywio o gwmpas. Yeah. GYNULLEIDFA: Yr wyf yn golygu y llyfrgell, y llyfrgell CS50. DAVID Malan: Iawn, felly os ydych yn golygu y llinyn keyword, y ond yn bodoli yn y llyfrgell CS50, yn gywir. Nid yw hynny'n bodoli yn C ei hun, ac yn wir mewn cwpl o wythnosau, byddwn yn ei daflu i ffwrdd y llyfrgell CS50 a dechrau wneud pethau o'r dechrau ein hunain, fel petai. Cwestiynau eraill? Yeah. GYNULLEIDFA: [Anghlywadwy] DAVID Malan: Cwestiwn da. A yw'r achos gorchmynion sensitif? A gadewch i mi wneud gwahaniaeth yma. Felly gorchmynion yn gyffredinol pethau y byddwn yn ysgrifennu yn y waelod y ffenestr, yn y ffenestr terfynell. Byddai unrhyw beth yma fod yn ddatganiadau neu C cod. Ond yn y ddau achos, yr ateb yw yr un fath, ie. Mae'r ddau o'r amgylcheddau hyn, y cod C ar y brig a'r gweithredu system llinell orchymyn ar y gwaelod, yn achos sensitif. Felly, mae'n rhaid i chi fanteisio GetString gyda chyfalaf G, cyfalaf S. Rhaid i chi ysgrifennu printf ym mhob llythrennau bach. Mae'n rhaid i chi deipio ls yn yr holl llythrennau bach. Felly, ym mron pob sefyllfa hon semester, achos bydd, yn wir, mater. Ydw. GYNULLEIDFA: [Anghlywadwy] DAVID Malan: Ah, felly iawn, beth pe bai gennym ffeil a elwir yn hello.d. Felly, mae'n troi allan D yn iaith raglennu. Ac felly mewn rhai achosion, gallem ysgrifennu mewn gwirionedd rhaglen yn y ffeil ac wedi ei llunio yn yr un modd. Gallwn, ac mewn gwirionedd, ateb byr yw, nid wyf yn gwybod. Felly, rydym yn mynd i wneud hyn. Gadewch i mi fynd yn ei flaen ac yn creu ffeil newydd. Ac y sbin yma, yn onest yn gyffredinol, yn pryd bynnag unrhyw amheuaeth y semester, ac mae gennych eich offer neu gyfrifiadur agor, mynd yn ei flaen a rhoi cynnig ar rywbeth. Felly dw i'n mynd i achub ffeil o'r enw hello.d. Achub hyn. Ac yr wyf i'n mynd i redeg yn gwneud helo Enter. Roedd yn ymddangos i awgrymu bod c yn fwy tebygol o na d, yn yr achos hwn. Cwestiynau eraill. Yeah. GYNULLEIDFA: [Anghlywadwy] DAVID Malan: Iawn, yn dweud bod unwaith yn rhagor. GYNULLEIDFA: [Anghlywadwy] DAVID Malan: Sut fyddech chi'n mynd ati i diagnosis hwnnw neu datrys problemau hynny? Felly fwyaf tebygol, oherwydd eu bod gwahanol ieithoedd, fwyaf tebygol y byddech yn cael yn gyfan gwbl raglen wahanol outputted. Byddech yn cael negeseuon gwall hollol wahanol. A hefyd unig o ran dyluniad, byddai'n dadlau yn penderfyniad dylunio gwael i gael ei ysgrifennu dau wahanol ieithoedd gyda ffeiliau a enwir bron yn union, yn yr un cyfeiriadur union, gan ddefnyddio offeryn awtomatig fel gwneud. Felly gallaf hefyd yn gwthio yn ôl a dweud mewn 15 mlynedd o wneud hyn, byth yn gwneud y camgymeriad. Gallai ddigwydd. Ond nid dim ond amrywiol, yr wyf yn meddwl, amddiffynfeydd logistaidd yn eu lle. Byd Gwaith yn y negeseuon gwall a fyddai'n ddilyn, a fyddai'n yn y pen draw yn datgelu beth yw'r mater. Ond achos cornel posibl. Mae pob hawl, felly gadewch i ni gyflwyno dim ond cwpl o eraill nodweddion yma yn awr, fel y gallwn ddechrau adeiladu i fyny i fwy ac yn fwy cymhleth rhaglen. Felly, yn gyntaf oll, mathemateg. Felly enghreifftiau mathemateg yn unig fath o hawdd yn yr wythnos gyntaf. Nid yw hyn yn dweud bod yr holl raglenni yn ymwneud â mathemateg. Yn sicr, deall nodweddion gwahanol mathemateg, algebra yn arbennig, yn eithaf berthnasol yma. Yn lefel uwch dosbarthiadau CS, algebra llinol, calcwlws, ac yn y blaen. Ond yn sylweddoli nid yw'r rhan fwyaf o'r hyn a byddwn yn gwneud hyn yn lleihau semester i mathemateg, ac yn sicr nid i rhifyddeg, fel y cyfryw, ond mewn gwirionedd i ddim ond rhesymeg a meddwl yn ofalus. Ac felly y cysylltiad hwn bod gwyddoniaeth gyfrifiadurol wedi cael hir, yn enwedig ar lefel ysgol yn uchel, gyda mathemateg, yn ychydig yn gamarweiniol. Oherwydd bod y rhan fwyaf o'r rhaglenni y byddwn yn ysgrifennu, mewn gwirionedd, yn math o lefel uwch ac yn canolbwyntio ar ddatrys problemau hynny, yn siwr y gallai, defnyddio rhai adio, tynnu, ac amrywiol fformiwlâu mathemategol neu yn y blaen, ond ar ddiwedd y dydd, mae'n ymwneud â meddwl, ac nid dim ond gweithredu'r hyn y gallech fod wedi'u gwneud ar fel TI cyfrifiannell yn yr ysgol uwchradd. Felly, gyda hynny ddywedodd, gadewch i ni bellach yn gwneud rhywbeth gyda hyn gweithredwyr mathemategol sydd yn bodoli fel y gallwn daith dros rai o'r agweddau sylfaenol o raglenni, neu mewn yr achos hwn C. Felly mae, fel y llyfrgell CS50 yn awgrymu, a heddiw rydym yn unig gan ddefnyddio GetString - ac mewn eiliad efallai un swyddogaeth arall - ond mae fathau data gwahanol mewn cyfrifiadur. Ar ddiwedd y dydd, cyfrifiaduron ond yn gwybod 0s a 1s. Ond dwyn i gof bod yr wythnos diwethaf buom yn siarad am y system ddeuaidd o ran cynrychioli rhifau, fel y rhif 0, ac 1, a 2, yr holl ffordd ar hyd at 8, fel yn Nate fideo. Ac yna gallwn ddibynnu llawer uwch wrth i ni oedd ar y llwyfan yma. Ond os ydych am i gynrychioli nid yn unig niferoedd ond llythrennau, ni, y bodau dynol, yn gorfod dod i fyny gyda rhai mympwyol confensiynau, lle os ar ddiwedd y dydd i gyd fy nghyfrifiadur wedi y gallu i fynegi 0s a 1s, yn dda byddem yn well dechrau safoni patrymau 0s a 1s sy'n cynrychioli pethau gwahanol. Mae patrwm o 0s a 1s sy'n cynrychioli y llythyr a. Patrymau 0s a 1s sy'n cynrychioli'r z llythyr. Patrymau 0au ac 1 sy'n cynrychioli'r glas lliw, neu coch, neu yn y blaen. Mae angen i ni ddefnyddio pob un o'r rhain 0s a 1s i fynegi ein hunain yn gwahanol gyd-destunau, mewn ffyrdd gwahanol nad ydynt yn reidrwydd yn rhifol. Felly, o ran cynrychiolaeth, C wedi fathau data gwahanol, ac rydym wedi gweld un o'r rhain hyd yn hyn. Gwelsom int, a hysbysiad beth sydd ddim ar y sgrin ar hyn o bryd yn llinyn. Nid yw'r llinyn, mewn gwirionedd, yn bodoli yn C. Unwaith eto, mae'n symleiddio rydym yn cyflwyno am y tro cyntaf cwpl o wythnosau. Mae torgoch yn gymeriad unigol. Mae arnofio yn rhif real, gydag un pwynt degol a rhifau i y chwith a'r dde ohono. Mae dwbl yn beth, i'r rhai sydd â chefndir yn ôl ymlaen llaw? Felly dwbl yn ddwywaith rhywbeth. Ychwanegu dwywaith mor fanwl iawn. Felly beth mae hyn yn ei olygu? Felly, ym mhob un o'r achosion hyn, y byd math o safoni faint o ddarnau yn cael eu defnyddio i gynrychioli pob un o'r pethau hyn. Felly, os ydych wedi gwylio fideo Nate ASCII yn barod ar gyfer rhan o pset 0, neu yn ddiweddarach yr wythnos hon chi, byddwch yn ôl pob tebyg yn gwybod bod ASCII - sylwadau cymeriad - defnyddio faint o ddarnau? Ac efallai y byddwch hyd yn oed yn cofio o'n demo yr wythnos diwethaf o sut y llawer o bobl oedd ar y llwyfan. Felly, 7 neu 8, yn nodweddiadol. Felly, yn gyffredinol 8, ac mae yna rywbeth o'r enw fel y'i hestynnwyd ASCII sy'n defnyddio'r holl 8 did, yn hytrach na 7. Ond yn gyffredinol, rydym yn siarad mewn pwerau o 2, felly yn yr achos hwn, 8. Felly, golosg mewn iaith raglennu fel arfer 8 did. Felly mae int yn gyffredinol 32 catiau. Mae arnofio yn gyffredinol 32 catiau. Mae dwbl yn gyffredinol 64 did. A beth mae hynny'n ei olygu? Mae'n golygu y gallwch gynrychioli rhifau mwy, neu yn achos niferoedd go iawn, gallwch gael rifau llawer mwy ar ôl y lle degol. Trachywiredd Mae llawer mwy, yn yr achos hwnnw. Erbyn hyn, mae hir hir yn cael ei enwi yn anffodus. Felly mae 'na int sydd yn 32 catiau. Mae hir sydd, Na, 32 did. A hir hir sydd yn 64 did. Fodd bynnag mae rhai o'r rheiny yn gyd-destun sensitif; mae'n dibynnu pa fath o gyfrifiadur sydd gennych. Felly, yn gyffredinol, byddwn yn nodi mewn gwaith cartref neu mewn cwis pan mae hynny'n wirioneddol bwysig. Ond y pwynt yw mae pob un o'r rhain wahanol sylwadau yma. Felly, gadewch i ni mewn gwirionedd yn plymio i mewn i raglen. Yn hytrach na ysgrifennu hyn un o'r newydd, gadewch i mi fynd yn ei flaen ac yn agor i fyny o cod ffynhonnell heddiw - pob un ohonynt yn ar-lein - os ydych am i botsian o gwmpas ar-lein, neu enillion ar Dydd Mercher a'r offer ar eich cyfrifiadur, cyfarwyddiadau Bydd y cysylltu ar dudalen hafan y cwrs. Dyma raglen syml super. Ond mae llawer mwy o rywbeth bach newydd ar y brig a Nid oedd gennym o'r blaen. Mae llawer gyfan o linellau glas o destun. Felly, mae'r llinellau glas yn cynrychioli sylwadau. Felly, mae'n eithaf defnyddiol mewn rhaglen i fod yn gallu ysgrifennu rhai sylwadau i chi eich hun, neu i gydweithwyr, neu ffrindiau, neu cymrodyr addysgu, y math yna o disgrifio'r hyn sy'n mynd ymlaen yn y ffeil, ond mae ganddynt ddim i'w wneud gyda C cod ei hun. Dim byd i'w wneud â'r rhaglen swyddogaethol, dim ond estheteg. Felly, y ffordd yr ydych yn gwneud hyn yn C yw chi fel arfer yn dechrau ar eich sylwadau gyda / *, a byddwch yn gorffen eich sylwadau gyda * /. Ac os ydych yn wirioneddol rhefrol ac yn hoffi i dynnu math o luniau, yna byddech yn rhoi llawer gyfan o sêr, byddech yn gwneud blwch bach fel hyn. Ond nid yw hynny'n bwysig. Yr unig beth sy'n bwysig yw y cyntaf a. olaf Mae hyn yn beth a elwir yn aml sylw-lein. A 'i' jyst confensiwn dynol i yn aml yn gwneud y sêr a blwch pethau mewn fel hyn os oes gennych lawer o amser rhad ac am ddim. Felly, ar ôl i chi wedi ysgrifennu mewn rhai sylwadau, yn gyffredinol, yn dod yn ddigon dewr gwirioneddol y rhaglen. Dyma ein cyfarwydd # cynnwys . A dim ond gyflym, mae hyn yn angenrheidiol neu nad oes angen? GYNULLEIDFA: Angenrheidiol. DAVID Malan: Felly nid oes angen mewn gwirionedd. Felly pam, fodd bynnag, nid yw hyn yn angenrheidiol? Felly, does dim printf. Yn wir. Y cyfan yr ydym yn ei wneud yn y rhaglen hon yw mathemateg. Felly gallaf mewn gwirionedd ddileu hynny. Felly, nid ydych bob amser yn rhaid i chi gynnwys unrhyw beth o ben y rhaglen. Felly, gadewch i ni symleiddio'r bit a. Ac yn awr sylwi ar yr hyn y mae'r rhaglen yn ei wneud. Dim llawer o ddiddordeb. int x = 1. Wel, beth mae hyn yn ei wneud? Wel, meddyliwch yn ôl at y model meddwl o'r blaen. Mae ochr chwith y mynegiant gwneud beth? Creu lle ar gyfer cyfanrif. Felly, faint o le? Wel, rydym yn digwydd gwybod nawr ei fod yn 32 catiau. Yn flaenorol, llinyn yn dechnegol 32 catiau, ond yn fwy ar hynny yn y dyfodol. Ond mae int yw 32 ddarnau. Felly, mae hyn mynegiant ar y chwith yma, int x yn unig yn dweud hey gweithredu system, yn rhoi i mi 32 catiau chan FAHAREN - a elwir fel arall fel 4 bytes o RAM - fel y gallaf roi cyfanrif yn y gofod. Pa cyfanrif oedd y dymunwch ei roi? Wel, dim ond y rhif 1. int y cael 2, mae'r un peth yn union er bod y rhif yn fwy, o ran ei faint. Y rhif ei hun yn dal i fod dim ond 32 ddarnau. Dim ond y patrwm o ddarnau yn wahanol i cynrychioli 1 yn erbyn 2. int z bellach yn dweud yn rhoi i mi un arall darnau 32, alw z, a rhoi'r grynodeb o 1 a 2 mewn 'na. Felly, sydd bellach yn ôl pob tebyg z yn storio gwerth 3, ac yna dychwelyd 0. Yn awr y rhaglen hon, a yw'n gwneud unrhyw beth o ddiddordeb? Felly, nid mewn gwirionedd yn gwneud dim byd diddorol, mewn unrhyw synnwyr, oherwydd pam? Mae'n gwneud rhywfaint mathemateg. Ond nid yw'n dychwelyd yr ateb, ar y dde. Mae'n dychwelyd 0. Dyw hi ddim yn argraffu'r ateb. Felly, mae'r rhaglen hon yn sylfaenol ddi-werth, gan ei fod yn mae yn awr. Mae'n gwneud rhywfaint o waith. Mae'n mynd i gymryd peth nifer o eiliadau, neu microseconds, i rhedeg, ond nid yw'n mewn gwirionedd yn gwneud unrhyw beth ddefnyddiol ar gyfer y bobl. Felly, gadewch i ni mewn gwirionedd nawr ar agor math2, lle erbyn hyn rwy'n mewn gwirionedd argraffu y canlyniad. Felly, mae hyn hefyd yn gallu cael ei gasglu gan ein enghreifftiau blaenorol. Os ydw i eisiau i wneud ychydig o fathemateg syml, int x = 1, y = 2. z yw 1 a 2 awr. Beth mae hyn yn mynd i argraffu amlwg? Dim ond 3. Felly sanity cyflym gwirio. Gadewch i mi symud i mewn i'r cyfeiriadur. Felly, cd source1m. Gadewch i mi fynd yn ei flaen a theipiwch gwneud math2. Dim negeseuon gwall ddaeth allan, felly gadewch i mi redeg - Nid yw a.out--gadewch i mi redeg math2. Enter. Ac yn wir, mae'n hargraffu 3. Wel gadewch i ni edrych ar amrywiad o hyn. Yn math3.c, mae gennym bellach yr enghraifft hon yma. Mor garedig hyn yn un o ddiddorol. Felly, yn yr un yma, ateb yn mynd i gael 1 wedi'i rannu â 10, ac yn sylwi Rwyf wedi datgan fel fflôt. Pam ydw i am iddo fod yn arnofio? Wel, mae'n ffracsiwn. Mae'n mynd i fod yn rhif real. Felly, mae'n mynd i fod yn 0.1, gobeithio - 10%, yn yr achos hwn. A beth ydw i'n yna am argraffu? Wel, yr ateb hwn. Wel, gadewch i ni canfod y rhain ar wahân yn gyntaf. Felly, ar yr ochr chwith, ddatgan bod arnofio, ei alw'n ateb. Ar yr ochr llaw dde, peidiwch 1 wedi'i rannu gyda 10 ac yn rhoi y ateb y tu mewn y newidyn. Yn awr, y llinell hon yn edrych ychydig yn fwy cryptig. Ond yn sylwi ar rai nodweddion cyfarwydd. % Yn golygu yma daw dalfan. f golygu dyma Gwerth pwynt arnawf, dim ond go iawn rhif, rhywbeth gyda phwynt degol. 0.2 dulliau beth? Dylai unrhyw un yn gwybod o brofiad blaenorol? Ddau le degol. Felly, nid ydym wedi gweld hyn o'r blaen, ond mae'r un ffordd o arfer rheolaeth ychydig yn fwy dros printf a Nid ddywediad yn rhoi i mi 30 pwynt ar ôl y pwynt degol, yn lle hynny yn rhoi i mi yn unig 2. Ac yna gadewch i ni fynd yn ei flaen ac yn rhedeg y. Felly gwnewch mathemateg 3, ac yn awr gad i mi redeg mathemateg 3, Enter. Ac nid yw hynny'n gywir. Rydym yn ymddangos i wedi dod ar draws ein bug 1 dilys. Wel, efallai ydw i'n jyst yn edrych yn ddigon agos. Felly, gadewch i mi fynd i fyny yma, a gadewch imi roi 20 degol lleoedd pwynt yno. A gadewch i mi lunio hyn, gwnewch math3, rhedeg. Pretty yn siwr nad yw 1 wedi'i rannu gan 10 yw 0. Felly beth sy'n mynd ymlaen? Wel iawn, felly mewn gwirionedd nid oes rhaid iddo wneud â hyn. Dyna syniad da. Mae hyn yn wir dim ond cyd-ddigwyddiad ein bod yn gwneud hyn. Ond dim ond i brofi nad yw hyn yn ei, 'n annhymerus' dychwelyd rhywbeth ar hap. Peidiwch â gwneud hyn yn y cartref, oherwydd ei fod o ddim yn iawn. Ond gwnewch math3, gadewch i mi redeg. Felly, wedi ddim i'w wneud â'r hyn yr wyf i'n dychwelyd, dim ond i wneud gyda'r hyn yr wyf i'n argraffu. Ond yr wyf yn clywed ei fod i lawr yma. Beth? GYNULLEIDFA: Felly mae angen i ysgrifennu'r rhifau yn yr is-adran fel - DAVID Malan: Iawn da. Felly mae angen i ysgrifennu'r rhifau cymryd rhan yn y adran yma fel pwynt arnawf gwerthfawrogi eu hunain. Felly, y broblem yma yw fel o'r blaen: C, fel gyda llawer o ieithoedd, mae fathau data gwahanol. A'r rhai mathau data, er enghraifft, a yw'r rhain yma. A'r mathau data dan sylw yma, pan oeddwn math 1 ac yna fe math 10, yn ôl pob tebyg pa fathau data? Felly, mae'n fwy na thebyg yn int, dde? Nid yw'n bendant fflôt am nad oes degol pwynt neu unrhyw beth fel 'na. Felly mewn gwirionedd, mae gennyf int rannu gan int. Felly, y peth diddorol am mathemateg a chyfrifiadur yw bod os ydych chi'n gwneud is-adran gan ddefnyddio cyfanrifau - 1 wedi'i rannu â 10, ie yn 0.1. Fodd bynnag, pan fyddwch yn rhannu'r cyfanrif gan gyfanrif, y ateb wedi hefyd i fod yn gyfanrif dim ond oherwydd, ar hyn o bryd. A beth yw'r goblygiadau hynny? Wel, os yw'r ateb yn cael ei rannu 1 erbyn 10 yn dychwelyd 0.1, beth y cyfrifiadur yn mynd i wneud yw Nid oes gennyf unrhyw syniad sut i cynrychioli 0.1, oherwydd dyna gwerth pwynt nid fel y bo'r angen, yn cyfanrif, mae'n mynd i dorri i ffwrdd popeth ar ôl y pwynt degol a dim ond dangos i chi y 0 ar y dechrau. Ac mae'r ffaith ei fod yn argraffu fel pwynt arnawf werth, dim ond yn beth esthetig. Mae hynny am fy mod i'n gorfodi y cyfrifiadur i argraffu hwn fel fel y bo'r angen gwerth pwynt. Ac yn wir yr wyf wedi datgan fel fflôt, ond y mathemateg yn digwydd dros yma. Felly, gadewch i mi mewn gwirionedd yn atgyweiria hon yn un ffordd eithaf hawdd. Pam nad ydw i'n jyst yn ei wneud 10.0 a 1.0, er bod dechnegol y gallwn i fynd i ffwrdd gyda dim ond gwneud un o'r rheiny. Nawr, gadewch i mi fynd ymlaen a gwneud math3. Gadewch i mi fynd yn ei flaen ac yn awr yn rhedeg math3, Enter. Ac yn awr, oh bachgen. Nawr mae gennym broblem newydd yn gyfan gwbl. Felly well, ar y dde, rydym ni'n agosach at 0.1, ond beth yn amlwg yn o'i le yma? Oni bai ein bod wedi bod yn gorwedd i chi am flynyddoedd, dde? 1 wedi'i rannu gan 10 mewn gwirionedd ddim yn hollol 0.1, felly beth wir yn mynd ymlaen yma? Wel gallwch fath o reswm drwy hyn yn rhesymegol. Os cyfrifiadur dim ond swm cyfyngedig o RAM i ddechrau gyda, ac yn wir cyfrifiadur dim ond yn defnyddio 32 catiau ar gyfer fel y bo'r angen gwerth pwynt, mae'n sefyll i resymu bod gyda nifer cyfyngedig o ddarnau, 32 yn yr achos hwn, ie, gallwch cynrychioli llawer o bethau. Mae'n mewn gwirionedd yw y gall 4000000000 werthoedd gwahanol fod yn cynrychioli gyda 32 darnau, 2 i 32, ond mae'n dal i fod cyfyngedig. Felly, y broblem yw mae 'na nifer anfeidrol o go iawn rhifau, ar y dde. Os ydych yn rhoi i mi yn rhif real, gallaf bob amser yn dod o hyd i un i chi ychydig yn fwy, ychydig yn llai, gan ddim ond tweaking y niferoedd sydd yn ôl y pwynt degol. Felly, os nad oes gennych nifer anfeidrol o ddarnau, byddwch yn ni all o bosibl yn cynrychioli ddiddiwedd nifer o rifau real. Felly, mae hyn yn anfanyldeb gynhenid ​​mewn cyfrifiaduron, ac mae hyn yn cael ei baglu dros yr holl amser hyd yn oed yn y symlaf o rhaglenni fel hyn. Ond hefyd mewn rhai problemau byd go iawn yn ogystal. Yn wir, gadewch i ni gymryd eiliad i fwrw golwg ar rhywbeth sydd mewn gwirionedd yn digwydd mewn gwirionedd. Byddwn yn gwylio yn unig yr ychydig cyntaf o funudau, ac yna byddwn yn postio ar-lein cyswllt. Ond mae hyn yn dyst i'r union beth fynd o'i le, yn eithaf yn onest, mewn ffordd drist iawn pan nad yw'r pethau hyn yn gwerthfawrogi neu ddim ond rydym yn bodau dynol yn gwneud camgymeriadau pan ddaw i manylion o'r fath yn gweithredu o gyfrifiaduron modern. [CHWARAE VIDEO] -Rydym yn awr yn dychwelyd i drychinebau peirianneg ar Marvels Modern. Cyfrifiaduron. Rydym i gyd wedi dod i dderbyn y problemau yn aml yn rhwystredig sy'n mynd gyda nhw. Pryfed, firysau, a glitches meddalwedd yn bris bach i talu am y cyfleustra. Ond mewn milwrol cyflymder uwch-dechnoleg ac uchel a gofod ceisiadau rhaglen, gall y broblem fod yn lleiaf chwyddo i mewn i drychineb. Ar Fehefin 4, 1996, gwyddonwyr yn barod i lansio di-griw Ariane 5 roced. Roedd yn cario lloerennau gwyddonol a gynlluniwyd i canfod faint yn union faes magnetig y ddaear rhyngweithio gyda gwyntoedd solar. Mae'r roced ei adeiladu ar gyfer yr Asiantaeth Ofod Ewropeaidd a godi oddi ar ei gyfleuster ar arfordir Ffrainc Guyana. -Ar am tua 37 eiliad i mewn i'r awyren, yn gyntaf rhywbeth sylwi yn mynd o'i le, bod y nozzles oedd swiveling mewn ffordd y maent ddim wir dylai. Mae tua 40 eiliad i mewn i'r awyren, mae'n amlwg y cerbyd oedd mewn trafferthion, a dyna pan fyddant yn gwneud y penderfyniad i ddinistrio. Mae ystod swyddog diogelwch gyda dewrder aruthrol pwyso y botwm, chwythu i fyny y roced cyn y gallai ddod yn peryglon i ddiogelwch y cyhoedd. -Hwn oedd y fordaith gyntaf y Ariane 5, ac mae ei dinistrio Cynhaliwyd oherwydd nam wreiddio yn y roced meddalwedd. -Y broblem ar y Ariane oedd bod nifer y gwneud yn ofynnol i 64 did i fynegi ac roedden nhw am i drosi ei i rhif 16 bit. Maent yn cymryd yn ganiataol na chafodd y nifer yn mynd i fod yn fawr iawn, bod y rhan fwyaf o'r rhai digidau mewn rhif 64 bit yn 0au. Eu bod yn anghywir. -Mae anallu un rhaglen feddalwedd i dderbyn y math o nifer a gynhyrchir gan un arall oedd wrth wraidd y y methiant. Datblygu meddalwedd wedi dod yn rhan gostus iawn o dechnoleg newydd. Mae'r 4 Ariane roced wedi bod yn llwyddiannus iawn. Felly, mae llawer o'r meddalwedd a grëwyd ar gyfer ei ddefnyddio hefyd yn y Ariane 5. -Y broblem sylfaenol oedd bod y Ariane 5 yn gyflymach, cyflymu gyflymach. Ac nid yw'r meddalwedd wedi cyfrif am hynny. -Mae dinistrio y roced yn ariannol enfawr trychineb, i gyd oherwydd gwall meddalwedd munud. Ond nid hwn oedd y tro cyntaf phroblemau trosi data wedi plagued dechnoleg fodern roced. DAVID Malan: Byddwn yn gadael ar hynny. Ond mae hyn yn brawf yn union pa mor berthnasol hyd yn oed rhai o'r manylion hyn ar lefel isaf ein bod wedi dechrau archwilio heddiw. Felly, hyd yn oed wrth i chi fynd ychydig yn canolbwyntio ar y ffordd efallai drwy rai o'r y cystrawen a arcaneness yma, yn sylweddoli bod dros y tymor byddwn yn canolbwyntio yn unig ar pa mor berthnasol yw hyn i byd ymhell y tu hwnt CS. Byddwn yn eich gweld ar ddydd Mercher.