1 00:00:00,000 --> 00:00:04,664 2 00:00:04,664 --> 00:00:05,580 DOUG LLOYD: Pob hawl. 3 00:00:05,580 --> 00:00:08,877 Felly nawr gadewch i ni fynd i'r afael â pwnc fawr iawn, swyddogaethau. 4 00:00:08,877 --> 00:00:11,460 Hyd yn hyn yn ystod, yr holl rhaglenni ein bod wedi bod yn ysgrifennu 5 00:00:11,460 --> 00:00:12,969 wedi cael eu hysgrifennu y tu mewn o brif. 6 00:00:12,969 --> 00:00:14,260 Maent yn rhaglenni eithaf syml. 7 00:00:14,260 --> 00:00:16,940 Nid oes angen i chi gael y rhain i gyd canghennau a bethau sy'n mynd ymlaen. 8 00:00:16,940 --> 00:00:18,773 Gall Rydym yn unig yn addas i gyd tu mewn prif ac mae'n 9 00:00:18,773 --> 00:00:20,407 nid yw'n cael ofnadwy llethol. 10 00:00:20,407 --> 00:00:22,990 Ond wrth i'r cwrs yn mynd ymlaen ac wrth i chi ddechrau i ddatblygu rhaglenni 11 00:00:22,990 --> 00:00:26,260 yn annibynnol, maent yn fwy na thebyg yn mynd i ddechrau i gael llawer mwy na 10 12 00:00:26,260 --> 00:00:27,200 neu 15 o linellau. 13 00:00:27,200 --> 00:00:31,400 Efallai y byddwch yn cael cannoedd neu filoedd neu degau o filoedd o linellau o god. 14 00:00:31,400 --> 00:00:34,690 Ac mae'n wir yn peidio hynny crazy meddwl. 15 00:00:34,690 --> 00:00:39,720 Fel y cyfryw, mae'n debyg nad yn syniad da i gadw popeth y tu mewn o brif. 16 00:00:39,720 --> 00:00:43,240 Gall gael ychydig anodd dod o hyd yr hyn yr ydych yn chwilio amdano os ydych yn gwneud hynny. 17 00:00:43,240 --> 00:00:47,040 >> Yn ffodus, er bod C, a 'n bert lawer pob iaith raglennu arall sy'n 18 00:00:47,040 --> 00:00:50,386 Gallai gweithio gyda nhw, yn caniatáu i ni ysgrifennu swyddogaethau. 19 00:00:50,386 --> 00:00:52,260 A dwi'n jyst yn mynd i cymryd cyflym o'r neilltu yma 20 00:00:52,260 --> 00:00:54,971 sôn bod y swyddogaethau yn un maes o wyddoniaeth gyfrifiadurol. 21 00:00:54,971 --> 00:00:57,970 A byddwch yn gweld llawer mwy ohonynt ar bwyntiau amrywiol drwy gydol y cwrs 22 00:00:57,970 --> 00:00:59,290 ac os byddwch yn parhau ar. 23 00:00:59,290 --> 00:01:02,280 Lle mae llawer o cyfystyron ar gyfer yr un gair. 24 00:01:02,280 --> 00:01:03,390 Felly rydym yn galw y swyddogaethau. 25 00:01:03,390 --> 00:01:05,980 Ond efallai y byddwch hefyd yn clywed nhw y cyfeirir atynt fel gweithdrefnau, 26 00:01:05,980 --> 00:01:09,570 neu ddulliau, yn enwedig, os ydych chi wedi erioed gwneud unrhyw rhaglennu gwrthrych oriented 27 00:01:09,570 --> 00:01:11,950 before-- a pheidiwch â phoeni os nad yw, nad ydych wedi 28 00:01:11,950 --> 00:01:14,280 yn deal-- fawr ond yn Ieithoedd archwilio oriented 29 00:01:14,280 --> 00:01:16,129 yn cael eu elwir yn aml ddulliau. 30 00:01:16,129 --> 00:01:17,670 Weithiau maen nhw'n a elwir yn is-reolweithiau. 31 00:01:17,670 --> 00:01:20,690 Ond maent i gyd yn cyfeirio mewn gwirionedd at yr un syniad sylfaenol. 32 00:01:20,690 --> 00:01:22,480 >> Gadewch i ni weld beth y syniad hwnnw yn. 33 00:01:22,480 --> 00:01:23,310 Beth yw swyddogaeth? 34 00:01:23,310 --> 00:01:26,470 Wel swyddogaeth yn wirioneddol ddim mwy na blwch du. 35 00:01:26,470 --> 00:01:31,430 Mae blwch du sydd â set o sero neu fwy o fewnbynnau a allbwn sengl. 36 00:01:31,430 --> 00:01:33,420 Felly, er enghraifft, mae hyn yn Gallai fod yn swyddogaeth. 37 00:01:33,420 --> 00:01:35,510 Mae hon yn swyddogaeth o'r enw func. 38 00:01:35,510 --> 00:01:39,330 Ac mae'n cymryd tri mewnbynnau a, b, ac c. 39 00:01:39,330 --> 00:01:42,580 Ac y tu mewn y blwch du, rydym yn ddim yn gwybod yn union beth mae'n ei wneud, 40 00:01:42,580 --> 00:01:45,100 ond mae'n prosesu mewnbwn mewn rhyw ffordd ac yna mae'n 41 00:01:45,100 --> 00:01:48,680 yn rhoi allbwn sengl, yn yr achos hwn, z. 42 00:01:48,680 --> 00:01:50,504 Nawr i'w wneud yn ychydig yn llai haniaethol, rydym yn 43 00:01:50,504 --> 00:01:52,420 Gallai ddweud bod efallai ydym fod â swyddogaeth o'r enw 44 00:01:52,420 --> 00:01:58,750 ychwanegu bod yn cymryd tair mewnbynnau a, b, a c a phrosesau allbwn mewn rhyw ffordd 45 00:01:58,750 --> 00:02:01,010 y tu mewn i'r blwch du i cynhyrchu allbwn sengl. 46 00:02:01,010 --> 00:02:05,190 Felly, yn yr achos hwn, os ychwanegwch cymryd 3, 6, a 7. 47 00:02:05,190 --> 00:02:07,020 Rhywle y tu mewn i'r ychwanegu swyddogaeth, byddem 48 00:02:07,020 --> 00:02:09,750 disgwyl iddynt gael eu hychwanegu at ei gilydd i gynhyrchu'r allbwn, a oedd yn 49 00:02:09,750 --> 00:02:13,220 yw 3 a 6 ynghyd â 7 neu 16. 50 00:02:13,220 --> 00:02:17,940 >> Yn yr un modd, mae gennych swyddogaeth o'r enw amryfal sy'n cymryd dau mewnbynnau, a a b, 51 00:02:17,940 --> 00:02:21,070 yn eu prosesau mewn rhyw ffordd o'r fath bod allbwn y swyddogaeth 52 00:02:21,070 --> 00:02:22,920 yn gynnyrch y ddau mewnbynnau. 53 00:02:22,920 --> 00:02:25,080 Roedd y ddau mewnbynnau luosi gyda'i gilydd. 54 00:02:25,080 --> 00:02:29,150 4 a 5 yn cael eu pasio i mewn amryfal, rhywbeth yn digwydd, mae'r allbwn rydym yn disgwyl 55 00:02:29,150 --> 00:02:31,090 yw 20. 56 00:02:31,090 --> 00:02:32,507 Pam rydym yn galw ei fod yn blwch du? 57 00:02:32,507 --> 00:02:34,840 Wel os nad ydym yn ysgrifennu'r swyddogaethau ein hunain, a oedd yn 58 00:02:34,840 --> 00:02:36,869 rydym wedi gwneud cryn dipyn hyd yn hyn cs50. 59 00:02:36,869 --> 00:02:39,910 Rydym wedi gweld print f, er enghraifft, a oedd yn yn swyddogaeth nad oeddem yn ysgrifennu 60 00:02:39,910 --> 00:02:42,305 ein hunain, ond rydym yn defnyddio drwy'r amser. 61 00:02:42,305 --> 00:02:44,180 Os nad ydym yn ysgrifennu swyddogaethau ein hunain, 62 00:02:44,180 --> 00:02:48,450 Nid oes gwir angen i ni wybod sut mae'n rhoi ar waith mewn gwirionedd o dan y cwfl. 63 00:02:48,450 --> 00:02:51,710 >> Felly, er enghraifft, y blwch wyf du dim ond yn dangos i chi am lluosi, 64 00:02:51,710 --> 00:02:53,740 amryfal a, gallai fod yn b defined-- ac mae hyn yn unig 65 00:02:53,740 --> 00:02:57,902 gallai rhai fod yn pseudocode-- a ddiffinnir fel amseroedd allbwn a b. 66 00:02:57,902 --> 00:02:58,860 Mae hynny'n gwneud synnwyr, dde. 67 00:02:58,860 --> 00:03:01,370 Os oes gennym swyddogaeth o'r enw amryfal sy'n cymryd dau mewnbynnau. 68 00:03:01,370 --> 00:03:04,750 Byddem yn disgwyl y byddai'r allbwn fod y ddau mewnbynnau luosi gyda'i gilydd, 69 00:03:04,750 --> 00:03:06,240 o weithiau b. 70 00:03:06,240 --> 00:03:09,170 Ond gallai amryfal hefyd fod yn rhoi ar waith fel hyn, 71 00:03:09,170 --> 00:03:13,150 mae gennym newidyn cownter i yn paratoi tu mewn amryfal i 0. 72 00:03:13,150 --> 00:03:18,000 Ac yna rydym yn ailadrodd y broses hon b amseroedd ychwanegu at cownter. 73 00:03:18,000 --> 00:03:24,270 Er enghraifft, os ydym yn lluosi 3a gan 5b, gallem yn dweud osod cownter i 0, 74 00:03:24,270 --> 00:03:27,700 ailadrodd bum gwaith, ychwanegu 3 at cownter. 75 00:03:27,700 --> 00:03:34,490 Felly, rydym yn dechrau ar 0, ac yna rydym yn ei wneud mae hyn bum gwaith 3, 6, 9, 12, 15. 76 00:03:34,490 --> 00:03:37,500 Mae yr un canlyniad. Rydym yn yn dal i gael 3 gwaith 5 yn unig 77 00:03:37,500 --> 00:03:39,500 gweithredu yn wahanol. 78 00:03:39,500 --> 00:03:41,490 >> Dyna beth ydym yn ei olygu pan fyddwn yn dweud blwch du. 79 00:03:41,490 --> 00:03:44,406 'I jyst yn golygu nad ydym yn wir gofal sut y caiff ei roi ar waith o dan y cwfl 80 00:03:44,406 --> 00:03:46,170 cyn belled ag y mae'r allbwn yn hyn yr ydym yn ei ddisgwyl. 81 00:03:46,170 --> 00:03:49,045 Yn wir, mae hynny'n rhan o'r contract o ddefnyddio swyddogaethau, yn enwedig 82 00:03:49,045 --> 00:03:50,630 swyddogaethau y mae eraill yn ysgrifennu. 83 00:03:50,630 --> 00:03:53,980 Mae ymddygiad bob amser yn mynd i fod yn nodweddiadol, anrhagweladwy 84 00:03:53,980 --> 00:03:55,420 yn seiliedig ar enw'r swyddogaeth. 85 00:03:55,420 --> 00:03:57,500 A dyna pam mae'n wirioneddol bwysig pan fyddwch yn ysgrifennu swyddogaethau 86 00:03:57,500 --> 00:04:00,020 neu pan fydd pobl eraill yn ysgrifennu swyddogaethau y gallech eu defnyddio, 87 00:04:00,020 --> 00:04:03,590 y mae'r swyddogaethau hynny'n cael Enwau clir, yn gymharol amlwg, 88 00:04:03,590 --> 00:04:04,990 ac yn cael eu cofnodi'n dda. 89 00:04:04,990 --> 00:04:08,560 Pa un hynny'n sicr yn wir ar gyfer y swyddogaeth fel print f. 90 00:04:08,560 --> 00:04:09,860 >> Felly pam rydym yn defnyddio swyddogaethau? 91 00:04:09,860 --> 00:04:14,220 Wel fel y dywedais yn gynharach, os byddwn yn ysgrifennu pob un o'n cod y tu mewn o brif bethau 92 00:04:14,220 --> 00:04:17,120 Gall ca 'n sylweddol feichus ac yn gymhleth mewn gwirionedd. 93 00:04:17,120 --> 00:04:19,980 Swyddogaethau caniatáu i'r gallu i ni i drefnu pethau ac yn torri i fyny 94 00:04:19,980 --> 00:04:24,540 yn broblem gymhleth iawn i mewn llawer is rhannau mwy hylaw. 95 00:04:24,540 --> 00:04:28,130 Swyddogaethau hefyd yn ein galluogi i symleiddio'r broses codio. 96 00:04:28,130 --> 00:04:33,080 Mae'n llawer haws i dadfygio o 10 swyddogaeth llinell yn erbyn llinell 100 97 00:04:33,080 --> 00:04:35,890 swyddogaeth neu swyddogaeth 1,000 llinell. 98 00:04:35,890 --> 00:04:38,400 Os mai dim ond i debug darnau bach ar y tro, 99 00:04:38,400 --> 00:04:42,110 neu ysgrifennu darnau bach ar y pryd, mae'n gwneud y profiad rhaglennu 100 00:04:42,110 --> 00:04:43,070 yn llawer gwell. 101 00:04:43,070 --> 00:04:44,910 Ymddiriedolaeth i mi ar y un. 102 00:04:44,910 --> 00:04:48,400 >> Yn olaf, os ydym yn ysgrifennu swyddogaethau yr ydym yn Gall ailddefnyddio rhannau amrywiol hynny. 103 00:04:48,400 --> 00:04:49,880 Gall swyddogaethau gael eu hailgylchu. 104 00:04:49,880 --> 00:04:51,880 Gellir eu defnyddio mewn un rhaglen neu'r llall. 105 00:04:51,880 --> 00:04:53,713 Rydych eisoes wedi ysgrifennu y swyddogaeth, y cyfan sydd ei 106 00:04:53,713 --> 00:04:56,530 angen ei wneud yw dweud wrth y rhaglen ble i ddod o hyd y swyddogaeth honno. 107 00:04:56,530 --> 00:04:59,680 Rydym wedi bod yn ailgylchu a defnyddio argraffu f ers dros 40 mlynedd. 108 00:04:59,680 --> 00:05:02,150 Ond yr oedd yn ysgrifenedig yn unig un pryd. 109 00:05:02,150 --> 00:05:04,270 Pretty ddefnyddiol, ar y dde. 110 00:05:04,270 --> 00:05:04,830 Iawn. 111 00:05:04,830 --> 00:05:06,040 Felly swyddogaethau yn wych. 112 00:05:06,040 --> 00:05:06,860 Rydym yn gwybod hynny. 113 00:05:06,860 --> 00:05:08,700 Nawr, gadewch i ni ddechrau eu ysgrifennu. 114 00:05:08,700 --> 00:05:10,830 Gadewch i ni ddechrau cael iddynt yn ein rhaglenni. 115 00:05:10,830 --> 00:05:13,869 Er mwyn gwneud hynny, y cyntaf beth yr ydym yn ei wneud yw datgan y swyddogaeth. 116 00:05:13,869 --> 00:05:16,160 Pan fyddwch yn datgan swyddogaeth yr hyn yr ydych chi'n ei wneud yn y bôn 117 00:05:16,160 --> 00:05:18,900 yn dweud wrth y compiler, hey, yn union fel y gwyddoch, 118 00:05:18,900 --> 00:05:20,850 Rydw i'n mynd i gael ei ysgrifennu swyddogaeth yn nes ymlaen 119 00:05:20,850 --> 00:05:22,987 a dyma beth mae'n mynd i edrych fel. 120 00:05:22,987 --> 00:05:24,820 Y rheswm am hyn yw oherwydd gall crynoadyddion 121 00:05:24,820 --> 00:05:27,900 gwneud rhai pethau rhyfedd os maent yn gweld cyfres o symbolau 122 00:05:27,900 --> 00:05:29,560 nad ydynt yn gyfarwydd â hwy. 123 00:05:29,560 --> 00:05:33,000 Felly rydym yn unig yn rhoi y compiler a pennaeth, rwy'n creu swyddogaeth 124 00:05:33,000 --> 00:05:35,492 ac mae'n mynd i wneud hyn. 125 00:05:35,492 --> 00:05:38,450 Datganiadau Swyddogaeth gyffredinol os ydych chi'n trefnu eich cod mewn ffordd 126 00:05:38,450 --> 00:05:41,872 y bydd eraill yn gallu deall a gwneud defnydd o, 127 00:05:41,872 --> 00:05:44,330 rydych yn gyffredinol yn dymuno rhoi pob eich datganiadau swyddogaeth 128 00:05:44,330 --> 00:05:48,220 ar frig eich cod, dde cyn dechrau ysgrifennu prif hyd yn oed. 129 00:05:48,220 --> 00:05:50,770 Ac yn gyfleus, mae ffurflen safonol iawn 130 00:05:50,770 --> 00:05:53,500 bod pob datganiad swyddogaeth a ganlyn. 131 00:05:53,500 --> 00:05:56,090 Maent i gyd yn 'n bert lawer yn edrych fel hyn. 132 00:05:56,090 --> 00:06:01,440 Mae tair rhan i swyddogaeth datganiad, math ddychwelyd, enw, 133 00:06:01,440 --> 00:06:03,420 a rhestr dadl. 134 00:06:03,420 --> 00:06:07,180 >> Nawr bod y math dychwelyd yw pa fath o amrywiol allbwn swyddogaeth ewyllys. 135 00:06:07,180 --> 00:06:10,710 Felly er enghraifft, os ydym yn meddwl yn ôl munud yn ôl at y lluosi dau 136 00:06:10,710 --> 00:06:15,690 rhifau swyddogaeth, beth ydym yn ei ddisgwyl os rydym yn lluosi yn gyfanrif gan cyfanrif 137 00:06:15,690 --> 00:06:18,502 Bydd yr allbwn yn yn ôl pob tebyg yn gyfanrif, ar y dde. 138 00:06:18,502 --> 00:06:20,710 Wedi'i luosi dau rif cyfan gyda'i gilydd, byddwch yn cael yn gyfanrif. 139 00:06:20,710 --> 00:06:24,167 Felly y math dychwelyd y Byddai swyddogaeth fod yn int. 140 00:06:24,167 --> 00:06:26,000 Enw yr hyn yr ydych ei eisiau i alw eich swyddogaeth. 141 00:06:26,000 --> 00:06:29,330 Mae'n debyg mai dyma'r lleiaf pwysig rhan o'r datganiad swyddogaeth, 142 00:06:29,330 --> 00:06:30,827 yn nhermau ymarferoldeb. 143 00:06:30,827 --> 00:06:33,160 Ond mewn gwirionedd mae'n debyg un o'r rhannau mwyaf pwysig 144 00:06:33,160 --> 00:06:36,243 y datganiad swyddogaeth o ran o wybod beth y swyddogaeth mewn gwirionedd 145 00:06:36,243 --> 00:06:37,120 wneud. 146 00:06:37,120 --> 00:06:40,474 Os byddwch yn enwi eich ffwythiant f neu g neu h neu ddirgelwch neu rywbeth fel 'na, 147 00:06:40,474 --> 00:06:42,765 Mae'n debyg eich bod yn mynd i gael ychydig tripio gorau i geisio 148 00:06:42,765 --> 00:06:44,650 i gofio beth swyddogaethau hynny yn ei wneud. 149 00:06:44,650 --> 00:06:47,880 Felly mae'n bwysig i chi roi eich enwau ystyrlon swyddogaeth yn. 150 00:06:47,880 --> 00:06:51,030 >> Yn olaf, rhestr ddadl yw y rhestr coma gwahanu 151 00:06:51,030 --> 00:06:55,260 o'r holl fewnbynnau i'ch swyddogaeth, gan bob un ohonynt fath ac enw. 152 00:06:55,260 --> 00:06:57,840 Felly, nid yn unig sydd gennych i pennu pa fath o newidyn 153 00:06:57,840 --> 00:07:00,760 yr allbwn swyddogaeth ewyllys, ydych hefyd am nodi 154 00:07:00,760 --> 00:07:07,694 pa fath a mathau o newidynnau y Bydd swyddogaeth yn cael ei dderbyn fel mewnbynnau. 155 00:07:07,694 --> 00:07:08,860 Felly, gadewch i ni wneud esiampl yma. 156 00:07:08,860 --> 00:07:10,220 Gadewch i fwrw golwg mewn un yn fwy pendant. 157 00:07:10,220 --> 00:07:13,130 Felly dyma enghraifft o swyddogaeth datganiad i swyddogaeth sy'n 158 00:07:13,130 --> 00:07:14,925 yn ychwanegu dau rif cyfan at ei gilydd. 159 00:07:14,925 --> 00:07:17,800 Swm dau rif cyfan yn mynd i fod yn gyfanrif, yn ogystal, fel yr ydym newydd 160 00:07:17,800 --> 00:07:18,450 trafod. 161 00:07:18,450 --> 00:07:21,610 Ac felly y math dychwelyd, yma yn wyrdd, yn int. 162 00:07:21,610 --> 00:07:25,190 Mai dim ond yn dweud wrthym fod ychwanegu dau ints yn mynd i, ar ddiwedd y dydd, 163 00:07:25,190 --> 00:07:28,799 allbwn, neu boeri yn ôl allan i ni, yn gyfanrif. 164 00:07:28,799 --> 00:07:31,590 O ystyried yr hyn y swyddogaeth hon yn ei wneud i ni yn awyddus i roi cynnig enw ystyrlon. 165 00:07:31,590 --> 00:07:33,630 Ychwanegu dau ints yn ymddangos yn briodol, gan ystyried 166 00:07:33,630 --> 00:07:37,574 rydym yn cymryd dau rif cyfan fel mewnbynnau a gobeithio eu hychwanegu at ei gilydd. 167 00:07:37,574 --> 00:07:40,240 Gallai fod yn dipyn o feichus enw a dweud y gwir swyddogaeth hon 168 00:07:40,240 --> 00:07:42,430 mae'n debyg nad oes angen ers i ni gael yr ychwanegiad 169 00:07:42,430 --> 00:07:46,310 gweithredydd, os ydych yn cofio o'n trafodaeth o weithredwyr, yn flaenorol. 170 00:07:46,310 --> 00:07:49,650 Ond gadewch i ni ddweud er mwyn ddadl bod y swyddogaeth hon yn ddefnyddiol 171 00:07:49,650 --> 00:07:52,860 ac felly byddwn yn ei alw'n ychwanegu dau ints. 172 00:07:52,860 --> 00:07:55,230 Yn olaf, y swyddogaeth hon yn cymryd dwy mewnbynnau. 173 00:07:55,230 --> 00:07:56,960 Pob un ohonynt yn gyfanrif. 174 00:07:56,960 --> 00:07:59,900 Felly mae gennym coma hwn Rhestr gwahanu o fewnbynnau. 175 00:07:59,900 --> 00:08:02,830 Nawr rydym yn gyffredinol eisiau roi enw i bob un ohonynt 176 00:08:02,830 --> 00:08:05,070 fel y gellir eu defnyddio yn y swyddogaeth. 177 00:08:05,070 --> 00:08:07,180 Nid yw'r enwau yn ofnadwy o bwysig. 178 00:08:07,180 --> 00:08:11,400 >> Yn yr achos hwn, nid ydym yn ei wneud o reidrwydd unrhyw ystyr ynghlwm wrthynt. 179 00:08:11,400 --> 00:08:13,140 Felly, gallwn dim ond galw nhw a a b. 180 00:08:13,140 --> 00:08:14,257 Mae hynny'n hollol iawn. 181 00:08:14,257 --> 00:08:16,090 Os, fodd bynnag, byddwch yn dod o hyd i eich hun mewn sefyllfa 182 00:08:16,090 --> 00:08:19,497 lle enwau'r newidynnau Efallai mewn gwirionedd fod yn bwysig, 183 00:08:19,497 --> 00:08:21,830 efallai y byddwch am eu galw rhywbeth ar wahân a a b 184 00:08:21,830 --> 00:08:24,701 i roi rhywbeth mwy iddynt symbolaidd ystyrlon. 185 00:08:24,701 --> 00:08:27,700 Ond yn yr achos hwn, nid ydym yn ei wneud mewn gwirionedd yn gwybod unrhyw beth arall am y swyddogaeth. 186 00:08:27,700 --> 00:08:29,320 Rydym yn unig am ychwanegu dau rif cyfan. 187 00:08:29,320 --> 00:08:32,429 Felly, byddwn yn dim ond galw cyfanrifau y rhai a a b. 188 00:08:32,429 --> 00:08:33,990 Dyna un enghraifft. 189 00:08:33,990 --> 00:08:36,287 >> Pam na wnewch chi gymryd ail i feddwl am yr un yma, 190 00:08:36,287 --> 00:08:38,870 sut y byddech yn ysgrifennu swyddogaeth datganiad i swyddogaeth sy'n 191 00:08:38,870 --> 00:08:42,940 lluosi dau fel y bo'r angen rhifau pwynt? 192 00:08:42,940 --> 00:08:45,910 Ydych chi'n cofio beth yw fel y bo'r angen rhif pwynt yw? 193 00:08:45,910 --> 00:08:48,120 Beth fyddai swyddogaeth hon datganiad yn edrych? 194 00:08:48,120 --> 00:08:53,330 Fi 'n weithredol yn argymell eich oedi y fideo yma ac yn cymryd faint o amser sydd ei angen arnoch. 195 00:08:53,330 --> 00:08:55,521 Meddyliwch am beth mae hyn Byddai datganiad swyddogaeth fod? 196 00:08:55,521 --> 00:08:56,770 Beth fyddai'r math dychwelyd fod? 197 00:08:56,770 --> 00:08:58,103 Beth fyddai enw ystyrlon fod? 198 00:08:58,103 --> 00:08:59,580 Beth fyddai'r mewnbynnau fod? 199 00:08:59,580 --> 00:09:03,190 Felly pam na wnewch chi oedi y fideo yma ac ysgrifennu i fyny datganiad swyddogaeth 200 00:09:03,190 --> 00:09:07,640 am swyddogaeth a fyddai'n lluosi dau rif pwynt arnawf gyda'i gilydd. 201 00:09:07,640 --> 00:09:09,330 Gobeithio eich bod seibio y fideo. 202 00:09:09,330 --> 00:09:12,950 >> Felly, gadewch i ni edrych ar enghraifft o un datganiad posibl. 203 00:09:12,950 --> 00:09:17,340 Float dau reals amryfal arnofio x, arnofio y. 204 00:09:17,340 --> 00:09:19,090 Mae'r cynnyrch o ddau rhifau pwynt arnawf, 205 00:09:19,090 --> 00:09:21,710 sy'n dwyn i gof yn sut yr ydym yn cynrychioli rhifau real 206 00:09:21,710 --> 00:09:26,770 neu rifau gyda gwerthoedd degol yn c, yn mynd i fod yn rhif pwynt arnawf. 207 00:09:26,770 --> 00:09:28,570 Pan fyddwch yn lluosi a degol trwy degol, 208 00:09:28,570 --> 00:09:30,460 Mae'n debyg eich bod yn mynd i gael degol. 209 00:09:30,460 --> 00:09:31,960 Ydych am roi ei enw perthnasol. 210 00:09:31,960 --> 00:09:33,810 Lluoswch dau reals yn ymddangos yn iawn. 211 00:09:33,810 --> 00:09:36,620 Ond gallai chi wir yn ei alw dau fflotiau amryfal, neu fflotiau amryfal. 212 00:09:36,620 --> 00:09:39,540 Unrhyw beth fel 'na, cyn belled â'i fod Rhoddodd rhai ystyr gwirioneddol i'r hyn 213 00:09:39,540 --> 00:09:41,469 blwch du roedd hyn yn mynd i'w wneud. 214 00:09:41,469 --> 00:09:44,260 Ac eto, yn yr achos hwn, nid ydym yn ei wneud ymddangos i gael unrhyw ystyr sydd ynghlwm 215 00:09:44,260 --> 00:09:46,390 i enwau'r newidynnau rydym yn pasio i mewn, 216 00:09:46,390 --> 00:09:48,645 felly rydym yn unig yn galw x ac y iddyn nhw. 217 00:09:48,645 --> 00:09:51,020 Nawr, os byddwch yn ffonio rhywbeth iddynt arall, mae hynny'n hollol iawn. 218 00:09:51,020 --> 00:09:53,310 Yn wir, os gwnaethoch chi datganiad hwn yn lle hynny 219 00:09:53,310 --> 00:09:55,450 gan ddefnyddio dyblau yn lle hynny o fflotiau, os ydych yn cofio 220 00:09:55,450 --> 00:09:59,100 bod yn dyblu yn wahanol ffordd i fwy penodol 221 00:09:59,100 --> 00:10:02,330 pennu rhifau real neu fel y bo'r angen newidynnau pwynt. 222 00:10:02,330 --> 00:10:03,620 Mae hynny'n hollol iawn hefyd. 223 00:10:03,620 --> 00:10:04,670 Byddai naill ai un o'r rheiny yn iawn. 224 00:10:04,670 --> 00:10:06,711 Yn wir, mae yna nifer o gwahanol gyfuniadau 225 00:10:06,711 --> 00:10:08,410 o ffyrdd i ddatgan swyddogaeth hon. 226 00:10:08,410 --> 00:10:10,884 Ond mae'r rhain yn ddau rhai 'n bert da. 227 00:10:10,884 --> 00:10:12,550 Rydym wedi datgan yn swyddogaeth, mae hynny'n wych. 228 00:10:12,550 --> 00:10:15,700 Rydym wedi dweud wrth y compiler hyn y mae'n ei yw, yr hyn rydym yn mynd i fod yn ei wneud. 229 00:10:15,700 --> 00:10:17,630 Nawr, gadewch i ni mewn gwirionedd yn ysgrifennu y swyddogaeth honno. 230 00:10:17,630 --> 00:10:20,750 Gadewch i ni roi cynnig diffiniad, fel bod y tu mewn i'r blwch du 231 00:10:20,750 --> 00:10:22,840 ymddygiad rhagweladwy sy'n digwydd. 232 00:10:22,840 --> 00:10:26,270 Yn wir, yr ydym yn lluosi dau go iawn rhifau at ei gilydd, neu rifau adio 233 00:10:26,270 --> 00:10:29,760 gyda'i gilydd, neu wneud beth bynnag y mae ein bod yn gofyn i ein swyddogaeth i'w wneud. 234 00:10:29,760 --> 00:10:32,780 >> Felly, mewn gwirionedd, gadewch i ni geisio a diffinio lluosi dau reals yr ydym yn unig 235 00:10:32,780 --> 00:10:35,350 siarad am eiliad yn ôl. 236 00:10:35,350 --> 00:10:38,560 Nawr bod y dechrau diffiniad swyddogaeth 237 00:10:38,560 --> 00:10:41,720 edrych bron yn union yr un fath fel datganiad swyddogaeth. 238 00:10:41,720 --> 00:10:43,170 Mae gen i ddau ohonynt yma. 239 00:10:43,170 --> 00:10:47,770 Ar y brig yn y datganiad swyddogaeth, math, enw, coma gwahanu dadl 240 00:10:47,770 --> 00:10:49,410 rhestr, hanner colon. 241 00:10:49,410 --> 00:10:53,800 Mae'r hanner colon yn dangos bod hynny yw datganiad swyddogaeth. 242 00:10:53,800 --> 00:10:57,060 Mae gychwyn y swyddogaeth diffiniad yn edrych bron yn union 243 00:10:57,060 --> 00:11:03,790 yr un fath, math, enw, coma gwahanu Rhestr ddadl, dim hanner colon, 244 00:11:03,790 --> 00:11:05,206 agor cyrliog Brace. 245 00:11:05,206 --> 00:11:07,580 Mae'r Brace cyrliog agored, yn union fel rydym wedi bod yn ei wneud gyda phrif, 246 00:11:07,580 --> 00:11:09,540 yn golygu ein bod yn awr dechrau i ddiffinio 247 00:11:09,540 --> 00:11:14,567 beth sy'n digwydd y tu mewn i'r blwch du sy'n rydym wedi penderfynu i alw dau reals amryfal. 248 00:11:14,567 --> 00:11:15,900 Dyma un ffordd o weithredu. 249 00:11:15,900 --> 00:11:20,370 Gallem ddweud, gallem ddatgan newydd amrywiol o fath a elwir yn arnofio gynnyrch 250 00:11:20,370 --> 00:11:24,020 ac yn aseinio y newidyn at werth x amseroedd y. 251 00:11:24,020 --> 00:11:27,306 Ac yna dychwelyd cynnyrch. 252 00:11:27,306 --> 00:11:28,430 Beth mae dychwelyd yn ei olygu fan hyn. 253 00:11:28,430 --> 00:11:31,090 Wel dychwelyd yw'r ffordd rydym yn nodi dyna sut 254 00:11:31,090 --> 00:11:33,400 rydym yn pasio yr allbwn yn ôl allan. 255 00:11:33,400 --> 00:11:38,160 Felly dychwelyd rhywbeth, yr un fath â, mae hyn yn allbwn y blwch du. 256 00:11:38,160 --> 00:11:40,732 Felly dyna sut yr ydych yn ei wneud. 257 00:11:40,732 --> 00:11:42,190 Dyma ffordd arall o weithredu. 258 00:11:42,190 --> 00:11:45,050 Gallai Rydym yn unig yn dychwelyd x amseroedd y. 259 00:11:45,050 --> 00:11:45,870 x yn arnofio. 260 00:11:45,870 --> 00:11:46,660 y yn arnofio. 261 00:11:46,660 --> 00:11:48,490 Felly x adegau y hefyd yn arnofio. 262 00:11:48,490 --> 00:11:50,750 Nid oes angen i ni hyd yn oed creu newidyn arall. 263 00:11:50,750 --> 00:11:56,750 Felly dyna ffordd wahanol i gweithredu'r blwch du union un fath. 264 00:11:56,750 --> 00:11:58,570 >> Nawr cymryd hyn o bryd, oedi y fideo eto, 265 00:11:58,570 --> 00:12:01,680 a cheisio diffinio ychwanegu dau ints, sef y swyddogaeth eraill yr ydym 266 00:12:01,680 --> 00:12:03,090 siarad am funud yn ôl. 267 00:12:03,090 --> 00:12:06,440 Unwaith eto fan hyn, dwi wedi rhoi'r swyddogaeth datganiad, ac felly mae'r hanner colon, 268 00:12:06,440 --> 00:12:08,420 a Brace cyrliog agored a cyrliog caeedig 269 00:12:08,420 --> 00:12:12,080 Brace i ddangos lle byddwn yn llenwi yng nghynnwys ychwanegu dau ints, 270 00:12:12,080 --> 00:12:15,530 fel ein bod yn diffinio penodol ymddygiad y tu mewn i'r blwch du. 271 00:12:15,530 --> 00:12:16,380 Felly oedi y fideo. 272 00:12:16,380 --> 00:12:18,790 Ac yn cymryd cymaint o amser ag y mae angen i chi geisio diffinio 273 00:12:18,790 --> 00:12:25,040 yn gweithredu ychwanegu dau ints, megis pan fydd y ffwythiant allbynnau gwerth, 274 00:12:25,040 --> 00:12:29,209 mae'n ei wneud, mewn gwirionedd, yn dychwelyd y swm y ddau mewnbynnau. 275 00:12:29,209 --> 00:12:32,000 Felly, yn union fel yr enghraifft flaenorol, mae sawl ffordd wahanol 276 00:12:32,000 --> 00:12:34,210 y gallech gweithredu ychwanegu dau ints. 277 00:12:34,210 --> 00:12:35,130 Dyma un. 278 00:12:35,130 --> 00:12:37,172 Mewn yma yn oren rwyf wedi newydd gael rhai comments-- 279 00:12:37,172 --> 00:12:38,880 Rwyf newydd ychwanegu rhai sylwadau i nodi 280 00:12:38,880 --> 00:12:41,400 beth sy'n digwydd ar bob llinell o god. 281 00:12:41,400 --> 00:12:45,430 Felly, yr wyf yn datgan newidyn Gelwir swm o fath int. 282 00:12:45,430 --> 00:12:47,279 Yr wyf yn dweud y swm yn cyfateb yn fantais b. 283 00:12:47,279 --> 00:12:50,070 Dyna lle'r ydym yn ei wneud mewn gwirionedd mae'r gwaith yn ychwanegu ac yn b gyda'i gilydd. 284 00:12:50,070 --> 00:12:51,850 Ac yr wyf yn dychwelyd swm. 285 00:12:51,850 --> 00:12:56,460 Ac mae hynny'n gwneud synnwyr gan fod swm yn newidyn o'r math int. 286 00:12:56,460 --> 00:13:00,180 A beth yw'r data deipio bod hyn swyddogaeth yn dweud wrthyf ei fod yn mynd i allbwn? 287 00:13:00,180 --> 00:13:00,680 Int. 288 00:13:00,680 --> 00:13:03,072 Felly rwy'n dychwelyd y swm, a oedd yn yn newidyn cyfanrif. 289 00:13:03,072 --> 00:13:06,030 Ac mae hynny'n gwneud synnwyr o ystyried yr hyn rydym wedi datgan a ddiffinnir ein swyddogaeth 290 00:13:06,030 --> 00:13:07,320 i'w wneud. 291 00:13:07,320 --> 00:13:09,700 >> Nawr gallwch hefyd benodi y swyddogaeth y modd hwn, 292 00:13:09,700 --> 00:13:15,260 int swm yn cyfateb yn fantais b-- sgip bod gyntaf step-- ac yna, yn dychwelyd swm. 293 00:13:15,260 --> 00:13:17,760 Nawr fe allech chi gael hefyd rhoi ar waith fel hyn, 294 00:13:17,760 --> 00:13:19,180 yr wyf yn hynod o ddim yn argymell. 295 00:13:19,180 --> 00:13:22,540 Mae hyn yn arddull yn ddrwg ar gyfer un beth a dylunio drwg iawn, 296 00:13:22,540 --> 00:13:24,420 ond mae'n ei wneud, mewn gwirionedd, yn gweithio. 297 00:13:24,420 --> 00:13:30,199 Os ydych yn cymryd cod hwn, sydd yn int ychwanegwch ddrwg wiber dot c, ac yn ei defnyddio. 298 00:13:30,199 --> 00:13:31,990 Mae'n mewn gwirionedd yn gwneud synnwyr dau rif cyfan at ei gilydd. 299 00:13:31,990 --> 00:13:37,632 Mae'n gweithredu gwael iawn o hyn ymddygiad penodol. 300 00:13:37,632 --> 00:13:38,340 Ond mae'n gweithio. 301 00:13:38,340 --> 00:13:41,200 'I' jyst yma i ddangos y pwynt nad ydym yn ei wneud mewn gwirionedd 302 00:13:41,200 --> 00:13:44,530 poeni beth sy'n digwydd y tu mewn y blwch du, ar yr amod 303 00:13:44,530 --> 00:13:46,510 gan ei fod wedi yr allbwn yr ydym yn ei ddisgwyl. 304 00:13:46,510 --> 00:13:48,870 Mae hwn yn blwch du a gynlluniwyd yn wael. 305 00:13:48,870 --> 00:13:53,801 Ond ar ddiwedd y dydd, mae'n ei wneud allbwn yn dal y swm yn fantais b. 306 00:13:53,801 --> 00:13:54,300 Iawn. 307 00:13:54,300 --> 00:13:56,320 Felly, rydym wedi datgan swyddogaethau. 308 00:13:56,320 --> 00:13:57,490 Ac rydym wedi diffinio'n swyddogaeth. 309 00:13:57,490 --> 00:13:58,540 Felly dyna wirioneddol dda. 310 00:13:58,540 --> 00:14:03,020 Nawr, gadewch i ni ddechrau defnyddio'r swyddogaethau ein bod ni wedi datgan ac rydym wedi diffinio. 311 00:14:03,020 --> 00:14:05,960 I alw function-- mae'n mewn gwirionedd 'n bert easy-- y cyfan sydd angen i chi ei wneud 312 00:14:05,960 --> 00:14:09,070 yw ei throsglwyddo dadleuon priodol, dadleuon o'r math data 313 00:14:09,070 --> 00:14:11,600 ei bod yn disgwyl, a Yna aseinio'r dychwelyd 314 00:14:11,600 --> 00:14:15,190 gwerth y swyddogaeth honno ac this-- esgus me-- 315 00:14:15,190 --> 00:14:19,390 aseinio gwerth dychwelyd swyddogaeth honno i rywbeth o'r math cywir. 316 00:14:19,390 --> 00:14:22,410 >> Felly gadewch i ni gael golwg ar mae hyn yn ymarferol mewn ffeil 317 00:14:22,410 --> 00:14:27,730 Gelwir gwiber 1 dot, c sy'n Mae gen i yn fy IDE cs50. 318 00:14:27,730 --> 00:14:31,042 Felly dyma neidr 1 dot c. 319 00:14:31,042 --> 00:14:33,500 Ar y dechrau byddwch yn gweld gen i fy cynnwys, bunt yn cynnwys, 320 00:14:33,500 --> 00:14:35,460 safon IO, ac cs50 dot h. 321 00:14:35,460 --> 00:14:37,700 Ac yna mae gen i fy ddatganiad swyddogaeth. 322 00:14:37,700 --> 00:14:39,570 Dyma lle rwy'n dweud wrth y compiler rwy'n 323 00:14:39,570 --> 00:14:42,850 mynd i fod yn ysgrifennu swyddogaeth a elwir yn ychwanegu dau ints. 324 00:14:42,850 --> 00:14:45,780 Mae'n mynd i allbwn newidyn math cyfanrif. 325 00:14:45,780 --> 00:14:47,360 Dyna beth y rhan hon yn iawn yma. 326 00:14:47,360 --> 00:14:51,950 Ac yna gen i ddau fewnbwn i ei fod yn a b, pob un ohonynt yn gyfanrif. 327 00:14:51,950 --> 00:14:58,250 Y tu mewn o brif, gofynnaf i'r defnyddiwr ar gyfer mewnbwn drwy ddweud, yn rhoi cyfanrif mi. 328 00:14:58,250 --> 00:15:01,040 Ac maent yn cael eu hannog i anghofio int, sydd yn swyddogaeth sy'n 329 00:15:01,040 --> 00:15:03,240 wedi ei gynnwys yn y llyfrgell cs50. 330 00:15:03,240 --> 00:15:07,660 A bod yn cael eu storio mewn x, newidyn cyfanrif. 331 00:15:07,660 --> 00:15:09,886 >> Yna, rydym yn eu hannog i gyfanrif arall. 332 00:15:09,886 --> 00:15:13,070 Rydym yn cael cyfanrif arall a storio'r hynny yn y. 333 00:15:13,070 --> 00:15:17,990 Ac yna, yma ar y llinell 28, yn lle rydym yn gwneud ein swyddogaeth galwad. 334 00:15:17,990 --> 00:15:23,770 Yr ydym yn ei ddweud, gyfartal z int ychwanegwch 2 ints x atalnod y. 335 00:15:23,770 --> 00:15:25,980 A ydych yn gweld pam fod hyn yn gwneud synnwyr? 336 00:15:25,980 --> 00:15:29,710 x yn newidyn Math cyfanrif a y yn newidyn Math cyfanrif. 337 00:15:29,710 --> 00:15:31,220 Felly dyna dda. 338 00:15:31,220 --> 00:15:34,570 Mae hynny'n gwneud synnwyr gyda hyn y mae ein swyddogaeth datganiad ar linell 17 yn edrych fel. 339 00:15:34,570 --> 00:15:38,300 Mae'r rhestr mewnbwn atalnod gwahanu yn disgwyl dau rif cyfan, a a b. 340 00:15:38,300 --> 00:15:40,300 Yn yr achos hwnnw, gallwn alw nhw beth bynnag yr ydym ei eisiau. 341 00:15:40,300 --> 00:15:42,300 'I jyst yn disgwyl dau rif cyfan. 342 00:15:42,300 --> 00:15:44,930 Ac x yn gyfanrif ac y yn gyfanrif. 343 00:15:44,930 --> 00:15:45,640 Sy'n gweithio. 344 00:15:45,640 --> 00:15:48,680 >> Ac rydym yn gwybod bod swyddogaeth yn mynd i allbwn yn gyfanrifau hefyd. 345 00:15:48,680 --> 00:15:51,290 Ac felly yr ydym yn storio'r allbwn y swyddogaeth, 346 00:15:51,290 --> 00:15:56,050 ychwanegu dau ints, mewn math cyfanrif amrywiol, yr ydym yn galw z. 347 00:15:56,050 --> 00:16:01,980 Ac yna gallwn ddweud, y swm o ff y cant a fi cant yn y cant i. 348 00:16:01,980 --> 00:16:06,210 x, y a z yn y drefn honno llenwi rhai i yn y cant. 349 00:16:06,210 --> 00:16:08,334 Beth yw'r diffiniad o ychwanegu dau ints edrych? 350 00:16:08,334 --> 00:16:09,125 Mae'n eithaf syml. 351 00:16:09,125 --> 00:16:11,270 Mae'n un o'r rhai yr ydym jyst yn gweld yr ail yn ôl, 352 00:16:11,270 --> 00:16:14,390 swm int hafal swm plws b dychwelyd. 353 00:16:14,390 --> 00:16:15,420 Mae hyn yn gweithio? 354 00:16:15,420 --> 00:16:17,270 Gadewch i ni gadw'r ffeil. 355 00:16:17,270 --> 00:16:22,080 Ac yna i lawr yma ar fy terfynell Rydw i'n mynd i wneud gwiberod 1, 356 00:16:22,080 --> 00:16:23,000 ac yr wyf yn glir fy sgrin. 357 00:16:23,000 --> 00:16:25,791 Rydw i'n mynd i chwyddo i mewn gan fy mod yn gwybod mae'n ychydig yn anodd eu gweld. 358 00:16:25,791 --> 00:16:31,520 359 00:16:31,520 --> 00:16:33,770 >> Felly, rydym yn llunio rhaglen hon fel gwiberod 1. 360 00:16:33,770 --> 00:16:37,910 Felly, gallwn wneud dot slaes wiber 1. 361 00:16:37,910 --> 00:16:40,060 Rhowch yn gyfanrif mi, 10. 362 00:16:40,060 --> 00:16:42,380 Rhowch cyfanrif arall i mi, 20. 363 00:16:42,380 --> 00:16:45,200 Mae swm o 10 a 20 yw 30. 364 00:16:45,200 --> 00:16:47,615 Felly, rydym yn gwneud swyddogaeth galwad llwyddiannus. 365 00:16:47,615 --> 00:16:55,820 Gallwch chi redeg y swyddogaeth eto, negyddol 10, 17 swm o negyddol 10 a 17 yw 7. 366 00:16:55,820 --> 00:16:57,120 Mae'r swyddogaeth hon yn gweithio. 367 00:16:57,120 --> 00:16:59,240 Mae ganddo'r ymddygiad ein bod yn disgwyl iddi. 368 00:16:59,240 --> 00:17:03,610 Ac felly rydym wedi gwneud lwyddiannus swyddogaeth, diffiniad, datganiad, 369 00:17:03,610 --> 00:17:07,288 a swyddogaeth galwad llwyddiannus. 370 00:17:07,288 --> 00:17:09,079 Amrywiol Cwpl pwyntiau am swyddogaethau 371 00:17:09,079 --> 00:17:10,611 cyn i ni ddod i'r casgliad adran hon. 372 00:17:10,611 --> 00:17:12,319 Dwyn i gof gan ein trafod y mathau data, 373 00:17:12,319 --> 00:17:16,109 yn flaenorol, y swyddogaethau Weithiau gall gymryd unrhyw mewnbynnau. 374 00:17:16,109 --> 00:17:17,930 Os yw hynny'n wir, rydym yn yn datgan y swyddogaeth 375 00:17:17,930 --> 00:17:19,788 fel un sydd â rhestr dadl ddi-rym. 376 00:17:19,788 --> 00:17:21,579 A ydych yn cofio yr hyn y mae'r y rhan fwyaf o swyddogaeth cyffredin 377 00:17:21,579 --> 00:17:25,036 rydym wedi gweld hyd yn hyn sy'n cymryd rhestr dadl ddi-rym yn? 378 00:17:25,036 --> 00:17:27,300 Mae'n prif. 379 00:17:27,300 --> 00:17:30,850 Dwyn i gof hefyd swyddogaeth honno weithiau'n Nid oes mewn gwirionedd yn rhaid i allbwn. 380 00:17:30,850 --> 00:17:34,210 Yn yr achos hwnnw, rydym yn datgan y swyddogaeth fel un sydd â math dychwelyd yn ddi-rym. 381 00:17:34,210 --> 00:17:37,880 Gadewch i ni ddod i'r casgliad yr adran hon drwy mynd i'r afael â phroblem ymarfer. 382 00:17:37,880 --> 00:17:39,900 >> Felly dyma yw'r broblem a nodir. 383 00:17:39,900 --> 00:17:43,630 Rwyf am i chi ysgrifennu swyddogaeth Gelwir triongl dilys. 384 00:17:43,630 --> 00:17:47,410 Beth ddylai swyddogaeth hon ei wneud yn cymryd tri rhif real 385 00:17:47,410 --> 00:17:51,930 sy'n cynrychioli y darnau o'r tri ochr triongl fel ei baramedrau, 386 00:17:51,930 --> 00:17:54,550 neu ei ddadleuon, neu ei inputs-- set arall o cyfystyron 387 00:17:54,550 --> 00:17:57,340 y gallech ddod ar eu traws. 388 00:17:57,340 --> 00:18:01,120 Dylai swyddogaeth hon naill ai allbwn gwir neu gau 389 00:18:01,120 --> 00:18:04,960 gan ddibynnu a rhai tri hyd yn gallu gwneud triongl. 390 00:18:04,960 --> 00:18:09,930 Ydych chi'n cofio y math data y rydym yn ei ddefnyddio i nodi cywir neu anghywir? 391 00:18:09,930 --> 00:18:11,436 Nawr, sut ydych chi'n weithredu hyn? 392 00:18:11,436 --> 00:18:13,810 Wel yn gwybod mae yna gwpl o reolau ynghylch trionglau 393 00:18:13,810 --> 00:18:15,480 sydd mewn gwirionedd yn ddefnyddiol gwybod. 394 00:18:15,480 --> 00:18:18,292 Gall triongl Dim ond ochr gyda hyd cadarnhaol. 395 00:18:18,292 --> 00:18:19,000 Mae hynny'n gwneud synnwyr. 396 00:18:19,000 --> 00:18:21,432 Mae'n debyg eich bod yn dweud, duh. 397 00:18:21,432 --> 00:18:23,390 Y peth arall i'w nodi fodd bynnag, yw bod y swm 398 00:18:23,390 --> 00:18:25,484 o hyd o unrhyw dwy ochr y triongl 399 00:18:25,484 --> 00:18:27,650 wedi i fod yn fwy na'r hyd y drydedd ochr. 400 00:18:27,650 --> 00:18:28,690 Mae hynny'n wir mewn gwirionedd. 401 00:18:28,690 --> 00:18:34,150 Ni allwch gael triongl o ochrau 1, 2 a 4, er enghraifft, oherwydd 1 a 2 402 00:18:34,150 --> 00:18:36,270 Nid yw yn fwy na 4. 403 00:18:36,270 --> 00:18:38,870 Felly dyna'r rheolau y penderfynu a yw'r tri neu beidio 404 00:18:38,870 --> 00:18:42,740 Gall mewnbynnau conceivably ffurfio triongl. 405 00:18:42,740 --> 00:18:46,360 Felly, yn cymryd ychydig o funudau ac yn datgan ac yna diffinio 406 00:18:46,360 --> 00:18:49,810 swyddogaeth hon a elwir yn ddilys triongl, fel ei fod mewn gwirionedd 407 00:18:49,810 --> 00:18:51,650 Mae gan yr ymddygiad a nodir yma. 408 00:18:51,650 --> 00:18:57,030 >> Bydd yn allbwn wir os bydd y rhai tair ochr yn gallu cynnwys triongl, 409 00:18:57,030 --> 00:19:01,950 a ffug fel arall Yn barod i weld sut wnaethoch chi? 410 00:19:01,950 --> 00:19:04,650 Dyma un gweithredu triongl o ddilys. 411 00:19:04,650 --> 00:19:05,770 Nid dyma'r unig un. 412 00:19:05,770 --> 00:19:07,770 Efallai eich un chi amrywio ychydig. 413 00:19:07,770 --> 00:19:11,040 Ond mae hyn yn un yn ei wneud, mewn gwirionedd, yn cael yr ymddygiad yr ydym yn ei ddisgwyl. 414 00:19:11,040 --> 00:19:14,450 Yr ydym yn datgan ein swyddogaeth yn y top iawn, Bool triongl dilys 415 00:19:14,450 --> 00:19:16,630 arnofio x arnofio y arnofio z. 416 00:19:16,630 --> 00:19:18,930 Felly eto, swyddogaeth hon yn cymryd tair rhifau real 417 00:19:18,930 --> 00:19:22,280 fel ei dadleuon, fel y bo'r angen newidynnau gwerth pwynt, 418 00:19:22,280 --> 00:19:26,510 ac allbynnau cywir neu anghywir gwerth, sy'n Boole, galw i gof. 419 00:19:26,510 --> 00:19:28,660 Felly dyna pam y math ffurflen yn bool. 420 00:19:28,660 --> 00:19:30,016 Yna, rydym yn diffinio swyddogaeth. 421 00:19:30,016 --> 00:19:33,140 Y peth cyntaf yr ydym yn ei wneud yw gwirio i wneud yn siŵr bod pob un o'r ochrau yn gadarnhaol. 422 00:19:33,140 --> 00:19:37,010 Os yw x yn llai na neu'n hafal i 0, neu os y yn hafal i 0, 423 00:19:37,010 --> 00:19:41,050 neu os z yn llai na neu'n hafal i 0, Ni ellir bosibl fod triongl. 424 00:19:41,050 --> 00:19:42,380 Nid oes ganddynt ochrau cadarnhaol. 425 00:19:42,380 --> 00:19:45,790 Ac felly gallwn ddychwelyd ffug yn y sefyllfa honno. 426 00:19:45,790 --> 00:19:49,010 Nesaf, byddwn yn gwirio i wneud yn siŵr bod pob pâr o fewnbynnau 427 00:19:49,010 --> 00:19:51,830 yn fwy na'r trydydd un. 428 00:19:51,830 --> 00:19:54,530 >> Felly, os x plws y yn llai na neu'n hafal i z, 429 00:19:54,530 --> 00:19:57,060 neu os x plws z yn llai na neu'n hafal i y, 430 00:19:57,060 --> 00:20:01,730 neu os y plws z yn llai na neu'n hafal i x, na all hefyd fod triongl dilys. 431 00:20:01,730 --> 00:20:03,800 Felly byddwn yn dychwelyd ffug eto. 432 00:20:03,800 --> 00:20:06,900 Gan dybio rydym yn llwyddo yn ddau o'r gwiriadau fodd bynnag, yna gallwn ddychwelyd yn wir. 433 00:20:06,900 --> 00:20:09,440 Oherwydd bod y rhai tair ochr yn gallu returning-- 434 00:20:09,440 --> 00:20:11,647 o greu triongl dilys. 435 00:20:11,647 --> 00:20:12,230 A dyna ni. 436 00:20:12,230 --> 00:20:13,830 Yr ydych yn awr wedi datgan a diffiniedig. 437 00:20:13,830 --> 00:20:17,330 Ac efallai y byddwch yn gallu nawr defnyddio a galw swyddogaeth hon. 438 00:20:17,330 --> 00:20:19,470 Great swydd. 439 00:20:19,470 --> 00:20:20,650 Rwy'n Doug Lloyd. 440 00:20:20,650 --> 00:20:22,820 Mae hyn yn cs50. 441 00:20:22,820 --> 00:20:24,340