>> [CHWARAE CERDDORIAETH]
DAVID J. Malan: pob hawl.
Mae hyn yn CS50, ac mae hyn yn ddechrau wythnos dau.
Felly gadewch i ni ddechrau heddiw gyda nam.
Mae nam, wrth gwrs, yn camgymeriad mewn rhaglen,
a byddwch yn cael iawn gyfarwydd â'r cysyniad hwn
os nad ydych erioed wedi eu rhaglennu o'r blaen. pset0 ac yn awr pset1.
Ond gadewch i ni ystyried rhywbeth ychydig o syml ar y dechrau.
Mae'r rhaglen yma fy mod taflu at ei gilydd o flaen llaw,
ac yr wyf yn honni y dylai hyn argraffu 10 sêr ar y sgrîn gan ddefnyddio printf,
ond mae'n debyg bygi mewn rhyw ffordd.
>> O gofio bod fanyleb sy'n dylai argraffu 10 sêr,
ond nid yw'n gwneud yn ôl pob golwg, yr hyn Byddai wneud cais yw y byg?
Yeah?
Felly, ei fod yn ffwrdd gan un camgymeriad, a beth ydych chi'n ei olygu wrth hynny?
OK.
Ardderchog.
Felly, rydym wedi penodi cychwyn gwerth sero ar gyfer i,
ac rydym wedi penodedig gwerth n o 10, ond rydym wedi defnyddio llai na neu'n hafal i.
A'r rheswm bod hyn yn dau cymeriadau ac nid dim ond un symbol,
fel mewn llyfr mathemateg, yw nad oes gennych
ffordd o fynegi'r un cymeriad cyfwerth.
>> Felly mae hynny'n golygu llai na, ond os byddwch yn dechrau cyfrif ar sero,
ond yr ydych yn cyfrif yr holl ffordd fyny drwy ac yn hafal i 10,
eich bod, wrth gwrs, yn mynd i cyfrif 11 o bethau i gyd.
Ac felly rydych yn mynd i argraffu 11 sêr.
Felly, yr hyn a allai fod yn ateb ar gyfer hyn?
Yeah?
>> Felly dim ond addasu'r llai na neu'n hafal i ddim ond yn llai na,
ac mae, yr wyf yn gwneud cais, efallai ateb arall, hefyd.
Beth allai arall yr ydych yn ei wneud?
Yeah?
>> Felly dechreuwch gyfartal i 1, a gadael y llai na neu'n hafal i.
A dweud y gwir byddwn yn hawlio hynny, ar gyfer dynol nodweddiadol,
mae hyn yn ôl pob tebyg yn fwy syml.
Dechreuwch gyfrif ar 1 a cyfrif i fyny hyd at 10.
Yn y bôn yn gwneud yr hyn yr ydych yn ei olygu.
>> Ond y gwirionedd yw yn rhaglennu, fel yr ydym wedi gweld,
gwyddonwyr cyfrifiadurol a rhaglenwyr yn gyffredinol yn dechrau cyfrif ar sero.
Ac felly mae hynny'n iawn unwaith chi ddod i arfer ag ef.
Bydd eich cyflwr yn gyffredinol fod yn rhywbeth fel llai na.
Felly syml, rhesymegol gwall y gallem bellach
trwsio ac ail-grynhoi yn y pen draw hyn a chael dim ond 10.
>> Wel beth am bug hyn yma?
Yma, unwaith eto, yr wyf yn honni fy mod wedi nod o argraffu 10 stars--
un i bob llinell y tro hwn, ond nid yw'n gwneud hynny.
Cyn i ni yn cynnig yr hyn yr ateb yw, beth mae hyn yn
argraffu weledol pe bawn yn llunio ac yn rhedeg y rhaglen hon yn eich barn chi?
Yeah?
>> Seren.
Felly holl sêr ar y un llinell yn hyn yr wyf yn ei glywed,
ac yna cymeriad llinell newydd.
Felly gadewch i ni roi cynnig ar hynny.
Felly, yn gwneud bygi-1, nodwch, ac yr wyf yn gweld y gorchymyn chlang
y buom yn siarad am y tro diwethaf.
./buggy-1, ac yn wir yr wyf yn gweld pob un o'r 10 sêr ar yr un llinell er fy mod yn hawlio
yn fy manyleb dim ond sylw ar ben y cod fy mod yn bwriadu gwneud un y
llinell.
Ond mae hyn yn edrych yn iawn.
>> Nawr llinell 15 mae'n edrych fel fy mod argraffu yn seren, ac yna llinell 16
mae'n edrych fel fy mod argraffu cymeriad llinell newydd,
ac maen nhw'n ddau mewnoli hynny Im 'tu mewn i'r ddolen glir.
Ni ddylai Felly, yr wyf yn ei wneud seren, newydd llinell, seren, llinell newydd, seren, llinell newydd?
Ie?
>> Yeah, yn wahanol i iaith fel Python, os ydych yn gyfarwydd,
Nid bant yn bwysig i'r cyfrifiadur.
Dim ond bwys i'r ddynol.
Felly llinellau tra yma rwyf wedi dyfeisio 15 a 16-- sy'n edrych yn hardd,
ond nid y cyfrifiadur yn ofal.
Mae'r cyfrifiadur yn gofalu am mewn gwirionedd yn cael braces cyrliog
o amgylch y llinellau hyn o god.
>> Fel ei bod yn clear-- union fel yn Scratch-- bod y rhai ddwy linell o god
Dylid ei weithredu.
Fel un o'r rhai melyn Scratch pos darnau dro ar ôl tro ar ôl tro.
>> Felly, yn awr os wyf yn ail-redeg y program-- ./buggy-2-- EM.
Mae gen i gwall nawr.
Beth wnes i yn anghofio ei wneud?
Yeah, felly doeddwn i ddim yn llunio ei.
Felly, yn gwneud bygi-2.
Dim ffeil o'r fath oherwydd nid i ddim yn mewn gwirionedd yn llunio yr ail fersiwn.
Felly nawr yn ddiddorol Nid yw heb ei ddatgan variable-- 2.
Rydym yn gwneud 1.
Gwneud bygi-1-- ./buggy-1-- ac yn awr pob un ohonynt ar yr un llinell.
>> Nawr mae eithriad i honiad hwn tybiedig i mi
eich bod angen i braces cyrliog hyn.
Pryd mae'n mewn gwirionedd OK-- os ydych wedi sylwi yn adran neu textbooks--
i hepgor y braces cyrliog?
Yeah?
>> Yn union.
Pan fydd dim ond un llinell o god sy'n eich
awyddus i fod yn gysylltiedig â'r dolen fel yn ein enghraifft gyntaf.
Mae'n gwbl gyfreithlon i hepgor y braces cyrliog
yn union fel y fath o gyfleustra oddi wrth y compiler i chi.
Yeah?
Gwestiwn da.
Byddai'n cael ei ystyried gwall steil?
Byddem yn promote-- fel yn CS50 canllaw arddull, mae'r URL y mae
yw mewn pset1-- sydd bob amser defnyddiwch y braces cyrliog.
Yn sicr, os ydych yn newydd i raglenni.
Y gwir amdani yw nad ydym ni'n mynd i wahardd chi
rhag gwneud cyfleusterau hyn.
Ond os ydych ond yn cael i mewn i'r swing o bethau,
gwbl jyst bob amser ddefnyddio'r cyrliog bresys nes i chi gael y hongian ohono.
Gwestiwn da.
>> Mae pob hawl.
Er mwyn i hynny fod yn bug.
Mae o leiaf yn rhywbeth eithaf syml.
Ac eto, efallai y byddwch yn credu bod hyn yn eithaf elfennol, dde?
Mae hyn yn fath o yr wythnos gyntaf o edrych ar yr iaith
fel, ewch i weld eich bygiau ynddo.
Ond y realiti mae'r rhain yn cynrychiolydd mewn gwirionedd
o'r rhai problemau eithaf brawychus a all godi yn y byd go iawn.
>> Felly, efallai y bydd rhai ohonoch yn cofio os byddwch yn dilyn y newyddion dechnoleg,
neu efallai hyd yn oed yn dal gwynt o hyn ym mis Chwefror
y flwyddyn ddiwethaf bod Apple oedd gan gwneud yn dipyn o gamgymeriad yn y ddau iOS,
y system weithredu ar eu ffonau, a hefyd
Mac OS, y system weithredu ar eu byrddau gwaith a gliniaduron.
A ydych yn gweld penawdau fel hyn.
Ac wedi hynny, Afal addo at atgyweiria nam yma,
ac yn gyflym iawn wnaeth atgyweiria 'yn iOS, ond yna yn y pen draw sefydlog yn Mac OS
hefyd.
>> Nawr yr un o'r penawdau hyn yn unig wir yn yn dangos beth oedd y broblem sylfaenol oedd,
ond y byg ei ostwng yn y pen draw at nam yn SSL, haen socedi diogel.
A stori fer hir, dyma'r meddalwedd
bod ein porwyr ac eraill meddalwedd a ddefnyddir i wneud beth?
>> Os wyf yn dweud bod SSL yn dan sylw, pryd bynnag y byddwch
ymweld â URL sy'n dechrau gyda HTTPS, beth yna efallai SSL fod yn gysylltiedig â?
Amgryptio.
Felly, byddwn yn siarad am hyn yn y dyddiau nesaf.
Encryption, y grefft o sgrialu gwybodaeth.
>> Ond stori fer hir, Afal amser yn ôl wedi gwneud camgymeriad
yn eu rhoi ar waith o SSL, mae'r meddalwedd y pen draw yn gweithredu
URLs fel HTTPS neu max cysylltiadau yno hefyd.
Canlyniad sef bod eich Gallai cysylltiadau a allai fod
cael eu rhyng-gipio.
A bod eich cysylltiadau yn Nid yw o reidrwydd yn amgryptio
os ydych wedi cael rhywfaint o dyn drwg yn y canol chi a'r wefan cyrchfan sy'n
yn gwybod sut i fanteisio ar hyn.
>> Nawr Apple bostio yn y pen draw a atgyweiria ar gyfer hyn yn olaf,
a'r disgrifiad o'u atgyweiria oedd hyn.
Methodd trafnidiaeth diogel i ddilysu y dilysrwydd y cysylltiad.
Aethpwyd i'r afael â'r mater drwy adfer camau dilysu goll.
>> Felly mae hwn yn esboniad tonnog iawn llaw am dim ond dweud ein bod yn sgriwio i fyny.
Mae llythrennol un llinell o god a oedd bygi
yn eu rhoi ar waith o SSL, ac os byddwch yn mynd ar-lein ac yn chwilio am hyn
gallwch ddod o hyd mewn gwirionedd y cod ffynhonnell wreiddiol.
Er enghraifft, mae hyn yn ergyd sgrîn o dim ond cyfran o'r ffeil eithaf mawr,
ond mae hyn yn swyddogaeth o'r enw pob golwg SSL gwirio cyfnewid allweddol gweinydd arwydd.
Ac mae'n cymryd criw o dadleuon a mewnbynnau.
Ac nid ydym yn mynd i ganolbwyntio gormod ar y minutia yno,
ond os ydych yn canolbwyntio ar y cod yn y tu mewn o'r topmost function-- gadewch i ni
chwyddo i mewn ar hynny.
Efallai eich bod yn amau ​​eisoes yr hyn y gallai'r gwall
fod hyd yn oed os nad oes gennych syniad yn y pen draw yr hyn yr ydych yn edrych ar.
Mae fath o anomaledd yma, sef yr hyn?
>> Yeah, nid wyf yn wir yn hoffi golwg dau goto yn methu.
Dweud y gwir, nid wyf yn wir yn gwybod beth Ewch I'r methu yn golygu, ond mae cael dau ohonynt
gefn wrth gefn.
Mae hynny'n unig fath o rhwbio i mi ddeallusol y ffordd anghywir,
ac yn wir os ydym yn chwyddo i mewn ar dim ond y llinellau hynny, mae hyn yn C.
>> Felly mae llawer o god Afalau ' ei hun a ysgrifennwyd yn C,
ac mae hyn yn ôl pob golwg yn wirioneddol equivalent--
beidio â bod bant 'n bert fersiwn, ond os ydych yn cydnabod y ffaith
nad oes unrhyw braces cyrliog, beth Apple oedd mewn gwirionedd ysgrifennodd cod sy'n edrych
fel hyn.
Felly dwi wedi chwyddo allan a Fi jyst sefydlog y bant yn yr ystyr
os nad oes braces cyrliog, bod ail goto methu dyna mewn melyn
yn mynd i weithredu waeth beth.
Dyw hi ddim yn gysylltiedig â mae'r os yw cyflwr uwch ei ben.
>> Felly hyd yn oed eto, nid os ydych yn gwneud yn eithaf deall yr hyn y gallai hyn o bosibl
yn ei wneud, yn gwybod bod pob un o'r rhain conditions-- pob un o'r llinellau hyn
yn gam pwysig iawn yn y broses o wirio
os yw eich data yn mewn gwirionedd amgryptio.
Felly sgipio un o'r rhain grisiau, nid yw'r syniad gorau.
>> Ond, oherwydd ein bod wedi hyn ail goto yn methu mewn melyn,
ac oherwydd ar ôl i ni fath o esthetaidd
symud i'r chwith lle mae'n rhesymegol yw ar hyn o bryd, beth
mae hyn yn ei olygu i'r llinell o god is na ail goto
methu fyddech chi'n feddwl?
Mae bob amser yn mynd i gael ei hepgor.
Felly gotos yn gwgu arno am resymau ni fyddwn mewn gwirionedd yn mynd i mewn,
ac yn wir yn CS50 nid ydym yn tueddu i addysgu y datganiad hwn goto,
ond gallwch chi feddwl am goto methu fel neidio ystyr go
i ryw ran arall o'r cod.
>> Mewn geiriau eraill neidio dros y llinell olaf yn gyfan gwbl,
ac felly mae'r canlyniad hwn yn dwp camgymeriad syml a oedd yn unig
o ganlyniad, mae'n debyg bydd rhywun copïo a gludo un rhy
sawl gwaith oedd bod y cyfan diogelwch iOS a Mac OS
yn agored i rhyng-gipio gan guys ddrwg ers peth amser.
Tan Apple yn olaf sefydlog hyn.
>> Nawr, os yw rhai ohonoch yn mewn gwirionedd yn rhedeg hen fersiynau o iOS neu Mac OS,
gallwch fynd i gotofail.com sy'n yn wefan sy'n rhywun a sefydlwyd
i benderfynu yn y bôn programmatically
os yw eich cyfrifiadur yn dal i fod yn agored i niwed.
Ac yn dweud y gwir, os ydyw, mae'n debyg yn syniad da
i ddiweddaru eich ffôn neu eich Mac ar y pwynt hwn.
Ond mae yna, dim ond brawf o pa mor gwerthfawrogiad o lefel is hyn
manylion ac yn deg gall syniadau syml iawn
cyfieithu i mewn i benderfyniadau a phroblemau sy'n
affected-- yn achos-- hwn miliynau o bobl.
>> Nawr gair ar weinyddu.
Bydd yr adran hon yn dechrau Dydd Sul nesaf.
Byddwch yn derbyn e-bost gan yr penwythnos am adran, a bryd hynny
y broses Ail-naddu yn dechrau os ydych wedi
sylweddoli gennych bellach rhai gwrthdaro newydd.
Felly, mae hyn yn digwydd bob blwyddyn, ac yr ydym Bydd lle yn y dyddiau i ddod.
>> Swyddfa hours-- gwneud cadw llygad ar yr atodlen hon yma.
Newidiadau ychydig bach yr wythnos hon, yn enwedig yr amser dechrau
ac mae'r lleoliad, felly peidiwch ymgynghori hynny cyn mynd i oriau swyddfa
unrhyw un o'r pedair noson nesaf.
Ac yn awr gair ar asesu, yn enwedig wrth i chi plymio i mewn i broblem
gosod un a thu hwnt.
>> Felly unol â'r fanyleb, mae'r rhain yn gyffredinol
yr echelinau ar hyd lle rydym yn gwerthuso eich gwaith.
Scope yn cyfeirio at yr hyn maint eich offer cod
nodweddion gofynnol gan ein manyleb.
Mewn geiriau eraill, faint o set darn wnaethoch chi yn cnoi i ffwrdd.
Wnaethoch chi traean ohono, hanner ohono, 100% ohono.
Hyd yn oed os nad yw'n gywir, faint oeddech chi'n ei geisio?
Felly, sy'n dal y lefel o ymdrech a'r swm
yr ydych did oddi ar y problemau problem gosod yn.
>> Correctness-- yr un yma, i ba raddau, yw eich cod
gyson â'n manylebau ac yn rhydd o chwilod.
Felly, mae hyn yn gweithio yn gywir?
Os byddwn yn rhoi rhywfaint o gyfraniad, a yw'n rhoi'r cynnyrch yr ydym yn disgwyl inni?
Design-- nawr mae hyn yw'r cyntaf o yn enwedig y rhai ansoddol,
neu y rhai sy'n gofyn am farn pobl.
Ac yn wir, dyma pam mae gennym staff cynifer o cymrodyr addysgu a chwrs
cynorthwywyr.
I ba raddau y mae eich cod wedi'i ysgrifennu'n dda?
>> Ac unwaith eto mae hyn yn iawn asesiad ansoddol
a fydd yn gweithio gyda chi ar ddau gyfeiriad yn ystod yr wythnosau i ddod.
Felly pan nad ydych yn cael dim ond sgoriau rhifol, ond hefyd
mae sgoriau ysgrifenedig, neu adborth teipio, neu adborth ysgrifenedig yn y geiriau Saesneg.
Dyna beth y byddwn yn ei ddefnyddio i yrru chi tuag at mewn gwirionedd yn ysgrifennu cod well.
Ac mewn darlith ac adran, byddwn yn gwneud i bwynt out-- mor aml ag y can--
beth sy'n gwneud rhaglen nid yn unig yn gywir ac yn swyddogaethol yn dda,
ond mae hefyd yn cynllunio'n dda.
Y mwyaf effeithiol y gallai fod, neu hyd yn oed y mwyaf prydferth y mae'n gallu bod.
>> Sy'n ein harwain i arddull.
Arddull yn y pen draw yw barn esthetig.
A wnaethoch ddewis da enwau ar gyfer eich newidynnau?
Ydych chi wedi mewnoli eich cod yn iawn?
A yw'n edrych yn dda, ac felly, a yw'n hawdd i fod dynol arall
i ddarllen eich priod o'i gywirdeb.
>> Nawr yn gyffredinol unol â'r maes llafur, rydym yn sgorio pethau hyn ar raddfa pum pwynt.
A gadewch i mi morthwyl gartref y pwynt bod tri yn wir dda.
Yn gyflym iawn yn ei wneud Folks dechrau ei wneud rhifyddeg.
Pan fyddant yn cael tair allan o pump ar gywirdeb ar gyfer rhai pset
ac maent yn meddwl damn, yr wyf yn mynd i 60% sydd yn ei hanfod yn D neu E.
>> Nid dyna'r ffordd yr ydym yn feddwl o'r rhifau hyn.
Mae tri yn wir dda, a'r hyn yr ydym gyffredinol yn disgwyl ar y dechrau
o'r term yw os ydych yn cael criw o three's-- efallai ychydig
o ffeiriau, un neu ddau o fours-- neu cwpl ddwy oed, un neu ddau o fours--
mae hynny'n lle da i ddechrau.
Ac ar yr amod ein bod yn gweld taflwybr ar i fyny dros gyfnod o amser,
eich bod mewn lle arbennig o dda.
>> Mae'r fformiwla a ddefnyddiwn i pwysau pethau yn ei hanfod
hyn yn unol â'r maes llafur, a dim ond yn golygu ein bod
yn rhoi mwy o bwysau i gywirdeb.
Oherwydd ei fod yn aml iawn cywirdeb sy'n cymryd yr amser mwyaf.
Ymddiriedolaeth i mi nawr.
Byddwch find-- o leiaf mewn un pset-- yr ydych
treulio 90% o'ch amser gweithio ar 10% o'r broblem.
>> Ac mae popeth yn fath o yn gweithio heblaw am un neu ddau o chwilod,
a'r rheini yw'r chwilod sy'n cadw chi i fyny yn hwyr yn y nos.
Mae'r rhai yw'r rhai sy'n fath o chi ddianc.
Ond ar ôl cysgu arno, neu fynychu oriau swyddfa
neu ofyn cwestiynau ar-lein, yn cael ei pan fyddwch yn cyrraedd y nod o 100%,
a dyna pam ein bod pwysau gywirdeb y mwyaf.
Dyluniwch ychydig yn llai, ac arddull ychydig yn llai na hynny.
Ond cadwch mewn steil mind-- efallai yw'r hawsaf
o'r rhain i frathu off yn unol â'r canllaw arddull.
>> Ac yn awr, yn fwy difrifol nodyn ar gonestrwydd academaidd.
CS50 Mae gan y gwahaniaeth anffodus o mai ni yw'r darparwr mwyaf o Fwrdd Ad
achosion bron bob blwyddyn yn hanesyddol.
Nid yw hyn oherwydd bod myfyrwyr yn twyllo mewn CS50 unrhyw fwy felly nag unrhyw ddosbarth arall,
ond oherwydd yn ôl natur y gwaith, y ffaith ei fod yn electronig,
y ffaith ein bod yn edrych ar ei gyfer, a mae'r ffaith ein bod gwyddonwyr cyfrifiadurol,
Gallaf ddweud ein bod yn anffodus yn dda iawn am ddod o hyd iddo'n.
>> Felly beth mae hyn yn ei olygu mewn termau real?
Felly mae'n, fesul y maes llafur, athroniaeth y cwrs yn
wir yn berwi i lawr i fod yn rhesymol.
Mae y llinell hon rhwng gwneud un yn gweithio ar eich pen eich hun
a chael ychydig o cymorth rhesymol gan ffrind,
ac yn llwyr yn gwneud y gwaith hwnnw ar gyfer eich ffrind, neu anfon ef neu hi eich cod
fel bod ef neu hi yn gallu yn syml gymryd neu ei fenthyg allan yn iawn.
A bod yn croesi'r llinell ein bod yn tynnu yn y dosbarth.
>> Gwelwch, y maes llafur yn y pen draw ar gyfer y llinellau
ein bod yn tynnu eu bod yn rhesymol ac ymddygiad afresymol,
ond mae'n wir yn berwi i lawr at y hanfod
o'ch gwaith sydd angen i fod yn eich pen eich hun yn y diwedd.
Nawr gyda dweud hynny, mae hewristig.
Oherwydd fel y byddech yn imagine-- o oriau swyddfa ac mae'r delweddau
ac mae'r fideos rydym wedi ddangosir CS50 felly far--
yn wir i fod i fod mor cydweithredol ac mor cydweithredol ac fel chymdeithasol
ag y bo modd.
Fel gydweithredol gan ei fod yn drylwyr.
>> Ond gyda dweud hyn, mae'r hewristig, fel y byddwch yn gweld yn y maes llafur,
yw bod pan fyddwch yn cael rhywfaint o broblem.
Mae gennych rhywfaint o nam yn eich cod sy'n chi Ni ellir datrys, mae'n rhesymol i chi
i ddangos eich cod i rywun arall.
Mae ffrind hyd yn oed yn y dosbarth, ffrind yn eistedd nesaf i chi ar oriau swyddfa,
neu aelod o'r staff.
Ond efallai na fyddant yn dangos eu cod i chi.
>> Mewn geiriau eraill, mae ateb i'ch question--
Angen arnaf help-- nid oh, dyma fy cod.
Cymerwch olwg ar hyn ac diddwytho oddi wrtho yr hyn yr ydych yn.
Yn awr, wrth gwrs, mae yna ffordd yn glir i gêm
system hon lle 'n annhymerus' yn dangos i chi fy cod cyn cael cwestiwn.
Rydych yn dangos i mi fy eich cod cyn cael cwestiwn.
Ond gweler y maes llafur eto ar gyfer y manylion mân ble y llinell hon yw.
>> Dim ond yn hyn beintio'r darlun a rhannu mor dryloyw ag y bo modd
lle yr ydym yn yn y blynyddoedd diwethaf, hyn yw nifer yr achosion Bwrdd Ad
bod CS50 wedi cael dros y saith mlynedd diwethaf.
Gyda 14 o achosion y gostyngiad mwyaf diweddar.
O ran y myfyrwyr sy'n cymryd rhan, yr oedd yn 20 rhai myfyrwyr od
gostyngiad hwn yn y gorffennol.
Cafwyd uchafbwynt o 33 fyfyrwyr rai blynyddoedd yn ôl.
Llawer ohonynt yn anffodus bellach yma ar y campws.
>> Mae myfyrwyr yn cymryd rhan fel canran o'r dosbarth yn hanesyddol wedi amrywio o 0%
i 5.3%, sydd ond i ddweud mae hwn yn flynyddol yn her.
A thuag at y diben hwnnw, yr hyn yr ydym am ei wneud yw cyfleu un
ein bod yn dd-- unig FYI-- cymharu yn mae tegwch i'r myfyrwyr hynny sy'n
yn dilyn y llinell yn unol â hynny.
Rydym yn gwneud cymharu pob gyfredol cyflwyniadau yn erbyn yr holl deithiau yn y gorffennol
o'r blynyddoedd lawer diwethaf.
>> Rydym yn gwybod hefyd sut i Google o gwmpas ac yn dod o hyd i ystorfeydd cod
, fforymau trafod ar-lein , safleoedd swyddi ar-lein ar-lein.
Os gall myfyriwr ddod o hyd iddo, gallwn yn sicr ei chael yn gymaint ag i ni yn anffodus yn ei wneud.
Felly, beth byddwch yn gweld yn y maes llafur fodd bynnag, yw cymal gofid hwn.
Gallaf yn sicr gwerthfawrogi, ac yr ydym i gyd wedi
staff wedi gwneud y cwrs fel hyn, neu mae hyn yn un ei hun dros amser,
yn sicr yn gwybod sut beth yw pryd bywyd yn cael yn y ffordd pan fydd gennych
hwyr ryw nos deadline-- nid yn unig yn y dosbarth hwn,
ond another-- pan fyddwch chi'n hollol flinedig, dan straen allan,
cael rif gormod o bethau eraill i'w gwneud.
Byddwch yn gwneud ar ryw adeg yn bywyd yn sicr yn ddrwg, efallai hwyr
penderfyniad nos.
>> Felly unol â'r maes llafur, mae cymal hwn,
o'r fath, os o fewn 72 awr o wneud rhai penderfyniadau gwael, ydych yn berchen i fyny ato
ac yn estyn allan i mi ac un o benaethiaid y cwrs yn
a chawn sgwrs.
Byddwn yn trin pethau yn fewnol yn y gobeithion
ohono yn dod yn fwy o foment addysgu neu wers bywyd,
ac nid rhywbeth gyda oblygiadau arbennig o llym
fel y byddech yn ei weld ar y siartiau hyn yma.
>> Felly dyna tôn ddifrifol iawn.
Gadewch i ni oedi am ond ychydig eiliad i dorri'r tensiwn.
>> [CHWARAE CERDDORIAETH]
>> DAVID J. Malan: pob hawl, felly sut yr oedd bod am segue?
I bynciau sylfaenol heddiw.
Y cyntaf o'r rhain yw tynnu dwr.
Arall sydd yn mynd i fod y cynrychiolaeth o ddata, sy'n dweud y gwir
yn ffordd wirioneddol sych o ddweud sut y gallwn mynd ati i ddatrys problemau a meddwl
am ddatrys problemau?
Felly, rydych wedi ei weld yn Scratch, ac nad ydych wedi gweld efallai eisoes mewn pset1 gyda C
eich bod nid yn unig yn gallu defnyddio swyddogaethau, fel printf,
bod pobl eraill yn mlynedd diwethaf ysgrifennodd ar eich cyfer.
Gallwch hefyd ysgrifennu eich swyddogaethau eu hunain.
>> A hyd yn oed er efallai na fydd gennych gwneud hyn yn C, ac yn dweud y gwir yn pset1
Nid oes gwir angen i chi ysgrifennu eich swyddogaeth ei hun oherwydd bod y problem--
tra efallai frawychus yn yn gyntaf glance-- byddwch yn gweld
Gall y pen draw yn cael ei datrys gyda nid yw pob bod llawer o linellau o god.
Ond gyda dweud hynny, o ran o ysgrifennu eich swyddogaeth eich hun,
sylweddoli bod C yn rhoi chi y gallu hwn.
>> Rydw i'n mynd i fynd i mewn cod ffynhonnell heddiw, sydd ar gael yn barod ar-lein,
ac yr wyf i'n mynd i fynd yn ei flaen ac yn agored sefydlu rhaglen o'r enw 0.C swyddogaeth,
ac mewn swyddogaeth sero byddwn yn gweld ychydig o bethau.
Yn llinellau cyntaf 18 drwy 23 yw fy mhrif swyddogaeth.
Ac yn awr ein bod yn dechrau darllen cod nad ydym yn ysgrifennu ar y hedfan,
ond yn lle hynny rwyf wedi ysgrifennu o flaen llaw neu os ydych yn broblem sy'n gosod
Gallai gael o cael ei ysgrifennu o flaen llaw.
Ffordd dda i ddechrau darllen cod rhywun arall
yn edrych am y prif swyddogaeth.
Chyfrif i maes lle y cofnod pwynt yw i redeg y rhaglen,
ac yna dilyn ei bod yn rhesymegol oddi yno.
>> Felly, mae'r rhaglen hon yn ôl pob golwg printiau eich enw ac yna colon.
Yna, rydym yn defnyddio GetString o'r llyfrgell CS50
i gael llinyn, neu air neu ymadrodd oddi wrth y defnyddiwr ar y bysellfwrdd.
Ac yna mae hyn yn beth PrintName Yma--.
>> Nawr nid PrintName yn swyddogaeth a ddaw gyda C.
Dyw hi ddim yn io.h. safonol
Dyw hi ddim yn CS50.h.
Mae'n braidd yn yr un ffeil.
Sylwch os byddaf yn sgroliwch i lawr linellau bit-- 25 i 27--
'i' jyst yn ffordd 'n bert o sylwadau eich cod gan ddefnyddio'r sêr a slaes.
Mae hwn yn aml-linell sylwadau, ac mae hyn yn unig
fy disgrifiad yn las o pa swyddogaeth hon yn ei wneud.
>> Oherwydd mewn llinellau 28 drwy 31, Rydw i wedi ysgrifennu swyddogaeth super syml
y mae ei enw i yw PrintName.
Mae'n cymryd sawl dadleuon fyddech chi'n ei ddweud?
Felly un argument-- oherwydd bod un ddadl a restrir y tu mewn i'r cromfachau.
Mae'r math o sy'n Llinynnol.
Pa un yw dweud PrintName Mae fel blwch du hwn
neu swyddogaeth sy'n cymryd fel mewnbwn llinyn.
>> Ac enw y Llinyn gyfleus fydd Enw.
Nid yw S, nid N, ond Enw.
Felly beth mae PrintName yn ei wneud?
Mae'n syml 'n glws.
Yn union fel un llinell o cod ar gyfer y printf, ond mae'n debyg ei fod
printiau allan "Helo," felly ac yn y blaen.
Lle mae'r felly ac yn y blaen yn dod o'r ddadl.
>> Yn awr nid yw hyn yn ddatblygiad newydd enfawr yma.
Really, yr wyf wedi cymryd rhaglen a allai wedi cael eu hysgrifennu gydag un llinell o god
drwy roi hyn i fyny yma, a newidiodd i rywbeth
sy'n cynnwys tua chwech neu saith neu hynny llinellau o god yr holl ffordd i lawr yma.
>> Ond y ymarfer o egwyddor a elwir yn tynnu.
Fath o crynhoi tu mewn i newydd swyddogaeth sydd wedi enw, a gwell
ac eto yr enw hwnnw yn llythrennol dweud beth mae'n ei wneud.
Yr wyf yn golygu printf-- nid yw hynny'n arbennig o ddisgrifiadol.
Os wyf am greu darn pos, neu os byddaf yn
am greu swyddogaeth hynny printiau enw rhywun,
harddwch o wneud hyn yw fy mod yn gallu mewn gwirionedd yn
rhoi enw sy'n swyddogaeth sy'n disgrifio beth mae'n ei wneud.
>> Nawr, mae'n cymryd mewn mewnbwn sy'n Rwyf wedi galw enw fympwyol,
ond mae hynny hefyd yn rhyfeddol o ddisgrifiadol yn lle bod ychydig yn fwy
generig megis S. A ddi-rym, am y tro, yn unig yn golygu
nad yw'r swyddogaeth hon yn llaw fi'n ôl unrhyw beth.
Dyw hi ddim yn hoffi GetString sy'n llythrennol yn fy dwylo yn ôl llinyn
fel y gwnaethom gyda'r darnau o bapur gyda'ch cyd-ddisgyblion yr wythnos diwethaf,
ond yn hytrach 'i jyst yn cael effaith ochr.
Mae'n printiau rhywbeth i'r sgrin.
>> Felly, ar ddiwedd y dydd, os wyf yn yn gwneud swyddogaeth-0, ./function-0,
byddwn yn gweld ei fod yn gofyn am fy enw i.
Yr wyf deipio David, ac mae'n mathau allan fy enw.
Os byddaf yn ei wneud eto gyda Rob, mae'n mynd i ddweud "Helo, Rob."
Felly syniad syml, ond efallai allosod o hyn yn feddyliol
fod fel eich rhaglenni gael ychydig yn fwy cymhleth,
a ydych am ysgrifennu darn o cod a galwadau sy'n code-- Ysgogi'r
bod code-- gan rai disgrifiadol enwi fel PrintName,
C yn fforddio gallu hwn i ni.
>> Dyma enghraifft syml arall.
Er enghraifft, os wyf yn agor ffeil o heddiw o'r enw return.c,
sylwi ar yr hyn yr wyf wedi ei wneud yma.
Mae'r rhan fwyaf o'r hyn brif swyddogaeth yw printf.
Yr wyf yn gyntaf fympwyol ymgychwyn yn amrywiol o'r enw x i'r rhif 2.
Yna, yr wyf yn argraffu "x yn awr % Ff "pasio yn werth x.
Felly, Im 'jyst yn dweud yr hyn y mae.
>> Nawr Im 'jyst boldly hawlio gyda printf.
Yr wyf yn cubing y gwerth x, ac rwy'n gwneud hynny drwy ffonio swyddogaeth
Gelwir ciwb pasio yn x wrth i'r ddadl,
ac yna arbed y cynnyrch yn y newidyn ei hun, x.
Felly rwy'n clobbering werth x.
Dw i'n gor-redol y werth x gyda beth bynnag
ganlyniad i alw swyddogaeth ciwb mae hyn yn.
Ac yna Fi jyst argraffu rhai stwff blewog yma yn dweud beth wnes i.
>> Felly, beth wedyn yw ciwb?
Sylwi beth sydd yn sylfaenol gwahanol yma.
Rwyf wedi cael y swyddogaeth enw fel o'r blaen.
Rwyf wedi penodi enw ar gyfer dadl.
Y tro hwn fe'i gelwir n yn lle enw, ond gallwn ei alw unrhyw beth yr wyf eisiau.
Ond mae hyn yn wahanol.
Mae'r peth ar y chwith.
Yn flaenorol yr oedd pa allweddair?
Bechgyn.
Nawr ei fod yn amlwg yn int.
>> Felly beth sydd efallai yn cymryd i ffwrdd?
Tra Yn dynodi bod unedau gwag fath o nothingness, a dyna oedd yr achos.
Dychwelodd PrintName dim byd.
Yr oedd yn rhywbeth, ond nid oedd yn llaw fi'n ôl
rhywbeth y gallwn i ei roi ar y ochr chwith arwydd cyfartal
fel yr wyf wedi ei wneud yma ar linell 22.
>> Felly os wyf yn dweud i mewn ar-lein 30, beth sy'n bod yn ôl pob tebyg gan awgrymu
am yr hyn y ciwb yn ei wneud i mi?
Yeah?
Mae'n dychwelyd yn gyfanrif.
Felly mae'n dwylo fi yn ôl, ar gyfer enghraifft, darn o bapur
y mae wedi ysgrifennu yr ateb.
2 torri'n giwbiau, neu 3 torri'n giwbiau, neu 4 cubed-- beth bynnag yr wyf yn pasio i mewn,
a sut yr oedd i mi weithredu hyn?
Wel, dim ond amserau n n n amserau yw sut y gallwn yn giwbiau gwerth.
Felly eto, super syml syniad, ond dangosol
yn awr sut y gallwn ysgrifennu swyddogaethau sydd mewn gwirionedd oedd ni yn ôl
gwerthoedd a allai fod o ddiddordeb.
>> Gadewch i ni edrych ar un enghraifft olaf Gelwir yma swyddogaeth un.
Yn yr enghraifft hon, bydd yn dechrau i gael mwy cymhellol.
Felly, mewn un swyddogaeth, mae hyn rhybudd program-- yn y pen draw
yn galw swyddogaeth o'r enw GetPositiveInt.
Nid GetPositiveInt yn swyddogaeth yn y llyfrgell CS50,
ond fe benderfynon rydym byddai'n hoffi i fodoli.
>> Felly, os ydym yn sgroliwch i lawr yn ddiweddarach yn y ffeil, sylwi sut yr wyf yn mynd ati i weithredu
cael int cadarnhaol, ac yr wyf yn dweud ei fod yn fwy cymhellol
gan fod hwn yn gweddus nifer o linellau o god.
Nid dim ond un gwirion rhaglen fawr o deganau.
Mae'n mewn gwirionedd yn ei got rhai gwirio gwall ac yn gwneud rhywbeth mwy defnyddiol.
>> Felly os nad ydych wedi gweld y walkthrough fideos yr ydym wedi eu hymgorffori yn pset1,
yn gwybod fod hyn yn fath o dolen yn C, debyg o ran ysbryd
at y math o bethau Scratch gallu ei wneud.
Ac yn gwneud yn dweud wneud hyn.
Argraffwch y dudalen hon allan.
Yna mynd yn ei flaen a chael n-- cael int ac yn ei storio mewn n,
a chadw gwneud hyn dro ar ôl tro ac eto, ar yr amod bod n yn llai nag un.
>> Felly n yn mynd i fod yn llai nag un dim ond os na fydd y dynol sy'n cydweithio.
Os yw ef neu hi yn teipio yn 0 neu -1 neu -50,
dolen hyn yn mynd i gadw gweithredu dro ar ôl tro.
Ac yn y pen draw yn sylwi, yr wyf yn yn syml yn dychwelyd y gwerth.
Felly nawr mae gennym swyddogaeth Byddai hynny wedi bod yn braf
pe byddai CS50 rhoi ar waith yng CS50.h a CS50.c ar eich rhan,
ond yma y gallwn yn awr weithredu hyn ein hunain.
>> Ond dau sylwadau ar rai manylion allweddol.
One-- pam yr wyf yn datgan int n, yn eich barn chi, ar-lein 29
hytrach na dim ond yn ei wneud hyn yma, sydd yn
fwy cyson â hyn a wnaethom yr wythnos diwethaf?
Yeah?
Mae meddwl da.
Felly os ydym yn ei roi yma, 'i' fel pe baem
cadw datgan ei dro ar ôl tro.
Mae hynny mewn ac o ei hun yn Nid yw yn broblem, fel y cyfryw,
oherwydd ein bod dim ond angen y gwerth unwaith ac yna
rydyn ni'n mynd i gael un newydd beth bynnag.
Ond mae meddwl da.
Yeah?
>> Close.
Felly, am fy mod i wedi datgan n ar llinell 29 y tu allan i'r ddolen,
ei fod yn hygyrch ledled swyddogaeth hon i gyd.
Nid y swyddogaethau eraill oherwydd n yn dal i fod y tu mewn o'r rhain cyrliog
bresys yma.
So-- siwr.
>> Yn union.
Felly, mae hyn yn oed yn fwy at y pwynt.
Os byddwn yn lle hynny datgan n i'r dde yma ar linell 32,
ei fod yn broblematig oherwydd dyfalu ble arall mae angen i mi gael gafael arno?
On line 34, ac mae'r rheol syml o bawd yw
y gallwch ond defnyddio newidyn tu mewn i'r braces cyrliog mwyaf diweddar
yr ydych yn datgan iddo.
>> Yn anffodus, llinell 34 yw un llinell yn rhy hwyr,
am fy mod i wedi cau yn barod y Brace cyrliog ar-lein 33
sy'n cyfateb i'r Brace cyrliog ar linell 30.
Ac felly mae hyn yn ffordd o ddweud bod hyn yn int newidyn yn cael ei sgopio,
fel petai, i ddim ond y tu mewn o braces cyrliog hynny.
Mae'n nid yn unig yn bodoli y tu allan ohonyn nhw.
>> Felly yn wir, os wyf yn gwneud hyn anghywir, gadewch i mi achub y cod
fel y mae'n ysgrifenedig yw-- anghywir.
Gadewch i mi fynd yn ei flaen ac yn gwneud swyddogaeth-1, a chamgymeriadau notice--.
Defnyddio dynodwr heb ei ddatgan n on line 35, sydd yn iawn yma.
Ac os ydym yn sgrolio i fyny ymhellach, un arall.
Defnyddio heb ei ddatgan dynodwr n ar linell 34.
>> Felly y compiler, chlang, yn sylwi ei fod yn dim ond
yn bodoli er bod amlwg ei fod yno ar eu golwg.
Felly ateb syml yn datgan ei fod yno.
>> Nawr, gadewch i mi sgrolio i ben y ffeil.
Beth sy'n neidio allan ar chi fel sef ychydig yn wahanol
o'r pethau yr ydym yn edrych ar yr wythnos diwethaf?
Nid yn unig y mae gen i enw, nid yn unig yn ei wneud Gennyf rai miniog yn cynnwys hyd top,
Mae gen i rywbeth rwy'n galw prototeip.
Nawr bod yn edrych yn ofnadwy yn debyg i'r hyn rydym yn jyst yn gweld funud yn ôl ar-lein 27.
>> Felly gadewch i ni gasglu o wahanol neges gwall pam yr wyf wedi gwneud hyn.
Gadewch i mi fynd yn ei flaen a dileu llinellau hyn yno.
Ac felly rydym yn gwybod dim am prototeip.
Ail-wneud y ffeil.
Gwneud swyddogaeth un.
Ac yn awr, damn, pedwar camgymeriadau.
Gadewch i sgrolio i fyny at yr un cyntaf.
>> Datganiad Ymhlyg o swyddogaeth cael int cadarnhaol yn annilys yn C99.
C99 yn unig yn golygu y 1999 fersiwn o'r iaith
C, sef yr hyn yr ydym yn wir yn defnyddio.
Felly beth mae hyn yn ei olygu?
Wel C-- ac yn fwy penodol C compilers-- rhaglenni eithaf fud.
Maent yn unig yn gwybod beth ydych chi wedi dweud wrthynt, a dyna
mewn gwirionedd yn thematig o wythnos diwethaf.
>> Y broblem yw, os byddaf yn mynd am weithredu enw i fyny fan hyn,
ac yr wyf yn galw swyddogaeth o'r enw GetPositiveInt yma ar llinell 20,
swyddogaeth honno nid yn dechnegol yn gwneud yn bodoli nes bod y compiler yn gweld llinell 27.
Yn anffodus, mae'r compiler yn gwneud pethau brig, i lawr, i'r chwith, i'r dde,
felly gan nad yw wedi gweld y gweithredu GetPositiveInt,
ond mae'n gweld chi'n ceisio ei ddefnyddio i fyny yma,
dim ond mae'n mynd i bail-- gweiddi ar chi gwall Message-- efallai
cryptig, ac nid mewn gwirionedd yn llunio y ffeil.
>> Felly, mae hyn a elwir yn prototeip i fyny yma, mae'n rhaid cyfaddef diswyddo.
Yn llythrennol, es i lawr yma ac yr wyf yn copïo a gludo hyn, ac yr wyf yn ei roi i fyny fan hyn.
Byddai Void yn fwy priodol, er mwyn i ni annhymerus llythrennol adysgrifia a bastio y tro hwn.
Yr wyf yn copïo a gludo yn llythrennol.
Really yn union fel fel briwsion bara.
>> Ychydig cliw i'r compiler.
Nid wyf yn gwybod beth y mae hyn yn ei wneud eto, ond rwy'n addo i chi
y bydd yn bodoli yn y pen draw.
A dyna pam mae hyn line-- mewn unol 16-- dod i ben gyda hanner colon.
Mae'n ddiangen drwy ddylunio.
Ie?
>> Os na wnaethoch chi gysylltu eich llyfrgell i the-- oh, cwestiwn da.
Sharp yn cynnwys gynhwysion ffeiliau header.
Angen be-- dylai bron bob amser ar y brig
o'r ffeil i gael similar-- gyfer union yr un rheswm, ie.
Oherwydd yn safonol io.h yn llythrennol yn llinell
fel hyn, ond gyda'r gair printf, a gyda'i dadleuon a'r math dychwelyd.
Ac felly drwy wneud miniog yn cynnwys i fyny yma, yr hyn yr ydych chi'n ei wneud yn llythrennol
yn copïo a gludo cynnwys rhywun arall yn ysgrifennu i fyny top.
A thrwy hynny cluing eich cod i mewn i'r ffaith bod y swyddogaethau hynny'n bodoli.
Yeah?
>> Yn hollol.
Felly yn glyfar ac yn gywir iawn Byddai ateb fyddai, eich bod yn gwybod beth?
Nid wyf yn gwybod beth yw prototeip yw, ond yr wyf yn gwybod
os wyf yn deall bod C yn unig fud ac yn ailystyried top i'r gwaelod.
Wel gadewch i ni roi hyn y mae am.
Gadewch i dorri y cod, bastio i fyny top, ac yn awr yn gwthio prif lawr isod.
Byddai hyn hefyd yn datrys y broblem.
>> Ond gallech yn hawdd iawn dod o hyd i sefyllfa lle mae angen A i alw B,
ac efallai B yn galw yn ôl i A. Mae'r yn rhywbeth a elwir yn recursion,
a byddwn yn dod yn ôl at hynny.
Ac mae'n bosibl na all neu fod yn dda peth, ond gallwch yn bendant
torri'r datrysiad hwn.
>> Ac ar ben hynny, yr wyf byddai hawlio arddull,
yn enwedig pan fydd eich rhaglenni yn dod yn hyn hir a hyn o hyd,
'i' jyst super gyfleus i roi prif ar y brig
am ei fod y peth mwyaf rhaglenwyr yn mynd i ofalu am.
Ac felly mae'n ychydig glanach, Gellir dadlau, i wneud hynny ar y ffordd
Yr wyf yn wreiddiol yn gwneud hynny gyda hyd yn oed prototeip
er ei fod yn edrych ychydig yn yn ddi-waith ar yr olwg gyntaf.
Yeah?
Mae'n ddrwg gennym, gallwch ddweud ei fod yn uwch?
>> Os byddwch yn newid lleoliadau'r gweithredu a'r prototeip?
Felly dyna gwestiwn da.
Os ydych yn ail-ddatgan hyn i lawr yma, gadewch i ni weld beth sy'n digwydd.
Felly os wyf yn rhoi i lawr yma yma, rydych yn ei ddweud.
O, sori.
Yn Uwch?
Hyd yn oed yn uwch.
O, cwestiwn da.
A fyddai'n annilysu'r swyddogaeth?
Rydych yn gwybod, ar ôl yr holl flynyddoedd hyn, yr wyf yn ydynt erioed wedi rhoi prototeip wedyn.
Felly gadewch i ni wneud yn gwneud swyddogaeth-1 ar ôl gwneud hynny.
>> [Fwmial]
DAVID J. Malan: O, aros.
Yr ydym yn dal i orfod rhoi popeth i fyny top.
Felly gadewch i ni wneud hyn i fyny yma, os ydw i'n deall eich cwestiwn yn gywir.
Rydw i'n rhoi popeth, gan gynnwys prototeip uwchben prif,
ond dw i'n rhoi'r prototeip o dan y gweithrediad.
>> Felly os wyf yn gwneud un, Im 'yn cael yn ôl mae n newidyn heb ei ddefnyddio error--.
O, yno.
Diolch yn fawr.
Gadewch i ni weld, rydym yn cael gwared ar hyn.
Dyna nam gwahanol, felly gadewch i ni anwybyddu hynny.
Gadewch i ni wir yn ail-wneud hyn yn gyflym.
>> Iawn, felly dadl data ddim ddefnyddir gan fformat Llinynnol
n-- oh, mae hynny oherwydd Newidiais at y rhain yma.
Mae pob hawl, rydym yn gwybod beth yw'r ateb yn mynd i'r canlynol-- gyd yn iawn, dyma ni.
Ah, diolch am y cadarnhaol.
Mae pob hawl, byddaf yn atgyweiria cod hwn after-- anwybyddwch hwn bug penodol
gan fod hyn was-- mae'n gweithio yw'r ateb.
>> Felly, nid yw'n trosysgrifo yr hyn yr ydych wedi ei wneud yn unig.
Yr wyf yn amau ​​y compiler ei ysgrifennu yn y fath fodd
ei fod yn anwybyddu eich prototeip oherwydd bod y corff, fel petai,
y swyddogaeth eisoes cael eu gweithredu i fyny uwch.
Byddai'n rhaid i mi ymgynghori mewn gwirionedd y llawlyfr y compiler
i ddeall os oes unrhyw un arall oblygiad, ond ar yr olwg gyntaf
dim ond drwy roi cynnig ac arbrofi, mae'n ymddangos bod unrhyw effaith.
Gwestiwn da.
>> Felly, gadewch i ni fwrw ymlaen yn awr, gan symud i ffwrdd o sgîl-effeithiau sy'n
yn swyddogaethau sy'n gwneud rhywbeth fel weledol ar y sgrin gyda printf,
ond nid ydynt yn dychwelyd gwerth.
A swyddogaethau sydd wedi dychwelyd gwerthoedd fel rydym jyst yn gweld ychydig o.
Rydym eisoes yn gweld syniad hwn o gwmpas, a byddwn yn gweld hyn dro ar ôl tro.
Ond am nawr, unwaith eto, defnyddio synnwyr y fawd
y gall newidyn yn cael ei defnyddio tu mewn i'r agorwyd yn fwyaf diweddar
a bresys cyrliog gau wrth i ni Gwelodd yn yr enghraifft benodol.
>> Ac fel y nodwyd gennych, mae ability--
fe allech chi ddatrys rhai o'r problemau hyn drwy roi newidyn yn fyd-eang
ar frig y ffeil.
Ond ym mhob achos bron byddem yn gwgu ar hynny,
ac yn wir nid yw hyd yn oed yn mynd i mewn i'r ateb am y tro.
Felly, am y tro, mae'r prydau parod yw bod newidynnau yn cael syniad hwn o gwmpas.
>> Ond yn awr gadewch i ni edrych ar un arall ffordd sych o edrych mewn gwirionedd
ar ryw 'n bert diddorol Manylion gweithredu.
Sut y gallem gynrychioli gwybodaeth.
Ac rydym eisoes yn edrych ar hyn yn ystod wythnos gyntaf y dosbarth.
Gan edrych ar binaries, ac atgoffa ein hunain o'r degol.
>> Ond yn galw i gof o wythnos diwethaf fod C wedi gwahanol fathau o ddata a sypiau mwy,
ond y rhai mwyaf defnyddiol am y tro, a allai fod y rhain.
Mae torgoch, neu gymeriad, sy'n digwydd i fod yn un beit, neu wyth cyfanswm ddarnau.
A dyna i ddweud bod y maint o torgoch Dim ond un beit.
Mae beit yw wyth did, felly mae hyn yn golygu bod gallwn gynrychioli faint o gymeriadau.
Faint o lythyrau neu symbolau ar y bysellfwrdd
os oes gennym un beit neu wyth o ddarnau.
Meddyliwch yn ôl i wythnos sero.
Os oes gennych wyth did, faint o gyfanswm y gwerthoedd
allwch chi gynrychioli gyda patrymau o sero a rhai?
One-- fwy na hynny.
Felly chyfanswm 256 os ydych yn dechrau cyfrif o sero.
Felly os oes gennych wyth bits-- felly os ydym yn Roedd gan ein bylbiau deuaidd i fyny yma eto,
gallem droi bylbiau golau rheiny ar ac oddi wrth unrhyw un o 256 o batrymau unigryw.
>> Yn awr mae hyn yn ychydig yn broblemus.
Nid yn gymaint ar gyfer Saesneg a ieithoedd rhamant, ond yn sicr
pan fyddwch yn cyflwyno, am enghraifft, ieithoedd Asiaidd, a oedd yn
cael llawer mwy o symbolau nag tebyg 26 llythrennau'r wyddor.
Efallai y byddwn angen mewn gwirionedd mwy nag un beit.
A diolch byth yn blynyddoedd diwethaf mae cymdeithas
safonau eraill a fabwysiadwyd sy'n defnyddio mwy nag un beit bob cyhuddiad.
>> Ond am nawr yn C, 'r ball Dim ond un beit neu wyth o ddarnau.
Cyfanrif, yn y cyfamser, mae pedwar bytes, a elwir hefyd 32 o ddarnau.
Sy'n golygu beth yw'r mwyaf posibl nifer y gall ydym yn eu cynrychioli gyda int
yn ôl pob golwg?
Gyda biliwn.
Felly mae'n i bedwar biliwn o rhoi neu gymryd.
2 i'r pŵer 32th, os ydym cymryd yn ganiataol na rhifau negyddol
a dim ond defnyddio pob cadarnhaol rhifau, 'i' i bedwar biliwn o
rhoi neu gymryd posibiliadau.
Mae arnofio, yn y cyfamser, yn fath gwahanol o'r math data yn C. Mae'n dal i fod yn rif,
ond mae'n nifer go iawn.
Rhywbeth gyda phwynt degol.
Ac mae'n ymddangos bod C hefyd yn defnyddio pedwar bytes
i gynrychioli gwerthoedd pwynt arnawf.
>> Yn anffodus faint o fel y bo'r angen Gwerthoedd pwynt sydd yn y byd?
Faint o rifau real sydd yna?
Mae 'an ddiddiwedd rhif, ac o ran hynny
mae nifer anfeidrol o gyfanrifau.
Felly rydym yn barod fath o cloddio ein hunain twll yma.
Lle mae'n debyg yn computers-- ar rhaglenni lleiaf a ysgrifennwyd yn C ar them--
dim ond cyfrif fel uchel ag i bedwar biliwn o rhoi neu gymryd,
ac fel y bo'r angen gwerthoedd phwynt dim ond yn ôl pob golwg
cael rhywfaint o swm cyfyngedig o gywirdeb.
Dim ond cymaint o digidau ar ôl eu pwynt degol.
>> Oherwydd, wrth gwrs, os dim ond 32 darnau sydd gennych,
Nid wyf yn gwybod sut yr ydym yn mynd i fynd am cynrychioli numbers-- go iawn yn ôl pob tebyg
gyda gwahanol fathau o batrymau.
Ond mae sicr yn gyfyngedig nifer o batrymau o'r fath,
felly yma, hefyd, mae hyn yn broblem.
>> Nawr gallwn osgoi'r broblem ychydig.
Os nad ydych yn defnyddio fflôt, gallech ddefnyddio dwbl
yn C, sy'n rhoi wyth bytes, i chi pa yw patrymau ffordd fwy posibl o sero
a rhai.
Ond mae'n dal i fod yn gyfyngedig, sy'n mynd i fod yn broblem os byddwch yn ysgrifennu meddalwedd
gyfer graffeg neu ar gyfer ffansi fformiwlâu mathemategol.
Felly, efallai y byddwch mewn gwirionedd yn eisiau i gyfrif i fyny yn fwy na hynny.
A hir long-- wirion named-- mae hefyd yn wyth bytes, neu 64 ddarnau,
ac mae hyn yn ddwywaith yn hirach yn int, a 'i' ar gyfer gwerth cyfanrif hir.
>> Fact-- Hwyl os yw int yw pedwar bytes, pa mor hir yn hir yn C fel arfer?
Hefyd pedwar bytes, ond mae maith maith yn wyth bytes,
ac mae hyn yn am resymau hanesyddol.
>> Ond mae'r bwyd parod bellach yn unig yw data sydd wedi
i gael eu cynrychioli mewn computer-- dyna dyfais corfforol gyda thrydan,
ei fod yn gyrru ar y cyfan seroau a ones-- rheiny
gyda symiau cyfyngedig o gywirdeb.
Felly beth yw'r broblem, yna?
>> Wel yna broblem o gorlif cyfanrif.
Nid dim ond yn C, ond yn cyfrifiaduron yn gyffredinol.
Er enghraifft, os bydd hyn yn yn beit werth bit--
felly os yw hyn yn wyth bit-- gyd ohonynt yn y rhif un.
Pa rif yw hwn cynrychioli os ydym yn tybio
'i' i gyd gwerthoedd cadarnhaol yn deuaidd?
>> 255, ac nid yw'n 256, oherwydd sero yw'r nifer isaf.
Felly, 255 yw'r uchaf un, ond y broblem
yn debyg yr oeddwn am ei cynyddiad newidyn hwn sy'n
yn defnyddio cyfanswm o wyth did os ydw i am gynyddiad iddo.
>> Wel cyn gynted ag yr wyf yn ychwanegu un i bob un o'r rhai hyn,
efallai y gallwch ddychmygu visually-- unig fel cario'r un yn defnyddio decimals--
rhywbeth sy'n mynd i lifo i'r chwith.
Ac yn wir, os byddaf yn ychwanegu y nifer un i hyn, beth sy'n digwydd mewn deuaidd
yw ei fod yn gorlifo yn ôl i sero.
>> Felly, os nad ydych yn unig yn use-- yn int, ond un beit unigol i gyfrif cyfanrifau
mewn rhaglen, trwy default-- cyn gynted ag y i chi ddod i 250, 251, 252, 253, 254,
255-- 0 dod ar ôl 255, sydd yn ôl pob tebyg nid yr hyn
defnyddiwr yn mynd i ddisgwyl.
>> Nawr fel y bo'r angen yn y cyfamser wrth mhwynt byd, byddwch hefyd yn cael problem debyg.
Nid yn gymaint â'r number-- mwyaf er bod hynny'n dal i fod yn broblem.
Ond gyda faint o gywirdeb y gallwch gynrychioli.
Felly, gadewch i ni edrych ar yr enghraifft yma hefyd gan code-- ffynhonnell heddiw
arnofio-0.c.
>> Ac yn sylwi ei fod yn super rhaglen syml sy'n
Dylai pob golwg argraffu'r pa werth?
Beth ydych chi'n Wager hyn yn mynd i argraffu er bod yna ychydig o gystrawennau newydd
yma?
Felly gobeithio 0.1.
Felly mae'r hyn sy'n cyfateb i un rhan o ddeg oherwydd fy mod i'n gwneud 1 rhannu â 10.
Im 'yn storio yr ateb mewn newidyn o'r enw f.
Dyna newidyn yw o'r math arnofio, sy'n yn keyword Fi jyst arfaethedig yn bodoli.
>> Nid ydym wedi gweld hyn o'r blaen, ond mae hwn yn fath o ffordd daclus mewn printf
i nodi faint o digidau chi eisiau gweld ar ôl pwynt degol.
Felly nodiant hwn yn unig yn golygu hynny dyma dalfan.
Mae ar gyfer pwynt arnawf gwerth, a oh, gyda llaw,
dangos 'i ag y pwynt degol gyda un rhif ar ôl y pwynt degol.
Felly dyna y nifer o ddigidau arwyddocaol,
fel petai, y gallech chi ei eisiau.
>> Felly, gadewch i mi fynd yn ei flaen ac yn gwneud gwneud arnofio-0, ./float-0,
ac i bob golwg 1 wedi'i rannu â 10 yw 0.0.
Nawr, pam?
>> Wel unwaith eto, mae'r cyfrifiadur yn cymryd llythrennol mi, ac yr wyf wedi ysgrifennu 1
ac yr wyf yn 10 ysgrifenedig, ac yn cymryd dyfalu beth yw'r math data tybiedig ar gyfer dau y rhai
gwerthoedd?
Mae int, 'i' dechnegol rhywbeth ychydig yn wahanol.
Mae'n nodweddiadol o hir, ond mae'n yn y pen draw yn werth annatod.
Nid yw gwerth pwynt arnawf.
>> Pa un yw dweud bod os yw hyn yn yn int ac mae hwn yn int,
y broblem yw bod y cyfrifiadur Nid oes gan y gallu
i hyd yn oed yn storio y pwynt degol.
Felly, pan fyddwch yn gwneud 1 wedi'i rannu erbyn 10 ddefnyddio cyfanrifau
ar gyfer y rhifiadur a'r enwadur, dylai'r ateb fod yn 0.1.
Ond mae'r computer-- oherwydd hynny yn integers--
nid yw'n gwybod beth i'w wneud gyda'r 0.1.
>> Felly beth sy'n ei wneud yn glir?
'I' jyst daflu i ffwrdd, a beth rwy'n ei weld yn y pen draw
yw 0.0 yn unig oherwydd fy mod yn mynnu fod printf ddangos i mi un pwynt degol.
Ond y broblem yw, os ydych yn rhannu cyfanrif gan cyfanrif,
byddwch yn get-- trwy ddiffiniad o C-- yn gyfanrif.
Ac nid yw'n mynd i wneud rhywbeth neis ac yn gyfleus
fel rownd i fyny at y agosaf un i fyny neu i lawr.
Mae'n mynd i gwtogi'r amser popeth ar ôl y degol.
>> Felly dim ond yn reddfol, beth sydd yn ôl pob tebyg yn atgyweiria?
Beth yw'r atgyweiria symlaf yma?
Yeah?
Yn union.
Pam nad ydym yn unig yn trin y rhain fel fel y bo'r angen gwerthoedd pwynt yn effeithiol
eu troi i mewn i fflotiau neu dyblau.
Ac yn awr os wyf yn gwneud fflotiau-0, neu os byddaf yn llunio fflotiau-1,
sydd yn union yr un fath beth oedd yn newydd arfaethedig.
Ac yn awr yr wyf yn ei wneud fflotiau-0, yn awr yr wyf yn cael fy 0.1.
>> Yn awr mae hyn yn anhygoel.
Ond yn awr yr wyf i'n mynd i wneud rhywbeth ychydig yn wahanol.
Rwy'n chwilfrydig i weld beth sydd wir yn mynd ymlaen o dan y cwfl,
ac rwy'n mynd i argraffu'r dudalen hon allan i 28 lle degol.
Yr wyf am weld 'n sylweddol 0.1000-- yn infinite--
[Anghlywadwy] 27 sero ar ôl hynny 0.1.
>> Wel gadewch i ni weld os yw hynny'n yr hyn yr wyf yn wir ei gael.
Gwneud fflotiau-0 un ffeil.
./floats-0.
Gadewch i chwyddo i mewn ar yr ateb dramatig.
Mae hyn i gyd amser, rydych chi wedi bod yn meddwl 1 wedi'i rannu â 10 yw 10%, neu 0.1.
Dyw hi ddim yn.
O leiaf cyn belled ag y cyfrifiadur dan sylw.
>> Nawr why-- Iawn, mae hynny'n gyflawn gorwedd 1 wedi'i rannu â 10 yw 0.1.
Ond why-- nad yw hynny'n y cludfwyd heddiw.
Felly pam y mae'r cyfrifiadur yn meddwl, yn wahanol i bob un ohonom yn yr ystafell,
bod 1 wedi'i rannu â 10 yw mewn gwirionedd y gwerth crazy?
Beth yw'r cyfrifiadur yn ei wneud yn ôl pob golwg?
Beth sy'n bod?
>> Dyw hi ddim yn gorlifo, fel y cyfryw.
Gorlif yn nodweddiadol pan byddwch yn lapio o amgylch gwerth.
Mae'n rhifyn hwn o imprecision mewn gwerth pwynt arnawf
lle mai dim ond rhaid i chi 32 neu hyd yn oed 64 bit.
Ond os mae 'na ddiddiwedd nifer y numbers-- go iawn
rhifau gyda phwyntiau degol a rhifau thereafter-- sicr
nad ydych yn gallu cynrychioli pob un ohonynt.
Felly mae'r cyfrifiadur wedi rhoi i ni y gêm agosaf
i werth y gall ei gynrychioli defnyddio'r llawer o ddarnau i werth Fi 'n weithredol ei eisiau,
sydd yn 0.1.
>> Yn anffodus, os ydych yn dechrau gwneud mathemateg, neu os ydych
dechrau cynnwys y mathau hyn o fel y bo'r angen Gwerthoedd pwynt mewn programs-- pwysig
meddalwedd ariannol, unrhyw beth software-- milwrol
lle mae canfyddiad yw yn ôl pob tebyg yn eithaf pwysig.
A'ch bod yn dechrau ychwanegu rhifau fel hyn, a dechrau
rhedeg y feddalwedd gyda mewnbynnau wirioneddol fawr
neu am lawer o oriau neu lawer o ddyddiau neu lawer o flynyddoedd,
camgymeriadau hyn bach bach sicr yn gallu ychwanegu hyd dros gyfnod o amser.
>> Yn awr wrth fynd heibio, os ydych wedi erioed gweld Superman 3 neu Gofod Swyddfa
ac efallai y byddwch yn cofio sut mae rhai guys dwyn
llawer o arian oddi wrth eu cyfrifiadur trwy ddefnyddio gwerthoedd pwynt arnawf
ac adio ychydig gweddill, gobeithio y ffilm
bellach yn gwneud mwy o synnwyr.
Mae hyn yn yr hyn y maent yn cyfeirio ato yn y ffilm.
Mae'r ffaith bod y rhan fwyaf Ni fyddai cwmnïau yn edrych
ar ôl nifer penodol o'r lle degol,
ond dyna'r ffracsiynau o cents.
Felly, byddwch yn dechrau adio i fyny, byddwch yn dechrau i wneud llawer o arian
yn eich cyfrif banc.
Felly dyna Esboniodd Gofod Swyddfa.
>> Nawr yn anffodus tu hwnt Gofod Swyddfa, mae
rhai gyfreithlon poeni ac effeithiau o bwys
o'r mathau hyn o penderfyniadau dylunio sylfaenol,
ac yn wir un o'r rhesymau rydym yn defnyddio C yn y cwrs
yw er mwyn i chi wir yn cael y sail hon fyny dealltwriaeth o sut mae cyfrifiaduron yn gweithio,
sut mae meddalwedd yn gweithio, ac nid ydynt cymryd dim yn ganiataol.
>> Ac yn wir yn anffodus, hyd yn oed gyda bod dealltwriaeth sylfaenol,
rydym pobl yn gwneud camgymeriadau.
A hyn yr wyf yn meddwl y byddwn i'n rhannu yw y fideo wyth munud a gymerwyd yma
o bennod Marvels Modern, sef sioe addysgiadol ar sut mae pethau'n gweithio
hynny paent ddau lun o bryd yn ddefnydd amhriodol
a dealltwriaeth o Gwerthoedd pwynt arnawf
arwain at rai arwyddocaol ganlyniadau anffodus.
Gadewch i ni edrych.
[VIDEO Playback]
-Rydym Yn awr yn dychwelyd i "Peirianneg Trychinebau "ar Marvels Modern.
Cyfrifiaduron.
Rydym i gyd wedi dod i dderbyn y problemau yn aml yn rhwystredig sy'n
got gyda them-- bugs, firysau, a glitches-- meddalwedd ar gyfer brisiau bach
i dalu am y cyfleustra.
Ond mewn cyflymder uchel uwch-dechnoleg a ceisiadau milwrol a rhaglen ofod,
y broblem lleiaf gall cael ei chwyddo i mewn i drychineb.
>> Ar 4 Mehefin, 1996, gwyddonwyr a baratowyd i lansio di-griw Ariane 5 roced.
Roedd yn cario gwyddonol lloerennau a gynlluniwyd
i sefydlu sut yn union y mae'r Rhyngweithio Ddaear maes magnetig
gyda gwyntoedd solar.
Roedd y roced ei adeiladu ar gyfer yr Asiantaeth Ofod Ewropeaidd,
ac yn codi oddi ar ei gyfleuster ar arfordir Giana Ffrengig.
>> -ar Tua 37 eiliad i mewn y hedfan, maent yn gyntaf
sylwi rhywbeth yn mynd o'i le.
Bod y nozzles yn swiveling mewn ffordd y maent yn ddim wir dylai.
Mae tua 40 eiliad i mewn i'r awyren, glir y cerbyd oedd mewn trafferth,
a dyna pryd wnaethant y penderfyniad i ddinistrio.
Roedd y swyddog diogelwch amrediad, gyda perfedd aruthrol, pwyso ar y botwm
a chwythu i fyny y roced cyn y gallai dod yn berygl i ddiogelwch y cyhoedd.
>> -Mae Hyn oedd y forwyn mordaith y Ariane 5,
ac a gymerodd ei dinistrio gosod oherwydd y nam
hymgorffori mewn meddalwedd y roced yn.
-Y Broblem ar y Ariane oedd bod
Roedd nifer a oedd angen 64 darnau i fynegi,
ac roeddent am i drosi ag ef i rif 16-bit.
Maent yn tybio bod y nifer byth yn mynd i fod yn fawr iawn.
Bod y rhan fwyaf o ddigidau y rhai yn mae'r rhif 64-bit yn sero.
Eu bod yn anghywir.
>> -y Anallu un rhaglen feddalwedd i dderbyn
y math o rif a gynhyrchir gan Roedd un arall wrth wraidd y methiant.
Datblygu meddalwedd wedi dod yn rhan gostus iawn o dechnoleg newydd.
Mae'r Ariane 4 roced oedd bod yn llwyddiannus iawn.
Mae cymaint o'r meddalwedd a grëwyd ar gyfer cafodd ei ddefnyddio hefyd yn y Ariane 5.
>> -y Broblem sylfaenol oedd bod y Ariane 5.
A oedd faster-- cyflymedig yn gyflymach, a Nid yw'r meddalwedd wedi cyfrif am hynny.
>> -Mae Dinistr y roced oedd yn drychineb ariannol enfawr.
Mae pob oherwydd gwall meddalwedd munud.
Ond nid hyn oedd y cyntaf problemau trosi data amser
wedi plagued dechnoleg roced fodern.
>> -Yn 1991 â dechrau y Rhyfel y Gwlff cyntaf,
y taflegryn Gwladgarwr profi rhyw fath tebyg
o broblem trosi rhif.
Ac o ganlyniad 28 people-- 28 Soldiers-- Americanaidd eu lladd,
a tua chant o bobl eraill eu hanafu.
Pan fydd y Gwladgarwr, a oedd i fod i amddiffyn yn erbyn Scuds sy'n dod i mewn,
wedi methu i danio taflegryn.
>> -Pan Irac ymosododd Kuwait, ac America Lansiwyd Storm Anialwch yn gynnar yn 1991,
Batris taflegryn Gwladgarwr Lleolwyd i amddiffyn Saudi Arabia ac Israel
rhag ymosodiadau taflegryn Scud Irac.
Y Gwladgarwr yn gyfrwng-amrediad Unol Daleithiau wyneb-i-awyr system
gynhyrchwyd gan y cwmni Raytheon.
>> -Mae Maint y Gwladgarwr ataliwr itself--
mae'n ymwneud â tua 20 troedfedd o hyd, ac mae'n pwyso tua £ 2,000.
Ac mae'n cyflawni warhead o tua, Rwy'n credu ei fod tua £ 150.
Ac mae'r warhead ei hun yn yn ffrwydrol uchel, sy'n
Mae darnau o'i gwmpas.
Felly mae'r casin y warhead yn cynllunio i weithredu fel fwled.
>> -Y Taflegrau yn cael eu cynnal pedwar y cynhwysydd,
ac yn cael eu cludo gan ôl-gerbyd lled.
>> -Y System Gwladgarwr gwrth-taflegryn mynd yn ôl o leiaf 20 mlynedd erbyn hyn.
Fe'i cynlluniwyd yn wreiddiol fel taflegryn amddiffyniad awyr
i saethu i lawr awyrennau gelyn.
Yn y Rhyfel y Gwlff cyntaf pan ddaeth y rhyfel ar,
y Fyddin am ei ddefnyddio i saethu i lawr Scuds, nid awyrennau.
Y Llu Awyr Irac oedd nid yn gymaint o broblem,
ond roedd y Fyddin poeni am Scuds.
Ac felly maent yn ceisio uwchraddio'r Gwladgarwr.
>> -Intercepting Gelyn taflegryn teithio ar Mach 5
oedd yn mynd i fod yn ddigon heriol.
Ond pan fydd y Gwladgarwr ei rhuthro i mewn i wasanaeth,
Nid oedd y Fyddin yn ymwybodol o mae addasiad Irac sy'n
gwneud eu Scuds bron amhosibl iddo.
>> -Beth Ddigwyddodd yw'r Scuds bod yn dod i mewn yn ansefydlog.
Roeddent yn sigledig.
Y rheswm am hyn oedd y Iraqis-- er mwyn cael 600 cilomedr allan
o amrediad missile-- 300-cilometr Cymerodd pwysau allan o'r warhead blaen,
a gwnaeth y warhead ysgafnach.
Felly, yn awr y Gwladgarwr yn ceisio dod yn y Scud, a'r rhan fwyaf o'r adeg--
y mwyafrif llethol o'r adeg-- byddai'n jyst hedfan gan y Scud.
>> -Unwaith Y gweithredwyr system Patriot sylweddoli colli y Gwladgarwr ei tharged,
eu bod yn tanio warhead y Gwladgarwr yn er mwyn osgoi anafiadau posibl os bydd yn
yn caniatáu i syrthio i'r ddaear.
>> -bod Oedd yr hyn a welodd y rhan fwyaf o bobl fel fireballs mawr yn yr awyr,
ac yn eu camddeall fel rhyng-gipio o arfbennau Scud.
>> -Although Yn yr awyr y nos, wladgarwyr yn ymddangos i gael eu dinistrio yn llwyddiannus
Scuds, yn Dhahran gallai fod unrhyw gamgymeriad am ei berfformiad.
Mae system radar y Gwladgarwr yn trac a gollwyd o Scud sy'n dod i mewn
a byth yn ei lansio sy'n ddyledus i nam meddalwedd.
>> Yr oedd yr Israeliaid oedd yn darganfod gyntaf bod y po hiraf system yn ar,
y mwyaf daeth yr amser anghysondeb.
Oherwydd cloc wreiddio yn gyfrifiadur y system.
>> -About Ddwy wythnos cyn y drychineb yn Dhahran,
yr Israeliaid adrodd i yr Adran Defense
bod y system yn colli amser.
Ar ôl tua wyth awr o redeg, maent yn sylwi
bod dod yn y system yn amlwg yn llai cywir.
Ymatebodd yr Adran Defense gan ddweud wrth bawb o'r Gwladgarwr batris
i beidio â gadael y systemau ymlaen am amser hir.
Maent byth yn dweud beth amser hir oedd.
8 awr, 10 awr, fil o oriau.
Does neb yn gwybod.
>> -y Batri Patriot lleoli yn y barics
yn Dhahran ac mae ei mewnol ddiffygiol cloc wedi bod ar am dros 100 awr
ar noson 25 Chwefror.
>> -Mae'n Olrhain amser i gywirdeb o tua un rhan o ddeg o eiliad.
Nawr un rhan o ddeg o eiliad yn nifer diddorol
oherwydd na ellir ei mynegi mewn deuaidd yn union, a oedd yn
golygu ni ellir ei mynegi yn union mewn unrhyw gyfrifiadur digidol modern.
Mae'n anodd credu, ond defnyddio hyn fel enghraifft.
>> Gadewch i ni gymryd y rhif un rhan o dair.
Ni all un rhan o dair yn fynegir yn y degol yn union.
Mae un rhan o dair yn 0.333 mynd ymlaen i anfeidredd.
Does dim ffordd o wneud hynny gyda cywirdeb absoliwt mewn degol.
Dyna'n union y math o broblem a ddigwyddodd yn y Gwladgarwr.
Rhedodd Po hiraf y system, mae'r waeth daeth y gwall amser.
>> -Ar Ôl 100 o oriau gweithredu, mae'r gwall mewn amser oedd dim ond tua un rhan o dair
o eiliad.
Ond o ran targedu taflegryn teithio ar Mach 5,
mae'n arwain at olrhain gwall o dros 600 metr.
Byddai'n gamgymeriad angheuol ar gyfer y milwyr yn Dhahran.
>> -Beth Digwydd yn lansiad Scud oedd canfod gan lloerennau rhybudd cynnar,
ac roedden nhw'n gwybod oedd yn Scud yn dod yn eu cyfeiriad cyffredinol.
Nad oeddent yn gwybod lle cafodd ei dod.
Yr oedd yn awr hyd at y radar cydran o'r system Patriot
amddiffyn Dhahran i leoli a chadw golwg ar y taflegryn gelyn dod i mewn.
>> -Y Radar yn smart iawn.
Byddai'n olrhain mewn gwirionedd lleoliad y Scud
ac yna rhagweld ble Mae'n debyg y byddai'n
y tro nesaf y anfon radar curiad allan.
Oedd yn galw yn y giât amrediad.
>> -Then Unwaith y bydd y Gwladgarwr penderfynu digon o amser wedi
pasio i fynd yn ôl ac edrych ar y nesaf lleoliad ar gyfer y gwrthrych canfod
mae'n mynd yn ôl.
Felly, pan fydd yn mynd yn ôl at y anghywir lle, mae'n wedyn yn gweld unrhyw wrthrych.
A yw'n penderfynu nad oedd unrhyw wrthrych.
Bod canfod ffug ac mae'n gostwng y trac.
>> Diflannu -y Scud sy'n dod i mewn oddi wrth y sgrin radar,
ac eiliadau yn ddiweddarach, mae'n Condemniwyd i mewn i'r barics.
Mae'r Scud lladd 28.
Cafodd yr un olaf ei tanio yn ystod y Rhyfel y Gwlff cyntaf.
Yn drasig, mae'r meddalwedd diweddaru cyrraedd ar doriad gwawr ar y diwrnod canlynol.
Mae'r nam meddalwedd Roedd gan bod yn sefydlog, cau
un bennod yn y cythryblus hanes y taflegryn Gwladgarwr.
>> [DIWEDD Playback VIDEO]
>> DAVID J. Malan: Dyna ni am CS50.
Byddwn yn eich gweld ar ddydd Mercher.
>> [CHWARAE CERDDORIAETH]