>> [CHWARAE CERDDORIAETH]
>> DAVID J Malan: pob hawl, croesawu yn ôl i CS50.
Mae hyn yn dechrau'r wythnos dau.
Gair gan un o'n ffrindiau ar y campws -
os oes gennych ddiddordeb, o bosibl, naill ai yn awr neu yn rhai tymor y dyfodol
hyd yn oed, unwaith yn fwy cyfforddus, addysgu myfyrwyr ysgol ganol ychydig
rhywbeth am wyddoniaeth gyfrifiadurol, gwneud pen i'r URL.
Maent mewn angen arbennig ar hyn o bryd o athrawon, yn enwedig os oes gennych
wedi cael rhywfaint o amlygiad i wyddoniaeth gyfrifiadurol.
>> Felly, dwyn i gof bod y tro diwethaf, cyflwynwyd rhai mathau o ddata yn C, ac
efallai eich bod wedi dechrau cael eich dwylo budr gyda'r rhain hyd yn hyn
yn broblem sefydlu un.
Ac rydym wedi cael torgoch.
Felly, mewn termau braidd yn dechnegol, yr hyn yn torgoch fel y gwyddoch ei fod heddiw?
>> Felly mae'n gymeriad, ond gadewch i ni fod yn fwy manwl yn awr.
Beth ydyn ni'n ei olygu wrth gymeriad neu unigolyn torgoch?
Mae cymeriad nad ydynt yn rhifiadol -
felly nid o reidrwydd.
Mae'n troi allan bod y niferoedd hyd yn oed, hyd yn oed atalnodi a llythyrau yn
cynrychioli Hydred gyda'r data hwn teipio a elwir yn torgoch.
Felly, nid yw o reidrwydd yn nhrefn yr wyddor.
Yeah?
>> Felly mae'n gymeriad ASCII.
Felly, os ydych yn meddwl yn ôl i wythnos sero, pan cawsom ein beit o wirfoddolwyr
dod i fyny a naill ai yn cynnal eu dwylo i fyny neu nid y cyfan, maent yn eu cynrychioli ddarnau.
Ond gyda'i gilydd fel grŵp o wyth, roeddent yn cynrychioli beit.
Ac rydym yn cyflwyno'r syniad o ASCII ar y ddarlith, sydd yn syml yn
mapio rhwng rhifau a llythrennau.
A defnydd ASCII, fel bodau dynol hynny ymhlyg darnau, wyth
i gynrychioli cymeriad.
>> Felly, yn unol â hynny, gall os wyth darnau pob un yn cymryd ar un o ddau werth -
sero neu un -
mae hynny'n golygu dau bosibilrwydd ar gyfer y person hwn -
sero neu un -
dau ar gyfer y person hwn, dau ar gyfer hyn person, dau ar gyfer yr un yma.
Felly gyfanswm o ddwy waith ddwy waith dwy waith dwy waith dau -
felly dau yr wythfed i gyd.
Felly, mae cyfanswm nifer o gymeriadau 256 bosib eich bod yn gallu
cynrychioli gydag wyth darnau.
>> Yn awr, y rhai ohonoch sy'n siarad Asiaidd gallai ieithoedd yn gwybod bod yna fwy
cymeriadau yn y byd na dim ond Fel a brecwast a C a D.
Ac yn wir, nid ASCII yn ddigonol ar gyfer llawer o ieithoedd y byd.
Ond mwy am hynny rywbryd eto.
Am y tro, yn gwybod bod yn C os ydych am i gynrychioli llythyr, darn o
atalnodi, neu dim ond rhywbeth gymeriad o ran eu natur, rydym yn defnyddio torgoch.
Ac mae'n un beit neu wyth ddarnau.
>> Beth am int?
Wel, mae int yn gyfanrif.
Faint o ddarnau, os cofiwch, Roedd yn gyfanrif fel arfer?
Dylai unrhyw un cofio?
Felly mae'n nodweddiadol 32.
Mae'n mewn gwirionedd yn dibynnu ar y cyfrifiadur eich bod yn defnyddio.
Ond yn y peiriant, ac mewn llawer o cyfrifiaduron, mae'n 32 o ddarnau neu bedair
bytes - wyth gwaith pedwar.
Ac ints yn cael eu defnyddio yn unig ar gyfer storio rhifau, naill ai'n negyddol,
gadarnhaol, neu sero.
>> Ac os oes gennych chi 32 o ddarnau a dim ond gofal am rifau cadarnhaol, gall
unrhyw un bras faint o bosibl cyfanrifau gall cyfrifiadur gynrychioli gan
sero ar i fyny?
Felly byddai'n dwy i 32, sy'n yn fras i bedwar biliwn o.
Felly pwerau hyn o ddau yn mynd i fod themâu cylchol mewn gwyddoniaeth gyfrifiadurol.
Fel y byddwn yn gweld, eu bod yn eithaf gyfleus i weithio gyda hyd yn oed os nad yw'n hollol
hawdd i wneud y math o fewn eich pen.
>> Felly, byddwn yn dweud yn fras i bedwar biliwn o.
Yn awr, hir hir -
gallwch math o dyfalu.
Mae'n hirach na int.
Faint o ddarnau?
Felly, 64 ddarnau neu wyth bytes.
Mae hyn yn unig yn golygu y gallwch gynrychioli hyd yn oed rhifau mwy, yn gadarnhaol fwy neu'n
rhifau negyddol mwy.
>> A beth am arnofio?
Dyna pwynt arnawf gwerth o 32 ddarnau.
Nifer real, mae hyn yn unig, rhywbeth gyda phwynt degol.
Ond os ydych yn lle hynny bydd angen mwy o leoedd ar ôl y pwynt degol neu os ydych am
cynrychioli nifer mwy gyda rhai ffracsiwn ôl iddo, gallwch ddefnyddio
dwbl, sydd yn 64 ddarnau.
>> Ond mae 'na diddorol cludfwyd yma.
Felly, os ints yn cael eu cyfyngu gan 32 darnau a hyd yn oed longs hir yn cael eu cyfyngu gan 64
darnau, y math yna o begs y cwestiwn, beth os ydych yn dymuno i gyfrif
uwch na 4 biliwn ar gyfer yr int?
Wel, 'ch jyst yn defnyddio hir hir.
Ond beth os ydych am i gyfrif uwch na dau at y 64ain, yn rhoi neu gymryd?
>> Yn awr, mae hynny'n nifer enfawr.
Ond yn y pen draw, gallech mewn gwirionedd yn gofalu am y mathau hyn o werthoedd,
yn enwedig os ydych yn defnyddio cronfa ddata ac yn dechrau casglu llawer a llawer
a llawer o ddata a aseinio unigryw rhifau i bob darn o'r data.
Felly, rydym yn fath o broblem.
Ac yn yr un modd, gyda pwynt arnawf werthoedd - fflotiau neu dyblau -
os ydych chi wedi cael dim ond nifer cyfyngedig o darnau, faint o gyfanswm niferoedd allech chi
o bosibl gynrychioli?
>> Wel, mae'n llai amlwg pan fyddwch yn cynnwys pwynt degol.
Ond mae'n sicr yn gyfyngedig.
Os oes gennych nifer cyfyngedig o ddarnau, nifer cyfyngedig o bobl, a cyfyngedig
nifer y bylbiau golau, yn sicr y gallwch ond yn cynrychioli nifer gyfyngedig o
fel y bo'r angen gwerthoedd pwynt.
Ond faint o rifau real yw eu yn y byd?
Mae 'an ddiddiwedd.
Felly dyna fath o broblem oherwydd ein bod yn Nid oes rhaid i swm diddiwedd o
cof neu RAM tu mewn ein cyfrifiaduron.
Felly gall rhai pethau anodd yn digwydd.
>> Felly, gadewch i ni fynd yn ei flaen ac yn ceisio i fynegi hyn yma.
Gadewch i mi fynd yn ei flaen ac yn agor i fyny gedit.
Rydw i'n mynd i fynd yn ei flaen ac arbed ffeil o'r enw "floats0.c" dim ond i fod yn
gyson ag enghraifft sy'n gael ar-lein, os hoffech.
Ac yr wyf i'n mynd i fynd yn ei flaen a ei ddiffinio fel a ganlyn -
Rydw i'n mynd i fynd yn ei flaen a dweud, int prif ddi-rym, fel yr ydym yn aml yn gwneud.
>> Ac yna yn y rhaglen hon, yr wyf i'n mynd i ddatgan fy hun yn arnofio, felly mae 32-bit
Gelwir amrywiol f, fympwyol.
Ac yna yr wyf i'n mynd i storio ynddo Nid wyf yn gwybod, un rhan o ddeg, felly 0.1.
Felly, yr wyf i'n mynd i fynegi hynny fel un wedi'i rannu â 10, sy'n gwbl
gyfreithlon yn C.
>> Ac yna ar yr ail linell, yr wyf yn syml eisiau argraffu gwerth hwnnw.
Felly, yn dwyn i gof y gallwn eu defnyddio cyfarwydd printf.
Nid ydym am i ddefnyddio% i ar gyfer int.
Rydym eisiau defnyddio% f ar gyfer fflôt.
Ac yna yr wyf i'n mynd i wneud slaes n, dyfyniad agos, coma, f, hanner colon.
>> Felly dyma fy rhaglen.
Mae eisoes yn un bug.
A yw rhywun y mae hyn glicio eisoes yn awyddus i bwynt o leiaf
un bug Rydw i wedi gwneud?
Yeah?
Yeah.
Anghofiais i "# cynnwys" yn y uchaf, maent yn symptom o'r rhain os byddaf yn ceisio
lunio hyn yn mynd i fod bod y compiler yn mynd i gweiddi arna i,
dweud symbol undefined neu rhywbeth i'r perwyl hwnnw.
Nid yw'n deall rhywbeth hoffi printf.
>> Felly, yr wyf i'n mynd i wneud "# gynnwys ", Arbed y ffeil.
Ac yn awr ei fod mewn cyflwr gwell.
Ond rwyf hefyd yn mynd i dynnu allan un manylion newydd heddiw.
Yn ogystal â nodi lle ddeiliaid fel%% f i% s, gallwch
weithiau ddylanwadu ar ymddygiad o'r dalfan.
Er enghraifft, yn yr achos fel y bo'r angen gwerth pwynt, os mai dim ond am
i arddangos un lle degol ôl y cyfnod, gallaf ei wneud mewn gwirionedd 0.1f.
Felly, mewn geiriau eraill, yr wyf yn gwahanu'r f a yr arwydd y cant gyda 0.1, dim ond
dweud printf, efallai y bydd gennych cyfan criw o rifau ar ôl y degol
pwynt i mi.
Ond dim ond am weld un ohonynt.
>> Felly, yr wyf i'n mynd i fynd yn ei flaen yn awr ac arbed rhaglen hon, yn mynd i mewn i fy terfynell
ffenestr, ac yr wyf i'n mynd i fynd yn ei flaen a math yn gwneud arnofio 0, mynd i mewn.
Gwelaf fod llinell braidd yn cryptig bod yn dechrau gwneud mwy o synnwyr wrth i ni
tynnu coes ar wahân yr wythnos hon a'r flwyddyn nesaf.
Nawr rydw i'n mynd i fynd yn ei flaen a rhedeg sero arnofio.
Ac, damn.
>> Felly mae nam arall yma am ryw reswm.
Rwy'n eithaf siwr bod un rhan o ddeg, neu un wedi'i rannu gan 10, nid yw 0.0.
Efallai wyf nid yn unig i'n edrych yn ddigon digid.
Felly pam nad ydw i'n ddweud dau .2 i weld dau lle degol hytrach na dim ond un.
Gadewch i mi fynd yn ôl at fy ffenestr terfynell yma ac yn taro i fyny ychydig o weithiau i
gweld fy hanes.
Peidiwch gwneud arnofio sero unwaith eto, ac yna i fyny eto.
Ac yn awr fynd i mewn.
>> Ac yn awr rwy'n eithaf siŵr bod hyn yn anghywir.
A gallwn wneud tri a phedwar, ac rwy'n na thebyg yn mynd i gadw weld sero.
Felly, ble mae'r bug?
Dylai un wedi'i rannu gan 10 yn 0.1.
Rhywun am gymryd drywanu ar yr hyn y mater sylfaenol yw?
Yeah?
Maent yn ddau cyfanrifau.
Felly beth?
Felly, gydag un wedi'i rannu â 10, sy'n hyn yr wyf yn ei wneud mewn rhifyddeg.
Ac yr wyf yn cael 0.1.
>> Yeah.
Ac felly mae'n wir y mater hwnnw.
Pan fyddwch yn cymryd yn gyfanrif mewn cyfrifiadur ac rydych yn ei rannu gan cyfanrif arall,
y cyfrifiadur yn ddiofyn yn mynd i cymryd yn ganiataol eich bod eisiau cyfanrif.
Y broblem er, wrth gwrs, yw nad yw 0.1 yn gyfanrif.
Mae'n nifer go iawn.
Ac felly yr hyn y mae'r cyfrifiadur yn ei wneud gan ddiofyn ai dim ond taflu i ffwrdd
popeth ar ôl y pwynt degol.
Nid yw'n dalgrynnu i lawr neu i fyny fel y cyfryw.
'I jyst yn taflu popeth ar ôl y pwynt degol.
Ac yn awr sy'n gwneud synnwyr.
Oherwydd erbyn hyn rydym yn glir gadael gyda sero.
>> Ond arhoswch funud.
Dydw i ddim yn gweld sero int.
Im 'mewn gwirionedd yn gweld 0.00.
Felly, sut ydw i'n cysoni hyn nawr?
Os yw un wedi'i rannu gan 10 yn sero, ond rwy'n gweld 0.00, ble mae'n cael
newid yn ol i nifer go iawn?
Yeah.
Yn union.
>> Felly hyd yma yn unol pump, pan mewn gwirionedd storio'r 0.1, sydd wedyn yn
cwtogi i sero, tu mewn float, sy'n cyfateb yn effeithiol i
Nid yw storio fel int, ond, yn wir, fel fflôt.
Ar ben hynny, rwy'n yna defnyddio printf i argraffu benodol y rhif hwnnw i ddau
lle degol, hyd yn oed er bod Efallai na mewn gwirionedd fod yn unrhyw.
>> Felly, y math hwn o sucks, dde?
Mae'n debyg nad ydych yn gallu gwneud mathemateg, o leiaf ar y lefel hon o
gywirdeb, mewn cyfrifiadur.
Ond yn sicr mae yna ateb.
Beth yw'r ateb symlaf gallem efallai ei wneud, hyd yn oed yn reddfol yma i
ddatrys hyn?
Yeah?
Trowch y cyfanrifau i mewn -
yeah.
Hyd yn oed os nad wyf yn hollol sicr beth digwydd mewn gwirionedd yma, os yw'n
sylfaenol wedi ei wneud gyda hyn yn ints, wel, pam nad ydw i'n
gwneud y 10.0, yn gwneud hyn yn 1.0, resave y ffeil.
Gadewch i mi fynd yn ôl i lawr i'r gwaelod ac ail-grynhoi.
Gadewch i mi yn awr ailgynnal.
Ac yno -
nawr, mae gen i fy un rhan o ddeg cynrychioli Hydred fel 0.10.
>> Mae pob hawl.
Felly, nid yw hynny'n ddrwg.
A gadewch i mi nodi un ffordd arall gallem fod wedi datrys hyn.
Gadewch i mi mewn gwirionedd yn rholio yn ôl mewn amser i pan gawsom hyn fel un
degfed funud yn ôl.
A gadewch i mi fynd yn ei flaen ac yn resave y ffeil fel enw ffeil gwahanol, dim ond i
gael ychydig o checkpoint.
Felly dyna oedd yn fersiwn un.
Ac yn awr gadewch i mi fynd yn ei flaen a wneud un fersiwn mwy.
Byddwn yn galw hyn yn fersiwn dwy sero mynegeio.
>> Ac yr wyf i'n mynd i wneud yn lle hynny hyn - eich bod yn gwybod beth?
Ychwanegu dot sero gweithio yn yr achos hwn.
Ond mae'n debyg un oedd amrywiol.
Fod 10 oedd amrywiol.
Mewn geiriau eraill, mae'n debyg na allai i dim ond galed-god .0 ar ddiwedd y
y mynegiant rhifyddeg.
Wel, gallaf mewn gwirionedd wneud rhywbeth mewn cromfachau o'r enw castio.
Gallaf fwrw y cyfanrif 10 i arnofio, a gallaf bwrw bod un cyfanrif i
arnofio, yn ogystal.
Yna y math sy'n mynd i gael ei wneud yn 1.0 yn effeithiol wedi'i rannu gan 10.0,
y canlyniad sy'n mynd yn f fel o'r blaen.
Felly os wyf yn ail-grynhoi hyn fel gwneud fflotiau 2, ac yn awr arnofio 2, yr wyf yn cael yr un
ateb, yn ogystal.
>> Felly, mae hyn yn enghraifft eithaf contrived, i ddatrys y broblem
drwy gyflwyno castio.
Ond yn gyffredinol, castio yn mynd i fod yn beth pwerus, yn enwedig ar gyfer
problem a dau ymhen wythnos, pan fydd ydych am i drosi un math data i
arall, ar ddiwedd y dydd yn cael eu cynrychioli yn yr un modd.
Ar ddiwedd y dydd, pob un beth rydym wedi trafod hyd yn hyn yn
dim ond ints o dan y cwfl.
Neu os yw hynny'n rhy lefel-isel ar gyfer chi, maen nhw jyst rhifau
o dan y cwfl.
Hyd yn oed cymeriadau, unwaith eto, yn cofio o wythnos sero, niferoedd
o dan y cwfl.
>> Pa un yw dweud, gallwn newid rhwng gwahanol fathau o rifau os
maen nhw jyst darnau.
Gallwn newid rhwng rhifau a llythyrau os ydynt yn unig
darnau, ac i'r gwrthwyneb.
A bwrw yn y modd hwn yn ddull mewn rhaglenni sy'n eich galluogi i rymus
newid un fath ddata i un arall.
Yn anffodus, nid fel hyn yn syml ag y byddwn wedi hoffi.
>> Rydw i'n mynd i fynd yn ôl i mewn i fflotiau 1, sef y symlach, yn fwy
un syml gyda Ychwanegodd .0 ar i bob un.
Ac yn union fel gloywi cyflym, gadewch i mi fynd yn ei flaen ac yn ail-grynhoi
hyn, yn gwneud fflotiau 2 -
ddrwg gennym, mae hyn yn gwneud fflotiau 1.
Ac yn awr gadewch i ni redeg fflotiau 1.
Ac yn y gwaelod, sylwch fy mod yn wir yn cael 0.1.
Felly, problem ei datrys.
>> Ond nid yw eto.
Rwyf nawr yn mynd i gael ychydig yn rhyfedd, ac yr wyf i'n mynd i fynd yn ôl i mewn i fy
datganiad ac printf ddweud, eich bod yn gwybod beth?
Hoffwn i gadarnhau bod hyn yn wir yn un rhan o ddeg.
Ac yr wyf i'n mynd i eisiau gweld hyn i, dyweder, bum lle degol.
Dyw hi ddim yn broblem.
Byddaf yn newid y ddau i bump, I ail-grynhoi â gwneud.
I ailgynnal fel arnofio 1.
Edrych 'n bert da.
Gallai fy gwiriadau bwyll ben yno, ond Im 'yn cael ychydig yn fwy anturus.
Rydw i'n mynd i newid 0.5-0.10.
Yr wyf am weld 10 digid ar ôl y lle degol.
>> Ac yr wyf i'n mynd i fynd yn ei flaen ac yn ail-grynhoi hwn ac ailgynnal arnofio 1.
Yr wyf yn fath o ofid wedi profi hyn ymhellach oherwydd nad yw fy mathemateg yn hynny
gywiro bellach, mae'n ymddangos.
Ond arhoswch funud, efallai mai dim ond hap a damwain.
Efallai y cyfrifiadur yn gweithredu ychydig yn rhyfedd.
Gadewch i mi fynd yn ei flaen ac yn gwneud 20 pwynt degol a thawelu meddwl fy hun fy mod yn gwybod
sut i wneud mathemateg.
Rwy'n gwybod sut i raglennu.
Gwneud fflotiau 1, ail-grynhoi, a damn iddo.
Mae hynny'n wir, wir yn mynd bell oddi wrth y marc.
>> Felly beth sy'n mynd ymlaen fan hyn?
Reddfol, yn seiliedig ar ein tybiaethau gynharach am faint o fathau data,
hyn y mae'n rhaid fod yn digwydd yma o dan y cwfl?
Yeah?
Yn union.
Os ydych eisiau cymaint â hyn manwl gywirdeb, a mae hynny'n andros o lot o gywirdeb -
20 rhifau ar ôl y pwynt degol.
Nid oes modd ichi cynrychioli nifer mympwyol oni bai eich bod yn cael
nifer mympwyol o ddarnau.
Ond nid ydym yn ei wneud.
Am arnofio, rydym dim ond 32 o ddarnau.
>> Felly, os gall 32 darnau yn unig yn cael ei permuted mewn ffordd - yn union fel ein pobl ar y, llwyfan
dwylo i fyny neu i lawr - mewn nifer cyfyngedig o ffyrdd, dim ond nifer cyfyngedig yn unig
o rifau real y gall ydych yn ei gynrychioli gyda darnau hynny.
Ac felly y cyfrifiadur yn y pen draw yn mynd i gael i
dechrau torri corneli.
Gall y cyfrifiadur guddio manylion hynny gennym ni am ychydig o amser.
Ond os ydym yn dechrau procio ar y niferoedd ac edrych ymhellach ac ymhellach yn y
llusgo rhifau yn rhif cyfan, yna rydym yn dechrau gweld ei fod yn
mewn gwirionedd yn brasamcanu y syniad o un rhan o ddeg.
>> Ac felly mae'n troi allan, yn drasig, mae nifer anfeidrol o rifau
ni allwn gynrychioli union mewn cyfrifiadur, o leiaf gyda cyfyngedig
nifer o ddarnau, a cyfyngedig faint o RAM.
Yn awr yn anffodus, mae hyn weithiau'n Mae canlyniadau yn y byd go iawn.
Os nad yw pobl yn eithaf gwerthfawrogi hyn neu fath o gymryd yn ganiataol y ffaith
y bydd eu cyfrifiadur dim ond gwneud yr hyn y maent yn dweud iddo wneud ac nid ydynt yn
deall y rhain sylfaenol Manylion cynrychiolaeth -
sydd, a dweud y gwir, mewn rhai ieithoedd yn cuddio oddi wrth y defnyddiwr, yn wahanol i C -
gall rhai pethau drwg yn digwydd.
>> A hyn yr wyf yn meddwl y byddem yn ei wneud yn cymryd cam yn ôl.
Ac mae hyn yn ymwneud yn fideo wyth munud.
Mae'n darlledu ychydig flynyddoedd yn ôl, ac mae'n rhoi cipolwg mewn gwirionedd beth all fynd
o'i le pan fyddwch o dan-gwerthfawrogi hyn math o fanylion yn yr union gyd-rhy
byd go iawn.
Os gallem dim y goleuadau am ychydig funudau.
>> SIARADWR 1: Rydym yn awr yn dychwelyd i beirianneg
trychinebau ar Marvels Modern.
>> Cyfrifiaduron -
yr ydym i gyd wedi dod i dderbyn y problemau yn aml yn rhwystredig
sy'n mynd gyda nhw.
Pryfed, firysau, a glitches meddalwedd yw prisiau bach i dalu am y
hwylustod.
Ond yn uwch-dechnoleg ac uchel-cyflymder milwrol a rhaglen gofod
ceisiadau, y broblem lleiaf y gellir ei chwyddo i mewn i drychineb.
>> Ar 4 Mehefin, 1996, gwyddonwyr yn barod i lansio di-griw Ariane 5 roced.
Roedd yn cario lloerennau gwyddonol cynllunio i sefydlu sut yn union
maes magnetig y Ddaear yn rhyngweithio gyda gwyntoedd solar.
Roedd y roced ei adeiladu ar gyfer y Ewropeaidd Asiantaeth Gofod a codi oddi wrth ei
gyfleuster ar yr arfordir o Giana Ffrengig.
>> JACK GANSSLE: Tua 37 eiliad i mewn i y daith, maent yn sylwi gyntaf
rhywbeth yn mynd o'i le.
Mae'r nozzles yn swiveling yn ffordd y maent ddim wir dylent.
Mae tua 40 eiliad i mewn i'r hedfan, glir y cerbyd oedd mewn trafferth.
A dyna pan fyddant yn gwneud penderfyniad i ddinistrio.
Mae'r swyddog diogelwch amrediad, gyda perfedd aruthrol, pwyso ar y botwm,
chwythu i fyny y roced cyn y gallai fod yn beryglus i ddiogelwch y cyhoedd.
>> SIARADWR 1: Dyma oedd y fordaith gyntaf y Ariane 5, ac mae ei dinistrio
ddigwyddodd oherwydd nam ymgorffori mewn meddalwedd y roced.
>> JACK GANSSLE: Y broblem ar y Ariane oedd bod nifer
oedd angen 64 darnau i fynegi.
Ac roedden nhw am i drosi i rhif 16-bit.
Maent yn cymryd yn ganiataol bod y nifer oedd byth yn yn mynd i fod yn fawr iawn, bod y rhan fwyaf o
digid rhai yn y 64-bit nifer yn sero.
Eu bod yn anghywir.
>> SIARADWR 1: Mae anallu un meddalwedd rhaglen i dderbyn y math o
nifer a gynhyrchir gan un arall oedd wrth wraidd y methiant.
Datblygu meddalwedd wedi dod yn iawn rhan gostus o dechnoleg newydd.
Mae'r Ariane 4 roced wedi bod yn iawn llwyddiannus, mae cymaint o'r meddalwedd
creu ar gyfer yr oedd hefyd yn defnyddio yn y Ariane 5.
>> PHILIP COYLE: Y broblem sylfaenol oedd bod y Ariane 5 yn gyflymach,
cyflymu gyflymach.
Ac nid yw'r meddalwedd wedi cyfrif am hynny.
>> SIARADWR 1: Mae dinistrio y roced oedd yn drychineb ariannol enfawr,
i gyd oherwydd gwall meddalwedd munud.
Ond nid hwn oedd y data am y tro cyntaf problemau trosi wedi plagued modern
technoleg roced.
>> JACK GANSSLE: Yn 1991, gyda dechrau y Rhyfel y Gwlff cyntaf, y Gwladgarwr
profi taflegryn fath tebyg o broblem trosi rhif.
O ganlyniad, 28 milwyr Americanaidd yn lladd a thua 100 o bobl eraill eu hanafu
pan fydd y Gwladgarwr, a oedd i fod i ddiogelu yn erbyn Scuds dod i mewn,
wedi methu i danio taflegryn.
>> SIARADWR 1: Pan ymosododd Iraq a Kuwait Lansiodd America Storm Anialwch yn
dechrau 1991, batris taflegryn Gwladgarwr eu defnyddio i amddiffyn Saudi Arabia
ac Israel o Scud Irac ymosodiadau taflegryn.
Y Gwladgarwr yn canolig ystod Unol Daleithiau system wyneb-i-awyr a weithgynhyrchir gan
y cwmni Raytheon.
>> THEODORE POSTOL: Mae maint y Patriot ataliwr ei hun yn fras
20-troedfedd o hyd.
Ac mae'n pwyso tua £ 2,000.
Ac mae'n cario warhead o tua -
Rwy'n credu ei fod tua £ 150.
Ac mae'r warhead ei hun yn ffrwydrol uchel sydd wedi
darnau o'i gwmpas.
Mae'r casin y warhead ei gynllunio i weithredu fel fwled.
>> SIARADWR 1: Y taflegrau yn cael eu cynnal pedwar y cynhwysydd ac yn cael eu cludo
gan ôl-gerbyd lled.
>> PHILIP COYLE: Y Gwladgarwr gwrth-taflegryn system yn mynd yn ôl ar
leiaf 20 mlynedd bellach.
Fe'i cynlluniwyd yn wreiddiol fel yn taflegryn amddiffyniad awyr i
saethu i lawr awyrennau gelyn.
Yn y Rhyfel y Gwlff cyntaf, pan fydd y rhyfel Daeth draw, y Fyddin am ei ddefnyddio
i saethu i lawr Scuds, nid awyrennau.
Nid yw'r heddlu awyr Irac oedd gymaint o broblem.
Ond mae'r Fyddin yn poeni am Scuds.
Ac felly maent yn ceisio uwchraddio y Gwladgarwr.
>> SIARADWR 1: rhyng-gipio yn taflegryn gelyn teithio ar Mach pump oedd
mynd i fod yn ddigon heriol.
Ond pan fydd y Gwladgarwr ei rhuthro i mewn i gwasanaeth, nid y Fyddin yn ymwybodol o
Addasiad Irac a gwneud eu Scuds bron yn amhosibl i daro.
>> THEODORE POSTOL: Beth ddigwyddodd yw'r Scuds a oedd yn
yn dod i mewn yn ansefydlog.
Roeddent yn wobbling.
Y rheswm am hyn oedd y Irac, yn er mwyn cael 600 cilomedr allan o
Taflegryn 300-cilometr-range, cymerodd pwysau allan o'r warhead blaen.
Maent yn gwneud y warhead ysgafnach.
Felly, yn awr y Gwladgarwr sy'n ceisio i ddod yn y Scud.
Ac yn y rhan fwyaf o'r amser, roedd y mwyafrif llethol rhan fwyaf o'r amser, byddai dim ond
hedfan gan y Scud.
>> SIARADWR 1: Unwaith y bydd y system Gwladgarwr gweithredwyr yn sylweddoli y Gwladgarwr colli
ei darged, maent yn tanio y wladgarwyr warhead i osgoi posibl
anafiadau pe bai'n cael ei ganiatáu i syrthio i'r llawr.
>> THEODORE POSTOL: Dyna oedd yr hyn y rhan fwyaf o gweld pobl fel fireballs mawr yn yr awyr
a'i gamddeall yn rhyng-gipio o arfbennau Scud.
>> SIARADWR 1: Er bod yn yr awyr nos Wladgarwyr yn ymddangos i fod yn llwyddiannus
dinistrio Scuds, yn Dhahran mae Gallai fod yn unrhyw gamgymeriad am ei
perfformiad.
Yno, system radar y Gwladgarwr yn colli olrhain o Scud sy'n dod i mewn a byth
lansio oherwydd nam meddalwedd.
>> Hwn oedd y Israeliaid a ddarganfuwyd gyntaf po hiraf y system
roedd ar, y mwyaf yw'r anghysondeb amser ddaeth yn ddyledus i gloc
rhan annatod o gyfrifiadur y system.
>> JACK GANSSLE: Tua dwy wythnos cyn y drychineb yn Dhahran, yr Israeliaid
Adroddwyd i'r Adran Amddiffyn bod y system yn colli amser.
Ar ôl tua wyth awr o redeg, maent yn sylwi bod y system yn
dod yn amlwg yn llai cywir.
Ymatebodd yr Adran Defense gan dweud wrth yr holl fatris Patriot
i beidio â gadael y systemau ymlaen am amser hir.
Maent byth yn dweud beth amser hir oedd.
Wyth awr?
10 awr?
1,000 awr?
Does neb yn gwybod.
>> SIARADWR 1: Y batri Patriot lleoli yn y barics yn Dhahran
ac mae ei gloc mewnol wedi bod yn ddiffygiol ar fwy na 100 awr ar y noson o
25 Chwefror.
>> JACK GANSSLE: Mae'n olrhain amser i cywirdeb o tua un rhan o ddeg o eiliad.
Yn awr, un rhan o ddeg o ail yn Rhif ddiddorol oherwydd na all fod yn
mynegi mewn deuaidd yn union, sy'n golygu Ni ellir ei fynegi yn union yn
unrhyw gyfrifiadur digidol modern.
Mae'n anodd credu, ond defnyddio hyn fel enghraifft.
Gadewch i ni gymryd y rhif un traean.
Ni ellir ei fynegi traean yn y degol yn union.
Un rhan o dair yn mynd 0.333 ar gyfer anfeidredd.
Does dim ffordd o wneud hynny gyda cywirdeb absoliwt yn y degol.
Dyna'n union yr un fath o broblem a ddigwyddodd yn y Gwladgarwr.
Yr hiraf yn rhedeg y system, y gwaethaf daeth y gwall amser.
>> SIARADWR 1: Ar ôl 100 awr o weithredu, y gwall mewn amser yn unig oedd
tua un rhan o dair o eiliad.
Ond o ran targedu taflegryn teithio ar mach pump, arweiniodd at
gwall olrhain o dros 600 metr.
Byddai'n gamgymeriad angheuol ar gyfer y milwyr yn Dhahran.
>> THEODORE POSTOL: Beth ddigwyddodd yn Roedd Scud lansio ganfod yn gynnar
lloerennau rybudd.
Ac maent yn gwybod bod y Scud yn dod yn eu cyfeiriad cyffredinol.
Nad oeddent yn gwybod lle cafodd ei dod.
>> SIARADWR 1: Yr oedd yn awr i fyny at y radar elfen o'r system Patriot
amddiffyn Dhahran i leoli a chadw golwg ar y taflegryn gelyn dod i mewn.
>> JACK GANSSLE: Y radar yn smart iawn.
Byddai'n mewn gwirionedd yn olrhain y sefyllfa y Scud ac yna rhagweld lle mae'n
yn ôl pob tebyg y tro nesaf anfonodd y radar curiad allan.
A oedd yn galw yn y giât range.
>> THEODORE POSTOL: Yna, unwaith y bydd y Gwladgarwr penderfynu digon o amser wedi mynd heibio i fynd
gefn a gwirio y lleoliad nesaf ar gyfer y gwrthrych ganfod, mae'n mynd yn ôl.
Felly, pan fydd yn mynd yn ôl at y anghywir lle, wedyn yn gweld unrhyw wrthrych.
Ac mae'n penderfynu nad oedd unrhyw wrthrych, ei fod yn canfod ffug, a
gollwng y trac.
>> SIARADWR 1: diflannodd y Scud sy'n dod i mewn o'r sgrin radar, a
eiliadau yn ddiweddarach Condemniwyd i mewn i'r barics.
Lladd y Scud 28 a oedd yr un diwethaf tanio yn ystod y Rhyfel y Gwlff cyntaf.
Yn drasig, cyrhaeddodd y meddalwedd diweddaraf yn Dhahran y diwrnod canlynol.
Roedd y diffyg meddalwedd wedi cael ei bennu, cau un pennod yn y gythryblus
hanes y taflegryn Gwladgarwr.
>> Patriot mewn gwirionedd yn acronym ar gyfer olrhain Array fesul cam
Rhyng-gipio Of targed.
>> DAVID J Malan: pob hawl, felly mae sobri enghraifft, i fod yn sicr.
Ac yn ffodus, mae'r rhain lefel is Nid yw pryfed yn rhywbeth y byddwn yn
rhaid fel arfer i werthfawrogi, yn sicr nid gyda rhai o'n
cynharaf o raglenni.
Yn hytrach, mae'r rhan fwyaf o'r chwilod wnewch chi helpu Bydd cyfarfod yn rhesymegol o ran natur,
cystrawennol yn natur lle mae'r cod nid yn unig yn gweithio iawn.
A ydych yn gwybod ei fod yn eithaf cyflym.
>> Ond yn enwedig pan fyddwn yn cyrraedd y ddiwedd y semester, mae'n mynd i
dod yn fwy ac yn fwy o bosibilrwydd i wir yn meddwl yn galed am y cynllun
o'ch rhaglenni a sylfaenol cynrychiolaeth
yno, hefyd, o'r data.
Er enghraifft, byddwn yn cyflwyno MySQL, sy'n injan gronfa ddata poblogaidd
y gallwch eu defnyddio gyda gwefannau i storio data ar y pen-ôl.
A bydd rhaid i chi ddechrau i benderfynu ar ddiwedd y semester nid yn unig beth
mathau o ddata ar hyd y llinellau hyn i ddefnyddio ond yn union faint o ddarnau i'w defnyddio,
p'un a ydych am i storio dyddiadau â dyddiadau ac amseroedd fel adegau, a hefyd
pethau fel pa mor fawr ydych chi am i'r IDs unigryw i fod ar gyfer, dyweder, defnyddwyr
yn eich cronfa ddata.
>> Yn wir, os bydd rhai ohonoch wedi cael Facebook yn cyfrif am gryn amser,
a ydych yn gwybod sut i gael mynediad at eich ID Defnyddiwr -
sydd weithiau'n dangos i fyny yn eich URL proffil oni bai eich bod wedi dewis
ffugenw ar gyfer y URL, neu os oes gennych ddefnyddir Facebook Graff API, y
API ar gael i'r cyhoedd erbyn pryd rydych ofyn Facebook am ddata crai -
gallwch weld beth yw eich ID rhifol yn.
Ac mae rhai blynyddoedd yn ôl, Facebook hanfod gorfod newid o ddefnyddio
sy'n cyfateb i ints i ddefnyddio hir hir oherwydd dros amser wrth i ddefnyddwyr ddod
ac yn mynd ac yn creu nifer o gyfrifon a cyfrifon ffug, hyd yn oed yn hawdd iawn
yn gallu ddihysbyddu'r rhywbeth fel 4 biliwn gwerth posibl fel int.
>> Felly mae mwy ar y mathau hynny o faterion i lawr y ffordd, yn ogystal.
Mae pob hawl, fel a oedd yn castio.
Dyna oedd anfanyldeb.
Mae cwpl o gyhoeddiadau cyflym.
Felly adrannau gychwyn yn ffurfiol hyn yn dod Dydd Sul, Dydd Llun, dydd Mawrth.
Byddwch yn clywed drwy e-bost yn ddiweddarach yr wythnos hon fel eich adran aseiniad.
A wnewch chi helpu hefyd yma yn y pwynt sut i newid eich adran hon os yw eich
amserlen wedi newid neu wedi nawr eich lefel cysur bellach wedi newid.
Yn y cyfamser P-set un ac un haciwr yn oherwydd ddydd Iau gyda'r opsiwn i
ymestyn y dyddiad cau ar ôl y manylebau i ddydd Gwener
mewn ffordd nodweddiadol.
>> Sylweddoli bod chynnwys gyda'r broblem manylebau set cyfarwyddiadau ar
sut i ddefnyddio'r offer CS50, gwneud, yn ogystal â rhai CS50 offer penodol
fel arddull 50, a all ddarparu i chi gydag adborth ddynamig ar y
ansawdd eich steil cod a hefyd gwirio 50, a all eich rhoi
adborth deinamig o ran eich cywirdeb cod ar.
Maddau ein bod yn dal i smwddio allan ychydig kinks gyda siec 50.
Mae rhai o'ch cyd-ddisgyblion a oedd yn dechrau oddeutu 04:00 ar nos Wener pan
y fanyleb aeth i fyny wedi sylwi ers hynny ychydig o bugs yr ydym yn gweithio
drwy, ac ymddiheuriadau i unrhyw un sy'n wedi profi rhwystredigaeth gormodol.
Yw'r diffyg yn mwynglawdd.
Ond byddwn yn dilyn i fyny ar y CS50 trafod pan fydd yn cael ei ddatrys.
>> Felly gair ar y sgoriau eu hunain.
Felly, bydd yn cael wythnos neu ddwy cyn i chi dechrau i gael adborth ar setiau problem
oherwydd nad ydych eto cymrawd addysgu.
Ac hyd yn oed wedyn, byddwn yn dechrau i werthuso y broblem C yn gosod cyn i ni
fynd yn ôl a gwerthuso dechrau felly eich bod yn cael mwy perthnasol
adborth yn gyflymach.
Ond yn gyffredinol unol â'r maes llafur, CS50 setiau problem yn cael eu gwerthuso ar hyd y
yn dilyn pedair echel -
cwmpas, cywirdeb, dylunio, ac arddull.
>> Scope yn mynd i fod yn rhif nodweddiadol rhwng sero a phump y
cyfleu faint o'r eich darn a brathu i ffwrdd.
Fel arfer, yr ydych am i hyn fod yn bump oed.
Chi o leiaf wedi ceisio popeth.
Ac yn sylwi ei fod yn ffactor lluosol er mwyn i wneud dim ond rhan o'r
Nid problem a osodir yn y strategaeth orau.
>> Yn y cyfamser, yn fwy amlwg yn y pwysigrwydd cywirdeb -
yn unig yw eich rhaglen gywir gyda parchu at y fanyleb?
Mae hyn yn cael ei bwysoli yn fwriadol yn fwy drwm na'r ddwy echel arall gan
ffactor o dri oherwydd ein bod yn cydnabod sydd fel arfer eich bod yn mynd i dreulio
llawer mwy o amser yn rhedeg ar ôl i lawr rhai bugs, cael eich cod i'r gwaith, yna rydych
yn tolcio ac dewis enwau amrywiol priodol a
hoffi, sydd ar y pen arall o'r sbectrwm o arddull.
>> Nid yw hyn i ddweud nad arddull yn bwysig, a byddwn yn pregethu drosodd
amser mewn darlithoedd ac mewn adrannau.
Style yn cyfeirio at y estheteg eich cod.
Ydych chi wedi dewis yn dda-enw newidynnau bod yn fyr, ond braidd yn
disgrifiadol?
A yw eich cod cilfachog ag y byddwch wedi gweld yn darlith ac mewn modd cyson
gyda steil 50?
>> Yn olaf yn dylunio iawn yno yn y canol.
Dylunio yw'r un anoddach i roi bys ar oherwydd ei fod yn llawer mwy
oddrychol.
Ond efallai y mwyaf pwysig o y tair echel o ran addysgeg
gwerth dros amser ac y bydd hyn yn y cyd-addysgu yn gyfle i
rhoi adborth ansoddol.
Yn wir, yn CS50 hyd yn oed er bod gennym y fformiwlâu a'r sgoriau, ar ddiwedd
y dydd mae'r rhain yn fwriadol iawn bwcedi bach iawn - werthoedd pwynt
rhwng sero a thri a sero a phump.
Nid ydym yn ceisio tynnu llinellau bras iawn rhwng setiau problem neu rhwng
fyfyrwyr, ond yn hytrach canolbwyntio cymaint ag gallwn ar ansoddol, longhand
adborth, naill ai wedi'i deipio neu ar lafar gan eich cyd addysgu penodol,
byddwch yn dod i adnabod yn eithaf da.
>> Ond yn gyffredinol, y rhai yw'r pwysau y bydd yr amrywiol echelinau gael.
Yn y cyfamser, hefyd, mae'n werth cadw mewn meddwl na ddylech gymryd yn ganiataol bod
tri o bob pump yn 60% a felly'n methu fras.
Tri a olygir yn fwriadol i fod yn math o ganol y ffordd da.
Os ydych yn cael trioedd yn y ddechrau'r semester, mae hynny'n
yn wir olygu i fod yn dda lle i ddechrau.
Os ydych yn cael dau, ffeiriau, mae bendant rhywfaint o waith i dalu ychydig
mwy o sylw, er mwyn manteisio adrannau ac oriau swyddfa.
>> Os ydych yn cael pedwar a phump, mawr.
Ond mewn gwirionedd, rydym yn gobeithio gweld taflwybrau ymhlith myfyrwyr - iawn
personoli bob myfyriwr, ond yn dechrau y semester yma yn y math o
y ddau i'r tri amrediad ond yn dod i ben hyd yma yn y 4-5 range.
Dyna beth rydym yn chwilio amdano mewn gwirionedd.
Ac rydym yn cadw mewn cof y delta sy'n chi arddangos rhwng wythnos sero ac wythnos
12 pan oeddwn i'n gwneud graddau.
Nid yw o bwys i ni yn gwbl sut y ydych yn deg ar y dechrau os yw eich
llwybr yn wir i fyny ac yn gryf.
>> Gonestrwydd academaidd - felly gadewch i mi ei roi ar fy llais mwy difrifol am ychydig funud.
Felly y cwrs hwn y fraint o anfon mwy o fyfyrwyr nag unrhyw un arall
yn hanes y bwrdd ad, yr wyf yn credu.
Rydym wedi math o gyfrif a gollwyd ar hyn o pwynt o ba mor aml mae hyn yn digwydd.
Ac nid dyna'r fod myfyrwyr mewn 50 yn ddim mwy anonest na'u
cyd-ddisgyblion mewn mannau eraill.
Ond yn sylweddoli, hefyd, ein bod yn dda iawn wrth ganfod y math hwn o beth.
>> A dyna yw mantais y byddai dosbarth gwyddoniaeth gyfrifiadurol wedi yn ein bod yn
yn gallu ac rydym yn cymharu holl fyfyrwyr problem yn gosod pâr-ddoeth yn erbyn pob
eraill, nid yn unig yn y flwyddyn hon ond yr holl flynyddoedd blaenorol.
Mae gennym y gallu, fel myfyrwyr mewn y dosbarth, i Google a dod o hyd cod
ar safleoedd fel GitHub a fforymau trafod.
Mae yn gwbl atebion i CS50 yn p-yn gosod fel y bo'r angen o gwmpas yno.
Ond os gallwch ddod o hyd iddynt, gallwn i ddod o hyd.
Ac mae hyn i gyd yn awtomatig yn fawr iawn ac yn hawdd ac yn drist i ni ddod o hyd.
>> Ond yr wyf am bwysleisio, hefyd, fod y polisi gonestrwydd academaidd cwrs yn
golygu iawn lawer i fod yn fawr iawn y gwrthwyneb i yr ysbryd hwnnw.
Yn wir, eleni rydym wedi aralleirio pethau yn y maes llafur i fod yn hyn, dot
dot dot, gyda mwy o fanylion yn y maes llafur.
Ond y thema gyffredinol yn y cwrs mewn gwirionedd yw bod yn rhesymol.
Rydym yn cydnabod bod yna nifer sylweddol o faint o addysgeg
gwerth gydweithio, i ryw raddau, gyda chyd-ddisgyblion, lle rydych
dau neu dri i chi neu os ydych mwy o bobl yn sefyll ar fwrdd gwyn
whiteboarding, felly i siarad, eich syniadau -
ysgrifennu allan pseudocode mewn lluniau, diagramau hyn y dylai Mario fod os
byddech yn ysgrifennu yn gyntaf yn pseudocode.
Beth ddylai'r algorithm barus -
sut y dylai ymddwyn fesul broblem hon yn un?
>> Ac felly yn sylweddoli bod ymddygiad ein bod yn annog yn dda iawn
llawer ar hyd y llinellau hynny.
Ac yn y maes llafur, fe welwch criw cyfan o fwledi o dan
gategori rhesymol a yw'n rhesymol gategori sy'n helpu ein helpu
chi lapio eich meddwl o gwmpas lle rydym yn tynnu y llinell.
Ac yn gyffredinol, rheol gweddus o bawd yw os ydych yn cael trafferth i ddatrys
rhai bug a bod eich ffrind neu classmate yn eistedd nesaf i chi, mae'n cael ei
rhesymol i chi i ddangos iddo ef neu hi eich cod a dweud, hey, gallwch helpu
mi chyfrif i maes beth sy'n mynd o'i le yma?
>> Nid ydym yn arfer cofleidio yr ochr arall.
Nid yw'n ateb cywir ar gyfer eich ffrind neu classmate yma i ddweud, oh,
dim ond yn edrych ar fy ffigur a allan o hynny.
Mae hynny'n fath o afresymol.
Ond mae cael rhywun arall, yr ymennydd arall, pâr arall o lygaid yn edrych ar
eich sgrîn neu edrych ar eich cod a dweud, a ydych yn sicr eich bod am
i gael dolen yma?
Neu a ydych yn sicr eich bod am y colon yma?
Neu oh, y neges gwall yn golygu hyn.
Mae'r rhai yn rhesymol iawn ac annog ymddygiad.
>> Yr achosion yr oeddwn yn cyfeirio ato gynharach berwi i lawr i pan fydd y myfyrwyr yn
yn hwyr yn y nos yn gwneud barn gwael penderfyniadau a e-bostio eu cod i
rywun arall neu dim ond dweud, yma, mae yn Dropbox neu
Googling yn hwyr yn y nos.
Ac felly byddwn yn annog ac yn erfyn i chi, os oes rhai sy'n anochel i chi
adegau o straen, rydych yn taro i fyny erbyn y dyddiad cau, nid oes gennych hwyr
dydd gan ei fod eisoes ar y Dydd Gwener pwynt, e-bostiwch pennau y cwrs neu
fy hun yn uniongyrchol.
Dweud, gwrando, dwi yn fy torri pwynt yma.
Gadewch i ni gael sgwrs a chyfrif 'ii maes.
Droi at y we, neu nid yw rhai eraill ymddygiad rhesymol byth y
ateb, ac yn rhy llawer o'ch cyd-ddisgyblion bellach yma ar
campws oherwydd hynny benderfyniadau gwael.
Ond mae'n hawdd iawn i fynd heibio y llinell.
>> A dyma ychydig o llun i godi ei galon chi o'r Reddit fel bod nawr
bydd popeth yn iawn.
>> Felly ailadrodd cyflym, yna, o ble rydym yn gadael i ffwrdd.
Felly, yr wythnos diwethaf, yn cofio ein bod yn cyflwyno amodau, nad ydynt mewn Scratch
ond yn C y tro hwn.
Ac yr oedd rhywfaint o gystrawen newydd, ond n sylweddol na syniadau newydd fel y cyfryw.
Cawsom mynegiadau Boole y gallem neu ynghyd â dau fertigol
bariau neu a ynghyd â dau ampersands, gan ddweud bod y chwith
a rhaid i'r hawl fod yn wir ar gyfer hyn i weithredu.
Yna cawsom switsys, yr ydym yn edrych yn fyr, ond yr wyf yn cynnig yn wirioneddol
dim ond cystrawen gwahanol ar gyfer cyflawni'r un math o nod os ydych yn gwybod yn
ymlaen llaw beth yw eich achosion yn mynd i fod.
>> Rydym yn edrych ar dolenni.
A ar gyfer dolen yw'r efallai y mwyaf cyffredin, neu o leiaf yr un y mae pobl yn
fel arfer yn cyrraedd ar gyfer reddfol.
Hyd yn oed er ei fod yn edrych ychydig yn cryptig, byddwch yn gweld llawer, llawer o enghreifftiau o hyn
cyn bo hir, gan fod gennych eisoes yn hwyr yr wythnos diwethaf.
Er y gall dolenni yn yr un modd cyflawni'r un peth.
Ond os ydych am wneud unrhyw incrementation neu ddiweddaru
werthoedd newidyn, rhaid i chi gwneud yn fwy â llaw na'r
ar gyfer ddolen cyn caniatáu.
Ac yna mae y ddolen do-tra, sy'n caniatáu i ni wneud rhywbeth yn
leiaf unwaith tra bod rhywbeth arall yn wir.
Ac mae hyn yn arbennig o dda ar gyfer rhaglenni neu ar gyfer gemau lle rydych am
i annog y defnyddiwr am rywbeth o leiaf unwaith.
Ac yna os nad yw ef neu hi yn cydweithredu, efallai y byddwch am ei wneud
dro ar ôl tro.
>> Gyda newidynnau, yn y cyfamser, rydym wedi llinellau cod fel hyn, a allai
fod dwy linell.
Gallech datgan int a elwir yn cownter, hanner colon.
Neu gallwch ddatgan a ei ddiffinio, fel petai.
Rhowch gynnig gwerth ar yr un pryd.
>> Ac yna yn olaf, buom yn siarad am swyddogaethau.
Ac mae hyn yn enghraifft braf yn yr ystyr ei fod yn dangos
dau fath o swyddogaethau.
Mae un yn GetString (), sydd, unwaith eto, cael llinyn gan y defnyddiwr.
Ond GetString () yn fath o ddiddorol, cyn belled ag yr ydym wedi ei ddefnyddio,
oherwydd ein bod wedi defnyddio bob amser gyda rhywbeth ar yr ochr chwith o
arwydd cyfartal.
Hynny yw dweud bod GetString () yn dychwelyd gwerth.
Mae'n dychwelyd, wrth gwrs, yn llinyn.
Ac yna ar yr ochr chwith, rydym yn yn syml arbed y llinyn tu mewn i
amrywiol alwodd ei enw.
>> Mae hyn yn wahanol, mewn ffordd, gan printf oherwydd printf, o leiaf yn ein
defnydd yma, nid yw'n dychwelyd unrhyw beth.
Fel o'r neilltu, mae'n dychwelyd rhywbeth.
Rydym nid yn unig yn poeni beth ydyw.
Ond mae'n rhaid i beth a elwir yn sgîl-effaith.
A beth yw bod sgîl-effaith ym mhob ofn y byddwn wedi gweld hyd yn hyn?
Beth mae printf ei wneud?
Y bydd yn argraffu rhywbeth at y sgrin, arddangosfeydd testun neu rifau neu rywbeth
ar y sgrin.
Ac mae hynny'n eu hystyried dim ond yn sgîl-effaith oherwydd nad yw'n wir yn trosglwyddo
ei fod yn ôl i mi.
Nid yw'n ateb tu mewn blwch du y gallaf wedyn
cyrraedd i mewn ac yn mynnu.
Dim ond yn ei wneud ar ei ben ei hun, mae llawer fel Colton ei blygio i mewn i hyn
blwch du yr wythnos diwethaf, a rhywsut hudol yn tynnu ar y bwrdd
heb i mi cymryd rhan mewn gwirionedd.
Byddai hynny'n fod yn sgil effaith.
Ond os wyf mewn gwirionedd wedi cyrraedd yn ôl yn yma a dweud, oh, dyma y llinyn
gan y defnyddiwr, a fyddai'n fod yn werth dychwelyd.
>> A hyd yn hyn rydym wedi swyddogaethau a ddefnyddir yn unig y mae pobl eraill wedi ysgrifennu.
Ond gallwn ei wneud mewn gwirionedd hyn math o bethau ein hunain.
Felly, yr wyf i'n mynd i fynd i mewn i'r CS50 peiriant eto.
Gadewch i mi gau'r tab ein bod yn wedi agor funud yn ôl.
A gadewch i mi fynd yn ei flaen a creu ffeil newydd.
Ac yr wyf i'n mynd i fynd yn ei flaen a galw hyn yn un positive.c.
Felly, yr wyf am wneud rhywbeth gyda rhifau positif yma.
Felly, yr wyf i'n mynd i fynd yn ei flaen a gwneud int -
sori -
# Gynnwys.
Gadewch i ni beidio â gwneud yr un camgymeriad fel o'r blaen.
Int mhrif (gwag), ar agor cyrliog brês, ar gau cyrliog Brace.
>> Ac yn awr yr wyf yn awyddus i wneud y canlynol.
Rwyf am i ysgrifennu rhaglen sy'n yn mynnu bod y defnyddiwr yn rhoi
mi gyfanrif positif.
Felly, nid oes unrhyw swyddogaeth GetPositiveInt yn y llyfrgell CS50.
Dim ond GetInt ().
Ond mae hynny'n iawn oherwydd fy mod yn cael y lluniadau gallaf osod gyda y mae
ychydig mwy o gyfyngiad ar y gwerth.
Gallwn i wneud rhywbeth fel hyn.
>> Felly n int -
ac os ydych yn teipio hyd, dim ond yn sylweddoli Rydw i'n mynd i fynd yn ôl a
newid rhai pethau yn y man -
felly n int hafal GetInt ().
Ac mae hynny'n mynd i roi y tu mewn int o n.
A gadewch i mi fod yn fwy disgrifiadol.
Gadewch i mi ddweud rhywbeth fel yr wyf yn mynnu bod chi roi cyfanrif positif mi.
>> Mae pob hawl.
Felly dim ond ychydig o gyfarwyddiadau.
Ac yn awr beth allaf ei wneud?
Wel, yr wyf eisoes yn gwybod o fy syml amodau neu ganghennau, yn union fel yr wyf
cael yn Scratch, gallwn ddweud rhywbeth os ydych chi'n n yn llai na neu'n hafal i
sero, yna yr wyf yn awyddus i wneud rhywbeth hoffi, nid yw hynny'n gadarnhaol.
Ac yna y gallwn ei wneud -
Iawn, ond Fi 'n sylweddol am gael y int.
Er mwyn i mi fynd i fyny yma ac y gallwn i fath y copi hwn ac indent hyn.
Ac yna, OK.
Felly, os n yn llai na neu'n gyfartal i sero gwneud hyn.
>> Nawr, beth os bydd y defnyddiwr nid yw'n cydweithredu?
Wel, yna dwi'n mynd i benthyg hyn yma.
Ac yna yr wyf yn mynd i mewn yma ac yma ac yma.
Felly mae hyn yn amlwg nad yr ateb, dde?
Oherwydd does dim diwedd yn y golwg.
Os ydw i eisiau i fynnu bod y defnyddiwr yn rhoi mi cyfanrif positif, gallaf
mewn gwirionedd yn cael y int.
Yna gallaf wirio am y int.
Ond yna yr wyf am edrych arno eto ac gwirio eto ac yn gwirio eto.
Felly, yn amlwg, beth yw'r well adeiladu i gael ei ddefnyddio yma?
Mae pob hawl, felly rhyw fath o ddolen.
>> Felly, yr wyf i'n mynd i gael gwared o bron i gyd.
Ac yr wyf yn awyddus i gael y int o leiaf unwaith.
Felly, yr wyf i'n mynd i ddweud wneud -
a byddaf yn dod yn ôl at y tra mewn dim ond hyn o bryd -
nawr, gwneud beth?
Rydw i'n mynd i wneud GetInt int n cael ().
OK.
Felly dyna 'n bert da.
Ac yn awr pa mor aml y Yr wyf am wneud hyn?
>> Gadewch i mi roi y tu mewn printf y ddolen felly rwy'n galw dro ar ôl tro,
os oes angen fod.
A beth ydw i eisiau hyn tra bod cyflwr ei wneud?
Yr wyf am barhau i wneud hyn tra bod hyn yn wir?
Yeah.
N yn llai na neu'n hafal i sero.
Hynny eisoes, rydym wedi sylweddol glanhau y cod hwn i fyny.
Rydym wedi benthyg adeiladu syml iawn - y ddolen do-tra.
Rwyf wedi dwyn dim ond y llinellau pwysig o god yr wyf yn dechrau copïo a
gludo, nad oedd yn ddoeth.
Ac felly yn awr yr wyf i'n mynd i gludo mewn gwirionedd yn fan hyn a dim ond gwneud hyn unwaith.
>> Ac yn awr beth ydw i am ei wneud ar y diwedd y rhaglen?
'N annhymerus' jyst yn dweud rhywbeth syml hoffi, diolch am y - ac
'N annhymerus' wneud% i ar gyfer int -
slaes n, coma, ac yna plwg yn n, hanner colon.
>> Mae pob hawl.
Felly, gadewch i ni weld beth sy'n digwydd nawr pan fyddaf yn rhedeg y rhaglen hon.
Rydw i'n mynd i fynd yn ei flaen a yn gwneud yn gadarnhaol.
Damn.
Mae ychydig o wallau.
Felly, gadewch i mi sgrolio yn ôl i fyny i'r cyntaf.
Peidiwch â gweithio drwyddynt yn ôl.
Gweithio trwyddynt o'r brig i lawr rhag iddynt rhaeadru a dim ond
un peth fod yn anghywir.
Ymhlyg datganiad o GetInt swyddogaeth ().
Yeah.
Felly nid oedd yn ddigon.
Yr wyf yn fath o wneud yr un camgymeriad, ond ychydig yn wahanol y tro hwn.
Angen i mi nid yn unig yn cynnwys stdio.h ond hefyd cs50.h, sy'n cynnwys y
datganiadau hyn a elwir o gael int, a addysgu'r offer, neu yn dysgu
C pa GetInt () yn.
>> Felly, gadewch i mi resave.
Rydw i'n mynd i anwybyddu'r gwallau eraill oherwydd fy mod i'n mynd i obeithio eu bod yn
rhywsut yn gysylltiedig at y gwall Wyf yn sefydlog yn barod.
Felly, gadewch i mi fynd yn ei flaen ac yn ail-grynhoi â gwneud cadarnhaol, Enter.
Damn.
Tri gwallau, yn dal.
Gadewch i mi sgrolio i fyny i'r cyntaf.
N newidyn heb ei ddefnyddio.
Nid ydym wedi gweld hyn o'r blaen.
Ac mae hyn, hefyd, yn ychydig yn cryptig.
Mae hwn yn allbwn y compiler.
A beth y llinell tynnu sylw at yno - positive.c :9:13 -
yn ei ddweud, ei fod yn dweud ar-lein naw o positive.c, yn gymeriad 13eg,
13 colofn, rydych yn gwneud camgymeriad hwn.
>> Ac yn benodol, mae'n dweud n amrywiol nas defnyddiwyd mi.
Felly, gadewch i ni weld -
llinell naw.
Im 'yn arfer n yn yr ystyr y Rwy'n rhoi ei fod yn werth.
Ond yr hyn nad yw'r compiler ddim yn hoffi ei nad wyf ddim yn ymddangos yn ei ddefnyddio.
Ond arhoswch funud, yr wyf yn ei ddefnyddio.
Yn llinell 11, rwy'n ei ddefnyddio yma.
Ond os wyf yn sgroliwch i lawr ymhellach yn positive.c :11 -
hynny ar llinell 11, cymeriad 12, y compiler sy'n dweud wrthyf, defnyddio
heb ei ddatgan dynodwr n.
>> Golygu Felly heb ei ddatgan gennyf heb ei nodi fel
amrywiol gyda math data.
Ond arhoswch funud.
Fe wnes yn union, yn unol naw.
Felly rhywun yn ddryslyd iawn yma.
Mae'n naill ai fi neu compiler oherwydd yn unol naw, unwaith eto, rwy'n datgan
n int, ac rwy'n ei aseinio y dychwelyd gwerth GetInt ().
Yna, Im 'yn arfer bod n amrywio yn unol 11 a gwirio os yw ei gwerth yn llai
na neu'n hafal i sero.
Ond mae hyn yn ôl pob golwg yn wael ac wedi torri pham?
Ddweud eto?
>> Ah, rhaid i mi ddatgan n cyn mynd i mewn i'r ddolen.
Ond pam?
Yr wyf yn golygu, rydym yn unig yn cynnig ychydig yn ôl bod mae'n iawn i ddatgan newidynnau
i gyd ar un llinell, ac yna neilltuo rhywfaint o werth iddynt.
Mae amrywiol byd-eang - gadewch i ni ddod yn ôl i'r syniad mewn dim ond hyn o bryd.
Pam ydych chi eisiau i mi i roi y tu allan i'r ddolen?
Mae'n.
Yn union.
>> Felly, er, braidd yn groes i reddf, gadewch i mi crynhoi.
Pan fyddwch yn datgan n y tu mewn y bloc wneud yno -
yn benodol y tu mewn o braces cyrliog hynny -
bod n newidiol wedi hyn sydd a elwir yn gwmpas -
nad ydynt yn gysylltiedig â'n system sgorio yn y gwrs - ond mae ganddo gwmpas sy'n
gyfyngu i'r rhai braces cyrliog.
Mewn geiriau eraill, fel arfer os ydych yn datgan newidyn y tu mewn i set o
braces cyrliog, hynny amrywiol ond yn bodoli tu mewn rhai braces cyrliog.
Felly, gan y rhesymeg yn unig, er bod Rwyf wedi datgan n yn unol naw, mae'n
yn y bôn yn diflannu o gwmpas, yn diflannu o'r cof, fel petai,
erbyn i mi gyrraedd llinell 11.
Oherwydd bod llinell 11, yn anffodus, yn y tu allan i hynny braces cyrliog.
>> Felly, yr wyf yn anffodus ni all atgyweiria hon drwy fynd yn ôl at yr hyn yr wyf yn gwneud hynny o'r blaen.
Efallai y byddwch ar y dechrau gwneud hyn.
Ond beth ydych chi nawr ni gwneud gylchol?
Mae'n amlwg nad ydych yn ei gael y int gylchol.
Felly, gallwn adael y GetInt (), ac rydym yn Dylid gadael y GetInt () y tu mewn i'r
dolen oherwydd dyna beth yr ydym am ei plagio y defnyddiwr am dro ar ôl tro.
Ond mae'n ddigon i fynd hyd at linell, dyweder, chwech.
Int n, hanner colon.
Peidiwch â rhoi ei fod yn werth eto oherwydd Nid oes angen i chi eto.
>> Ond yn awr i lawr yma, hysbysiad - mae hyn yn Byddai yn gamgymeriad hawdd iawn.
Nid wyf am i gysgodi fy blaenorol datganiad o n.
Yr wyf am ddefnyddio'r n a mewn gwirionedd yn bodoli.
Ac felly yn awr yn llinell 10, I neilltuo n gwerth.
Ond yn unol chwech, yr wyf yn datgan n.
Ac felly allaf neu na alla i ddefnyddio yn llinell 12 awr?
Gallaf oherwydd rhwng pa cyrliog bresys yn n ddatgan nawr?
Yr un yma ar-lein pump.
I un yma ar-lein 14.
Felly os wyf yn awr yn chwyddo allan, arbed y ffeil hon, ewch yn ôl i mewn i ac yn rhedeg yn gadarnhaol, mae'n
llunio hyn o bryd.
Felly, mae hynny'n gynnydd eisoes.
Slaes. . / Chadarnhaol, Enter.
>> Yr wyf yn mynnu eich bod yn rhoi i mi yn gyfanrif positif.
Negyddol 1.
Negyddol 2.
Negyddol 3.
Zero.
Un.
A diolch am yr un beth nawr ei argraffu.
>> Gadewch i mi roi cynnig ar rywbeth arall, allan o chwilfrydedd.
Rwy'n cael gwybod i mewnbwn yn gyfanrif.
Ond beth os wyf yn hytrach deipio i mewn cig oen?
Felly, byddwch yn awr yn gweld gwahanol brydlon -
retry.
Ond unman yn fy cod wnes i ysgrifennu retry.
Felly, lle, yn ôl pob tebyg, mae hyn yn ceisio eto annog yn dod o, a fyddech chi'n ei ddweud?
Yeah, o GetInt () ei hun.
Felly, un o'r pethau staff CS50 yn ei wneud i chi, o leiaf yn yr ychydig cyntaf
wythnos, yn cael ei rydym wedi ysgrifennu rhai swm o gamgymeriadau gwirio er mwyn sicrhau, os
byddwch yn ffonio GetInt (), byddwch o leiaf yn fynd yn ôl yn int gan y defnyddiwr.
Ni fyddwch yn cael llinyn.
Ni fyddwch yn cael torgoch.
Ni fyddwch yn cael rhywbeth arall yn gyfan gwbl.
Byddwch yn cael int.
>> Yn awr, ni allai fod yn gadarnhaol.
Efallai na fydd yn negyddol.
Rydym yn gwneud unrhyw warant o gwmpas hynny.
Ond byddwn yn plagio y defnyddiwr i ailgeisio, ailgeisio, ailgeisio hyd nes ei fod mewn gwirionedd yn
cydweithio.
Yn yr un modd, os wyf yn gwneud 1.23, nad yw'n int.
Ond os wyf yn deipio i mewn, dyweder, 50, sy'n yn rhoi gwerth yr wyf am i mi.
>> Mae pob hawl.
Felly, nid drwg.
Unrhyw gwestiynau am yr hyn yr ydym wedi ei wneud yn unig?
Mae'r cludfwyd allweddol yw, i fod yn glir, nid gymaint y ddolen, yr ydym wedi gweld
cyn er bod gennym ddim wir ei ddefnyddio, ond y mater o gwmpas, lle
newidynnau yn unig y gellir dim ond yn cael ei ddefnyddio mewn rhywfaint o le penodol.
>> Mae pob hawl, gadewch i mi fynd i'r afael â'r awgrym a wnaethoch yn gynharach, sef y
newidyn byd-eang.
Fel o'r neilltu, mae'n troi allan bod un arall ateb i'r broblem hon, ond
fel arfer yn ateb anghywir neu ateb dylunio'n wael, yw
datgan eich newidyn fel yr hyn sy'n a elwir yn newidyn byd-eang.
Nawr Rwy'n fath o darfu ar fy diffiniad o gwmpas oherwydd bod
dim braces cyrliog ar frig a'r union waelod y ffeil.
Ond mae'r hyn y mae hynny'n yw bod bellach yn unol pedwar,
n yn newidyn byd-eang.
Ac fel yr awgryma'r enw, mae'n dim ond ar gael ym mhob man.
>> Mewn gwirionedd wedi Scratch hyn.
Os ydych wedi defnyddio amrywiol, efallai y byddwch yn cofio rhaid i chi ddewis os ydyw i
corlun hwn neu ar gyfer yr holl sprites.
Wel, yr holl sprites dim ond y gliriach ffordd o ddweud byd-eang.
Yeah?
Ah, cwestiwn da iawn.
>> Felly, dwyn i gof bod yn y fersiwn cyntaf o fy cod, pan oeddwn yn anghywir
n datgan ac a ddiffinnir yn llinell naw -
Rwy'n datgan ei fod fel newidyn a rhoddais ei fod yn werth gyda
y gweithredwr aseiniad -
roedd hyn yn ddau gwallau mi.
Un, y ffaith nad yw n cael ei ddefnyddio, a dau, hynny yn unol 11
nid yn unig ei ddatgan.
Felly, yr un cyntaf doeddwn i ddim gyfeiriad ar y pryd.
Nid yw'n gwbl camgymeriad i ddatgan yn amrywiol, ond nid yn ei ddefnyddio.
Ond un o'r pethau yr ydym wedi ei wneud yn y y CS50 peiriant, yn fwriadol,
addysgiadol, yn cael ei rydym wedi cranked i fyny 'r disgwyliadau'r compiler i wneud
yn siwr eich bod yn gwneud pethau nid yn unig yn gywir ond mewn gwirionedd yn gywir.
>> Oherwydd os ydych yn datgan newidyn fel n a byth yn ei ddefnyddio, neu ei ddefnyddio
yn gywir, yna beth y mae'n ei wneud yno?
Mae'n wir yn gwasanaethu unrhyw ddiben.
Ac mae'n hawdd iawn dros gyfnod o amser, os ydych yn peidiwch â ffurfweddu eich cyfrifiadur eich hun yn
y ffordd hon, i ychydig gael cod sy'n olion bach yma, olion yno.
Ac yna fisoedd yn ddiweddarach i chi edrych yn ôl a ydych chi fel, pam fod y llinell hon o
cod yno?
Ac os nad oes rheswm da, mae'n nid yw o fudd i chi neu eich cydweithwyr
i lawr y ffordd i gael i baglu drosto hynny.
>> Fel o'r neilltu, lle mae bod yn dod o?
Wel, dwyn i gof bod pob tro y byddwn yn llunio rhaglen, mae hyn oll yn bethau
cael ei argraffu.
Felly, byddwn yn dod yn ôl i hyn.
Ond unwaith eto, yn gwneud yn cyfleustodau sy'n awtomeiddio'r broses o lunio gan
rhedeg y casglwr gwirioneddol Gelwir clang.
Mae hyn yn beth, byddwn yn gweld yn y pen draw, mae gan ymwneud â debugging gyda arbennig
raglen o'r enw y dadfygiwr.
Mae hyn wedi ei wneud gyda wneud y gorau o'r cod - mwy am hynny yn y dyfodol.
Std = C99 -
mae hyn yn unig yn golygu defnyddio fersiwn 1999 C. C wedi bod o gwmpas hyd yn oed yn fwy na
hynny, ond maent yn gwneud rhai 'n glws newidiadau 10 mlynedd a mwy yn ôl.
>> A dyma y rhai perthnasol.
Yr ydym yn ei ddweud yn gwneud unrhyw beth sy'n fyddai o'r blaen wedi bod yn rhybudd
gwall atal y myfyriwr o lunio.
Ac mae'n golygu mur wneud hynny ar gyfer criw cyfan o bethau, nid
yn unig yn ymwneud â newidynnau.
Ac yna gadewch i mi sgrolio i diwedd y llinell.
Ac mae hyn, hefyd, byddwn ni yn y pen draw dod yn ôl i.
Mae hyn yn amlwg enw'r y ffeil rwy'n casglu.
Mae hyn yn cofio enw'r ffeil Rwy'n outputting fel enw
fy rhaglen runnable.
Mae hyn yn-lcs50 yn unig yn golygu defnyddio'r CS50 llyfrgell, ac unrhyw seroau a rhai sy'n
ysgrifennodd y staff a luniwyd yn gynharach eleni, integreiddio
i mewn i fy rhaglen.
>> Ac unrhyw un yn gwybod beth-lm yw?
Mae'n y llyfrgell mathemateg, sydd yn unig yno, hyd yn oed os ydych yn
beidio â gwneud unrhyw mathemateg.
'I' jyst yn awtomatig i ni gan eu gwneud.
>> Wel, gadewch i mi wneud un enghraifft arall yma drwy agor ffeil newydd.
A gadewch i mi arbed yr un yma fel string.c.
Mae'n ymddangos bod wrth i ni siarad am ddata mathau heddiw, mae hyd yn oed yn fwy
mynd ymlaen o dan y cwfl nag yr ydym wedi ei weld hyd yn hyn.
Felly, gadewch i mi yn gyflym yn gwneud rhaglen gyflym.
Cynnwys stdio.h.
A byddaf yn arbed hynny.
A ydych yn gwybod, gadewch i mi beidio â gwneud y un camgymeriad eto ac eto.
Cynnwys cs50.h.
A gadewch i mi fynd yn ei flaen yn awr ac yn gwneud y prif int (gwag).
>> Ac yn awr yr wyf yn syml eisiau gwneud rhaglen sy'n gwneud hyn - ddatgan llinyn
Gelwir s a chael llinyn gan y defnyddiwr.
A gadewch i mi wneud ychydig cyfarwyddiadau yma -
os gwelwch yn dda roi llinyn i mi - felly y defnyddiwr yn gwybod beth i'w wneud.
Ac yna i lawr yma is na hyn, Rwyf am wneud y canlynol -
ar gyfer int i yn cael sero.
Unwaith eto, gwyddonwyr cyfrifiadurol fel arfer dechrau cyfrif ar sero, ond gallem
gwneud y un os ydym yn wir eisiau.
Nawr rydw i'n mynd i wneud i yn llai na hyd cyfres o s.
Felly strlen -
S-T-R-L-E-N -
unwaith eto, mae'n gryno am ei fod yn haws i deipio, hyd yn oed er ei fod yn
ychydig yn cryptig.
>> Mae hynny'n yn swyddogaeth nad ydym wedi defnyddio o'r blaen, ond yn llythrennol yn gwneud hynny -
dychwelyd i mi nifer sy'n cynrychioli hyd y llinyn
bod y defnyddiwr deipio.
Os byddant yn teipio mewn helo, byddai'n dychwelyd pump oherwydd bod pum
llythyrau yn helo.
Yna, ar bob fersiwn o dolen hwn, fi a mwy.
Felly, unwaith eto, safon adeiladu hyd yn oed os nad ydych yn hollol rhy gyfforddus neu
gyfarwydd ag ef eto.
>> Ond yn awr ar bob fersiwn o'r ddolen hon, sylwi ar yr hyn yr wyf i'n mynd i wneud.
Dw i eisiau mynd ymlaen ac argraffu allan o gymeriad unigol -
felly% c slaes n ar linell newydd.
Ac yna, eich bod yn gwybod yr hyn yr wyf am ei wneud?
Beth bynnag yw'r gair yw bod mathau y defnyddiwr i mewn, fel helo, rwyf eisiau argraffu
H-E-L-L-O, un cymeriad bob llinell.
Mewn geiriau eraill, yr wyf am i gyrraedd y cymeriadau unigol mewn llinyn,
lle hyd yn hyn yn llinyn newydd ei bod dilyniant o gymeriadau.
>> Ac mae'n troi allan y gallaf ei wneud s, braced, i, braced agos, yn agos
parenthesis, hanner colon.
Ac yr wyf yn rhaid i ni wneud un peth arall.
Mae'n mewn ffeil o'r enw string.h bod strlen ei ddatgan.
Felly, os ydw i am ddefnyddio swyddogaeth honno, Angen i mi ddweud wrth y compiler,
disgwyl ei ddefnyddio.
Yn awr gad i mi fynd yn ei flaen ac yn gwneud y rhaglen o'r enw llinyn.
Dot, slaes, llinyn.
>> Rhowch linyn mi.
'N annhymerus' mynd yn ei flaen ac yn ei deipio.
Helo, yn yr holl gapiau, Enter.
Ac yn awr yr wyf wedi sylwi argraffu hwn un cymeriad ar ôl y llall.
Felly, y manylion newydd yma yw bod llinyn, ar ddiwedd y dydd, gall fod yn
mynediad trwy gyfrwng ei unigol gymeriadau drwy gyflwyno y sgwâr
nodiant braced.
A dyna oherwydd bod llinyn o dan y cwfl yn wir dilyniant o
cymeriadau.
Ond yr hyn sy'n daclus yn eu cylch yn mewn RAM eich cyfrifiadur -
Mac, PC, beth bynnag ydyw - maen nhw'n llythrennol gefn wrth gefn wrth gefn -
H-E-L-L-O -
ar lefel unigol, cyfagos bytes yn y cof.
>> Felly, os ydych am i gyrraedd y fath wythfed beit, sydd yn ddolen hon fyddai
braced sero, braced un, braced dau, braced tri, pedwar braced -
sy'n cael ei fynegeio sero hyd at bump -
a fydd yn argraffu H-E-L-L-O ar ei linell ei hun.
>> Yn awr, fel teaser, gadewch i mi yn dangos i chi y math o bethau y byddwch yn y pen draw yn
gallu deall, o leiaf gyda rhai yn edrych yn agos.
Ar gyfer un, yr hyn yr ydym gynnwys yn heddiw enghreifftiau, os hoffech, mewn gwirionedd
un o'r jailbreaks cyntaf ar gyfer y iPhone.
Jailbreaking yn golygu cracio y ffôn er mwyn i chi mewn gwirionedd yn ei ddefnyddio ar
cludydd neu gosod gwahanol eich meddalwedd eich hun.
A byddwch yn sylwi ar hyn yn edrych yn gwbl cryptig, yn fwyaf tebygol.
Ond yn edrych ar hyn.
Mae'r iPhone yn ôl pob golwg wedi cracio gyda a i ddolen, yn os bydd cyflwr, mae arall
cyflwr, criw o swyddogaethau nid ydym wedi gweld.
>> Ac eto, ni fyddwch yn ar olwg gyntaf yn ôl pob tebyg
deall sut mae hyn yn gweithio.
Ond mae popeth yr ydym yn fath o gymryd yn ganiataol yn ein bywydau modern
mewn gwirionedd yn tueddu i leihau hyd yn oed i rai o hanfodion hyn, rydym wedi bod yn
edrych arno.
Gadewch i mi fynd yn ei flaen ac yn agor un rhaglenni eraill, holloway.c.
Felly, mae hyn, hefyd, yn rhywbeth yr ydych Ni ddylai wir yn gwybod.
Hyd yn oed oes yr un o'r staff, neu gallwn yn ôl pob tebyg ffigur hyn allan drwy edrych ar
oherwydd hyn roedd côd rhywun a gyflwynwyd i'r hyn sydd
a elwir yn hanesyddol yn obfuscated C gystadleuaeth, lle rydych yn ysgrifennu rhaglen
sy'n crynhoi ac yn rhedeg, ond mor damn Gall cryptig unrhyw dynol yn deall yr hyn
mae'n mynd i wneud hyd nes y maent mewn gwirionedd yn rhedeg.
>> Felly, yn wir, os ydych yn edrych ar hyn cod, yr wyf yn gweld newid.
Rwy'n gweld prif.
Rwy'n gweld y cromfachau sgwâr awgrymu rhyw fath o arae.
A oes unrhyw un eisiau i ddyfalu beth y rhaglen hon mewn gwirionedd
wneud os byddaf yn rhedeg Holloway?
Ydw.
OK.
Da iawn.
Felly, nid dim ond y staff ac yr wyf yn ffigur pa bethau hyn yn ei wneud.
>> Ac yn awr yn olaf, gadewch i mi fynd yn ei flaen ac yn agor i fyny un rhaglen arall.
Mae hyn yn un -
unwaith eto, byddwn yn gwneud y cod ffynhonnell gael ar-lein - mae hyn yn un yn unig
math o 'n bert i edrych ar.
Mae pob maent yn gwneud yn cyrraedd y bar gofod gryn dipyn.
Ond mae hyn yn cod go iawn.
Felly, os ydych yn credu bod 'n bert, os ydym mewn gwirionedd yn rhedeg y wrth yr anogwr,
yn y pen draw byddwch yn gweld sut yr ydym yn Gallai gwneud pethau fel hyn.
>> Felly, byddwn yn gadael i chi ar y nodyn hwnnw ac yn gweld ar ddydd Mercher.
>> [CHWARAE CERDDORIAETH]
>> SIARADWR 2: Yn y CS50 nesaf, y TFS llwyfannu mutiny.
>> SIARADWR 3: Nid y mae.
Gael iddo!
>> [CHWARAE CERDDORIAETH]