1 00:00:00,000 --> 00:00:00,940 2 00:00:00,940 --> 00:00:05,440 >> [CHWARAE CERDDORIAETH] 3 00:00:05,440 --> 00:00:11,577 4 00:00:11,577 --> 00:00:12,660 DAVID J. Malan: pob hawl. 5 00:00:12,660 --> 00:00:15,590 Mae hyn yn CS50, ac mae hyn yn ddechrau wythnos dau. 6 00:00:15,590 --> 00:00:19,120 Felly gadewch i ni ddechrau heddiw gyda nam. 7 00:00:19,120 --> 00:00:20,974 Mae nam, wrth gwrs, yn camgymeriad mewn rhaglen, 8 00:00:20,974 --> 00:00:22,890 a byddwch yn cael iawn gyfarwydd â'r cysyniad hwn 9 00:00:22,890 --> 00:00:26,050 os nad ydych erioed wedi eu rhaglennu o'r blaen. pset0 ac yn awr pset1. 10 00:00:26,050 --> 00:00:29,280 Ond gadewch i ni ystyried rhywbeth ychydig o syml ar y dechrau. 11 00:00:29,280 --> 00:00:32,189 Mae'r rhaglen yma fy mod taflu at ei gilydd o flaen llaw, 12 00:00:32,189 --> 00:00:37,280 ac yr wyf yn honni y dylai hyn argraffu 10 sêr ar y sgrîn gan ddefnyddio printf, 13 00:00:37,280 --> 00:00:41,020 ond mae'n debyg bygi mewn rhyw ffordd. 14 00:00:41,020 --> 00:00:45,370 >> O gofio bod fanyleb sy'n dylai argraffu 10 sêr, 15 00:00:45,370 --> 00:00:50,230 ond nid yw'n gwneud yn ôl pob golwg, yr hyn Byddai wneud cais yw y byg? 16 00:00:50,230 --> 00:00:52,004 Yeah? 17 00:00:52,004 --> 00:00:54,420 Felly, ei fod yn ffwrdd gan un camgymeriad, a beth ydych chi'n ei olygu wrth hynny? 18 00:00:54,420 --> 00:01:00,991 19 00:01:00,991 --> 00:01:01,490 OK. 20 00:01:01,490 --> 00:01:09,820 21 00:01:09,820 --> 00:01:10,410 Ardderchog. 22 00:01:10,410 --> 00:01:13,930 Felly, rydym wedi penodi cychwyn gwerth sero ar gyfer i, 23 00:01:13,930 --> 00:01:18,399 ac rydym wedi penodedig gwerth n o 10, ond rydym wedi defnyddio llai na neu'n hafal i. 24 00:01:18,399 --> 00:01:21,190 A'r rheswm bod hyn yn dau cymeriadau ac nid dim ond un symbol, 25 00:01:21,190 --> 00:01:22,630 fel mewn llyfr mathemateg, yw nad oes gennych 26 00:01:22,630 --> 00:01:24,880 ffordd o fynegi'r un cymeriad cyfwerth. 27 00:01:24,880 --> 00:01:28,450 >> Felly mae hynny'n golygu llai na, ond os byddwch yn dechrau cyfrif ar sero, 28 00:01:28,450 --> 00:01:31,690 ond yr ydych yn cyfrif yr holl ffordd fyny drwy ac yn hafal i 10, 29 00:01:31,690 --> 00:01:34,170 eich bod, wrth gwrs, yn mynd i cyfrif 11 o bethau i gyd. 30 00:01:34,170 --> 00:01:35,900 Ac felly rydych yn mynd i argraffu 11 sêr. 31 00:01:35,900 --> 00:01:37,990 Felly, yr hyn a allai fod yn ateb ar gyfer hyn? 32 00:01:37,990 --> 00:01:39,970 Yeah? 33 00:01:39,970 --> 00:01:43,980 >> Felly dim ond addasu'r llai na neu'n hafal i ddim ond yn llai na, 34 00:01:43,980 --> 00:01:46,250 ac mae, yr wyf yn gwneud cais, efallai ateb arall, hefyd. 35 00:01:46,250 --> 00:01:47,210 Beth allai arall yr ydych yn ei wneud? 36 00:01:47,210 --> 00:01:48,590 Yeah? 37 00:01:48,590 --> 00:01:53,660 >> Felly dechreuwch gyfartal i 1, a gadael y llai na neu'n hafal i. 38 00:01:53,660 --> 00:01:56,187 A dweud y gwir byddwn yn hawlio hynny, ar gyfer dynol nodweddiadol, 39 00:01:56,187 --> 00:01:57,770 mae hyn yn ôl pob tebyg yn fwy syml. 40 00:01:57,770 --> 00:02:00,280 Dechreuwch gyfrif ar 1 a cyfrif i fyny hyd at 10. 41 00:02:00,280 --> 00:02:01,690 Yn y bôn yn gwneud yr hyn yr ydych yn ei olygu. 42 00:02:01,690 --> 00:02:04,010 >> Ond y gwirionedd yw yn rhaglennu, fel yr ydym wedi gweld, 43 00:02:04,010 --> 00:02:07,598 gwyddonwyr cyfrifiadurol a rhaglenwyr yn gyffredinol yn dechrau cyfrif ar sero. 44 00:02:07,598 --> 00:02:09,389 Ac felly mae hynny'n iawn unwaith chi ddod i arfer ag ef. 45 00:02:09,389 --> 00:02:12,640 Bydd eich cyflwr yn gyffredinol fod yn rhywbeth fel llai na. 46 00:02:12,640 --> 00:02:14,910 Felly syml, rhesymegol gwall y gallem bellach 47 00:02:14,910 --> 00:02:17,990 trwsio ac ail-grynhoi yn y pen draw hyn a chael dim ond 10. 48 00:02:17,990 --> 00:02:19,610 >> Wel beth am bug hyn yma? 49 00:02:19,610 --> 00:02:24,200 Yma, unwaith eto, yr wyf yn honni fy mod wedi nod o argraffu 10 stars-- 50 00:02:24,200 --> 00:02:28,140 un i bob llinell y tro hwn, ond nid yw'n gwneud hynny. 51 00:02:28,140 --> 00:02:30,940 Cyn i ni yn cynnig yr hyn yr ateb yw, beth mae hyn yn 52 00:02:30,940 --> 00:02:34,640 argraffu weledol pe bawn yn llunio ac yn rhedeg y rhaglen hon yn eich barn chi? 53 00:02:34,640 --> 00:02:35,140 Yeah? 54 00:02:35,140 --> 00:02:38,360 55 00:02:38,360 --> 00:02:38,860 >> Seren. 56 00:02:38,860 --> 00:02:41,690 Felly holl sêr ar y un llinell yn hyn yr wyf yn ei glywed, 57 00:02:41,690 --> 00:02:43,391 ac yna cymeriad llinell newydd. 58 00:02:43,391 --> 00:02:44,140 Felly gadewch i ni roi cynnig ar hynny. 59 00:02:44,140 --> 00:02:48,710 Felly, yn gwneud bygi-1, nodwch, ac yr wyf yn gweld y gorchymyn chlang 60 00:02:48,710 --> 00:02:50,090 y buom yn siarad am y tro diwethaf. 61 00:02:50,090 --> 00:02:55,180 ./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 62 00:02:55,180 --> 00:02:58,690 yn fy manyleb dim ond sylw ar ben y cod fy mod yn bwriadu gwneud un y 63 00:02:58,690 --> 00:02:59,230 llinell. 64 00:02:59,230 --> 00:03:00,580 Ond mae hyn yn edrych yn iawn. 65 00:03:00,580 --> 00:03:04,620 >> Nawr llinell 15 mae'n edrych fel fy mod argraffu yn seren, ac yna llinell 16 66 00:03:04,620 --> 00:03:06,620 mae'n edrych fel fy mod argraffu cymeriad llinell newydd, 67 00:03:06,620 --> 00:03:09,560 ac maen nhw'n ddau mewnoli hynny Im 'tu mewn i'r ddolen glir. 68 00:03:09,560 --> 00:03:13,610 Ni ddylai Felly, yr wyf yn ei wneud seren, newydd llinell, seren, llinell newydd, seren, llinell newydd? 69 00:03:13,610 --> 00:03:14,110 Ie? 70 00:03:14,110 --> 00:03:18,430 71 00:03:18,430 --> 00:03:21,240 >> Yeah, yn wahanol i iaith fel Python, os ydych yn gyfarwydd, 72 00:03:21,240 --> 00:03:23,540 Nid bant yn bwysig i'r cyfrifiadur. 73 00:03:23,540 --> 00:03:25,280 Dim ond bwys i'r ddynol. 74 00:03:25,280 --> 00:03:29,860 Felly llinellau tra yma rwyf wedi dyfeisio 15 a 16-- sy'n edrych yn hardd, 75 00:03:29,860 --> 00:03:31,330 ond nid y cyfrifiadur yn ofal. 76 00:03:31,330 --> 00:03:34,640 Mae'r cyfrifiadur yn gofalu am mewn gwirionedd yn cael braces cyrliog 77 00:03:34,640 --> 00:03:36,310 o amgylch y llinellau hyn o god. 78 00:03:36,310 --> 00:03:39,520 >> Fel ei bod yn clear-- union fel yn Scratch-- bod y rhai ddwy linell o god 79 00:03:39,520 --> 00:03:40,450 Dylid ei weithredu. 80 00:03:40,450 --> 00:03:44,390 Fel un o'r rhai melyn Scratch pos darnau dro ar ôl tro ar ôl tro. 81 00:03:44,390 --> 00:03:50,920 >> Felly, yn awr os wyf yn ail-redeg y program-- ./buggy-2-- EM. 82 00:03:50,920 --> 00:03:51,770 Mae gen i gwall nawr. 83 00:03:51,770 --> 00:03:54,212 Beth wnes i yn anghofio ei wneud? 84 00:03:54,212 --> 00:03:55,420 Yeah, felly doeddwn i ddim yn llunio ei. 85 00:03:55,420 --> 00:03:56,740 Felly, yn gwneud bygi-2. 86 00:03:56,740 --> 00:03:59,840 Dim ffeil o'r fath oherwydd nid i ddim yn mewn gwirionedd yn llunio yr ail fersiwn. 87 00:03:59,840 --> 00:04:04,860 Felly nawr yn ddiddorol Nid yw heb ei ddatgan variable-- 2. 88 00:04:04,860 --> 00:04:05,510 Rydym yn gwneud 1. 89 00:04:05,510 --> 00:04:11,050 Gwneud bygi-1-- ./buggy-1-- ac yn awr pob un ohonynt ar yr un llinell. 90 00:04:11,050 --> 00:04:13,880 >> Nawr mae eithriad i honiad hwn tybiedig i mi 91 00:04:13,880 --> 00:04:15,520 eich bod angen i braces cyrliog hyn. 92 00:04:15,520 --> 00:04:20,160 Pryd mae'n mewn gwirionedd OK-- os ydych wedi sylwi yn adran neu textbooks-- 93 00:04:20,160 --> 00:04:22,130 i hepgor y braces cyrliog? 94 00:04:22,130 --> 00:04:22,630 Yeah? 95 00:04:22,630 --> 00:04:26,290 96 00:04:26,290 --> 00:04:26,870 >> Yn union. 97 00:04:26,870 --> 00:04:28,940 Pan fydd dim ond un llinell o god sy'n eich 98 00:04:28,940 --> 00:04:32,830 awyddus i fod yn gysylltiedig â'r dolen fel yn ein enghraifft gyntaf. 99 00:04:32,830 --> 00:04:36,380 Mae'n gwbl gyfreithlon i hepgor y braces cyrliog 100 00:04:36,380 --> 00:04:40,310 yn union fel y fath o gyfleustra oddi wrth y compiler i chi. 101 00:04:40,310 --> 00:04:40,810 Yeah? 102 00:04:40,810 --> 00:04:43,347 103 00:04:43,347 --> 00:04:43,930 Gwestiwn da. 104 00:04:43,930 --> 00:04:45,500 Byddai'n cael ei ystyried gwall steil? 105 00:04:45,500 --> 00:04:49,340 Byddem yn promote-- fel yn CS50 canllaw arddull, mae'r URL y mae 106 00:04:49,340 --> 00:04:51,926 yw mewn pset1-- sydd bob amser defnyddiwch y braces cyrliog. 107 00:04:51,926 --> 00:04:53,550 Yn sicr, os ydych yn newydd i raglenni. 108 00:04:53,550 --> 00:04:56,800 Y gwir amdani yw nad ydym ni'n mynd i wahardd chi 109 00:04:56,800 --> 00:04:58,680 rhag gwneud cyfleusterau hyn. 110 00:04:58,680 --> 00:05:00,846 Ond os ydych ond yn cael i mewn i'r swing o bethau, 111 00:05:00,846 --> 00:05:04,020 gwbl jyst bob amser ddefnyddio'r cyrliog bresys nes i chi gael y hongian ohono. 112 00:05:04,020 --> 00:05:04,640 Gwestiwn da. 113 00:05:04,640 --> 00:05:05,320 >> Mae pob hawl. 114 00:05:05,320 --> 00:05:07,660 Er mwyn i hynny fod yn bug. 115 00:05:07,660 --> 00:05:09,190 Mae o leiaf yn rhywbeth eithaf syml. 116 00:05:09,190 --> 00:05:11,260 Ac eto, efallai y byddwch yn credu bod hyn yn eithaf elfennol, dde? 117 00:05:11,260 --> 00:05:13,635 Mae hyn yn fath o yr wythnos gyntaf o edrych ar yr iaith 118 00:05:13,635 --> 00:05:14,890 fel, ewch i weld eich bygiau ynddo. 119 00:05:14,890 --> 00:05:17,250 Ond y realiti mae'r rhain yn cynrychiolydd mewn gwirionedd 120 00:05:17,250 --> 00:05:20,310 o'r rhai problemau eithaf brawychus a all godi yn y byd go iawn. 121 00:05:20,310 --> 00:05:23,530 >> Felly, efallai y bydd rhai ohonoch yn cofio os byddwch yn dilyn y newyddion dechnoleg, 122 00:05:23,530 --> 00:05:25,740 neu efallai hyd yn oed yn dal gwynt o hyn ym mis Chwefror 123 00:05:25,740 --> 00:05:29,434 y flwyddyn ddiwethaf bod Apple oedd gan gwneud yn dipyn o gamgymeriad yn y ddau iOS, 124 00:05:29,434 --> 00:05:31,350 y system weithredu ar eu ffonau, a hefyd 125 00:05:31,350 --> 00:05:34,220 Mac OS, y system weithredu ar eu byrddau gwaith a gliniaduron. 126 00:05:34,220 --> 00:05:36,480 A ydych yn gweld penawdau fel hyn. 127 00:05:36,480 --> 00:05:41,120 Ac wedi hynny, Afal addo at atgyweiria nam yma, 128 00:05:41,120 --> 00:05:45,950 ac yn gyflym iawn wnaeth atgyweiria 'yn iOS, ond yna yn y pen draw sefydlog yn Mac OS 129 00:05:45,950 --> 00:05:46,810 hefyd. 130 00:05:46,810 --> 00:05:50,370 >> Nawr yr un o'r penawdau hyn yn unig wir yn yn dangos beth oedd y broblem sylfaenol oedd, 131 00:05:50,370 --> 00:05:55,640 ond y byg ei ostwng yn y pen draw at nam yn SSL, haen socedi diogel. 132 00:05:55,640 --> 00:05:57,390 A stori fer hir, dyma'r meddalwedd 133 00:05:57,390 --> 00:06:01,030 bod ein porwyr ac eraill meddalwedd a ddefnyddir i wneud beth? 134 00:06:01,030 --> 00:06:04,090 135 00:06:04,090 --> 00:06:06,860 >> Os wyf yn dweud bod SSL yn dan sylw, pryd bynnag y byddwch 136 00:06:06,860 --> 00:06:13,920 ymweld â URL sy'n dechrau gyda HTTPS, beth yna efallai SSL fod yn gysylltiedig â? 137 00:06:13,920 --> 00:06:14,580 Amgryptio. 138 00:06:14,580 --> 00:06:16,470 Felly, byddwn yn siarad am hyn yn y dyddiau nesaf. 139 00:06:16,470 --> 00:06:18,750 Encryption, y grefft o sgrialu gwybodaeth. 140 00:06:18,750 --> 00:06:22,200 >> Ond stori fer hir, Afal amser yn ôl wedi gwneud camgymeriad 141 00:06:22,200 --> 00:06:25,970 yn eu rhoi ar waith o SSL, mae'r meddalwedd y pen draw yn gweithredu 142 00:06:25,970 --> 00:06:30,120 URLs fel HTTPS neu max cysylltiadau yno hefyd. 143 00:06:30,120 --> 00:06:32,850 Canlyniad sef bod eich Gallai cysylltiadau a allai fod 144 00:06:32,850 --> 00:06:33,920 cael eu rhyng-gipio. 145 00:06:33,920 --> 00:06:37,130 A bod eich cysylltiadau yn Nid yw o reidrwydd yn amgryptio 146 00:06:37,130 --> 00:06:40,350 os ydych wedi cael rhywfaint o dyn drwg yn y canol chi a'r wefan cyrchfan sy'n 147 00:06:40,350 --> 00:06:42,170 yn gwybod sut i fanteisio ar hyn. 148 00:06:42,170 --> 00:06:45,090 >> Nawr Apple bostio yn y pen draw a atgyweiria ar gyfer hyn yn olaf, 149 00:06:45,090 --> 00:06:46,920 a'r disgrifiad o'u atgyweiria oedd hyn. 150 00:06:46,920 --> 00:06:49,878 Methodd trafnidiaeth diogel i ddilysu y dilysrwydd y cysylltiad. 151 00:06:49,878 --> 00:06:52,920 Aethpwyd i'r afael â'r mater drwy adfer camau dilysu goll. 152 00:06:52,920 --> 00:06:57,250 >> Felly mae hwn yn esboniad tonnog iawn llaw am dim ond dweud ein bod yn sgriwio i fyny. 153 00:06:57,250 --> 00:07:00,920 Mae llythrennol un llinell o god a oedd bygi 154 00:07:00,920 --> 00:07:05,130 yn eu rhoi ar waith o SSL, ac os byddwch yn mynd ar-lein ac yn chwilio am hyn 155 00:07:05,130 --> 00:07:07,210 gallwch ddod o hyd mewn gwirionedd y cod ffynhonnell wreiddiol. 156 00:07:07,210 --> 00:07:11,960 Er enghraifft, mae hyn yn ergyd sgrîn o dim ond cyfran o'r ffeil eithaf mawr, 157 00:07:11,960 --> 00:07:15,965 ond mae hyn yn swyddogaeth o'r enw pob golwg SSL gwirio cyfnewid allweddol gweinydd arwydd. 158 00:07:15,965 --> 00:07:17,840 Ac mae'n cymryd criw o dadleuon a mewnbynnau. 159 00:07:17,840 --> 00:07:20,298 Ac nid ydym yn mynd i ganolbwyntio gormod ar y minutia yno, 160 00:07:20,298 --> 00:07:24,390 ond os ydych yn canolbwyntio ar y cod yn y tu mewn o'r topmost function-- gadewch i ni 161 00:07:24,390 --> 00:07:25,590 chwyddo i mewn ar hynny. 162 00:07:25,590 --> 00:07:28,140 Efallai eich bod yn amau ​​eisoes yr hyn y gallai'r gwall 163 00:07:28,140 --> 00:07:31,230 fod hyd yn oed os nad oes gennych syniad yn y pen draw yr hyn yr ydych yn edrych ar. 164 00:07:31,230 --> 00:07:35,924 Mae fath o anomaledd yma, sef yr hyn? 165 00:07:35,924 --> 00:07:38,940 >> Yeah, nid wyf yn wir yn hoffi golwg dau goto yn methu. 166 00:07:38,940 --> 00:07:42,060 Dweud y gwir, nid wyf yn wir yn gwybod beth Ewch I'r methu yn golygu, ond mae cael dau ohonynt 167 00:07:42,060 --> 00:07:42,810 gefn wrth gefn. 168 00:07:42,810 --> 00:07:45,290 Mae hynny'n unig fath o rhwbio i mi ddeallusol y ffordd anghywir, 169 00:07:45,290 --> 00:07:48,910 ac yn wir os ydym yn chwyddo i mewn ar dim ond y llinellau hynny, mae hyn yn C. 170 00:07:48,910 --> 00:07:52,220 >> Felly mae llawer o god Afalau ' ei hun a ysgrifennwyd yn C, 171 00:07:52,220 --> 00:07:55,780 ac mae hyn yn ôl pob golwg yn wirioneddol equivalent-- 172 00:07:55,780 --> 00:07:59,060 beidio â bod bant 'n bert fersiwn, ond os ydych yn cydnabod y ffaith 173 00:07:59,060 --> 00:08:02,560 nad oes unrhyw braces cyrliog, beth Apple oedd mewn gwirionedd ysgrifennodd cod sy'n edrych 174 00:08:02,560 --> 00:08:03,540 fel hyn. 175 00:08:03,540 --> 00:08:07,080 Felly dwi wedi chwyddo allan a Fi jyst sefydlog y bant yn yr ystyr 176 00:08:07,080 --> 00:08:10,690 os nad oes braces cyrliog, bod ail goto methu dyna mewn melyn 177 00:08:10,690 --> 00:08:12,500 yn mynd i weithredu waeth beth. 178 00:08:12,500 --> 00:08:15,540 Dyw hi ddim yn gysylltiedig â mae'r os yw cyflwr uwch ei ben. 179 00:08:15,540 --> 00:08:19,590 >> Felly hyd yn oed eto, nid os ydych yn gwneud yn eithaf deall yr hyn y gallai hyn o bosibl 180 00:08:19,590 --> 00:08:23,230 yn ei wneud, yn gwybod bod pob un o'r rhain conditions-- pob un o'r llinellau hyn 181 00:08:23,230 --> 00:08:26,180 yn gam pwysig iawn yn y broses o wirio 182 00:08:26,180 --> 00:08:28,350 os yw eich data yn mewn gwirionedd amgryptio. 183 00:08:28,350 --> 00:08:31,710 Felly sgipio un o'r rhain grisiau, nid yw'r syniad gorau. 184 00:08:31,710 --> 00:08:34,840 >> Ond, oherwydd ein bod wedi hyn ail goto yn methu mewn melyn, 185 00:08:34,840 --> 00:08:36,840 ac oherwydd ar ôl i ni fath o esthetaidd 186 00:08:36,840 --> 00:08:40,480 symud i'r chwith lle mae'n rhesymegol yw ar hyn o bryd, beth 187 00:08:40,480 --> 00:08:43,230 mae hyn yn ei olygu i'r llinell o god is na ail goto 188 00:08:43,230 --> 00:08:46,480 methu fyddech chi'n feddwl? 189 00:08:46,480 --> 00:08:48,860 Mae bob amser yn mynd i gael ei hepgor. 190 00:08:48,860 --> 00:08:52,100 Felly gotos yn gwgu arno am resymau ni fyddwn mewn gwirionedd yn mynd i mewn, 191 00:08:52,100 --> 00:08:54,940 ac yn wir yn CS50 nid ydym yn tueddu i addysgu y datganiad hwn goto, 192 00:08:54,940 --> 00:08:58,130 ond gallwch chi feddwl am goto methu fel neidio ystyr go 193 00:08:58,130 --> 00:08:59,600 i ryw ran arall o'r cod. 194 00:08:59,600 --> 00:09:03,120 >> Mewn geiriau eraill neidio dros y llinell olaf yn gyfan gwbl, 195 00:09:03,120 --> 00:09:07,420 ac felly mae'r canlyniad hwn yn dwp camgymeriad syml a oedd yn unig 196 00:09:07,420 --> 00:09:10,330 o ganlyniad, mae'n debyg bydd rhywun copïo a gludo un rhy 197 00:09:10,330 --> 00:09:14,150 sawl gwaith oedd bod y cyfan diogelwch iOS a Mac OS 198 00:09:14,150 --> 00:09:18,240 yn agored i rhyng-gipio gan guys ddrwg ers peth amser. 199 00:09:18,240 --> 00:09:19,940 Tan Apple yn olaf sefydlog hyn. 200 00:09:19,940 --> 00:09:23,100 >> Nawr, os yw rhai ohonoch yn mewn gwirionedd yn rhedeg hen fersiynau o iOS neu Mac OS, 201 00:09:23,100 --> 00:09:27,250 gallwch fynd i gotofail.com sy'n yn wefan sy'n rhywun a sefydlwyd 202 00:09:27,250 --> 00:09:29,190 i benderfynu yn y bôn programmatically 203 00:09:29,190 --> 00:09:30,980 os yw eich cyfrifiadur yn dal i fod yn agored i niwed. 204 00:09:30,980 --> 00:09:33,600 Ac yn dweud y gwir, os ydyw, mae'n debyg yn syniad da 205 00:09:33,600 --> 00:09:36,870 i ddiweddaru eich ffôn neu eich Mac ar y pwynt hwn. 206 00:09:36,870 --> 00:09:40,120 Ond mae yna, dim ond brawf o pa mor gwerthfawrogiad o lefel is hyn 207 00:09:40,120 --> 00:09:42,400 manylion ac yn deg gall syniadau syml iawn 208 00:09:42,400 --> 00:09:44,590 cyfieithu i mewn i benderfyniadau a phroblemau sy'n 209 00:09:44,590 --> 00:09:47,320 affected-- yn achos-- hwn miliynau o bobl. 210 00:09:47,320 --> 00:09:49,107 >> Nawr gair ar weinyddu. 211 00:09:49,107 --> 00:09:50,690 Bydd yr adran hon yn dechrau Dydd Sul nesaf. 212 00:09:50,690 --> 00:09:53,360 Byddwch yn derbyn e-bost gan yr penwythnos am adran, a bryd hynny 213 00:09:53,360 --> 00:09:55,290 y broses Ail-naddu yn dechrau os ydych wedi 214 00:09:55,290 --> 00:09:56,998 sylweddoli gennych bellach rhai gwrthdaro newydd. 215 00:09:56,998 --> 00:10:00,180 Felly, mae hyn yn digwydd bob blwyddyn, ac yr ydym Bydd lle yn y dyddiau i ddod. 216 00:10:00,180 --> 00:10:02,430 >> Swyddfa hours-- gwneud cadw llygad ar yr atodlen hon yma. 217 00:10:02,430 --> 00:10:05,100 Newidiadau ychydig bach yr wythnos hon, yn enwedig yr amser dechrau 218 00:10:05,100 --> 00:10:08,180 ac mae'r lleoliad, felly peidiwch ymgynghori hynny cyn mynd i oriau swyddfa 219 00:10:08,180 --> 00:10:09,520 unrhyw un o'r pedair noson nesaf. 220 00:10:09,520 --> 00:10:12,680 Ac yn awr gair ar asesu, yn enwedig wrth i chi plymio i mewn i broblem 221 00:10:12,680 --> 00:10:14,350 gosod un a thu hwnt. 222 00:10:14,350 --> 00:10:17,070 >> Felly unol â'r fanyleb, mae'r rhain yn gyffredinol 223 00:10:17,070 --> 00:10:20,360 yr echelinau ar hyd lle rydym yn gwerthuso eich gwaith. 224 00:10:20,360 --> 00:10:23,170 Scope yn cyfeirio at yr hyn maint eich offer cod 225 00:10:23,170 --> 00:10:25,690 nodweddion gofynnol gan ein manyleb. 226 00:10:25,690 --> 00:10:28,290 Mewn geiriau eraill, faint o set darn wnaethoch chi yn cnoi i ffwrdd. 227 00:10:28,290 --> 00:10:30,440 Wnaethoch chi traean ohono, hanner ohono, 100% ohono. 228 00:10:30,440 --> 00:10:33,000 Hyd yn oed os nad yw'n gywir, faint oeddech chi'n ei geisio? 229 00:10:33,000 --> 00:10:35,290 Felly, sy'n dal y lefel o ymdrech a'r swm 230 00:10:35,290 --> 00:10:38,260 yr ydych did oddi ar y problemau problem gosod yn. 231 00:10:38,260 --> 00:10:40,690 >> Correctness-- yr un yma, i ba raddau, yw eich cod 232 00:10:40,690 --> 00:10:43,150 gyson â'n manylebau ac yn rhydd o chwilod. 233 00:10:43,150 --> 00:10:44,770 Felly, mae hyn yn gweithio yn gywir? 234 00:10:44,770 --> 00:10:48,700 Os byddwn yn rhoi rhywfaint o gyfraniad, a yw'n rhoi'r cynnyrch yr ydym yn disgwyl inni? 235 00:10:48,700 --> 00:10:52,570 Design-- nawr mae hyn yw'r cyntaf o yn enwedig y rhai ansoddol, 236 00:10:52,570 --> 00:10:56,180 neu y rhai sy'n gofyn am farn pobl. 237 00:10:56,180 --> 00:10:59,690 Ac yn wir, dyma pam mae gennym staff cynifer o cymrodyr addysgu a chwrs 238 00:10:59,690 --> 00:11:00,350 cynorthwywyr. 239 00:11:00,350 --> 00:11:03,480 I ba raddau y mae eich cod wedi'i ysgrifennu'n dda? 240 00:11:03,480 --> 00:11:05,810 >> Ac unwaith eto mae hyn yn iawn asesiad ansoddol 241 00:11:05,810 --> 00:11:09,100 a fydd yn gweithio gyda chi ar ddau gyfeiriad yn ystod yr wythnosau i ddod. 242 00:11:09,100 --> 00:11:12,060 Felly pan nad ydych yn cael dim ond sgoriau rhifol, ond hefyd 243 00:11:12,060 --> 00:11:16,682 mae sgoriau ysgrifenedig, neu adborth teipio, neu adborth ysgrifenedig yn y geiriau Saesneg. 244 00:11:16,682 --> 00:11:19,640 Dyna beth y byddwn yn ei ddefnyddio i yrru chi tuag at mewn gwirionedd yn ysgrifennu cod well. 245 00:11:19,640 --> 00:11:23,320 Ac mewn darlith ac adran, byddwn yn gwneud i bwynt out-- mor aml ag y can-- 246 00:11:23,320 --> 00:11:26,420 beth sy'n gwneud rhaglen nid yn unig yn gywir ac yn swyddogaethol yn dda, 247 00:11:26,420 --> 00:11:28,200 ond mae hefyd yn cynllunio'n dda. 248 00:11:28,200 --> 00:11:31,850 Y mwyaf effeithiol y gallai fod, neu hyd yn oed y mwyaf prydferth y mae'n gallu bod. 249 00:11:31,850 --> 00:11:33,100 >> Sy'n ein harwain i arddull. 250 00:11:33,100 --> 00:11:36,876 Arddull yn y pen draw yw barn esthetig. 251 00:11:36,876 --> 00:11:38,750 A wnaethoch ddewis da enwau ar gyfer eich newidynnau? 252 00:11:38,750 --> 00:11:40,330 Ydych chi wedi mewnoli eich cod yn iawn? 253 00:11:40,330 --> 00:11:44,010 A yw'n edrych yn dda, ac felly, a yw'n hawdd i fod dynol arall 254 00:11:44,010 --> 00:11:46,550 i ddarllen eich priod o'i gywirdeb. 255 00:11:46,550 --> 00:11:50,300 >> Nawr yn gyffredinol unol â'r maes llafur, rydym yn sgorio pethau hyn ar raddfa pum pwynt. 256 00:11:50,300 --> 00:11:53,640 A gadewch i mi morthwyl gartref y pwynt bod tri yn wir dda. 257 00:11:53,640 --> 00:11:55,550 Yn gyflym iawn yn ei wneud Folks dechrau ei wneud rhifyddeg. 258 00:11:55,550 --> 00:11:58,133 Pan fyddant yn cael tair allan o pump ar gywirdeb ar gyfer rhai pset 259 00:11:58,133 --> 00:12:02,040 ac maent yn meddwl damn, yr wyf yn mynd i 60% sydd yn ei hanfod yn D neu E. 260 00:12:02,040 --> 00:12:03,980 >> Nid dyna'r ffordd yr ydym yn feddwl o'r rhifau hyn. 261 00:12:03,980 --> 00:12:06,880 Mae tri yn wir dda, a'r hyn yr ydym gyffredinol yn disgwyl ar y dechrau 262 00:12:06,880 --> 00:12:09,820 o'r term yw os ydych yn cael criw o three's-- efallai ychydig 263 00:12:09,820 --> 00:12:12,540 o ffeiriau, un neu ddau o fours-- neu cwpl ddwy oed, un neu ddau o fours-- 264 00:12:12,540 --> 00:12:13,748 mae hynny'n lle da i ddechrau. 265 00:12:13,748 --> 00:12:16,320 Ac ar yr amod ein bod yn gweld taflwybr ar i fyny dros gyfnod o amser, 266 00:12:16,320 --> 00:12:18,540 eich bod mewn lle arbennig o dda. 267 00:12:18,540 --> 00:12:20,752 >> Mae'r fformiwla a ddefnyddiwn i pwysau pethau yn ei hanfod 268 00:12:20,752 --> 00:12:22,710 hyn yn unol â'r maes llafur, a dim ond yn golygu ein bod 269 00:12:22,710 --> 00:12:24,750 yn rhoi mwy o bwysau i gywirdeb. 270 00:12:24,750 --> 00:12:27,930 Oherwydd ei fod yn aml iawn cywirdeb sy'n cymryd yr amser mwyaf. 271 00:12:27,930 --> 00:12:28,760 Ymddiriedolaeth i mi nawr. 272 00:12:28,760 --> 00:12:31,190 Byddwch find-- o leiaf mewn un pset-- yr ydych 273 00:12:31,190 --> 00:12:36,790 treulio 90% o'ch amser gweithio ar 10% o'r broblem. 274 00:12:36,790 --> 00:12:39,320 >> Ac mae popeth yn fath o yn gweithio heblaw am un neu ddau o chwilod, 275 00:12:39,320 --> 00:12:41,570 a'r rheini yw'r chwilod sy'n cadw chi i fyny yn hwyr yn y nos. 276 00:12:41,570 --> 00:12:43,380 Mae'r rhai yw'r rhai sy'n fath o chi ddianc. 277 00:12:43,380 --> 00:12:45,560 Ond ar ôl cysgu arno, neu fynychu oriau swyddfa 278 00:12:45,560 --> 00:12:48,844 neu ofyn cwestiynau ar-lein, yn cael ei pan fyddwch yn cyrraedd y nod o 100%, 279 00:12:48,844 --> 00:12:50,760 a dyna pam ein bod pwysau gywirdeb y mwyaf. 280 00:12:50,760 --> 00:12:54,102 Dyluniwch ychydig yn llai, ac arddull ychydig yn llai na hynny. 281 00:12:54,102 --> 00:12:56,060 Ond cadwch mewn steil mind-- efallai yw'r hawsaf 282 00:12:56,060 --> 00:12:58,890 o'r rhain i frathu off yn unol â'r canllaw arddull. 283 00:12:58,890 --> 00:13:01,580 >> Ac yn awr, yn fwy difrifol nodyn ar gonestrwydd academaidd. 284 00:13:01,580 --> 00:13:05,000 CS50 Mae gan y gwahaniaeth anffodus o mai ni yw'r darparwr mwyaf o Fwrdd Ad 285 00:13:05,000 --> 00:13:07,330 achosion bron bob blwyddyn yn hanesyddol. 286 00:13:07,330 --> 00:13:11,012 Nid yw hyn oherwydd bod myfyrwyr yn twyllo mewn CS50 unrhyw fwy felly nag unrhyw ddosbarth arall, 287 00:13:11,012 --> 00:13:13,720 ond oherwydd yn ôl natur y gwaith, y ffaith ei fod yn electronig, 288 00:13:13,720 --> 00:13:16,636 y ffaith ein bod yn edrych ar ei gyfer, a mae'r ffaith ein bod gwyddonwyr cyfrifiadurol, 289 00:13:16,636 --> 00:13:20,570 Gallaf ddweud ein bod yn anffodus yn dda iawn am ddod o hyd iddo'n. 290 00:13:20,570 --> 00:13:22,710 >> Felly beth mae hyn yn ei olygu mewn termau real? 291 00:13:22,710 --> 00:13:24,820 Felly mae'n, fesul y maes llafur, athroniaeth y cwrs yn 292 00:13:24,820 --> 00:13:28,090 wir yn berwi i lawr i fod yn rhesymol. 293 00:13:28,090 --> 00:13:31,684 Mae y llinell hon rhwng gwneud un yn gweithio ar eich pen eich hun 294 00:13:31,684 --> 00:13:34,100 a chael ychydig o cymorth rhesymol gan ffrind, 295 00:13:34,100 --> 00:13:38,020 ac yn llwyr yn gwneud y gwaith hwnnw ar gyfer eich ffrind, neu anfon ef neu hi eich cod 296 00:13:38,020 --> 00:13:41,080 fel bod ef neu hi yn gallu yn syml gymryd neu ei fenthyg allan yn iawn. 297 00:13:41,080 --> 00:13:43,580 A bod yn croesi'r llinell ein bod yn tynnu yn y dosbarth. 298 00:13:43,580 --> 00:13:45,410 >> Gwelwch, y maes llafur yn y pen draw ar gyfer y llinellau 299 00:13:45,410 --> 00:13:48,209 ein bod yn tynnu eu bod yn rhesymol ac ymddygiad afresymol, 300 00:13:48,209 --> 00:13:50,000 ond mae'n wir yn berwi i lawr at y hanfod 301 00:13:50,000 --> 00:13:53,980 o'ch gwaith sydd angen i fod yn eich pen eich hun yn y diwedd. 302 00:13:53,980 --> 00:13:56,230 Nawr gyda dweud hynny, mae hewristig. 303 00:13:56,230 --> 00:13:58,980 Oherwydd fel y byddech yn imagine-- o oriau swyddfa ac mae'r delweddau 304 00:13:58,980 --> 00:14:01,060 ac mae'r fideos rydym wedi ddangosir CS50 felly far-- 305 00:14:01,060 --> 00:14:04,530 yn wir i fod i fod mor cydweithredol ac mor cydweithredol ac fel chymdeithasol 306 00:14:04,530 --> 00:14:06,450 ag y bo modd. 307 00:14:06,450 --> 00:14:08,570 Fel gydweithredol gan ei fod yn drylwyr. 308 00:14:08,570 --> 00:14:11,314 >> Ond gyda dweud hyn, mae'r hewristig, fel y byddwch yn gweld yn y maes llafur, 309 00:14:11,314 --> 00:14:12,980 yw bod pan fyddwch yn cael rhywfaint o broblem. 310 00:14:12,980 --> 00:14:16,470 Mae gennych rhywfaint o nam yn eich cod sy'n chi Ni ellir datrys, mae'n rhesymol i chi 311 00:14:16,470 --> 00:14:18,039 i ddangos eich cod i rywun arall. 312 00:14:18,039 --> 00:14:21,080 Mae ffrind hyd yn oed yn y dosbarth, ffrind yn eistedd nesaf i chi ar oriau swyddfa, 313 00:14:21,080 --> 00:14:22,680 neu aelod o'r staff. 314 00:14:22,680 --> 00:14:25,810 Ond efallai na fyddant yn dangos eu cod i chi. 315 00:14:25,810 --> 00:14:27,710 >> Mewn geiriau eraill, mae ateb i'ch question-- 316 00:14:27,710 --> 00:14:29,940 Angen arnaf help-- nid oh, dyma fy cod. 317 00:14:29,940 --> 00:14:32,440 Cymerwch olwg ar hyn ac diddwytho oddi wrtho yr hyn yr ydych yn. 318 00:14:32,440 --> 00:14:34,580 Yn awr, wrth gwrs, mae yna ffordd yn glir i gêm 319 00:14:34,580 --> 00:14:37,760 system hon lle 'n annhymerus' yn dangos i chi fy cod cyn cael cwestiwn. 320 00:14:37,760 --> 00:14:40,150 Rydych yn dangos i mi fy eich cod cyn cael cwestiwn. 321 00:14:40,150 --> 00:14:45,870 Ond gweler y maes llafur eto ar gyfer y manylion mân ble y llinell hon yw. 322 00:14:45,870 --> 00:14:50,606 >> Dim ond yn hyn beintio'r darlun a rhannu mor dryloyw ag y bo modd 323 00:14:50,606 --> 00:14:53,480 lle yr ydym yn yn y blynyddoedd diwethaf, hyn yw nifer yr achosion Bwrdd Ad 324 00:14:53,480 --> 00:14:56,260 bod CS50 wedi cael dros y saith mlynedd diwethaf. 325 00:14:56,260 --> 00:14:58,717 Gyda 14 o achosion y gostyngiad mwyaf diweddar. 326 00:14:58,717 --> 00:15:01,300 O ran y myfyrwyr sy'n cymryd rhan, yr oedd yn 20 rhai myfyrwyr od 327 00:15:01,300 --> 00:15:02,490 gostyngiad hwn yn y gorffennol. 328 00:15:02,490 --> 00:15:05,670 Cafwyd uchafbwynt o 33 fyfyrwyr rai blynyddoedd yn ôl. 329 00:15:05,670 --> 00:15:08,830 Llawer ohonynt yn anffodus bellach yma ar y campws. 330 00:15:08,830 --> 00:15:13,100 >> Mae myfyrwyr yn cymryd rhan fel canran o'r dosbarth yn hanesyddol wedi amrywio o 0% 331 00:15:13,100 --> 00:15:17,300 i 5.3%, sydd ond i ddweud mae hwn yn flynyddol yn her. 332 00:15:17,300 --> 00:15:20,390 A thuag at y diben hwnnw, yr hyn yr ydym am ei wneud yw cyfleu un 333 00:15:20,390 --> 00:15:24,310 ein bod yn dd-- unig FYI-- cymharu yn mae tegwch i'r myfyrwyr hynny sy'n 334 00:15:24,310 --> 00:15:26,520 yn dilyn y llinell yn unol â hynny. 335 00:15:26,520 --> 00:15:29,620 Rydym yn gwneud cymharu pob gyfredol cyflwyniadau yn erbyn yr holl deithiau yn y gorffennol 336 00:15:29,620 --> 00:15:30,840 o'r blynyddoedd lawer diwethaf. 337 00:15:30,840 --> 00:15:33,620 >> Rydym yn gwybod hefyd sut i Google o gwmpas ac yn dod o hyd i ystorfeydd cod 338 00:15:33,620 --> 00:15:36,360 , fforymau trafod ar-lein , safleoedd swyddi ar-lein ar-lein. 339 00:15:36,360 --> 00:15:41,580 Os gall myfyriwr ddod o hyd iddo, gallwn yn sicr ei chael yn gymaint ag i ni yn anffodus yn ei wneud. 340 00:15:41,580 --> 00:15:45,330 Felly, beth byddwch yn gweld yn y maes llafur fodd bynnag, yw cymal gofid hwn. 341 00:15:45,330 --> 00:15:47,500 Gallaf yn sicr gwerthfawrogi, ac yr ydym i gyd wedi 342 00:15:47,500 --> 00:15:50,870 staff wedi gwneud y cwrs fel hyn, neu mae hyn yn un ei hun dros amser, 343 00:15:50,870 --> 00:15:53,997 yn sicr yn gwybod sut beth yw pryd bywyd yn cael yn y ffordd pan fydd gennych 344 00:15:53,997 --> 00:15:56,080 hwyr ryw nos deadline-- nid yn unig yn y dosbarth hwn, 345 00:15:56,080 --> 00:15:58,660 ond another-- pan fyddwch chi'n hollol flinedig, dan straen allan, 346 00:15:58,660 --> 00:16:00,659 cael rif gormod o bethau eraill i'w gwneud. 347 00:16:00,659 --> 00:16:03,660 Byddwch yn gwneud ar ryw adeg yn bywyd yn sicr yn ddrwg, efallai hwyr 348 00:16:03,660 --> 00:16:04,620 penderfyniad nos. 349 00:16:04,620 --> 00:16:06,520 >> Felly unol â'r maes llafur, mae cymal hwn, 350 00:16:06,520 --> 00:16:10,629 o'r fath, os o fewn 72 awr o wneud rhai penderfyniadau gwael, ydych yn berchen i fyny ato 351 00:16:10,629 --> 00:16:12,670 ac yn estyn allan i mi ac un o benaethiaid y cwrs yn 352 00:16:12,670 --> 00:16:14,300 a chawn sgwrs. 353 00:16:14,300 --> 00:16:16,220 Byddwn yn trin pethau yn fewnol yn y gobeithion 354 00:16:16,220 --> 00:16:18,770 ohono yn dod yn fwy o foment addysgu neu wers bywyd, 355 00:16:18,770 --> 00:16:22,120 ac nid rhywbeth gyda oblygiadau arbennig o llym 356 00:16:22,120 --> 00:16:24,570 fel y byddech yn ei weld ar y siartiau hyn yma. 357 00:16:24,570 --> 00:16:26,540 >> Felly dyna tôn ddifrifol iawn. 358 00:16:26,540 --> 00:16:29,960 Gadewch i ni oedi am ond ychydig eiliad i dorri'r tensiwn. 359 00:16:29,960 --> 00:16:34,442 >> [CHWARAE CERDDORIAETH] 360 00:16:34,442 --> 00:17:17,768 361 00:17:17,768 --> 00:17:20,250 >> DAVID J. Malan: pob hawl, felly sut yr oedd bod am segue? 362 00:17:20,250 --> 00:17:22,059 I bynciau sylfaenol heddiw. 363 00:17:22,059 --> 00:17:23,859 Y cyntaf o'r rhain yw tynnu dwr. 364 00:17:23,859 --> 00:17:26,900 Arall sydd yn mynd i fod y cynrychiolaeth o ddata, sy'n dweud y gwir 365 00:17:26,900 --> 00:17:31,640 yn ffordd wirioneddol sych o ddweud sut y gallwn mynd ati i ddatrys problemau a meddwl 366 00:17:31,640 --> 00:17:33,250 am ddatrys problemau? 367 00:17:33,250 --> 00:17:37,285 Felly, rydych wedi ei weld yn Scratch, ac nad ydych wedi gweld efallai eisoes mewn pset1 gyda C 368 00:17:37,285 --> 00:17:39,930 eich bod nid yn unig yn gallu defnyddio swyddogaethau, fel printf, 369 00:17:39,930 --> 00:17:42,770 bod pobl eraill yn mlynedd diwethaf ysgrifennodd ar eich cyfer. 370 00:17:42,770 --> 00:17:45,340 Gallwch hefyd ysgrifennu eich swyddogaethau eu hunain. 371 00:17:45,340 --> 00:17:48,440 >> A hyd yn oed er efallai na fydd gennych gwneud hyn yn C, ac yn dweud y gwir yn pset1 372 00:17:48,440 --> 00:17:51,866 Nid oes gwir angen i chi ysgrifennu eich swyddogaeth ei hun oherwydd bod y problem-- 373 00:17:51,866 --> 00:17:53,990 tra efallai frawychus yn yn gyntaf glance-- byddwch yn gweld 374 00:17:53,990 --> 00:17:57,910 Gall y pen draw yn cael ei datrys gyda nid yw pob bod llawer o linellau o god. 375 00:17:57,910 --> 00:18:01,140 Ond gyda dweud hynny, o ran o ysgrifennu eich swyddogaeth eich hun, 376 00:18:01,140 --> 00:18:03,570 sylweddoli bod C yn rhoi chi y gallu hwn. 377 00:18:03,570 --> 00:18:06,940 >> Rydw i'n mynd i fynd i mewn cod ffynhonnell heddiw, sydd ar gael yn barod ar-lein, 378 00:18:06,940 --> 00:18:10,900 ac yr wyf i'n mynd i fynd yn ei flaen ac yn agored sefydlu rhaglen o'r enw 0.C swyddogaeth, 379 00:18:10,900 --> 00:18:14,620 ac mewn swyddogaeth sero byddwn yn gweld ychydig o bethau. 380 00:18:14,620 --> 00:18:19,160 Yn llinellau cyntaf 18 drwy 23 yw fy mhrif swyddogaeth. 381 00:18:19,160 --> 00:18:22,414 Ac yn awr ein bod yn dechrau darllen cod nad ydym yn ysgrifennu ar y hedfan, 382 00:18:22,414 --> 00:18:25,080 ond yn lle hynny rwyf wedi ysgrifennu o flaen llaw neu os ydych yn broblem sy'n gosod 383 00:18:25,080 --> 00:18:27,910 Gallai gael o cael ei ysgrifennu o flaen llaw. 384 00:18:27,910 --> 00:18:30,040 Ffordd dda i ddechrau darllen cod rhywun arall 385 00:18:30,040 --> 00:18:31,400 yn edrych am y prif swyddogaeth. 386 00:18:31,400 --> 00:18:34,420 Chyfrif i maes lle y cofnod pwynt yw i redeg y rhaglen, 387 00:18:34,420 --> 00:18:36,580 ac yna dilyn ei bod yn rhesymegol oddi yno. 388 00:18:36,580 --> 00:18:40,190 >> Felly, mae'r rhaglen hon yn ôl pob golwg printiau eich enw ac yna colon. 389 00:18:40,190 --> 00:18:42,490 Yna, rydym yn defnyddio GetString o'r llyfrgell CS50 390 00:18:42,490 --> 00:18:46,050 i gael llinyn, neu air neu ymadrodd oddi wrth y defnyddiwr ar y bysellfwrdd. 391 00:18:46,050 --> 00:18:48,390 Ac yna mae hyn yn beth PrintName Yma--. 392 00:18:48,390 --> 00:18:51,420 >> Nawr nid PrintName yn swyddogaeth a ddaw gyda C. 393 00:18:51,420 --> 00:18:52,970 Dyw hi ddim yn io.h. safonol 394 00:18:52,970 --> 00:18:55,570 Dyw hi ddim yn CS50.h. 395 00:18:55,570 --> 00:18:57,880 Mae'n braidd yn yr un ffeil. 396 00:18:57,880 --> 00:19:01,000 Sylwch os byddaf yn sgroliwch i lawr linellau bit-- 25 i 27-- 397 00:19:01,000 --> 00:19:05,330 'i' jyst yn ffordd 'n bert o sylwadau eich cod gan ddefnyddio'r sêr a slaes. 398 00:19:05,330 --> 00:19:07,320 Mae hwn yn aml-linell sylwadau, ac mae hyn yn unig 399 00:19:07,320 --> 00:19:10,570 fy disgrifiad yn las o pa swyddogaeth hon yn ei wneud. 400 00:19:10,570 --> 00:19:14,530 >> Oherwydd mewn llinellau 28 drwy 31, Rydw i wedi ysgrifennu swyddogaeth super syml 401 00:19:14,530 --> 00:19:16,280 y mae ei enw i yw PrintName. 402 00:19:16,280 --> 00:19:19,560 Mae'n cymryd sawl dadleuon fyddech chi'n ei ddweud? 403 00:19:19,560 --> 00:19:25,120 Felly un argument-- oherwydd bod un ddadl a restrir y tu mewn i'r cromfachau. 404 00:19:25,120 --> 00:19:27,000 Mae'r math o sy'n Llinynnol. 405 00:19:27,000 --> 00:19:30,240 Pa un yw dweud PrintName Mae fel blwch du hwn 406 00:19:30,240 --> 00:19:32,910 neu swyddogaeth sy'n cymryd fel mewnbwn llinyn. 407 00:19:32,910 --> 00:19:35,730 >> Ac enw y Llinyn gyfleus fydd Enw. 408 00:19:35,730 --> 00:19:37,840 Nid yw S, nid N, ond Enw. 409 00:19:37,840 --> 00:19:41,090 Felly beth mae PrintName yn ei wneud? 410 00:19:41,090 --> 00:19:42,210 Mae'n syml 'n glws. 411 00:19:42,210 --> 00:19:45,390 Yn union fel un llinell o cod ar gyfer y printf, ond mae'n debyg ei fod 412 00:19:45,390 --> 00:19:47,950 printiau allan "Helo," felly ac yn y blaen. 413 00:19:47,950 --> 00:19:50,070 Lle mae'r felly ac yn y blaen yn dod o'r ddadl. 414 00:19:50,070 --> 00:19:52,300 >> Yn awr nid yw hyn yn ddatblygiad newydd enfawr yma. 415 00:19:52,300 --> 00:19:56,710 Really, yr wyf wedi cymryd rhaglen a allai wedi cael eu hysgrifennu gydag un llinell o god 416 00:19:56,710 --> 00:20:00,190 drwy roi hyn i fyny yma, a newidiodd i rywbeth 417 00:20:00,190 --> 00:20:04,920 sy'n cynnwys tua chwech neu saith neu hynny llinellau o god yr holl ffordd i lawr yma. 418 00:20:04,920 --> 00:20:08,190 >> Ond y ymarfer o egwyddor a elwir yn tynnu. 419 00:20:08,190 --> 00:20:12,550 Fath o crynhoi tu mewn i newydd swyddogaeth sydd wedi enw, a gwell 420 00:20:12,550 --> 00:20:14,590 ac eto yr enw hwnnw yn llythrennol dweud beth mae'n ei wneud. 421 00:20:14,590 --> 00:20:16,880 Yr wyf yn golygu printf-- nid yw hynny'n arbennig o ddisgrifiadol. 422 00:20:16,880 --> 00:20:18,932 Os wyf am greu darn pos, neu os byddaf yn 423 00:20:18,932 --> 00:20:21,140 am greu swyddogaeth hynny printiau enw rhywun, 424 00:20:21,140 --> 00:20:23,230 harddwch o wneud hyn yw fy mod yn gallu mewn gwirionedd yn 425 00:20:23,230 --> 00:20:27,170 rhoi enw sy'n swyddogaeth sy'n disgrifio beth mae'n ei wneud. 426 00:20:27,170 --> 00:20:29,844 >> Nawr, mae'n cymryd mewn mewnbwn sy'n Rwyf wedi galw enw fympwyol, 427 00:20:29,844 --> 00:20:32,760 ond mae hynny hefyd yn rhyfeddol o ddisgrifiadol yn lle bod ychydig yn fwy 428 00:20:32,760 --> 00:20:36,140 generig megis S. A ddi-rym, am y tro, yn unig yn golygu 429 00:20:36,140 --> 00:20:38,330 nad yw'r swyddogaeth hon yn llaw fi'n ôl unrhyw beth. 430 00:20:38,330 --> 00:20:41,127 Dyw hi ddim yn hoffi GetString sy'n llythrennol yn fy dwylo yn ôl llinyn 431 00:20:41,127 --> 00:20:43,960 fel y gwnaethom gyda'r darnau o bapur gyda'ch cyd-ddisgyblion yr wythnos diwethaf, 432 00:20:43,960 --> 00:20:45,990 ond yn hytrach 'i jyst yn cael effaith ochr. 433 00:20:45,990 --> 00:20:48,080 Mae'n printiau rhywbeth i'r sgrin. 434 00:20:48,080 --> 00:20:53,880 >> Felly, ar ddiwedd y dydd, os wyf yn yn gwneud swyddogaeth-0, ./function-0, 435 00:20:53,880 --> 00:20:55,450 byddwn yn gweld ei fod yn gofyn am fy enw i. 436 00:20:55,450 --> 00:20:58,150 Yr wyf deipio David, ac mae'n mathau allan fy enw. 437 00:20:58,150 --> 00:21:01,080 Os byddaf yn ei wneud eto gyda Rob, mae'n mynd i ddweud "Helo, Rob." 438 00:21:01,080 --> 00:21:04,280 Felly syniad syml, ond efallai allosod o hyn yn feddyliol 439 00:21:04,280 --> 00:21:06,750 fod fel eich rhaglenni gael ychydig yn fwy cymhleth, 440 00:21:06,750 --> 00:21:10,290 a ydych am ysgrifennu darn o cod a galwadau sy'n code-- Ysgogi'r 441 00:21:10,290 --> 00:21:13,270 bod code-- gan rai disgrifiadol enwi fel PrintName, 442 00:21:13,270 --> 00:21:15,600 C yn fforddio gallu hwn i ni. 443 00:21:15,600 --> 00:21:17,660 >> Dyma enghraifft syml arall. 444 00:21:17,660 --> 00:21:22,940 Er enghraifft, os wyf yn agor ffeil o heddiw o'r enw return.c, 445 00:21:22,940 --> 00:21:24,270 sylwi ar yr hyn yr wyf wedi ei wneud yma. 446 00:21:24,270 --> 00:21:26,330 Mae'r rhan fwyaf o'r hyn brif swyddogaeth yw printf. 447 00:21:26,330 --> 00:21:30,360 Yr wyf yn gyntaf fympwyol ymgychwyn yn amrywiol o'r enw x i'r rhif 2. 448 00:21:30,360 --> 00:21:34,110 Yna, yr wyf yn argraffu "x yn awr % Ff "pasio yn werth x. 449 00:21:34,110 --> 00:21:35,500 Felly, Im 'jyst yn dweud yr hyn y mae. 450 00:21:35,500 --> 00:21:37,208 >> Nawr Im 'jyst boldly hawlio gyda printf. 451 00:21:37,208 --> 00:21:42,050 Yr wyf yn cubing y gwerth x, ac rwy'n gwneud hynny drwy ffonio swyddogaeth 452 00:21:42,050 --> 00:21:45,590 Gelwir ciwb pasio yn x wrth i'r ddadl, 453 00:21:45,590 --> 00:21:49,300 ac yna arbed y cynnyrch yn y newidyn ei hun, x. 454 00:21:49,300 --> 00:21:51,340 Felly rwy'n clobbering werth x. 455 00:21:51,340 --> 00:21:53,380 Dw i'n gor-redol y werth x gyda beth bynnag 456 00:21:53,380 --> 00:21:56,510 ganlyniad i alw swyddogaeth ciwb mae hyn yn. 457 00:21:56,510 --> 00:21:59,530 Ac yna Fi jyst argraffu rhai stwff blewog yma yn dweud beth wnes i. 458 00:21:59,530 --> 00:22:01,600 >> Felly, beth wedyn yw ciwb? 459 00:22:01,600 --> 00:22:03,510 Sylwi beth sydd yn sylfaenol gwahanol yma. 460 00:22:03,510 --> 00:22:05,540 Rwyf wedi cael y swyddogaeth enw fel o'r blaen. 461 00:22:05,540 --> 00:22:08,270 Rwyf wedi penodi enw ar gyfer dadl. 462 00:22:08,270 --> 00:22:11,650 Y tro hwn fe'i gelwir n yn lle enw, ond gallwn ei alw unrhyw beth yr wyf eisiau. 463 00:22:11,650 --> 00:22:12,650 Ond mae hyn yn wahanol. 464 00:22:12,650 --> 00:22:14,080 Mae'r peth ar y chwith. 465 00:22:14,080 --> 00:22:16,290 Yn flaenorol yr oedd pa allweddair? 466 00:22:16,290 --> 00:22:16,870 Bechgyn. 467 00:22:16,870 --> 00:22:18,580 Nawr ei fod yn amlwg yn int. 468 00:22:18,580 --> 00:22:20,630 >> Felly beth sydd efallai yn cymryd i ffwrdd? 469 00:22:20,630 --> 00:22:24,090 Tra Yn dynodi bod unedau gwag fath o nothingness, a dyna oedd yr achos. 470 00:22:24,090 --> 00:22:25,970 Dychwelodd PrintName dim byd. 471 00:22:25,970 --> 00:22:27,942 Yr oedd yn rhywbeth, ond nid oedd yn llaw fi'n ôl 472 00:22:27,942 --> 00:22:30,650 rhywbeth y gallwn i ei roi ar y ochr chwith arwydd cyfartal 473 00:22:30,650 --> 00:22:32,460 fel yr wyf wedi ei wneud yma ar linell 22. 474 00:22:32,460 --> 00:22:36,780 >> Felly os wyf yn dweud i mewn ar-lein 30, beth sy'n bod yn ôl pob tebyg gan awgrymu 475 00:22:36,780 --> 00:22:38,610 am yr hyn y ciwb yn ei wneud i mi? 476 00:22:38,610 --> 00:22:41,110 Yeah? 477 00:22:41,110 --> 00:22:42,310 Mae'n dychwelyd yn gyfanrif. 478 00:22:42,310 --> 00:22:44,590 Felly mae'n dwylo fi yn ôl, ar gyfer enghraifft, darn o bapur 479 00:22:44,590 --> 00:22:46,580 y mae wedi ysgrifennu yr ateb. 480 00:22:46,580 --> 00:22:50,130 2 torri'n giwbiau, neu 3 torri'n giwbiau, neu 4 cubed-- beth bynnag yr wyf yn pasio i mewn, 481 00:22:50,130 --> 00:22:51,540 a sut yr oedd i mi weithredu hyn? 482 00:22:51,540 --> 00:22:54,810 Wel, dim ond amserau n n n amserau yw sut y gallwn yn giwbiau gwerth. 483 00:22:54,810 --> 00:22:57,110 Felly eto, super syml syniad, ond dangosol 484 00:22:57,110 --> 00:23:00,100 yn awr sut y gallwn ysgrifennu swyddogaethau sydd mewn gwirionedd oedd ni yn ôl 485 00:23:00,100 --> 00:23:02,380 gwerthoedd a allai fod o ddiddordeb. 486 00:23:02,380 --> 00:23:05,740 >> Gadewch i ni edrych ar un enghraifft olaf Gelwir yma swyddogaeth un. 487 00:23:05,740 --> 00:23:08,530 Yn yr enghraifft hon, bydd yn dechrau i gael mwy cymhellol. 488 00:23:08,530 --> 00:23:12,400 Felly, mewn un swyddogaeth, mae hyn rhybudd program-- yn y pen draw 489 00:23:12,400 --> 00:23:14,920 yn galw swyddogaeth o'r enw GetPositiveInt. 490 00:23:14,920 --> 00:23:17,800 Nid GetPositiveInt yn swyddogaeth yn y llyfrgell CS50, 491 00:23:17,800 --> 00:23:20,400 ond fe benderfynon rydym byddai'n hoffi i fodoli. 492 00:23:20,400 --> 00:23:24,550 >> Felly, os ydym yn sgroliwch i lawr yn ddiweddarach yn y ffeil, sylwi sut yr wyf yn mynd ati i weithredu 493 00:23:24,550 --> 00:23:26,560 cael int cadarnhaol, ac yr wyf yn dweud ei fod yn fwy cymhellol 494 00:23:26,560 --> 00:23:28,992 gan fod hwn yn gweddus nifer o linellau o god. 495 00:23:28,992 --> 00:23:30,700 Nid dim ond un gwirion rhaglen fawr o deganau. 496 00:23:30,700 --> 00:23:33,870 Mae'n mewn gwirionedd yn ei got rhai gwirio gwall ac yn gwneud rhywbeth mwy defnyddiol. 497 00:23:33,870 --> 00:23:38,470 >> Felly os nad ydych wedi gweld y walkthrough fideos yr ydym wedi eu hymgorffori yn pset1, 498 00:23:38,470 --> 00:23:42,350 yn gwybod fod hyn yn fath o dolen yn C, debyg o ran ysbryd 499 00:23:42,350 --> 00:23:44,270 at y math o bethau Scratch gallu ei wneud. 500 00:23:44,270 --> 00:23:46,320 Ac yn gwneud yn dweud wneud hyn. 501 00:23:46,320 --> 00:23:47,500 Argraffwch y dudalen hon allan. 502 00:23:47,500 --> 00:23:51,860 Yna mynd yn ei flaen a chael n-- cael int ac yn ei storio mewn n, 503 00:23:51,860 --> 00:23:55,760 a chadw gwneud hyn dro ar ôl tro ac eto, ar yr amod bod n yn llai nag un. 504 00:23:55,760 --> 00:23:58,720 >> Felly n yn mynd i fod yn llai nag un dim ond os na fydd y dynol sy'n cydweithio. 505 00:23:58,720 --> 00:24:01,980 Os yw ef neu hi yn teipio yn 0 neu -1 neu -50, 506 00:24:01,980 --> 00:24:04,790 dolen hyn yn mynd i gadw gweithredu dro ar ôl tro. 507 00:24:04,790 --> 00:24:07,549 Ac yn y pen draw yn sylwi, yr wyf yn yn syml yn dychwelyd y gwerth. 508 00:24:07,549 --> 00:24:09,590 Felly nawr mae gennym swyddogaeth Byddai hynny wedi bod yn braf 509 00:24:09,590 --> 00:24:14,040 pe byddai CS50 rhoi ar waith yng CS50.h a CS50.c ar eich rhan, 510 00:24:14,040 --> 00:24:16,520 ond yma y gallwn yn awr weithredu hyn ein hunain. 511 00:24:16,520 --> 00:24:19,230 >> Ond dau sylwadau ar rai manylion allweddol. 512 00:24:19,230 --> 00:24:24,390 One-- pam yr wyf yn datgan int n, yn eich barn chi, ar-lein 29 513 00:24:24,390 --> 00:24:27,139 hytrach na dim ond yn ei wneud hyn yma, sydd yn 514 00:24:27,139 --> 00:24:28,930 fwy cyson â hyn a wnaethom yr wythnos diwethaf? 515 00:24:28,930 --> 00:24:29,430 Yeah? 516 00:24:29,430 --> 00:24:34,485 517 00:24:34,485 --> 00:24:35,110 Mae meddwl da. 518 00:24:35,110 --> 00:24:37,080 Felly os ydym yn ei roi yma, 'i' fel pe baem 519 00:24:37,080 --> 00:24:39,110 cadw datgan ei dro ar ôl tro. 520 00:24:39,110 --> 00:24:42,000 Mae hynny mewn ac o ei hun yn Nid yw yn broblem, fel y cyfryw, 521 00:24:42,000 --> 00:24:43,940 oherwydd ein bod dim ond angen y gwerth unwaith ac yna 522 00:24:43,940 --> 00:24:45,330 rydyn ni'n mynd i gael un newydd beth bynnag. 523 00:24:45,330 --> 00:24:45,940 Ond mae meddwl da. 524 00:24:45,940 --> 00:24:46,440 Yeah? 525 00:24:46,440 --> 00:24:52,770 526 00:24:52,770 --> 00:24:53,330 >> Close. 527 00:24:53,330 --> 00:24:59,030 Felly, am fy mod i wedi datgan n ar llinell 29 y tu allan i'r ddolen, 528 00:24:59,030 --> 00:25:01,390 ei fod yn hygyrch ledled swyddogaeth hon i gyd. 529 00:25:01,390 --> 00:25:05,400 Nid y swyddogaethau eraill oherwydd n yn dal i fod y tu mewn o'r rhain cyrliog 530 00:25:05,400 --> 00:25:06,470 bresys yma. 531 00:25:06,470 --> 00:25:07,940 So-- siwr. 532 00:25:07,940 --> 00:25:12,430 533 00:25:12,430 --> 00:25:12,940 >> Yn union. 534 00:25:12,940 --> 00:25:14,356 Felly, mae hyn yn oed yn fwy at y pwynt. 535 00:25:14,356 --> 00:25:18,600 Os byddwn yn lle hynny datgan n i'r dde yma ar linell 32, 536 00:25:18,600 --> 00:25:22,340 ei fod yn broblematig oherwydd dyfalu ble arall mae angen i mi gael gafael arno? 537 00:25:22,340 --> 00:25:25,620 On line 34, ac mae'r rheol syml o bawd yw 538 00:25:25,620 --> 00:25:30,060 y gallwch ond defnyddio newidyn tu mewn i'r braces cyrliog mwyaf diweddar 539 00:25:30,060 --> 00:25:31,420 yr ydych yn datgan iddo. 540 00:25:31,420 --> 00:25:35,230 >> Yn anffodus, llinell 34 yw un llinell yn rhy hwyr, 541 00:25:35,230 --> 00:25:38,560 am fy mod i wedi cau yn barod y Brace cyrliog ar-lein 33 542 00:25:38,560 --> 00:25:41,220 sy'n cyfateb i'r Brace cyrliog ar linell 30. 543 00:25:41,220 --> 00:25:44,180 Ac felly mae hyn yn ffordd o ddweud bod hyn yn int newidyn yn cael ei sgopio, 544 00:25:44,180 --> 00:25:46,970 fel petai, i ddim ond y tu mewn o braces cyrliog hynny. 545 00:25:46,970 --> 00:25:48,910 Mae'n nid yn unig yn bodoli y tu allan ohonyn nhw. 546 00:25:48,910 --> 00:25:51,580 >> Felly yn wir, os wyf yn gwneud hyn anghywir, gadewch i mi achub y cod 547 00:25:51,580 --> 00:25:53,530 fel y mae'n ysgrifenedig yw-- anghywir. 548 00:25:53,530 --> 00:25:57,990 Gadewch i mi fynd yn ei flaen ac yn gwneud swyddogaeth-1, a chamgymeriadau notice--. 549 00:25:57,990 --> 00:26:03,502 Defnyddio dynodwr heb ei ddatgan n on line 35, sydd yn iawn yma. 550 00:26:03,502 --> 00:26:05,210 Ac os ydym yn sgrolio i fyny ymhellach, un arall. 551 00:26:05,210 --> 00:26:08,750 Defnyddio heb ei ddatgan dynodwr n ar linell 34. 552 00:26:08,750 --> 00:26:11,200 >> Felly y compiler, chlang, yn sylwi ei fod yn dim ond 553 00:26:11,200 --> 00:26:13,720 yn bodoli er bod amlwg ei fod yno ar eu golwg. 554 00:26:13,720 --> 00:26:16,090 Felly ateb syml yn datgan ei fod yno. 555 00:26:16,090 --> 00:26:18,790 >> Nawr, gadewch i mi sgrolio i ben y ffeil. 556 00:26:18,790 --> 00:26:21,080 Beth sy'n neidio allan ar chi fel sef ychydig yn wahanol 557 00:26:21,080 --> 00:26:23,070 o'r pethau yr ydym yn edrych ar yr wythnos diwethaf? 558 00:26:23,070 --> 00:26:26,990 Nid yn unig y mae gen i enw, nid yn unig yn ei wneud Gennyf rai miniog yn cynnwys hyd top, 559 00:26:26,990 --> 00:26:29,340 Mae gen i rywbeth rwy'n galw prototeip. 560 00:26:29,340 --> 00:26:36,100 Nawr bod yn edrych yn ofnadwy yn debyg i'r hyn rydym yn jyst yn gweld funud yn ôl ar-lein 27. 561 00:26:36,100 --> 00:26:39,230 >> Felly gadewch i ni gasglu o wahanol neges gwall pam yr wyf wedi gwneud hyn. 562 00:26:39,230 --> 00:26:42,050 Gadewch i mi fynd yn ei flaen a dileu llinellau hyn yno. 563 00:26:42,050 --> 00:26:44,240 Ac felly rydym yn gwybod dim am prototeip. 564 00:26:44,240 --> 00:26:45,430 Ail-wneud y ffeil. 565 00:26:45,430 --> 00:26:46,890 Gwneud swyddogaeth un. 566 00:26:46,890 --> 00:26:48,090 Ac yn awr, damn, pedwar camgymeriadau. 567 00:26:48,090 --> 00:26:50,220 Gadewch i sgrolio i fyny at yr un cyntaf. 568 00:26:50,220 --> 00:26:55,070 >> Datganiad Ymhlyg o swyddogaeth cael int cadarnhaol yn annilys yn C99. 569 00:26:55,070 --> 00:26:57,780 C99 yn unig yn golygu y 1999 fersiwn o'r iaith 570 00:26:57,780 --> 00:26:59,710 C, sef yr hyn yr ydym yn wir yn defnyddio. 571 00:26:59,710 --> 00:27:01,050 Felly beth mae hyn yn ei olygu? 572 00:27:01,050 --> 00:27:05,250 Wel C-- ac yn fwy penodol C compilers-- rhaglenni eithaf fud. 573 00:27:05,250 --> 00:27:07,420 Maent yn unig yn gwybod beth ydych chi wedi dweud wrthynt, a dyna 574 00:27:07,420 --> 00:27:08,960 mewn gwirionedd yn thematig o wythnos diwethaf. 575 00:27:08,960 --> 00:27:12,910 >> Y broblem yw, os byddaf yn mynd am weithredu enw i fyny fan hyn, 576 00:27:12,910 --> 00:27:17,640 ac yr wyf yn galw swyddogaeth o'r enw GetPositiveInt yma ar llinell 20, 577 00:27:17,640 --> 00:27:22,520 swyddogaeth honno nid yn dechnegol yn gwneud yn bodoli nes bod y compiler yn gweld llinell 27. 578 00:27:22,520 --> 00:27:25,450 Yn anffodus, mae'r compiler yn gwneud pethau brig, i lawr, i'r chwith, i'r dde, 579 00:27:25,450 --> 00:27:29,580 felly gan nad yw wedi gweld y gweithredu GetPositiveInt, 580 00:27:29,580 --> 00:27:32,400 ond mae'n gweld chi'n ceisio ei ddefnyddio i fyny yma, 581 00:27:32,400 --> 00:27:35,810 dim ond mae'n mynd i bail-- gweiddi ar chi gwall Message-- efallai 582 00:27:35,810 --> 00:27:38,440 cryptig, ac nid mewn gwirionedd yn llunio y ffeil. 583 00:27:38,440 --> 00:27:41,940 >> Felly, mae hyn a elwir yn prototeip i fyny yma, mae'n rhaid cyfaddef diswyddo. 584 00:27:41,940 --> 00:27:47,870 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. 585 00:27:47,870 --> 00:27:51,020 Byddai Void yn fwy priodol, er mwyn i ni annhymerus llythrennol adysgrifia a bastio y tro hwn. 586 00:27:51,020 --> 00:27:52,854 Yr wyf yn copïo a gludo yn llythrennol. 587 00:27:52,854 --> 00:27:54,270 Really yn union fel fel briwsion bara. 588 00:27:54,270 --> 00:27:56,260 >> Ychydig cliw i'r compiler. 589 00:27:56,260 --> 00:27:58,860 Nid wyf yn gwybod beth y mae hyn yn ei wneud eto, ond rwy'n addo i chi 590 00:27:58,860 --> 00:28:00,260 y bydd yn bodoli yn y pen draw. 591 00:28:00,260 --> 00:28:04,010 A dyna pam mae hyn line-- mewn unol 16-- dod i ben gyda hanner colon. 592 00:28:04,010 --> 00:28:05,486 Mae'n ddiangen drwy ddylunio. 593 00:28:05,486 --> 00:28:05,986 Ie? 594 00:28:05,986 --> 00:28:11,340 595 00:28:11,340 --> 00:28:14,360 >> Os na wnaethoch chi gysylltu eich llyfrgell i the-- oh, cwestiwn da. 596 00:28:14,360 --> 00:28:17,350 Sharp yn cynnwys gynhwysion ffeiliau header. 597 00:28:17,350 --> 00:28:20,040 Angen be-- dylai bron bob amser ar y brig 598 00:28:20,040 --> 00:28:23,270 o'r ffeil i gael similar-- gyfer union yr un rheswm, ie. 599 00:28:23,270 --> 00:28:26,430 Oherwydd yn safonol io.h yn llythrennol yn llinell 600 00:28:26,430 --> 00:28:30,560 fel hyn, ond gyda'r gair printf, a gyda'i dadleuon a'r math dychwelyd. 601 00:28:30,560 --> 00:28:33,310 Ac felly drwy wneud miniog yn cynnwys i fyny yma, yr hyn yr ydych chi'n ei wneud yn llythrennol 602 00:28:33,310 --> 00:28:36,380 yn copïo a gludo cynnwys rhywun arall yn ysgrifennu i fyny top. 603 00:28:36,380 --> 00:28:39,660 A thrwy hynny cluing eich cod i mewn i'r ffaith bod y swyddogaethau hynny'n bodoli. 604 00:28:39,660 --> 00:28:40,160 Yeah? 605 00:28:40,160 --> 00:28:47,520 606 00:28:47,520 --> 00:28:48,260 >> Yn hollol. 607 00:28:48,260 --> 00:28:51,690 Felly yn glyfar ac yn gywir iawn Byddai ateb fyddai, eich bod yn gwybod beth? 608 00:28:51,690 --> 00:28:53,760 Nid wyf yn gwybod beth yw prototeip yw, ond yr wyf yn gwybod 609 00:28:53,760 --> 00:28:56,390 os wyf yn deall bod C yn unig fud ac yn ailystyried top i'r gwaelod. 610 00:28:56,390 --> 00:28:57,820 Wel gadewch i ni roi hyn y mae am. 611 00:28:57,820 --> 00:29:01,650 Gadewch i dorri y cod, bastio i fyny top, ac yn awr yn gwthio prif lawr isod. 612 00:29:01,650 --> 00:29:03,470 Byddai hyn hefyd yn datrys y broblem. 613 00:29:03,470 --> 00:29:07,409 >> Ond gallech yn hawdd iawn dod o hyd i sefyllfa lle mae angen A i alw B, 614 00:29:07,409 --> 00:29:10,075 ac efallai B yn galw yn ôl i A. Mae'r yn rhywbeth a elwir yn recursion, 615 00:29:10,075 --> 00:29:11,370 a byddwn yn dod yn ôl at hynny. 616 00:29:11,370 --> 00:29:13,911 Ac mae'n bosibl na all neu fod yn dda peth, ond gallwch yn bendant 617 00:29:13,911 --> 00:29:15,110 torri'r datrysiad hwn. 618 00:29:15,110 --> 00:29:17,690 >> Ac ar ben hynny, yr wyf byddai hawlio arddull, 619 00:29:17,690 --> 00:29:20,760 yn enwedig pan fydd eich rhaglenni yn dod yn hyn hir a hyn o hyd, 620 00:29:20,760 --> 00:29:23,064 'i' jyst super gyfleus i roi prif ar y brig 621 00:29:23,064 --> 00:29:25,730 am ei fod y peth mwyaf rhaglenwyr yn mynd i ofalu am. 622 00:29:25,730 --> 00:29:28,150 Ac felly mae'n ychydig glanach, Gellir dadlau, i wneud hynny ar y ffordd 623 00:29:28,150 --> 00:29:30,380 Yr wyf yn wreiddiol yn gwneud hynny gyda hyd yn oed prototeip 624 00:29:30,380 --> 00:29:33,396 er ei fod yn edrych ychydig yn yn ddi-waith ar yr olwg gyntaf. 625 00:29:33,396 --> 00:29:33,895 Yeah? 626 00:29:33,895 --> 00:29:36,472 627 00:29:36,472 --> 00:29:37,680 Mae'n ddrwg gennym, gallwch ddweud ei fod yn uwch? 628 00:29:37,680 --> 00:29:45,650 629 00:29:45,650 --> 00:29:49,580 >> Os byddwch yn newid lleoliadau'r gweithredu a'r prototeip? 630 00:29:49,580 --> 00:29:51,270 Felly dyna gwestiwn da. 631 00:29:51,270 --> 00:29:53,780 Os ydych yn ail-ddatgan hyn i lawr yma, gadewch i ni weld beth sy'n digwydd. 632 00:29:53,780 --> 00:29:55,530 Felly os wyf yn rhoi i lawr yma yma, rydych yn ei ddweud. 633 00:29:55,530 --> 00:29:57,860 634 00:29:57,860 --> 00:29:58,360 O, sori. 635 00:29:58,360 --> 00:29:58,859 Yn Uwch? 636 00:29:58,859 --> 00:30:02,000 637 00:30:02,000 --> 00:30:04,011 Hyd yn oed yn uwch. 638 00:30:04,011 --> 00:30:04,760 O, cwestiwn da. 639 00:30:04,760 --> 00:30:05,860 A fyddai'n annilysu'r swyddogaeth? 640 00:30:05,860 --> 00:30:08,901 Rydych yn gwybod, ar ôl yr holl flynyddoedd hyn, yr wyf yn ydynt erioed wedi rhoi prototeip wedyn. 641 00:30:08,901 --> 00:30:13,810 Felly gadewch i ni wneud yn gwneud swyddogaeth-1 ar ôl gwneud hynny. 642 00:30:13,810 --> 00:30:15,279 >> [Fwmial] 643 00:30:15,279 --> 00:30:16,320 DAVID J. Malan: O, aros. 644 00:30:16,320 --> 00:30:17,944 Yr ydym yn dal i orfod rhoi popeth i fyny top. 645 00:30:17,944 --> 00:30:21,400 Felly gadewch i ni wneud hyn i fyny yma, os ydw i'n deall eich cwestiwn yn gywir. 646 00:30:21,400 --> 00:30:24,700 Rydw i'n rhoi popeth, gan gynnwys prototeip uwchben prif, 647 00:30:24,700 --> 00:30:28,180 ond dw i'n rhoi'r prototeip o dan y gweithrediad. 648 00:30:28,180 --> 00:30:33,190 >> Felly os wyf yn gwneud un, Im 'yn cael yn ôl mae n newidyn heb ei ddefnyddio error--. 649 00:30:33,190 --> 00:30:37,280 650 00:30:37,280 --> 00:30:37,860 O, yno. 651 00:30:37,860 --> 00:30:38,360 Diolch yn fawr. 652 00:30:38,360 --> 00:30:39,430 Gadewch i ni weld, rydym yn cael gwared ar hyn. 653 00:30:39,430 --> 00:30:41,304 Dyna nam gwahanol, felly gadewch i ni anwybyddu hynny. 654 00:30:41,304 --> 00:30:43,910 Gadewch i ni wir yn ail-wneud hyn yn gyflym. 655 00:30:43,910 --> 00:30:48,100 >> Iawn, felly dadl data ddim ddefnyddir gan fformat Llinynnol 656 00:30:48,100 --> 00:30:52,310 n-- oh, mae hynny oherwydd Newidiais at y rhain yma. 657 00:30:52,310 --> 00:30:55,885 Mae pob hawl, rydym yn gwybod beth yw'r ateb yn mynd i'r canlynol-- gyd yn iawn, dyma ni. 658 00:30:55,885 --> 00:31:00,560 Ah, diolch am y cadarnhaol. 659 00:31:00,560 --> 00:31:03,430 Mae pob hawl, byddaf yn atgyweiria cod hwn after-- anwybyddwch hwn bug penodol 660 00:31:03,430 --> 00:31:08,300 gan fod hyn was-- mae'n gweithio yw'r ateb. 661 00:31:08,300 --> 00:31:11,560 >> Felly, nid yw'n trosysgrifo yr hyn yr ydych wedi ei wneud yn unig. 662 00:31:11,560 --> 00:31:14,800 Yr wyf yn amau ​​y compiler ei ysgrifennu yn y fath fodd 663 00:31:14,800 --> 00:31:18,420 ei fod yn anwybyddu eich prototeip oherwydd bod y corff, fel petai, 664 00:31:18,420 --> 00:31:20,922 y swyddogaeth eisoes cael eu gweithredu i fyny uwch. 665 00:31:20,922 --> 00:31:23,380 Byddai'n rhaid i mi ymgynghori mewn gwirionedd y llawlyfr y compiler 666 00:31:23,380 --> 00:31:26,171 i ddeall os oes unrhyw un arall oblygiad, ond ar yr olwg gyntaf 667 00:31:26,171 --> 00:31:29,290 dim ond drwy roi cynnig ac arbrofi, mae'n ymddangos bod unrhyw effaith. 668 00:31:29,290 --> 00:31:30,730 Gwestiwn da. 669 00:31:30,730 --> 00:31:33,660 >> Felly, gadewch i ni fwrw ymlaen yn awr, gan symud i ffwrdd o sgîl-effeithiau sy'n 670 00:31:33,660 --> 00:31:36,660 yn swyddogaethau sy'n gwneud rhywbeth fel weledol ar y sgrin gyda printf, 671 00:31:36,660 --> 00:31:38,090 ond nid ydynt yn dychwelyd gwerth. 672 00:31:38,090 --> 00:31:41,550 A swyddogaethau sydd wedi dychwelyd gwerthoedd fel rydym jyst yn gweld ychydig o. 673 00:31:41,550 --> 00:31:45,350 Rydym eisoes yn gweld syniad hwn o gwmpas, a byddwn yn gweld hyn dro ar ôl tro. 674 00:31:45,350 --> 00:31:47,210 Ond am nawr, unwaith eto, defnyddio synnwyr y fawd 675 00:31:47,210 --> 00:31:51,410 y gall newidyn yn cael ei defnyddio tu mewn i'r agorwyd yn fwyaf diweddar 676 00:31:51,410 --> 00:31:54,350 a bresys cyrliog gau wrth i ni Gwelodd yn yr enghraifft benodol. 677 00:31:54,350 --> 00:31:56,910 >> Ac fel y nodwyd gennych, mae ability-- 678 00:31:56,910 --> 00:32:00,040 fe allech chi ddatrys rhai o'r problemau hyn drwy roi newidyn yn fyd-eang 679 00:32:00,040 --> 00:32:01,290 ar frig y ffeil. 680 00:32:01,290 --> 00:32:03,630 Ond ym mhob achos bron byddem yn gwgu ar hynny, 681 00:32:03,630 --> 00:32:06,170 ac yn wir nid yw hyd yn oed yn mynd i mewn i'r ateb am y tro. 682 00:32:06,170 --> 00:32:09,890 Felly, am y tro, mae'r prydau parod yw bod newidynnau yn cael syniad hwn o gwmpas. 683 00:32:09,890 --> 00:32:13,430 >> Ond yn awr gadewch i ni edrych ar un arall ffordd sych o edrych mewn gwirionedd 684 00:32:13,430 --> 00:32:15,810 ar ryw 'n bert diddorol Manylion gweithredu. 685 00:32:15,810 --> 00:32:17,810 Sut y gallem gynrychioli gwybodaeth. 686 00:32:17,810 --> 00:32:20,370 Ac rydym eisoes yn edrych ar hyn yn ystod wythnos gyntaf y dosbarth. 687 00:32:20,370 --> 00:32:23,320 Gan edrych ar binaries, ac atgoffa ein hunain o'r degol. 688 00:32:23,320 --> 00:32:28,310 >> Ond yn galw i gof o wythnos diwethaf fod C wedi gwahanol fathau o ddata a sypiau mwy, 689 00:32:28,310 --> 00:32:30,600 ond y rhai mwyaf defnyddiol am y tro, a allai fod y rhain. 690 00:32:30,600 --> 00:32:36,030 Mae torgoch, neu gymeriad, sy'n digwydd i fod yn un beit, neu wyth cyfanswm ddarnau. 691 00:32:36,030 --> 00:32:40,060 A dyna i ddweud bod y maint o torgoch Dim ond un beit. 692 00:32:40,060 --> 00:32:45,370 Mae beit yw wyth did, felly mae hyn yn golygu bod gallwn gynrychioli faint o gymeriadau. 693 00:32:45,370 --> 00:32:47,320 Faint o lythyrau neu symbolau ar y bysellfwrdd 694 00:32:47,320 --> 00:32:49,210 os oes gennym un beit neu wyth o ddarnau. 695 00:32:49,210 --> 00:32:51,546 Meddyliwch yn ôl i wythnos sero. 696 00:32:51,546 --> 00:32:53,420 Os oes gennych wyth did, faint o gyfanswm y gwerthoedd 697 00:32:53,420 --> 00:32:55,503 allwch chi gynrychioli gyda patrymau o sero a rhai? 698 00:32:55,503 --> 00:32:58,170 699 00:32:58,170 --> 00:33:00,260 One-- fwy na hynny. 700 00:33:00,260 --> 00:33:03,490 Felly chyfanswm 256 os ydych yn dechrau cyfrif o sero. 701 00:33:03,490 --> 00:33:07,120 Felly os oes gennych wyth bits-- felly os ydym yn Roedd gan ein bylbiau deuaidd i fyny yma eto, 702 00:33:07,120 --> 00:33:12,180 gallem droi bylbiau golau rheiny ar ac oddi wrth unrhyw un o 256 o batrymau unigryw. 703 00:33:12,180 --> 00:33:13,640 >> Yn awr mae hyn yn ychydig yn broblemus. 704 00:33:13,640 --> 00:33:16,857 Nid yn gymaint ar gyfer Saesneg a ieithoedd rhamant, ond yn sicr 705 00:33:16,857 --> 00:33:19,190 pan fyddwch yn cyflwyno, am enghraifft, ieithoedd Asiaidd, a oedd yn 706 00:33:19,190 --> 00:33:22,580 cael llawer mwy o symbolau nag tebyg 26 llythrennau'r wyddor. 707 00:33:22,580 --> 00:33:24,390 Efallai y byddwn angen mewn gwirionedd mwy nag un beit. 708 00:33:24,390 --> 00:33:28,240 A diolch byth yn blynyddoedd diwethaf mae cymdeithas 709 00:33:28,240 --> 00:33:31,040 safonau eraill a fabwysiadwyd sy'n defnyddio mwy nag un beit bob cyhuddiad. 710 00:33:31,040 --> 00:33:34,210 >> Ond am nawr yn C, 'r ball Dim ond un beit neu wyth o ddarnau. 711 00:33:34,210 --> 00:33:38,195 Cyfanrif, yn y cyfamser, mae pedwar bytes, a elwir hefyd 32 o ddarnau. 712 00:33:38,195 --> 00:33:41,320 Sy'n golygu beth yw'r mwyaf posibl nifer y gall ydym yn eu cynrychioli gyda int 713 00:33:41,320 --> 00:33:41,820 yn ôl pob golwg? 714 00:33:41,820 --> 00:33:44,426 715 00:33:44,426 --> 00:33:45,050 Gyda biliwn. 716 00:33:45,050 --> 00:33:46,760 Felly mae'n i bedwar biliwn o rhoi neu gymryd. 717 00:33:46,760 --> 00:33:49,840 2 i'r pŵer 32th, os ydym cymryd yn ganiataol na rhifau negyddol 718 00:33:49,840 --> 00:33:52,530 a dim ond defnyddio pob cadarnhaol rhifau, 'i' i bedwar biliwn o 719 00:33:52,530 --> 00:33:53,730 rhoi neu gymryd posibiliadau. 720 00:33:53,730 --> 00:33:57,890 Mae arnofio, yn y cyfamser, yn fath gwahanol o'r math data yn C. Mae'n dal i fod yn rif, 721 00:33:57,890 --> 00:33:58,990 ond mae'n nifer go iawn. 722 00:33:58,990 --> 00:34:00,660 Rhywbeth gyda phwynt degol. 723 00:34:00,660 --> 00:34:03,000 Ac mae'n ymddangos bod C hefyd yn defnyddio pedwar bytes 724 00:34:03,000 --> 00:34:05,340 i gynrychioli gwerthoedd pwynt arnawf. 725 00:34:05,340 --> 00:34:09,420 >> Yn anffodus faint o fel y bo'r angen Gwerthoedd pwynt sydd yn y byd? 726 00:34:09,420 --> 00:34:11,582 Faint o rifau real sydd yna? 727 00:34:11,582 --> 00:34:13,540 Mae 'an ddiddiwedd rhif, ac o ran hynny 728 00:34:13,540 --> 00:34:15,164 mae nifer anfeidrol o gyfanrifau. 729 00:34:15,164 --> 00:34:18,070 Felly rydym yn barod fath o cloddio ein hunain twll yma. 730 00:34:18,070 --> 00:34:21,780 Lle mae'n debyg yn computers-- ar rhaglenni lleiaf a ysgrifennwyd yn C ar them-- 731 00:34:21,780 --> 00:34:24,110 dim ond cyfrif fel uchel ag i bedwar biliwn o rhoi neu gymryd, 732 00:34:24,110 --> 00:34:26,260 ac fel y bo'r angen gwerthoedd phwynt dim ond yn ôl pob golwg 733 00:34:26,260 --> 00:34:28,330 cael rhywfaint o swm cyfyngedig o gywirdeb. 734 00:34:28,330 --> 00:34:30,810 Dim ond cymaint o digidau ar ôl eu pwynt degol. 735 00:34:30,810 --> 00:34:32,822 >> Oherwydd, wrth gwrs, os dim ond 32 darnau sydd gennych, 736 00:34:32,822 --> 00:34:36,030 Nid wyf yn gwybod sut yr ydym yn mynd i fynd am cynrychioli numbers-- go iawn yn ôl pob tebyg 737 00:34:36,030 --> 00:34:37,409 gyda gwahanol fathau o batrymau. 738 00:34:37,409 --> 00:34:40,030 Ond mae sicr yn gyfyngedig nifer o batrymau o'r fath, 739 00:34:40,030 --> 00:34:41,830 felly yma, hefyd, mae hyn yn broblem. 740 00:34:41,830 --> 00:34:43,710 >> Nawr gallwn osgoi'r broblem ychydig. 741 00:34:43,710 --> 00:34:45,710 Os nad ydych yn defnyddio fflôt, gallech ddefnyddio dwbl 742 00:34:45,710 --> 00:34:50,230 yn C, sy'n rhoi wyth bytes, i chi pa yw patrymau ffordd fwy posibl o sero 743 00:34:50,230 --> 00:34:50,730 a rhai. 744 00:34:50,730 --> 00:34:55,199 Ond mae'n dal i fod yn gyfyngedig, sy'n mynd i fod yn broblem os byddwch yn ysgrifennu meddalwedd 745 00:34:55,199 --> 00:34:57,670 gyfer graffeg neu ar gyfer ffansi fformiwlâu mathemategol. 746 00:34:57,670 --> 00:35:00,410 Felly, efallai y byddwch mewn gwirionedd yn eisiau i gyfrif i fyny yn fwy na hynny. 747 00:35:00,410 --> 00:35:05,640 A hir long-- wirion named-- mae hefyd yn wyth bytes, neu 64 ddarnau, 748 00:35:05,640 --> 00:35:10,260 ac mae hyn yn ddwywaith yn hirach yn int, a 'i' ar gyfer gwerth cyfanrif hir. 749 00:35:10,260 --> 00:35:15,655 >> Fact-- Hwyl os yw int yw pedwar bytes, pa mor hir yn hir yn C fel arfer? 750 00:35:15,655 --> 00:35:18,290 751 00:35:18,290 --> 00:35:21,560 Hefyd pedwar bytes, ond mae maith maith yn wyth bytes, 752 00:35:21,560 --> 00:35:23,050 ac mae hyn yn am resymau hanesyddol. 753 00:35:23,050 --> 00:35:26,450 >> Ond mae'r bwyd parod bellach yn unig yw data sydd wedi 754 00:35:26,450 --> 00:35:29,625 i gael eu cynrychioli mewn computer-- dyna dyfais corfforol gyda thrydan, 755 00:35:29,625 --> 00:35:32,190 ei fod yn gyrru ar y cyfan seroau a ones-- rheiny 756 00:35:32,190 --> 00:35:34,320 gyda symiau cyfyngedig o gywirdeb. 757 00:35:34,320 --> 00:35:35,620 Felly beth yw'r broblem, yna? 758 00:35:35,620 --> 00:35:37,480 >> Wel yna broblem o gorlif cyfanrif. 759 00:35:37,480 --> 00:35:39,780 Nid dim ond yn C, ond yn cyfrifiaduron yn gyffredinol. 760 00:35:39,780 --> 00:35:42,590 Er enghraifft, os bydd hyn yn yn beit werth bit-- 761 00:35:42,590 --> 00:35:45,120 felly os yw hyn yn wyth bit-- gyd ohonynt yn y rhif un. 762 00:35:45,120 --> 00:35:47,300 Pa rif yw hwn cynrychioli os ydym yn tybio 763 00:35:47,300 --> 00:35:50,730 'i' i gyd gwerthoedd cadarnhaol yn deuaidd? 764 00:35:50,730 --> 00:35:54,410 >> 255, ac nid yw'n 256, oherwydd sero yw'r nifer isaf. 765 00:35:54,410 --> 00:35:56,760 Felly, 255 yw'r uchaf un, ond y broblem 766 00:35:56,760 --> 00:36:00,330 yn debyg yr oeddwn am ei cynyddiad newidyn hwn sy'n 767 00:36:00,330 --> 00:36:04,030 yn defnyddio cyfanswm o wyth did os ydw i am gynyddiad iddo. 768 00:36:04,030 --> 00:36:07,160 >> Wel cyn gynted ag yr wyf yn ychwanegu un i bob un o'r rhai hyn, 769 00:36:07,160 --> 00:36:10,500 efallai y gallwch ddychmygu visually-- unig fel cario'r un yn defnyddio decimals-- 770 00:36:10,500 --> 00:36:12,300 rhywbeth sy'n mynd i lifo i'r chwith. 771 00:36:12,300 --> 00:36:15,590 Ac yn wir, os byddaf yn ychwanegu y nifer un i hyn, beth sy'n digwydd mewn deuaidd 772 00:36:15,590 --> 00:36:17,670 yw ei fod yn gorlifo yn ôl i sero. 773 00:36:17,670 --> 00:36:21,730 >> Felly, os nad ydych yn unig yn use-- yn int, ond un beit unigol i gyfrif cyfanrifau 774 00:36:21,730 --> 00:36:27,170 mewn rhaglen, trwy default-- cyn gynted ag y i chi ddod i 250, 251, 252, 253, 254, 775 00:36:27,170 --> 00:36:32,710 255-- 0 dod ar ôl 255, sydd yn ôl pob tebyg nid yr hyn 776 00:36:32,710 --> 00:36:34,790 defnyddiwr yn mynd i ddisgwyl. 777 00:36:34,790 --> 00:36:39,620 >> Nawr fel y bo'r angen yn y cyfamser wrth mhwynt byd, byddwch hefyd yn cael problem debyg. 778 00:36:39,620 --> 00:36:42,670 Nid yn gymaint â'r number-- mwyaf er bod hynny'n dal i fod yn broblem. 779 00:36:42,670 --> 00:36:45,360 Ond gyda faint o gywirdeb y gallwch gynrychioli. 780 00:36:45,360 --> 00:36:49,490 Felly, gadewch i ni edrych ar yr enghraifft yma hefyd gan code-- ffynhonnell heddiw 781 00:36:49,490 --> 00:36:52,070 arnofio-0.c. 782 00:36:52,070 --> 00:36:54,280 >> Ac yn sylwi ei fod yn super rhaglen syml sy'n 783 00:36:54,280 --> 00:36:56,580 Dylai pob golwg argraffu'r pa werth? 784 00:36:56,580 --> 00:37:00,777 785 00:37:00,777 --> 00:37:04,110 Beth ydych chi'n Wager hyn yn mynd i argraffu er bod yna ychydig o gystrawennau newydd 786 00:37:04,110 --> 00:37:05,540 yma? 787 00:37:05,540 --> 00:37:06,700 Felly gobeithio 0.1. 788 00:37:06,700 --> 00:37:10,000 Felly mae'r hyn sy'n cyfateb i un rhan o ddeg oherwydd fy mod i'n gwneud 1 rhannu â 10. 789 00:37:10,000 --> 00:37:12,430 Im 'yn storio yr ateb mewn newidyn o'r enw f. 790 00:37:12,430 --> 00:37:15,850 Dyna newidyn yw o'r math arnofio, sy'n yn keyword Fi jyst arfaethedig yn bodoli. 791 00:37:15,850 --> 00:37:18,910 >> Nid ydym wedi gweld hyn o'r blaen, ond mae hwn yn fath o ffordd daclus mewn printf 792 00:37:18,910 --> 00:37:22,110 i nodi faint o digidau chi eisiau gweld ar ôl pwynt degol. 793 00:37:22,110 --> 00:37:25,020 Felly nodiant hwn yn unig yn golygu hynny dyma dalfan. 794 00:37:25,020 --> 00:37:27,900 Mae ar gyfer pwynt arnawf gwerth, a oh, gyda llaw, 795 00:37:27,900 --> 00:37:31,389 dangos 'i ag y pwynt degol gyda un rhif ar ôl y pwynt degol. 796 00:37:31,389 --> 00:37:33,180 Felly dyna y nifer o ddigidau arwyddocaol, 797 00:37:33,180 --> 00:37:34,650 fel petai, y gallech chi ei eisiau. 798 00:37:34,650 --> 00:37:40,450 >> Felly, gadewch i mi fynd yn ei flaen ac yn gwneud gwneud arnofio-0, ./float-0, 799 00:37:40,450 --> 00:37:46,660 ac i bob golwg 1 wedi'i rannu â 10 yw 0.0. 800 00:37:46,660 --> 00:37:47,760 Nawr, pam? 801 00:37:47,760 --> 00:37:51,380 >> Wel unwaith eto, mae'r cyfrifiadur yn cymryd llythrennol mi, ac yr wyf wedi ysgrifennu 1 802 00:37:51,380 --> 00:37:56,680 ac yr wyf yn 10 ysgrifenedig, ac yn cymryd dyfalu beth yw'r math data tybiedig ar gyfer dau y rhai 803 00:37:56,680 --> 00:37:58,440 gwerthoedd? 804 00:37:58,440 --> 00:38:00,970 Mae int, 'i' dechnegol rhywbeth ychydig yn wahanol. 805 00:38:00,970 --> 00:38:04,150 Mae'n nodweddiadol o hir, ond mae'n yn y pen draw yn werth annatod. 806 00:38:04,150 --> 00:38:06,030 Nid yw gwerth pwynt arnawf. 807 00:38:06,030 --> 00:38:09,456 >> Pa un yw dweud bod os yw hyn yn yn int ac mae hwn yn int, 808 00:38:09,456 --> 00:38:11,830 y broblem yw bod y cyfrifiadur Nid oes gan y gallu 809 00:38:11,830 --> 00:38:13,680 i hyd yn oed yn storio y pwynt degol. 810 00:38:13,680 --> 00:38:16,430 Felly, pan fyddwch yn gwneud 1 wedi'i rannu erbyn 10 ddefnyddio cyfanrifau 811 00:38:16,430 --> 00:38:20,950 ar gyfer y rhifiadur a'r enwadur, dylai'r ateb fod yn 0.1. 812 00:38:20,950 --> 00:38:24,930 Ond mae'r computer-- oherwydd hynny yn integers-- 813 00:38:24,930 --> 00:38:27,430 nid yw'n gwybod beth i'w wneud gyda'r 0.1. 814 00:38:27,430 --> 00:38:30,010 >> Felly beth sy'n ei wneud yn glir? 815 00:38:30,010 --> 00:38:33,120 'I' jyst daflu i ffwrdd, a beth rwy'n ei weld yn y pen draw 816 00:38:33,120 --> 00:38:38,830 yw 0.0 yn unig oherwydd fy mod yn mynnu fod printf ddangos i mi un pwynt degol. 817 00:38:38,830 --> 00:38:41,740 Ond y broblem yw, os ydych yn rhannu cyfanrif gan cyfanrif, 818 00:38:41,740 --> 00:38:44,347 byddwch yn get-- trwy ddiffiniad o C-- yn gyfanrif. 819 00:38:44,347 --> 00:38:46,680 Ac nid yw'n mynd i wneud rhywbeth neis ac yn gyfleus 820 00:38:46,680 --> 00:38:49,040 fel rownd i fyny at y agosaf un i fyny neu i lawr. 821 00:38:49,040 --> 00:38:51,860 Mae'n mynd i gwtogi'r amser popeth ar ôl y degol. 822 00:38:51,860 --> 00:38:54,030 >> Felly dim ond yn reddfol, beth sydd yn ôl pob tebyg yn atgyweiria? 823 00:38:54,030 --> 00:38:55,351 Beth yw'r atgyweiria symlaf yma? 824 00:38:55,351 --> 00:38:55,850 Yeah? 825 00:38:55,850 --> 00:39:00,570 826 00:39:00,570 --> 00:39:01,100 Yn union. 827 00:39:01,100 --> 00:39:04,200 Pam nad ydym yn unig yn trin y rhain fel fel y bo'r angen gwerthoedd pwynt yn effeithiol 828 00:39:04,200 --> 00:39:05,860 eu troi i mewn i fflotiau neu dyblau. 829 00:39:05,860 --> 00:39:10,500 Ac yn awr os wyf yn gwneud fflotiau-0, neu os byddaf yn llunio fflotiau-1, 830 00:39:10,500 --> 00:39:12,570 sydd yn union yr un fath beth oedd yn newydd arfaethedig. 831 00:39:12,570 --> 00:39:16,400 Ac yn awr yr wyf yn ei wneud fflotiau-0, yn awr yr wyf yn cael fy 0.1. 832 00:39:16,400 --> 00:39:17,234 >> Yn awr mae hyn yn anhygoel. 833 00:39:17,234 --> 00:39:19,441 Ond yn awr yr wyf i'n mynd i wneud rhywbeth ychydig yn wahanol. 834 00:39:19,441 --> 00:39:22,280 Rwy'n chwilfrydig i weld beth sydd wir yn mynd ymlaen o dan y cwfl, 835 00:39:22,280 --> 00:39:26,050 ac rwy'n mynd i argraffu'r dudalen hon allan i 28 lle degol. 836 00:39:26,050 --> 00:39:29,730 Yr wyf am weld 'n sylweddol 0.1000-- yn infinite-- 837 00:39:29,730 --> 00:39:32,710 [Anghlywadwy] 27 sero ar ôl hynny 0.1. 838 00:39:32,710 --> 00:39:34,740 >> Wel gadewch i ni weld os yw hynny'n yr hyn yr wyf yn wir ei gael. 839 00:39:34,740 --> 00:39:39,430 Gwneud fflotiau-0 un ffeil. 840 00:39:39,430 --> 00:39:41,150 ./floats-0. 841 00:39:41,150 --> 00:39:44,380 Gadewch i chwyddo i mewn ar yr ateb dramatig. 842 00:39:44,380 --> 00:39:49,980 Mae hyn i gyd amser, rydych chi wedi bod yn meddwl 1 wedi'i rannu â 10 yw 10%, neu 0.1. 843 00:39:49,980 --> 00:39:50,810 Dyw hi ddim yn. 844 00:39:50,810 --> 00:39:53,210 O leiaf cyn belled ag y cyfrifiadur dan sylw. 845 00:39:53,210 --> 00:39:57,060 >> Nawr why-- Iawn, mae hynny'n gyflawn gorwedd 1 wedi'i rannu â 10 yw 0.1. 846 00:39:57,060 --> 00:39:59,710 Ond why-- nad yw hynny'n y cludfwyd heddiw. 847 00:39:59,710 --> 00:40:04,010 Felly pam y mae'r cyfrifiadur yn meddwl, yn wahanol i bob un ohonom yn yr ystafell, 848 00:40:04,010 --> 00:40:06,870 bod 1 wedi'i rannu â 10 yw mewn gwirionedd y gwerth crazy? 849 00:40:06,870 --> 00:40:10,620 Beth yw'r cyfrifiadur yn ei wneud yn ôl pob golwg? 850 00:40:10,620 --> 00:40:12,490 Beth sy'n bod? 851 00:40:12,490 --> 00:40:13,785 >> Dyw hi ddim yn gorlifo, fel y cyfryw. 852 00:40:13,785 --> 00:40:15,910 Gorlif yn nodweddiadol pan byddwch yn lapio o amgylch gwerth. 853 00:40:15,910 --> 00:40:18,970 Mae'n rhifyn hwn o imprecision mewn gwerth pwynt arnawf 854 00:40:18,970 --> 00:40:22,220 lle mai dim ond rhaid i chi 32 neu hyd yn oed 64 bit. 855 00:40:22,220 --> 00:40:25,230 Ond os mae 'na ddiddiwedd nifer y numbers-- go iawn 856 00:40:25,230 --> 00:40:27,940 rhifau gyda phwyntiau degol a rhifau thereafter-- sicr 857 00:40:27,940 --> 00:40:29,380 nad ydych yn gallu cynrychioli pob un ohonynt. 858 00:40:29,380 --> 00:40:32,870 Felly mae'r cyfrifiadur wedi rhoi i ni y gêm agosaf 859 00:40:32,870 --> 00:40:37,090 i werth y gall ei gynrychioli defnyddio'r llawer o ddarnau i werth Fi 'n weithredol ei eisiau, 860 00:40:37,090 --> 00:40:38,690 sydd yn 0.1. 861 00:40:38,690 --> 00:40:40,685 >> Yn anffodus, os ydych yn dechrau gwneud mathemateg, neu os ydych 862 00:40:40,685 --> 00:40:44,360 dechrau cynnwys y mathau hyn o fel y bo'r angen Gwerthoedd pwynt mewn programs-- pwysig 863 00:40:44,360 --> 00:40:46,770 meddalwedd ariannol, unrhyw beth software-- milwrol 864 00:40:46,770 --> 00:40:49,090 lle mae canfyddiad yw yn ôl pob tebyg yn eithaf pwysig. 865 00:40:49,090 --> 00:40:51,520 A'ch bod yn dechrau ychwanegu rhifau fel hyn, a dechrau 866 00:40:51,520 --> 00:40:54,050 rhedeg y feddalwedd gyda mewnbynnau wirioneddol fawr 867 00:40:54,050 --> 00:40:56,890 neu am lawer o oriau neu lawer o ddyddiau neu lawer o flynyddoedd, 868 00:40:56,890 --> 00:41:01,060 camgymeriadau hyn bach bach sicr yn gallu ychwanegu hyd dros gyfnod o amser. 869 00:41:01,060 --> 00:41:04,252 >> Yn awr wrth fynd heibio, os ydych wedi erioed gweld Superman 3 neu Gofod Swyddfa 870 00:41:04,252 --> 00:41:05,960 ac efallai y byddwch yn cofio sut mae rhai guys dwyn 871 00:41:05,960 --> 00:41:08,668 llawer o arian oddi wrth eu cyfrifiadur trwy ddefnyddio gwerthoedd pwynt arnawf 872 00:41:08,668 --> 00:41:11,290 ac adio ychydig gweddill, gobeithio y ffilm 873 00:41:11,290 --> 00:41:12,390 bellach yn gwneud mwy o synnwyr. 874 00:41:12,390 --> 00:41:14,930 Mae hyn yn yr hyn y maent yn cyfeirio ato yn y ffilm. 875 00:41:14,930 --> 00:41:16,710 Mae'r ffaith bod y rhan fwyaf Ni fyddai cwmnïau yn edrych 876 00:41:16,710 --> 00:41:18,600 ar ôl nifer penodol o'r lle degol, 877 00:41:18,600 --> 00:41:20,009 ond dyna'r ffracsiynau o cents. 878 00:41:20,009 --> 00:41:22,550 Felly, byddwch yn dechrau adio i fyny, byddwch yn dechrau i wneud llawer o arian 879 00:41:22,550 --> 00:41:23,424 yn eich cyfrif banc. 880 00:41:23,424 --> 00:41:25,160 Felly dyna Esboniodd Gofod Swyddfa. 881 00:41:25,160 --> 00:41:28,220 >> Nawr yn anffodus tu hwnt Gofod Swyddfa, mae 882 00:41:28,220 --> 00:41:31,794 rhai gyfreithlon poeni ac effeithiau o bwys 883 00:41:31,794 --> 00:41:33,710 o'r mathau hyn o penderfyniadau dylunio sylfaenol, 884 00:41:33,710 --> 00:41:35,990 ac yn wir un o'r rhesymau rydym yn defnyddio C yn y cwrs 885 00:41:35,990 --> 00:41:39,640 yw er mwyn i chi wir yn cael y sail hon fyny dealltwriaeth o sut mae cyfrifiaduron yn gweithio, 886 00:41:39,640 --> 00:41:42,440 sut mae meddalwedd yn gweithio, ac nid ydynt cymryd dim yn ganiataol. 887 00:41:42,440 --> 00:41:45,820 >> Ac yn wir yn anffodus, hyd yn oed gyda bod dealltwriaeth sylfaenol, 888 00:41:45,820 --> 00:41:47,370 rydym pobl yn gwneud camgymeriadau. 889 00:41:47,370 --> 00:41:51,310 A hyn yr wyf yn meddwl y byddwn i'n rhannu yw y fideo wyth munud a gymerwyd yma 890 00:41:51,310 --> 00:41:56,980 o bennod Marvels Modern, sef sioe addysgiadol ar sut mae pethau'n gweithio 891 00:41:56,980 --> 00:42:00,370 hynny paent ddau lun o bryd yn ddefnydd amhriodol 892 00:42:00,370 --> 00:42:02,540 a dealltwriaeth o Gwerthoedd pwynt arnawf 893 00:42:02,540 --> 00:42:05,610 arwain at rai arwyddocaol ganlyniadau anffodus. 894 00:42:05,610 --> 00:42:06,363 Gadewch i ni edrych. 895 00:42:06,363 --> 00:42:07,029 [VIDEO Playback] 896 00:42:07,029 --> 00:42:11,290 -Rydym Yn awr yn dychwelyd i "Peirianneg Trychinebau "ar Marvels Modern. 897 00:42:11,290 --> 00:42:12,940 Cyfrifiaduron. 898 00:42:12,940 --> 00:42:15,580 Rydym i gyd wedi dod i dderbyn y problemau yn aml yn rhwystredig sy'n 899 00:42:15,580 --> 00:42:20,960 got gyda them-- bugs, firysau, a glitches-- meddalwedd ar gyfer brisiau bach 900 00:42:20,960 --> 00:42:23,100 i dalu am y cyfleustra. 901 00:42:23,100 --> 00:42:27,770 Ond mewn cyflymder uchel uwch-dechnoleg a ceisiadau milwrol a rhaglen ofod, 902 00:42:27,770 --> 00:42:32,780 y broblem lleiaf gall cael ei chwyddo i mewn i drychineb. 903 00:42:32,780 --> 00:42:38,880 >> Ar 4 Mehefin, 1996, gwyddonwyr a baratowyd i lansio di-griw Ariane 5 roced. 904 00:42:38,880 --> 00:42:41,190 Roedd yn cario gwyddonol lloerennau a gynlluniwyd 905 00:42:41,190 --> 00:42:44,570 i sefydlu sut yn union y mae'r Rhyngweithio Ddaear maes magnetig 906 00:42:44,570 --> 00:42:47,380 gyda gwyntoedd solar. 907 00:42:47,380 --> 00:42:50,580 Roedd y roced ei adeiladu ar gyfer yr Asiantaeth Ofod Ewropeaidd, 908 00:42:50,580 --> 00:42:54,400 ac yn codi oddi ar ei gyfleuster ar arfordir Giana Ffrengig. 909 00:42:54,400 --> 00:42:57,520 >> -ar Tua 37 eiliad i mewn y hedfan, maent yn gyntaf 910 00:42:57,520 --> 00:42:59,070 sylwi rhywbeth yn mynd o'i le. 911 00:42:59,070 --> 00:43:02,240 Bod y nozzles yn swiveling mewn ffordd y maent yn ddim wir dylai. 912 00:43:02,240 --> 00:43:06,550 Mae tua 40 eiliad i mewn i'r awyren, glir y cerbyd oedd mewn trafferth, 913 00:43:06,550 --> 00:43:08,820 a dyna pryd wnaethant y penderfyniad i ddinistrio. 914 00:43:08,820 --> 00:43:12,370 Roedd y swyddog diogelwch amrediad, gyda perfedd aruthrol, pwyso ar y botwm 915 00:43:12,370 --> 00:43:18,030 a chwythu i fyny y roced cyn y gallai dod yn berygl i ddiogelwch y cyhoedd. 916 00:43:18,030 --> 00:43:21,010 >> -Mae Hyn oedd y forwyn mordaith y Ariane 5, 917 00:43:21,010 --> 00:43:23,920 ac a gymerodd ei dinistrio gosod oherwydd y nam 918 00:43:23,920 --> 00:43:25,932 hymgorffori mewn meddalwedd y roced yn. 919 00:43:25,932 --> 00:43:27,640 -Y Broblem ar y Ariane oedd bod 920 00:43:27,640 --> 00:43:30,500 Roedd nifer a oedd angen 64 darnau i fynegi, 921 00:43:30,500 --> 00:43:33,560 ac roeddent am i drosi ag ef i rif 16-bit. 922 00:43:33,560 --> 00:43:36,820 Maent yn tybio bod y nifer byth yn mynd i fod yn fawr iawn. 923 00:43:36,820 --> 00:43:40,940 Bod y rhan fwyaf o ddigidau y rhai yn mae'r rhif 64-bit yn sero. 924 00:43:40,940 --> 00:43:42,450 Eu bod yn anghywir. 925 00:43:42,450 --> 00:43:45,000 >> -y Anallu un rhaglen feddalwedd i dderbyn 926 00:43:45,000 --> 00:43:49,460 y math o rif a gynhyrchir gan Roedd un arall wrth wraidd y methiant. 927 00:43:49,460 --> 00:43:54,260 Datblygu meddalwedd wedi dod yn rhan gostus iawn o dechnoleg newydd. 928 00:43:54,260 --> 00:43:57,060 Mae'r Ariane 4 roced oedd bod yn llwyddiannus iawn. 929 00:43:57,060 --> 00:44:01,600 Mae cymaint o'r meddalwedd a grëwyd ar gyfer cafodd ei ddefnyddio hefyd yn y Ariane 5. 930 00:44:01,600 --> 00:44:04,790 >> -y Broblem sylfaenol oedd bod y Ariane 5. 931 00:44:04,790 --> 00:44:11,200 A oedd faster-- cyflymedig yn gyflymach, a Nid yw'r meddalwedd wedi cyfrif am hynny. 932 00:44:11,200 --> 00:44:14,910 >> -Mae Dinistr y roced oedd yn drychineb ariannol enfawr. 933 00:44:14,910 --> 00:44:18,630 Mae pob oherwydd gwall meddalwedd munud. 934 00:44:18,630 --> 00:44:21,160 Ond nid hyn oedd y cyntaf problemau trosi data amser 935 00:44:21,160 --> 00:44:24,770 wedi plagued dechnoleg roced fodern. 936 00:44:24,770 --> 00:44:28,020 >> -Yn 1991 â dechrau y Rhyfel y Gwlff cyntaf, 937 00:44:28,020 --> 00:44:30,540 y taflegryn Gwladgarwr profi rhyw fath tebyg 938 00:44:30,540 --> 00:44:32,465 o broblem trosi rhif. 939 00:44:32,465 --> 00:44:36,760 Ac o ganlyniad 28 people-- 28 Soldiers-- Americanaidd eu lladd, 940 00:44:36,760 --> 00:44:39,010 a tua chant o bobl eraill eu hanafu. 941 00:44:39,010 --> 00:44:42,830 Pan fydd y Gwladgarwr, a oedd i fod i amddiffyn yn erbyn Scuds sy'n dod i mewn, 942 00:44:42,830 --> 00:44:45,780 wedi methu i danio taflegryn. 943 00:44:45,780 --> 00:44:51,610 >> -Pan Irac ymosododd Kuwait, ac America Lansiwyd Storm Anialwch yn gynnar yn 1991, 944 00:44:51,610 --> 00:44:55,720 Batris taflegryn Gwladgarwr Lleolwyd i amddiffyn Saudi Arabia ac Israel 945 00:44:55,720 --> 00:44:59,180 rhag ymosodiadau taflegryn Scud Irac. 946 00:44:59,180 --> 00:45:03,080 Y Gwladgarwr yn gyfrwng-amrediad Unol Daleithiau wyneb-i-awyr system 947 00:45:03,080 --> 00:45:06,530 gynhyrchwyd gan y cwmni Raytheon. 948 00:45:06,530 --> 00:45:09,500 >> -Mae Maint y Gwladgarwr ataliwr itself-- 949 00:45:09,500 --> 00:45:14,705 mae'n ymwneud â tua 20 troedfedd o hyd, ac mae'n pwyso tua £ 2,000. 950 00:45:14,705 --> 00:45:19,090 Ac mae'n cyflawni warhead o tua, Rwy'n credu ei fod tua £ 150. 951 00:45:19,090 --> 00:45:23,880 Ac mae'r warhead ei hun yn yn ffrwydrol uchel, sy'n 952 00:45:23,880 --> 00:45:26,700 Mae darnau o'i gwmpas. 953 00:45:26,700 --> 00:45:31,630 Felly mae'r casin y warhead yn cynllunio i weithredu fel fwled. 954 00:45:31,630 --> 00:45:34,040 >> -Y Taflegrau yn cael eu cynnal pedwar y cynhwysydd, 955 00:45:34,040 --> 00:45:37,170 ac yn cael eu cludo gan ôl-gerbyd lled. 956 00:45:37,170 --> 00:45:44,880 >> -Y System Gwladgarwr gwrth-taflegryn mynd yn ôl o leiaf 20 mlynedd erbyn hyn. 957 00:45:44,880 --> 00:45:48,380 Fe'i cynlluniwyd yn wreiddiol fel taflegryn amddiffyniad awyr 958 00:45:48,380 --> 00:45:50,810 i saethu i lawr awyrennau gelyn. 959 00:45:50,810 --> 00:45:54,410 Yn y Rhyfel y Gwlff cyntaf pan ddaeth y rhyfel ar, 960 00:45:54,410 --> 00:45:59,650 y Fyddin am ei ddefnyddio i saethu i lawr Scuds, nid awyrennau. 961 00:45:59,650 --> 00:46:03,580 Y Llu Awyr Irac oedd nid yn gymaint o broblem, 962 00:46:03,580 --> 00:46:06,590 ond roedd y Fyddin poeni am Scuds. 963 00:46:06,590 --> 00:46:10,120 Ac felly maent yn ceisio uwchraddio'r Gwladgarwr. 964 00:46:10,120 --> 00:46:12,740 >> -Intercepting Gelyn taflegryn teithio ar Mach 5 965 00:46:12,740 --> 00:46:15,670 oedd yn mynd i fod yn ddigon heriol. 966 00:46:15,670 --> 00:46:18,440 Ond pan fydd y Gwladgarwr ei rhuthro i mewn i wasanaeth, 967 00:46:18,440 --> 00:46:22,580 Nid oedd y Fyddin yn ymwybodol o mae addasiad Irac sy'n 968 00:46:22,580 --> 00:46:25,880 gwneud eu Scuds bron amhosibl iddo. 969 00:46:25,880 --> 00:46:30,690 >> -Beth Ddigwyddodd yw'r Scuds bod yn dod i mewn yn ansefydlog. 970 00:46:30,690 --> 00:46:32,000 Roeddent yn sigledig. 971 00:46:32,000 --> 00:46:37,210 Y rheswm am hyn oedd y Iraqis-- er mwyn cael 600 cilomedr allan 972 00:46:37,210 --> 00:46:41,680 o amrediad missile-- 300-cilometr Cymerodd pwysau allan o'r warhead blaen, 973 00:46:41,680 --> 00:46:43,340 a gwnaeth y warhead ysgafnach. 974 00:46:43,340 --> 00:46:48,490 Felly, yn awr y Gwladgarwr yn ceisio dod yn y Scud, a'r rhan fwyaf o'r adeg-- 975 00:46:48,490 --> 00:46:52,880 y mwyafrif llethol o'r adeg-- byddai'n jyst hedfan gan y Scud. 976 00:46:52,880 --> 00:46:57,120 >> -Unwaith Y gweithredwyr system Patriot sylweddoli colli y Gwladgarwr ei tharged, 977 00:46:57,120 --> 00:47:01,630 eu bod yn tanio warhead y Gwladgarwr yn er mwyn osgoi anafiadau posibl os bydd yn 978 00:47:01,630 --> 00:47:04,440 yn caniatáu i syrthio i'r ddaear. 979 00:47:04,440 --> 00:47:08,700 >> -bod Oedd yr hyn a welodd y rhan fwyaf o bobl fel fireballs mawr yn yr awyr, 980 00:47:08,700 --> 00:47:14,180 ac yn eu camddeall fel rhyng-gipio o arfbennau Scud. 981 00:47:14,180 --> 00:47:18,020 >> -Although Yn yr awyr y nos, wladgarwyr yn ymddangos i gael eu dinistrio yn llwyddiannus 982 00:47:18,020 --> 00:47:23,280 Scuds, yn Dhahran gallai fod unrhyw gamgymeriad am ei berfformiad. 983 00:47:23,280 --> 00:47:27,930 Mae system radar y Gwladgarwr yn trac a gollwyd o Scud sy'n dod i mewn 984 00:47:27,930 --> 00:47:30,260 a byth yn ei lansio sy'n ddyledus i nam meddalwedd. 985 00:47:30,260 --> 00:47:34,060 986 00:47:34,060 --> 00:47:38,880 >> Yr oedd yr Israeliaid oedd yn darganfod gyntaf bod y po hiraf system yn ar, 987 00:47:38,880 --> 00:47:41,130 y mwyaf daeth yr amser anghysondeb. 988 00:47:41,130 --> 00:47:44,770 Oherwydd cloc wreiddio yn gyfrifiadur y system. 989 00:47:44,770 --> 00:47:48,190 >> -About Ddwy wythnos cyn y drychineb yn Dhahran, 990 00:47:48,190 --> 00:47:50,720 yr Israeliaid adrodd i yr Adran Defense 991 00:47:50,720 --> 00:47:52,410 bod y system yn colli amser. 992 00:47:52,410 --> 00:47:54,410 Ar ôl tua wyth awr o redeg, maent yn sylwi 993 00:47:54,410 --> 00:47:57,690 bod dod yn y system yn amlwg yn llai cywir. 994 00:47:57,690 --> 00:48:01,850 Ymatebodd yr Adran Defense gan ddweud wrth bawb o'r Gwladgarwr batris 995 00:48:01,850 --> 00:48:04,800 i beidio â gadael y systemau ymlaen am amser hir. 996 00:48:04,800 --> 00:48:06,980 Maent byth yn dweud beth amser hir oedd. 997 00:48:06,980 --> 00:48:09,140 8 awr, 10 awr, fil o oriau. 998 00:48:09,140 --> 00:48:11,300 Does neb yn gwybod. 999 00:48:11,300 --> 00:48:13,320 >> -y Batri Patriot lleoli yn y barics 1000 00:48:13,320 --> 00:48:18,310 yn Dhahran ac mae ei mewnol ddiffygiol cloc wedi bod ar am dros 100 awr 1001 00:48:18,310 --> 00:48:21,520 ar noson 25 Chwefror. 1002 00:48:21,520 --> 00:48:25,792 >> -Mae'n Olrhain amser i gywirdeb o tua un rhan o ddeg o eiliad. 1003 00:48:25,792 --> 00:48:27,950 Nawr un rhan o ddeg o eiliad yn nifer diddorol 1004 00:48:27,950 --> 00:48:31,850 oherwydd na ellir ei mynegi mewn deuaidd yn union, a oedd yn 1005 00:48:31,850 --> 00:48:36,500 golygu ni ellir ei mynegi yn union mewn unrhyw gyfrifiadur digidol modern. 1006 00:48:36,500 --> 00:48:41,070 Mae'n anodd credu, ond defnyddio hyn fel enghraifft. 1007 00:48:41,070 --> 00:48:43,420 >> Gadewch i ni gymryd y rhif un rhan o dair. 1008 00:48:43,420 --> 00:48:47,330 Ni all un rhan o dair yn fynegir yn y degol yn union. 1009 00:48:47,330 --> 00:48:52,060 Mae un rhan o dair yn 0.333 mynd ymlaen i anfeidredd. 1010 00:48:52,060 --> 00:48:56,420 Does dim ffordd o wneud hynny gyda cywirdeb absoliwt mewn degol. 1011 00:48:56,420 --> 00:48:59,530 Dyna'n union y math o broblem a ddigwyddodd yn y Gwladgarwr. 1012 00:48:59,530 --> 00:49:04,040 Rhedodd Po hiraf y system, mae'r waeth daeth y gwall amser. 1013 00:49:04,040 --> 00:49:08,840 >> -Ar Ôl 100 o oriau gweithredu, mae'r gwall mewn amser oedd dim ond tua un rhan o dair 1014 00:49:08,840 --> 00:49:10,440 o eiliad. 1015 00:49:10,440 --> 00:49:14,150 Ond o ran targedu taflegryn teithio ar Mach 5, 1016 00:49:14,150 --> 00:49:18,560 mae'n arwain at olrhain gwall o dros 600 metr. 1017 00:49:18,560 --> 00:49:21,870 Byddai'n gamgymeriad angheuol ar gyfer y milwyr yn Dhahran. 1018 00:49:21,870 --> 00:49:28,455 >> -Beth Digwydd yn lansiad Scud oedd canfod gan lloerennau rhybudd cynnar, 1019 00:49:28,455 --> 00:49:32,710 ac roedden nhw'n gwybod oedd yn Scud yn dod yn eu cyfeiriad cyffredinol. 1020 00:49:32,710 --> 00:49:35,150 Nad oeddent yn gwybod lle cafodd ei dod. 1021 00:49:35,150 --> 00:49:38,210 Yr oedd yn awr hyd at y radar cydran o'r system Patriot 1022 00:49:38,210 --> 00:49:43,150 amddiffyn Dhahran i leoli a chadw golwg ar y taflegryn gelyn dod i mewn. 1023 00:49:43,150 --> 00:49:44,561 >> -Y Radar yn smart iawn. 1024 00:49:44,561 --> 00:49:46,560 Byddai'n olrhain mewn gwirionedd lleoliad y Scud 1025 00:49:46,560 --> 00:49:48,930 ac yna rhagweld ble Mae'n debyg y byddai'n 1026 00:49:48,930 --> 00:49:51,380 y tro nesaf y anfon radar curiad allan. 1027 00:49:51,380 --> 00:49:53,040 Oedd yn galw yn y giât amrediad. 1028 00:49:53,040 --> 00:49:57,620 >> -Then Unwaith y bydd y Gwladgarwr penderfynu digon o amser wedi 1029 00:49:57,620 --> 00:50:02,400 pasio i fynd yn ôl ac edrych ar y nesaf lleoliad ar gyfer y gwrthrych canfod 1030 00:50:02,400 --> 00:50:03,550 mae'n mynd yn ôl. 1031 00:50:03,550 --> 00:50:07,820 Felly, pan fydd yn mynd yn ôl at y anghywir lle, mae'n wedyn yn gweld unrhyw wrthrych. 1032 00:50:07,820 --> 00:50:10,360 A yw'n penderfynu nad oedd unrhyw wrthrych. 1033 00:50:10,360 --> 00:50:13,630 Bod canfod ffug ac mae'n gostwng y trac. 1034 00:50:13,630 --> 00:50:16,970 >> Diflannu -y Scud sy'n dod i mewn oddi wrth y sgrin radar, 1035 00:50:16,970 --> 00:50:20,200 ac eiliadau yn ddiweddarach, mae'n Condemniwyd i mewn i'r barics. 1036 00:50:20,200 --> 00:50:22,570 Mae'r Scud lladd 28. 1037 00:50:22,570 --> 00:50:26,110 Cafodd yr un olaf ei tanio yn ystod y Rhyfel y Gwlff cyntaf. 1038 00:50:26,110 --> 00:50:31,920 Yn drasig, mae'r meddalwedd diweddaru cyrraedd ar doriad gwawr ar y diwrnod canlynol. 1039 00:50:31,920 --> 00:50:34,870 Mae'r nam meddalwedd Roedd gan bod yn sefydlog, cau 1040 00:50:34,870 --> 00:50:39,150 un bennod yn y cythryblus hanes y taflegryn Gwladgarwr. 1041 00:50:39,150 --> 00:50:40,030 >> [DIWEDD Playback VIDEO] 1042 00:50:40,030 --> 00:50:41,488 >> DAVID J. Malan: Dyna ni am CS50. 1043 00:50:41,488 --> 00:50:42,820 Byddwn yn eich gweld ar ddydd Mercher. 1044 00:50:42,820 --> 00:50:46,420 1045 00:50:46,420 --> 00:50:50,370 >> [CHWARAE CERDDORIAETH] 1046 00:50:50,370 --> 00:54:23,446