1 00:00:00,000 --> 00:00:02,420 >> [CHWARAE CERDDORIAETH] 2 00:00:02,420 --> 00:00:05,189 3 00:00:05,189 --> 00:00:05,980 SIARADWR: Pob hawl. 4 00:00:05,980 --> 00:00:08,540 Felly, gadewch i ni siarad am un arall peth sy'n fath o unigryw i C, 5 00:00:08,540 --> 00:00:10,010 sydd yn fathau o ddata a newidynnau. 6 00:00:10,010 --> 00:00:12,340 Pan fyddaf yn dweud unigryw i C, Fi 'n sylweddol Dim ond yn ei olygu yng nghyd-destun, 7 00:00:12,340 --> 00:00:14,470 os ydych wedi bod yn rhaglennydd am amser hir iawn, 8 00:00:14,470 --> 00:00:16,270 Mae'n debyg eich bod wedi peidio gweithio gyda mathau data 9 00:00:16,270 --> 00:00:18,470 os ydych chi wedi defnyddio modern ieithoedd rhaglennu. 10 00:00:18,470 --> 00:00:20,432 Ieithoedd modern fel PHP a JavaScript, 11 00:00:20,432 --> 00:00:22,640 y byddwn yn hefyd yn gweld ychydig yn nes ymlaen yn y cwrs, 12 00:00:22,640 --> 00:00:25,550 Nid oes rhaid i chi nodi mewn gwirionedd y math data o newidyn 13 00:00:25,550 --> 00:00:26,270 pan fyddwch yn ei ddefnyddio. 14 00:00:26,270 --> 00:00:28,067 >> Rydych yn unig yn datgan ei fod ac yn dechrau ei ddefnyddio. 15 00:00:28,067 --> 00:00:29,900 Os yw'n yn gyfanrif, mae'n yn gwybod ei fod yn gyfanrif. 16 00:00:29,900 --> 00:00:31,960 Os yw'n gymeriad, 'i' yn gwybod ei fod yn gymeriad. 17 00:00:31,960 --> 00:00:35,320 Os yw'n gair, mae'n gwybod ei fod yn llinyn, fel y'u gelwir. 18 00:00:35,320 --> 00:00:37,300 >> Ond yn C, sydd yn iaith hŷn, mae angen 19 00:00:37,300 --> 00:00:39,420 i nodi'r data Math o bob newidyn 20 00:00:39,420 --> 00:00:42,990 ein bod yn creu'r tro cyntaf ein bod yn defnyddio y newidyn. 21 00:00:42,990 --> 00:00:45,030 Felly C yn dod gyda rhai adeiledig yn fathau o ddata. 22 00:00:45,030 --> 00:00:46,972 A gadewch i ni gael gyfarwydd gyda rhai o'r rheiny. 23 00:00:46,972 --> 00:00:50,180 Ac yna ar ôl hynny byddwn hefyd yn siarad â ychydig bach am rai o'r mathau data 24 00:00:50,180 --> 00:00:54,450 ein bod wedi ysgrifennu i chi, fel y gallwch eu defnyddio yn CS50. 25 00:00:54,450 --> 00:00:56,130 >> Y cyntaf yw int. 26 00:00:56,130 --> 00:00:59,110 Y math data int ei ddefnyddio ar gyfer newidynnau a fydd yn storio gwerthoedd gyfanrif. 27 00:00:59,110 --> 00:01:03,210 Felly 1, 2, 3, negyddol 1, 2, 3, ac yn y blaen. 28 00:01:03,210 --> 00:01:05,960 Cyfanrifau, sy'n rhywbeth yr ydych Dylai gadw mewn cof ar gyfer y cwis, 29 00:01:05,960 --> 00:01:09,590 bob amser yn cymryd i fyny pedwar bytes o gof, sef 32 o ddarnau. 30 00:01:09,590 --> 00:01:11,620 Mae wyth did mewn beit. 31 00:01:11,620 --> 00:01:14,470 >> Felly, mae hyn yn golygu bod yr ystod o gwerthoedd y gall yn gyfanrif storio 32 00:01:14,470 --> 00:01:19,130 yn cael ei gyfyngu gan yr hyn y gall ffitio o fewn 32 darnau gwerth o wybodaeth. 33 00:01:19,130 --> 00:01:21,850 Yn awr gan ei fod yn troi allan, yr oedd yn hir penderfynwyd yn ôl 34 00:01:21,850 --> 00:01:24,310 y byddem yn gwahanu yr ystod o 32 o ddarnau 35 00:01:24,310 --> 00:01:26,650 i mewn i gyfanrifau negatif a cyfanrifau positif, 36 00:01:26,650 --> 00:01:28,390 bob hanner cael yr ystod. 37 00:01:28,390 --> 00:01:32,230 Felly, yr ystod o werthoedd ein bod yn cynrychioli gydag ystod cyfanrif o negyddol 2 38 00:01:32,230 --> 00:01:36,520 at y pŵer 31ain i 2 i y pŵer 31ain minws 1, 39 00:01:36,520 --> 00:01:38,190 achosi i chi hefyd angen fan a'r lle am 0. 40 00:01:38,190 --> 00:01:41,650 >> Felly, yn y bôn hanner y gwerthoedd posibl gallwch ffitio mewn int yn negyddol, 41 00:01:41,650 --> 00:01:42,610 a hanner yn gadarnhaol. 42 00:01:42,610 --> 00:01:47,270 Ac yn fras yma, mae hyn yn ymwneud negyddol 2 biliwn i tua cadarnhaol 2000000000. 43 00:01:47,270 --> 00:01:50,207 Rhoi neu gymryd cwpl can miliwn. 44 00:01:50,207 --> 00:01:52,290 Felly dyna beth y gallwch ei ffitio mewn newidyn cyfanrif. 45 00:01:52,290 --> 00:01:55,490 Nawr mae gennym hefyd rywbeth Gelwir yn gyfanrif heb eu llofnodi. 46 00:01:55,490 --> 00:01:59,220 Nawr nid yw ints heb eu llofnodi yn math gwahanol o amrywiol. 47 00:01:59,220 --> 00:02:01,590 Yn hytrach, heb eu llofnodi yn hyn a elwir yn rhagbrofol. 48 00:02:01,590 --> 00:02:04,990 Mae'n addasu y data math o cyfanrif ychydig. 49 00:02:04,990 --> 00:02:07,850 >> Ac yn yr achos hwn, beth heb eu llofnodi yw-- ac gallwch hefyd 50 00:02:07,850 --> 00:02:11,530 defnyddio mathau data heb ei arwyddo eraill, Nid yw cyfanrifol yw'r unig un. 51 00:02:11,530 --> 00:02:15,310 Beth mae'n ei wneud yn effeithiol yn dyblau yr amrediad o werthoedd cadarnhaol 52 00:02:15,310 --> 00:02:19,350 y gall yn gyfanrif gymryd ar o draul mwyach caniatáu 53 00:02:19,350 --> 00:02:21,140 i chi gymryd ar werthoedd negatif. 54 00:02:21,140 --> 00:02:25,400 Felly os oes gennych rifau eich bod yn gwybod Bydd cael yn uwch na 2 biliwn ond yn llai 55 00:02:25,400 --> 00:02:31,280 na 4 biliwn, er example-- sydd 2 i'r 32eg power-- 56 00:02:31,280 --> 00:02:33,330 efallai y byddwch am ddefnyddio mae int heb eu llofnodi os ydych yn 57 00:02:33,330 --> 00:02:35,050 byth yn gwybod y bydd eich gwerth yn negyddol. 58 00:02:35,050 --> 00:02:37,216 >> Byddwch yn achlysurol gael a ddefnyddir ar gyfer newidynnau heb eu llofnodi 59 00:02:37,216 --> 00:02:39,460 yn CS50, a dyna pam yr wyf yn sôn amdano yma. 60 00:02:39,460 --> 00:02:43,830 Ond unwaith eto, yr ystod o werthoedd sy'n eich Gall gynrychioli gyda cyfanrif heb eu llofnodi 61 00:02:43,830 --> 00:02:48,240 fel t cyfanrif rheolaidd, yn 0 i 2 i'r pŵer 32eg minws 1, 62 00:02:48,240 --> 00:02:50,840 neu tua 0-4000000000. 63 00:02:50,840 --> 00:02:53,730 Felly, rydych wedi dyblu yn effeithiol y ystod cadarnhaol y gallwch ei ffitio, 64 00:02:53,730 --> 00:02:56,270 ond eich bod wedi rhoi'r gorau i gyd gwerthoedd negatif. 65 00:02:56,270 --> 00:03:00,040 >> Nawr wrth fynd heibio, heb eu llofnodi Nid yw'r unig rhagbrofol 66 00:03:00,040 --> 00:03:01,790 y gallem weld dros mathau data amrywiol. 67 00:03:01,790 --> 00:03:05,779 Mae yna hefyd bethau a elwir yn byr a hir a Etholaeth. 68 00:03:05,779 --> 00:03:07,820 Const byddwn yn gweld ychydig ychydig yn ddiweddarach yn y cwrs. 69 00:03:07,820 --> 00:03:10,830 Byr a hir, rydym nid yn ôl pob tebyg fydd. 70 00:03:10,830 --> 00:03:12,830 >> Ond dim ond yn gwybod bod yna yn rhagbrofol eraill. 71 00:03:12,830 --> 00:03:14,080 Nid Unsigned yw'r unig un. 72 00:03:14,080 --> 00:03:16,596 Ond dyna'r unig un yr ydym ni'n mynd i siarad am ar hyn o bryd. 73 00:03:16,596 --> 00:03:17,310 Felly, i gyd yn iawn. 74 00:03:17,310 --> 00:03:18,393 Felly rydym wedi cynnwys cyfanrifau. 75 00:03:18,393 --> 00:03:19,200 Beth sydd nesaf? 76 00:03:19,200 --> 00:03:20,130 >> Chars. 77 00:03:20,130 --> 00:03:23,620 Felly chars yn cael eu defnyddio ar gyfer newidynnau a fydd yn storio cymeriadau unigol. 78 00:03:23,620 --> 00:03:24,850 Torgoch yn fyr ar gyfer cymeriad. 79 00:03:24,850 --> 00:03:27,870 Ac weithiau efallai y byddwch yn clywed pobl yn ynganu fel car. 80 00:03:27,870 --> 00:03:32,020 >> Felly cymeriadau bob amser yn cymryd i fyny un beit o gof, sydd ychydig 8 did. 81 00:03:32,020 --> 00:03:35,700 Felly, mae hyn yn golygu y gallant ond cyd-fynd Gwerthoedd yn yr ystod o negyddol 2 82 00:03:35,700 --> 00:03:42,430 i'r seithfed pŵer, neu'n negyddol 128, i 2 i'r pŵer 7fed minws 1, neu 127. 83 00:03:42,430 --> 00:03:45,710 >> Diolch i ASCII, roedd yn maith yn ôl penderfynodd ffordd 84 00:03:45,710 --> 00:03:50,805 i fapio rhifau positif y rhai o 0-127 i wahanol gymeriadau 85 00:03:50,805 --> 00:03:52,182 bod pob un yn bodoli ar ein bysellfwrdd. 86 00:03:52,182 --> 00:03:54,640 Felly, fel y byddwn yn gweld yn nes ymlaen yn y cwrs, ac wnewch chi helpu yn ôl pob tebyg 87 00:03:54,640 --> 00:03:57,700 yn dod i gofio ar ryw bwynt, cyfalaf A, am example-- 88 00:03:57,700 --> 00:04:00,732 y brifddinas cymeriad A-- mapiau i'r rhif 65. 89 00:04:00,732 --> 00:04:02,940 A'r rheswm am hynny yw oherwydd dyna beth sydd ei fod yn 90 00:04:02,940 --> 00:04:05,490 cael eu neilltuo gan y safon ASCII. 91 00:04:05,490 --> 00:04:07,850 >> Llythrennau bach A yw 97. 92 00:04:07,850 --> 00:04:11,900 Mae cymeriad 0 ar gyfer pan fyddwch yn mewn gwirionedd deipio cymeriad, nid 93 00:04:11,900 --> 00:04:13,532 cynrychioli nifer sero, yw 48. 94 00:04:13,532 --> 00:04:15,240 Byddwch yn dysgu cwpl o'r rhain wrth i chi fynd. 95 00:04:15,240 --> 00:04:17,990 A byddwch yn sicr yn dod i angen nhw ychydig yn ddiweddarach yn CS50. 96 00:04:17,990 --> 00:04:20,450 97 00:04:20,450 --> 00:04:23,390 >> Y math data mawr nesaf yn arnofio rhifau pwynt. 98 00:04:23,390 --> 00:04:26,100 Felly rhifau pwynt arnawf yn a elwir hefyd yn rhifau real. 99 00:04:26,100 --> 00:04:28,850 Maent yn y bôn rhifau sydd cael pwynt degol ynddynt. 100 00:04:28,850 --> 00:04:33,360 Fel y bo'r angen gwerthoedd pwynt fel gyfanrifau hefyd 101 00:04:33,360 --> 00:04:36,090 cynnwys o fewn 4 bytes o gof. 102 00:04:36,090 --> 00:04:37,580 Nawr does dim siart yma. 103 00:04:37,580 --> 00:04:40,890 Does dim llinell rif, oherwydd bod ddisgrifio'r amrywiaeth o fflôt 104 00:04:40,890 --> 00:04:44,550 Nid yw union glir neu 'n athrylithgar. 105 00:04:44,550 --> 00:04:47,350 >> Digon yw dweud i chi rhaid i 32 o ddarnau i weithio gyda nhw. 106 00:04:47,350 --> 00:04:49,730 Ac os oes gennych rif fel pi, sydd â 107 00:04:49,730 --> 00:04:55,510 yn gyfanrif rhan 3, ac mae fel y bo'r angen pwynt rhannol, neu ran degol 0.14159, 108 00:04:55,510 --> 00:04:58,735 ac yn y blaen, mae angen i chi fod yn gallu cynrychioli pob un iddo-- 109 00:04:58,735 --> 00:05:02,420 y rhan cyfanrif a'r rhan degol. 110 00:05:02,420 --> 00:05:04,550 >> Felly beth ydych chi'n meddwl y gallai hynny ei olygu? 111 00:05:04,550 --> 00:05:08,180 Un peth yw, os y degol yn rhan mynd yn hirach ac yn hirach, 112 00:05:08,180 --> 00:05:10,660 os oes gen i fawr iawn rhan cyfanrif, nid wyf yn gallai 113 00:05:10,660 --> 00:05:13,090 yn gallu bod mor fanwl gywir gyda'r rhan degol. 114 00:05:13,090 --> 00:05:15,280 A dyna 'n sylweddol y cyfyngiad o fflôt. 115 00:05:15,280 --> 00:05:17,229 >> Fflotiau gennych broblem manylder. 116 00:05:17,229 --> 00:05:19,270 Dim ond 32 o ddarnau i gweithio gyda nhw, er mwyn i ni dim ond 117 00:05:19,270 --> 00:05:22,510 fod mor fanwl gywir â ein rhan ni degol. 118 00:05:22,510 --> 00:05:27,300 Ni allwn o reidrwydd gael degol rhan union i 100 neu 200 ddigid, 119 00:05:27,300 --> 00:05:29,710 gan mai dim ond 32 darnau i weithio gyda. 120 00:05:29,710 --> 00:05:31,590 Felly dyna cyfyngiad o fflôt. 121 00:05:31,590 --> 00:05:33,590 >> Nawr yn ffodus mae arall fath o ddata o'r enw 122 00:05:33,590 --> 00:05:36,530 dwbl, a oedd braidd delio â'r broblem hon. 123 00:05:36,530 --> 00:05:39,980 Dyblau, fel fflotiau, hefyd yn cael eu defnyddio i storio rhifau real, neu pwynt arnawf 124 00:05:39,980 --> 00:05:40,840 gwerthoedd. 125 00:05:40,840 --> 00:05:44,340 Y gwahaniaeth yw bod dyblau yn cael eu cywirdeb dwbl. 126 00:05:44,340 --> 00:05:48,177 Gallant ffitio 64 darnau o data, neu wyth bytes. 127 00:05:48,177 --> 00:05:49,010 Beth yw ystyr hynny? 128 00:05:49,010 --> 00:05:51,801 Wel, mae'n golygu y gallwn ni fod yn llawer mwy manwl gywir gyda'r pwynt degol. 129 00:05:51,801 --> 00:05:54,830 Yn hytrach na chael pi i saith lleoedd efallai, gyda fflôt, 130 00:05:54,830 --> 00:05:56,710 gallwn efallai rhaid iddo 30 o leoedd. 131 00:05:56,710 --> 00:05:59,824 Os yw hynny'n bwysig, efallai y byddwch am i ddefnyddio ddwbl yn lle fflôt. 132 00:05:59,824 --> 00:06:01,740 Yn syml, os ydych chi'n gweithio ar unrhyw beth lle 133 00:06:01,740 --> 00:06:06,540 cael lle degol hir iawn ac mae llawer o gywirdeb yn bwysig, 134 00:06:06,540 --> 00:06:08,630 mae'n debyg y byddwch eisiau defnyddio overfloat dwbl. 135 00:06:08,630 --> 00:06:11,250 Nawr am y rhan fwyaf o'ch gwaith mewn CS50, dylai fflôt yn ddigon. 136 00:06:11,250 --> 00:06:15,340 Ond yn gwybod bod yn dyblu yn bodoli fel ffordd i braidd yn delio â'r trachywiredd 137 00:06:15,340 --> 00:06:20,980 broblem drwy roi i chi ychwanegol 32 darnau i weithio gyda gyfer eich rhifau. 138 00:06:20,980 --> 00:06:23,650 >> Yn awr nid yw hyn yn fath data. 139 00:06:23,650 --> 00:06:24,390 Mae hwn yn fath. 140 00:06:24,390 --> 00:06:25,340 Ac fe'i gelwir yn ddi-rym. 141 00:06:25,340 --> 00:06:27,506 A dwi'n siarad am y peth yma oherwydd ein bod i wedi yn ôl pob tebyg 142 00:06:27,506 --> 00:06:29,520 weld ychydig o weithiau sydd eisoes yn CS50. 143 00:06:29,520 --> 00:06:32,020 Ac efallai y byddwch yn meddwl beth mae'n ei olygu. 144 00:06:32,020 --> 00:06:33,390 >> Felly ddi-rym yn fath. 145 00:06:33,390 --> 00:06:34,097 Mae'n yn bodoli. 146 00:06:34,097 --> 00:06:35,180 Ond nid yn fath data. 147 00:06:35,180 --> 00:06:39,350 >> Ni allwn greu amrywiol o fath ddi-rym ac yn rhoi gwerth iddo. 148 00:06:39,350 --> 00:06:42,519 Ond swyddogaethau, er enghraifft, Gall fod â math dychwelyd yn ddi-rym. 149 00:06:42,519 --> 00:06:45,060 Yn syml, os ydych yn gweld swyddogaeth sydd â math dychwelyd yn ddi-rym, 150 00:06:45,060 --> 00:06:46,970 mae'n golygu nad yw'n dychwelyd gwerth. 151 00:06:46,970 --> 00:06:49,440 Allwch chi feddwl am comin swyddogaeth yr ydym wedi defnyddio hyd yn hyn 152 00:06:49,440 --> 00:06:52,780 yn CS50 nad yw'n dychwelyd gwerth? 153 00:06:52,780 --> 00:06:54,700 >> Printf yn un. 154 00:06:54,700 --> 00:06:56,820 Nid printf yn gwneud mewn gwirionedd dychwelyd unrhyw beth i chi. 155 00:06:56,820 --> 00:06:59,850 Mae'n printiau rhywbeth i'r sgrinio, ac yn y bôn 156 00:06:59,850 --> 00:07:01,650 sgîl-effaith o'r hyn y printf wneud. 157 00:07:01,650 --> 00:07:03,620 Ond nid yw'n rhoi gwerth yn ôl i chi. 158 00:07:03,620 --> 00:07:08,419 Nid ydych yn dal y canlyniad a storio mewn rhyw newidyn i'w ddefnyddio yn nes ymlaen. 159 00:07:08,419 --> 00:07:10,710 'I jyst yn printiau rhywbeth i y sgrin ac rydych yn ei wneud. 160 00:07:10,710 --> 00:07:14,360 >> Felly, rydym yn dweud bod printf yn swyddogaeth ddi-rym. 161 00:07:14,360 --> 00:07:16,450 Mae'n dychwelyd dim byd. 162 00:07:16,450 --> 00:07:18,580 >> Mae'r rhestr perimedr Gall swyddogaeth hefyd fod yn ddi-rym. 163 00:07:18,580 --> 00:07:21,410 A ydych hefyd wedi gweld bod gryn dipyn yn CS50 hefyd. 164 00:07:21,410 --> 00:07:22,300 Prif ddi-rym Int. 165 00:07:22,300 --> 00:07:23,260 A yw hynny'n ffonio cloch? 166 00:07:23,260 --> 00:07:24,080 167 00:07:24,080 --> 00:07:27,220 Yn y bôn yr hyn y mae hynny'n ei olygu yw bod Nid yw prif yn cymryd unrhyw baramedrau. 168 00:07:27,220 --> 00:07:29,520 Does dim dadl y cael eu pasio i mewn i brif. 169 00:07:29,520 --> 00:07:32,780 Nawr yn nes ymlaen byddwn yn gweld bod yna ffordd i basio dadleuon mewn i brif, 170 00:07:32,780 --> 00:07:36,189 ond hyd yn hyn beth rydym wedi gweld yn brif ddi-rym int. 171 00:07:36,189 --> 00:07:37,730 Prif nid yn unig yn cymryd unrhyw ddadleuon. 172 00:07:37,730 --> 00:07:40,236 Ac felly rydym yn nodi bod drwy ddweud ddi-rym. 173 00:07:40,236 --> 00:07:42,110 Rydym yn dim ond bod yn iawn eglur am y ffaith 174 00:07:42,110 --> 00:07:44,430 nad yw'n cymryd unrhyw ddadleuon. 175 00:07:44,430 --> 00:07:47,160 >> Felly am y tro, digon yw yn dweud bod yn ddi-rym yn y bôn 176 00:07:47,160 --> 00:07:50,789 Dylai jyst yn gwasanaethu fel placeholder i chi fel meddwl am fel dim byd. 177 00:07:50,789 --> 00:07:52,080 Nid yw'n wir yn gwneud unrhyw beth. 178 00:07:52,080 --> 00:07:53,550 Does dim gwerth dychwelyd yma. 179 00:07:53,550 --> 00:07:54,770 Does dim baramedrau yma. 180 00:07:54,770 --> 00:07:55,709 Mae'n ddi-rym. 181 00:07:55,709 --> 00:07:57,250 Mae'n ychydig yn fwy cymhleth na hynny. 182 00:07:57,250 --> 00:08:00,640 Ond dylai hyn yn ddigonol ar gyfer y rhan gorau o'r cwrs. 183 00:08:00,640 --> 00:08:05,010 A gobeithio erbyn hyn mae gennych ychydig ychydig mwy o syniad o beth ddi-rym yn. 184 00:08:05,010 --> 00:08:08,460 >> Felly dyna'r pum math wnewch chi helpu yn dod ar draws sy'n cael eu hadeiladu i mewn i C. 185 00:08:08,460 --> 00:08:10,670 Ond yn CS50 mae gennym hefyd lyfrgell. 186 00:08:10,670 --> 00:08:13,550 CS50.h, y gallwch gynnwys. 187 00:08:13,550 --> 00:08:15,930 Ac a fydd yn rhoi i chi gyda dau fath ychwanegol 188 00:08:15,930 --> 00:08:18,280 y byddwch yn ôl pob tebyg y byddwch yn gallu i'w ddefnyddio ar eich aseiniadau, 189 00:08:18,280 --> 00:08:21,210 neu dim ond yn gweithio yn gyffredinol rhaglennu. 190 00:08:21,210 --> 00:08:23,030 >> Y cyntaf o'r rhain yw bool. 191 00:08:23,030 --> 00:08:26,780 Felly y math data Boole, bool, yn cael ei ddefnyddio ar gyfer newidynnau 192 00:08:26,780 --> 00:08:28,114 a fydd yn storio gwerth Boole. 193 00:08:28,114 --> 00:08:29,863 Os ydych chi wedi clywed erioed y tymor hwn o'r blaen, i chi 194 00:08:29,863 --> 00:08:31,960 Efallai gwybod bod Boolean gwerth yn gallu yn unig 195 00:08:31,960 --> 00:08:34,440 cynnal dau werth ar wahân gwahanol. 196 00:08:34,440 --> 00:08:35,872 Gwir a gau. 197 00:08:35,872 --> 00:08:37,580 Yn awr mae hyn yn ymddangos yn eithaf sylfaenol, dde? 198 00:08:37,580 --> 00:08:40,496 Mae'n fath o syndod bod hyn nad yw'n bodoli yn C gan ei fod yn adeiledig yn. 199 00:08:40,496 --> 00:08:42,640 Ac mewn llawer o ieithoedd modern, wrth gwrs, Booleans 200 00:08:42,640 --> 00:08:45,390 yn fath data diofyn safonol. 201 00:08:45,390 --> 00:08:47,192 Ond yn C, maen nhw'n mewn gwirionedd yn peidio. 202 00:08:47,192 --> 00:08:48,400 Ond rydym wedi creu hynny ar eich rhan. 203 00:08:48,400 --> 00:08:51,910 Felly, os ydych chi erioed angen creu newidyn y mae ei fath yn bool, 204 00:08:51,910 --> 00:08:55,230 dim ond gofalwch eich bod yn #include CS50.h ar ddechrau eich rhaglen, 205 00:08:55,230 --> 00:08:57,800 a byddwch yn gallu creu newidynnau o'r math bool. 206 00:08:57,800 --> 00:09:02,095 >> Os byddwch yn anghofio i #include CS50.h, a byddwch yn dechrau defnyddio newidynnau Boole-math, 207 00:09:02,095 --> 00:09:04,970 efallai y byddwch yn dod ar draws rhai problemau pan fyddwch yn llunio eich rhaglen. 208 00:09:04,970 --> 00:09:06,490 Felly, dim ond fod yn wyliadwrus ar gyfer hynny. 209 00:09:06,490 --> 00:09:11,180 Ac efallai y gallwch chi jyst osod y problemau trwy bunt gan gynnwys CS50.h. 210 00:09:11,180 --> 00:09:14,590 >> Y math data arall o bwys i ni darparu ar eich cyfer yn y llyfrgell CS50 211 00:09:14,590 --> 00:09:15,670 yn llinyn. 212 00:09:15,670 --> 00:09:17,130 Felly beth yw llinyn? 213 00:09:17,130 --> 00:09:18,520 Llinynnau yn wir yn unig eiriau. 214 00:09:18,520 --> 00:09:20,000 Maent yn gasgliadau o gymeriadau. 215 00:09:20,000 --> 00:09:20,640 Maent yn eiriau. 216 00:09:20,640 --> 00:09:21,390 Maen nhw'n brawddegau. 217 00:09:21,390 --> 00:09:22,480 Maent yn baragraffau. 218 00:09:22,480 --> 00:09:25,850 A allai fod yn llyfrau cyfan, hyd yn oed. 219 00:09:25,850 --> 00:09:29,690 >> Byr iawn i hir iawn cyfres o gymeriadau. 220 00:09:29,690 --> 00:09:34,310 Os oes angen i ddefnyddio llinynnau, er enghraifft, i storio gair, 221 00:09:34,310 --> 00:09:37,609 dim ond gofalwch eich bod yn cynnwys CS50.h ar ddechrau eich rhaglen 222 00:09:37,609 --> 00:09:38,900 fel y gallwch ddefnyddio y math llinyn. 223 00:09:38,900 --> 00:09:43,910 Ac yna gallwch greu newidynnau y mae ei fath o ddata yw'r llinyn. 224 00:09:43,910 --> 00:09:46,160 Nawr yn nes ymlaen yn y cwrs, byddwn hefyd yn gweld bod hynny'n 225 00:09:46,160 --> 00:09:47,752 nid oedd y stori gyfan, naill ai. 226 00:09:47,752 --> 00:09:49,460 Byddwn yn dod ar draws pethau Gelwir strwythurau, 227 00:09:49,460 --> 00:09:54,249 sy'n eich galluogi i grŵp hyn a all fod cyfanrif a llinyn yn un uned. 228 00:09:54,249 --> 00:09:56,290 A gallwn ddefnyddio hynny i ryw ddiben, a allai 229 00:09:56,290 --> 00:09:57,750 dod yn ddefnyddiol yn nes ymlaen yn y cwrs. 230 00:09:57,750 --> 00:09:59,500 >> A byddwn yn hefyd yn dysgu am fathau diffiniedig, 231 00:09:59,500 --> 00:10:01,720 sy'n eich galluogi i greu eich fathau o ddata eich hun. 232 00:10:01,720 --> 00:10:03,060 Nid oes angen inni boeni am hynny am y tro. 233 00:10:03,060 --> 00:10:04,550 Ond dim ond yn gwybod bod hynny'n rhywbeth ar y gorwel, 234 00:10:04,550 --> 00:10:07,633 fod yna llawer mwy i gyd yma Math o beth nag yr oeddwn i'n dweud 'ch jyst 235 00:10:07,633 --> 00:10:08,133 yn awr. 236 00:10:08,133 --> 00:10:10,591 Felly nawr ein bod wedi dysgu ychydig bach am y data sylfaenol 237 00:10:10,591 --> 00:10:14,230 fathau a mathau data CS50, gadewch i ni siarad am sut i weithio gyda newidynnau 238 00:10:14,230 --> 00:10:18,530 ac yn creu eu defnyddio rhain fathau o ddata yn ein rhaglenni. 239 00:10:18,530 --> 00:10:22,670 Os ydych chi am greu newidyn, y cyfan sydd angen i chi ei wneud yw dau beth. 240 00:10:22,670 --> 00:10:24,147 >> Yn gyntaf, mae angen i chi roi cynnig math. 241 00:10:24,147 --> 00:10:26,230 Yr ail beth sydd ei angen arnoch ei wneud yw rhoi enw iddo. 242 00:10:26,230 --> 00:10:28,740 Unwaith y byddwch wedi gwneud hynny ac yn taro yn hanner colon ar ddiwedd y llinell, 243 00:10:28,740 --> 00:10:29,830 eich bod wedi creu newidyn. 244 00:10:29,830 --> 00:10:32,370 >> Felly dyma ddwy enghraifft. 245 00:10:32,370 --> 00:10:35,744 Rhif int; Llythyr char ;. 246 00:10:35,744 --> 00:10:36,660 Yr hyn yr wyf wedi ei wneud yma? 247 00:10:36,660 --> 00:10:38,110 Rydw i wedi creu dau newidyn. 248 00:10:38,110 --> 00:10:40,190 >> Mae'r cyntaf, y newidyn yn enw i yw rhif. 249 00:10:40,190 --> 00:10:44,830 A rhif yn gallu dal cyfanrif deipio gwerthoedd, oherwydd bod ei fath yn int. 250 00:10:44,830 --> 00:10:48,040 Llythyr yn amrywio arall gallu dal cymeriadau 251 00:10:48,040 --> 00:10:50,240 oherwydd bod ei fath ddata yn torgoch. 252 00:10:50,240 --> 00:10:51,772 >> Pretty syml, dde? 253 00:10:51,772 --> 00:10:53,480 Os byddwch yn cael eich hun mewn sefyllfa lle 254 00:10:53,480 --> 00:10:56,250 angen i chi greu lluosog newidynnau o'r un math, 255 00:10:56,250 --> 00:10:58,740 Dim ond angen i chi nodi yr enw math unwaith. 256 00:10:58,740 --> 00:11:01,600 Yna, dim ond restru cymaint o newidynnau o'r math hwnnw ag sydd ei angen arnoch. 257 00:11:01,600 --> 00:11:04,230 >> Felly, gallwn i, er enghraifft, dyma yn y drydedd linell o god, 258 00:11:04,230 --> 00:11:07,420 dweud uchder int ;, llinell newydd. 259 00:11:07,420 --> 00:11:08,291 Int lled ;. 260 00:11:08,291 --> 00:11:09,290 A fyddai'n gweithio hefyd. 261 00:11:09,290 --> 00:11:12,039 Byddwn yn dal i gael dau newidyn a elwir yn uchder a lled, pob un ohonynt 262 00:11:12,039 --> 00:11:12,730 yn gyfanrif. 263 00:11:12,730 --> 00:11:16,970 Ond dw i'n cael, pethau i'w C cystrawen, atgyfnerthu ei mewn llinell sengl. 264 00:11:16,970 --> 00:11:20,230 Int uchder, lled; Mae yr un peth. 265 00:11:20,230 --> 00:11:23,900 Rydw i wedi creu dau newidyn, un o'r enw uchder un o'r enw led, y ddau ohonynt 266 00:11:23,900 --> 00:11:26,730 yn gallu daliad Gwerthoedd math cyfanrif. 267 00:11:26,730 --> 00:11:30,920 >> Yn yr un modd yma, gallaf greu tri fel y bo'r angen gwerthoedd pwynt ar unwaith. 268 00:11:30,920 --> 00:11:33,350 Gallaf efallai greu newidyn Gelwir ail isradd 2-- 269 00:11:33,350 --> 00:11:35,766 sydd yn ôl pob tebyg fydd yn y pen draw dal y point-- fel y bo'r angen 270 00:11:35,766 --> 00:11:39,222 fod cynrychiolaeth y sgwâr gwraidd 2-- ail isradd 3, a pi. 271 00:11:39,222 --> 00:11:41,180 Gallwn fod wedi gwneud hyn ar dair llinell ar wahân. 272 00:11:41,180 --> 00:11:47,690 Float, ail isradd 2; Arnofio ail isradd 3; arnofio pi; a fyddai'n gweithio hefyd. 273 00:11:47,690 --> 00:11:50,590 >> Ond unwaith eto, gallaf jyst atgyfnerthu mae hyn yn un llinell o god. 274 00:11:50,590 --> 00:11:54,050 Gwneud pethau ychydig byrrach, nid fel clunky. 275 00:11:54,050 --> 00:11:57,259 >> Bellach yn gyffredinol, mae'n dylunio da i ddim ond yn datgan newidyn pan fyddwch ei angen. 276 00:11:57,259 --> 00:11:59,050 A byddwn yn siarad ychydig ychydig mwy am hynny 277 00:11:59,050 --> 00:12:00,945 yn ddiweddarach yn y cwrs pan fyddwn yn trafod cwmpas. 278 00:12:00,945 --> 00:12:03,320 Felly nid oes angen i reidrwydd creu eich holl newidynnau 279 00:12:03,320 --> 00:12:05,990 ar ddechrau'r rhaglen, a gallai rhai pobl wedi gwneud y gorffennol, 280 00:12:05,990 --> 00:12:08,700 neu yn sicr yn gyffredin iawn arferion codio flynyddoedd lawer yn ôl 281 00:12:08,700 --> 00:12:11,700 wrth weithio gyda C. Efallai byddwch yn unig am greu hawl amrywiol pan 282 00:12:11,700 --> 00:12:13,140 bydd ei angen arnoch. 283 00:12:13,140 --> 00:12:13,640 Iawn. 284 00:12:13,640 --> 00:12:15,150 Felly, rydym wedi creu newidynnau. 285 00:12:15,150 --> 00:12:16,790 Sut rydym yn eu defnyddio? 286 00:12:16,790 --> 00:12:18,650 Ar ôl i ni ddatgan amrywiol, nid oes angen i ni 287 00:12:18,650 --> 00:12:21,237 i nodi'r math data o'r newidyn anymore. 288 00:12:21,237 --> 00:12:24,070 Yn wir, os ydych yn gwneud hynny, efallai y byddwch yn y pen draw gyda rhai canlyniadau 'n annaearol 289 00:12:24,070 --> 00:12:25,490 y byddwn yn fath o sglein dros am y tro. 290 00:12:25,490 --> 00:12:27,365 Ond digon yw dweud, pethau rhyfedd yn mynd 291 00:12:27,365 --> 00:12:30,740 i ddechrau yn digwydd os byddwch yn anfwriadol ail-ddatgan newidynnau gyda'r un enw 292 00:12:30,740 --> 00:12:32,210 drosodd a throsodd. 293 00:12:32,210 --> 00:12:33,882 >> Felly, yma rwyf wedi pedair llinell o god. 294 00:12:33,882 --> 00:12:36,090 Ac mae gen i un neu ddau o sylwadau yno yn unig sy'n dangos 295 00:12:36,090 --> 00:12:37,840 beth sy'n digwydd ar pob llinell yn unig i helpu 296 00:12:37,840 --> 00:12:40,520 cewch eich lleoli yn yr hyn sy'n digwydd. 297 00:12:40,520 --> 00:12:41,520 Rhif Felly int ;. 298 00:12:41,520 --> 00:12:42,520 Rydych yn gweld bod o'r blaen. 299 00:12:42,520 --> 00:12:44,000 Dyna datganiad amrywiol. 300 00:12:44,000 --> 00:12:46,670 >> Rwyf bellach wedi creu newidyn Gelwir rhif dyna 301 00:12:46,670 --> 00:12:48,970 gallu cynnal gwerthoedd cyfanrif-fath. 302 00:12:48,970 --> 00:12:50,210 Rwyf wedi datgan ei. 303 00:12:50,210 --> 00:12:53,770 >> Mae'r llinell nesaf i ddim yn aseinio mae gwerth at rif. 304 00:12:53,770 --> 00:12:54,992 Rhif hafal 17. 305 00:12:54,992 --> 00:12:55,950 Beth sy'n digwydd yno? 306 00:12:55,950 --> 00:12:58,880 Dw i'n rhoi'r rhif 17 tu mewn y newidyn. 307 00:12:58,880 --> 00:13:02,760 >> Felly os byddaf byth wedyn argraffu beth cynnwys y rhif yn nes ymlaen, 308 00:13:02,760 --> 00:13:04,030 byddant yn dweud wrthyf ei fod yn 17. 309 00:13:04,030 --> 00:13:07,030 Felly dwi wedi datgan newidyn, ac yna rwyf wedi neilltuo iddo. 310 00:13:07,030 --> 00:13:10,570 >> Gallwn ailadrodd y broses eto gyda llythyr torgoch ;. 311 00:13:10,570 --> 00:13:11,640 Dyna datganiad. 312 00:13:11,640 --> 00:13:14,010 Llythyr yn dychwelyd cyfalaf H. Dyna aseiniad. 313 00:13:14,010 --> 00:13:16,030 Pretty syml, hefyd. 314 00:13:16,030 --> 00:13:18,319 >> Nawr efallai y broses hon yn ymddangos yn fath o wirion. 315 00:13:18,319 --> 00:13:20,110 Pam ydym ni'n gwneud hyn mewn dwy linell o god? 316 00:13:20,110 --> 00:13:21,401 A oes ffordd well i wneud hynny? 317 00:13:21,401 --> 00:13:22,250 Yn wir, mae yna. 318 00:13:22,250 --> 00:13:24,375 Weithiau, efallai y byddwch yn gweld hyn a elwir yn initialization. 319 00:13:24,375 --> 00:13:28,446 Mae'n pan fyddwch yn datgan newidyn a rhowch werth ar yr un pryd. 320 00:13:28,446 --> 00:13:30,320 Mae hyn mewn gwirionedd yn eithaf beth cyffredin i wneud. 321 00:13:30,320 --> 00:13:32,870 Pan fyddwch yn creu newidyn, byddwch fel arfer yn am iddo gael rhywfaint o werth sylfaenol. 322 00:13:32,870 --> 00:13:34,330 Hyd yn oed os yw'n 0 neu rywbeth. 323 00:13:34,330 --> 00:13:36,180 Rydych yn unig i chi roi cynnig gwerth. 324 00:13:36,180 --> 00:13:38,360 >> Gallwch ymgychwyn newidyn. 325 00:13:38,360 --> 00:13:42,320 Int Rhif hafal 17 yr un fath ag y ddwy linell gyntaf o god i fyny uchod. 326 00:13:42,320 --> 00:13:46,829 Llythyr Torgoch hafal h yn yr un fath â'r llinellau trydydd a'r pedwerydd o'r cod uchod. 327 00:13:46,829 --> 00:13:49,620 Y cludfwyd mwyaf pwysig yma pan fyddwn ni'n datgan ac aseinio 328 00:13:49,620 --> 00:13:51,740 newidynnau yn ôl rydym wedi Datganodd ei fod, rhybudd 329 00:13:51,740 --> 00:13:53,700 Dydw i ddim yn defnyddio'r math data eto. 330 00:13:53,700 --> 00:13:57,916 Dydw i ddim yn dweud rhif int hafal 17 ar yr ail linell o god, er enghraifft. 331 00:13:57,916 --> 00:13:59,290 Im 'jyst yn dweud rhif yn dychwelyd 17. 332 00:13:59,290 --> 00:14:02,537 >> Unwaith eto, ail-ddatgan newidyn ar ôl ydych eisoes wedi datgan gall arwain 333 00:14:02,537 --> 00:14:03,620 i ryw canlyniad rhyfedd. 334 00:14:03,620 --> 00:14:05,950 Felly, dim ond byddwch yn ofalus o hynny. 335 00:14:05,950 --> 00:14:06,660 >> Rwy'n Doug Lloyd. 336 00:14:06,660 --> 00:14:08,870 Ac mae hyn yn CS50. 337 00:14:08,870 --> 00:14:10,499