1 00:00:00,000 --> 00:00:02,420 >> [Muzika] 2 00:00:02,420 --> 00:00:05,189 3 00:00:05,189 --> 00:00:05,980 SPEAKER: Në rregull. 4 00:00:05,980 --> 00:00:08,540 Pra, le të flasim për një tjetër gjë që është lloj i veçantë në C, 5 00:00:08,540 --> 00:00:10,010 e cila është e lloje të të dhënave dhe ndryshoret. 6 00:00:10,010 --> 00:00:12,340 Kur them unike për C, unë me të vërtetë vetëm do të thotë në kontekstin e, 7 00:00:12,340 --> 00:00:14,470 në qoftë se ju keni qenë një programues për një kohë vërtet të gjatë, 8 00:00:14,470 --> 00:00:16,270 ju ndoshta nuk keni ka punuar me lloje të të dhënave 9 00:00:16,270 --> 00:00:18,470 në qoftë se ju keni përdorur moderne gjuhë programimi. 10 00:00:18,470 --> 00:00:20,432 Gjuhë moderne si PHP dhe JavaScript, 11 00:00:20,432 --> 00:00:22,640 të cilat ne do të shohim pak më vonë në kurs, 12 00:00:22,640 --> 00:00:25,550 ju në fakt nuk duhet të specifikojë llojin e të dhënave të një variable 13 00:00:25,550 --> 00:00:26,270 kur ju përdorni atë. 14 00:00:26,270 --> 00:00:28,067 >> Ju vetëm shpallin atë dhe të fillojnë duke e përdorur atë. 15 00:00:28,067 --> 00:00:29,900 Në qoftë se kjo është një numër i plotë, atë e di se është një numër të plotë. 16 00:00:29,900 --> 00:00:31,960 Në qoftë se kjo është një karakter, kjo është e di se kjo është një karakter. 17 00:00:31,960 --> 00:00:35,320 Në qoftë se kjo është një fjalë, ajo e di kjo është një varg, ashtu-quajtur. 18 00:00:35,320 --> 00:00:37,300 >> Por në C, e cila është një Gjuha e vjetër, ne kemi nevojë 19 00:00:37,300 --> 00:00:39,420 të specifikojë të dhënat llojin e çdo variable 20 00:00:39,420 --> 00:00:42,990 që kemi krijuar për herë të parë që ne përdorim këtë ndryshore. 21 00:00:42,990 --> 00:00:45,030 Pra C vjen me disa ndërtuar në lloje të të dhënave. 22 00:00:45,030 --> 00:00:46,972 Dhe le të merrni të njohur me disa prej tyre. 23 00:00:46,972 --> 00:00:50,180 Dhe pastaj më pas ne do të flasim një pak për disa nga llojet e të dhënave 24 00:00:50,180 --> 00:00:54,450 që ne kemi shkruar për ju, kështu që ju mund t'i përdorë ato në CS50. 25 00:00:54,450 --> 00:00:56,130 >> I pari është int. 26 00:00:56,130 --> 00:00:59,110 Lloji dhënat int është përdorur për variablat që do të ruajë vlerat integer. 27 00:00:59,110 --> 00:01:03,210 Kështu që ka 1, 2, 3, negative 1, 2, 3, dhe në mënyrë të. 28 00:01:03,210 --> 00:01:05,960 Integers, e cila është diçka që ju duhet të mbani në mend për quiz, 29 00:01:05,960 --> 00:01:09,590 gjithmonë të marrë katër bytes e kujtesës, e cila është 32 bit. 30 00:01:09,590 --> 00:01:11,620 Ka tetë BITS në një byte. 31 00:01:11,620 --> 00:01:14,470 >> Pra, kjo do të thotë se rangun e vlerëson se një numër të plotë mund të ruajë 32 00:01:14,470 --> 00:01:19,130 është i kufizuar nga ajo që mund të përshtatet brenda 32 bit vlerë të informacionit. 33 00:01:19,130 --> 00:01:21,850 Tani siç rezulton, ajo ishte shumë kohë më parë vendosi 34 00:01:21,850 --> 00:01:24,310 se ne do të ndahet se gama e 32 bit 35 00:01:24,310 --> 00:01:26,650 në integers negative dhe integers pozitive, 36 00:01:26,650 --> 00:01:28,390 çdo gjysmë marrjen e varg. 37 00:01:28,390 --> 00:01:32,230 Kështu gamën e vlerave që ne përfaqësojmë me një gamë të plotë nga negativ 2 38 00:01:32,230 --> 00:01:36,520 fuqisë 31 në 2 deri në fuqia 31 minus 1, 39 00:01:36,520 --> 00:01:38,190 shkaktojë ju gjithashtu nevojë për një vend për 0. 40 00:01:38,190 --> 00:01:41,650 >> Pra, në thelb gjysma e vlerave të mundshme ju mund të përshtatet në një int janë negative, 41 00:01:41,650 --> 00:01:42,610 dhe gjysma janë pozitive. 42 00:01:42,610 --> 00:01:47,270 Dhe afërsisht këtu, kjo është në lidhje me negative 2 miliard në rreth 2 miliardë pozitive. 43 00:01:47,270 --> 00:01:50,207 Japë ose të marrë një çift qindra milionë. 44 00:01:50,207 --> 00:01:52,290 Pra, kjo është ajo që ju mund të përshtatet në një variabël integer. 45 00:01:52,290 --> 00:01:55,490 Tani ne gjithashtu kemi diçka quajtur një numër të plotë panënshkruar. 46 00:01:55,490 --> 00:01:59,220 Tani Ints panënshkruara nuk janë një lloj i veçantë i ndryshore. 47 00:01:59,220 --> 00:02:01,590 Përkundrazi, është e panënshkruar atë që quhet një kualifikuese. 48 00:02:01,590 --> 00:02:04,990 Ajo modifikon të dhënat e lloji i integer pak. 49 00:02:04,990 --> 00:02:07,850 >> Dhe në këtë rast, ajo që unsigned means-- dhe ju gjithashtu mund të 50 00:02:07,850 --> 00:02:11,530 përdorni panënshkruara lloje të tjera të të dhënave, numër i plotë nuk është i vetmi. 51 00:02:11,530 --> 00:02:15,310 Çfarë ajo nuk është efektive dyshe varg pozitiv i vlerave 52 00:02:15,310 --> 00:02:19,350 se një numër të plotë mund të marrë në shpenzimet e nuk lejon 53 00:02:19,350 --> 00:02:21,140 ju të marrë në vlera negative. 54 00:02:21,140 --> 00:02:25,400 Pra, nëse ju keni numrat që ju të dini do të merrni më e lartë se 2 miliardë por më pak 55 00:02:25,400 --> 00:02:31,280 se 4 miliardë, për example-- e cila është 2 deri në 32-power-- 56 00:02:31,280 --> 00:02:33,330 ju mund të dëshironi të përdorni një int panënshkruar në qoftë se ju 57 00:02:33,330 --> 00:02:35,050 e di vlerën juaj kurrë nuk do të jetë negativ. 58 00:02:35,050 --> 00:02:37,216 >> Ju herë pas here do të keni përdoret për variablat panënshkruar 59 00:02:37,216 --> 00:02:39,460 në CS50, e cila është arsyeja pse unë përmend këtu. 60 00:02:39,460 --> 00:02:43,830 Por përsëri, gama e vlerave që ju mund të përfaqësojë me një numër të plotë unsigned 61 00:02:43,830 --> 00:02:48,240 si t numër i plotë rregullt, janë 0 2 në fuqinë 32 minus 1, 62 00:02:48,240 --> 00:02:50,840 ose rreth 0 to 4 miliardë. 63 00:02:50,840 --> 00:02:53,730 Pra, ju keni dyfishuar në mënyrë efektive varg pozitiv që ju mund të përshtatet, 64 00:02:53,730 --> 00:02:56,270 por ju keni dhënë të gjithë vlerat negative. 65 00:02:56,270 --> 00:03:00,040 >> Tani si një mënjanë, panënshkruar nuk është i vetmi kualifikueset 66 00:03:00,040 --> 00:03:01,790 që ne mund të shohim për Llojet e të dhënave ndryshueshme. 67 00:03:01,790 --> 00:03:05,779 Ka edhe gjëra të quajtur shkurtër dhe të gjatë dhe const. 68 00:03:05,779 --> 00:03:07,820 Const ne do të shohim pak pak më vonë në kurs. 69 00:03:07,820 --> 00:03:10,830 Shkurtër dhe të gjatë, ne ndoshta nuk do të. 70 00:03:10,830 --> 00:03:12,830 >> Por vetëm e di se ka janë kualifikueset tjera. 71 00:03:12,830 --> 00:03:14,080 Panënshkruar nuk është i vetmi. 72 00:03:14,080 --> 00:03:16,596 Por kjo është e vetmja ne jemi do të flasim për tani. 73 00:03:16,596 --> 00:03:17,310 Pra, të gjithë të drejtë. 74 00:03:17,310 --> 00:03:18,393 Pra, ne kemi mbuluar integers. 75 00:03:18,393 --> 00:03:19,200 Ç'pritet më tej? 76 00:03:19,200 --> 00:03:20,130 >> Chars. 77 00:03:20,130 --> 00:03:23,620 Pra chars janë përdorur për variablat që do të ruajë karaktere të vetme. 78 00:03:23,620 --> 00:03:24,850 Char është e shkurtër për karakterin. 79 00:03:24,850 --> 00:03:27,870 Dhe ndonjëherë ju mund të dëgjoni njerëzit e shpallë atë si makinë. 80 00:03:27,870 --> 00:03:32,020 >> Pra, personazhet gjithmonë të marrë një të tillë bajt memorie, e cila është vetëm 8 bit. 81 00:03:32,020 --> 00:03:35,700 Pra, kjo do të thotë se ata mund të përshtatet vetëm vlerat në rangun e negativ 2 82 00:03:35,700 --> 00:03:42,430 në fuqinë e shtatë, apo negativ 128, 2 fuqisë 7 minus 1, ose 127. 83 00:03:42,430 --> 00:03:45,710 >> Falë ASCII, ajo ishte kohë më parë ka vendosur një rrugë të 84 00:03:45,710 --> 00:03:50,805 të ndajë ato numra pozitive nga 0-127 për karaktere të ndryshme 85 00:03:50,805 --> 00:03:52,182 se të gjitha ekzistojnë në tastierën tonë. 86 00:03:52,182 --> 00:03:54,640 Pra, siç do të shohim më vonë në sigurisht, dhe ju ndoshta do të 87 00:03:54,640 --> 00:03:57,700 vijnë për të mësuar përmendësh në disa pikë, kapitali A, për example-- 88 00:03:57,700 --> 00:04:00,732 kryeqyteti karakter A-- hartat me numrin 65. 89 00:04:00,732 --> 00:04:02,940 Dhe arsyeja për këtë është sepse kjo është ajo që është është 90 00:04:02,940 --> 00:04:05,490 janë caktuar nga standardi ASCII. 91 00:04:05,490 --> 00:04:07,850 >> Vogle Një është 97. 92 00:04:07,850 --> 00:04:11,900 Karakteri 0 për kur ju në fakt shkruani karakterin, nuk 93 00:04:11,900 --> 00:04:13,532 përfaqësojnë numrin zero, është 48. 94 00:04:13,532 --> 00:04:15,240 Ju do të mësoni një çift prej tyre si ju shkoni. 95 00:04:15,240 --> 00:04:17,990 Dhe ju do të vijë me siguri në nevojë ata pak më vonë në CS50. 96 00:04:17,990 --> 00:04:20,450 97 00:04:20,450 --> 00:04:23,390 >> I ardhshëm i madh tip të dhënave është lundrues numra pikë. 98 00:04:23,390 --> 00:04:26,100 Pra, lundrues numrat pikë janë i njohur edhe si numrat reale. 99 00:04:26,100 --> 00:04:28,850 Ata janë në thelb numrat që kanë një pikë dhjetore në to. 100 00:04:28,850 --> 00:04:33,360 Floating pikësh si integers janë gjithashtu 101 00:04:33,360 --> 00:04:36,090 përmbante brenda 4 byte memorje. 102 00:04:36,090 --> 00:04:37,580 Tani nuk ka asnjë tabelë këtu. 103 00:04:37,580 --> 00:04:40,890 Nuk ka asnjë linjë numër, sepse përshkruar gamën e një noton 104 00:04:40,890 --> 00:04:44,550 nuk është saktësisht e qartë apo intuitiv. 105 00:04:44,550 --> 00:04:47,350 >> Mjafton të them ty 32 bit për të punuar me të. 106 00:04:47,350 --> 00:04:49,730 Dhe në qoftë se ju keni një numër si pi, e cila ka 107 00:04:49,730 --> 00:04:55,510 nje numer i plote pjesë 3, dhe një pluskuese Pjesa pikë, ose një pjesë decimal 0,14159, 108 00:04:55,510 --> 00:04:58,735 dhe kështu me radhë, ju duhet të jetë në gjendje për të përfaqësuar të gjithë it-- 109 00:04:58,735 --> 00:05:02,420 pjesë numër i plotë dhe pjesa dhjetore. 110 00:05:02,420 --> 00:05:04,550 >> Pra, çfarë mendoni se mund të thotë? 111 00:05:04,550 --> 00:05:08,180 Një gjë është se nëse dhjetore Pjesa e merr më të gjatë dhe më të gjatë, 112 00:05:08,180 --> 00:05:10,660 në qoftë se unë kam një shumë të madhe Pjesa numër i plotë, unë mund të mos 113 00:05:10,660 --> 00:05:13,090 të jetë në gjendje për të qenë sa më i saktë me pjesën dhjetore. 114 00:05:13,090 --> 00:05:15,280 Dhe kjo është me të vërtetë Kufizimi i një noton. 115 00:05:15,280 --> 00:05:17,229 >> Gjithandej kanë një problem saktësi. 116 00:05:17,229 --> 00:05:19,270 Ne kemi vetëm 32 bit për punuar me të, kështu që ne mund vetëm 117 00:05:19,270 --> 00:05:22,510 të jetë aq i saktë me pjesën tonë dhjetore. 118 00:05:22,510 --> 00:05:27,300 Ne nuk mund domosdoshmërisht të ketë një decimal Pjesa e saktë për 100 ose 200 shifra, 119 00:05:27,300 --> 00:05:29,710 sepse ne kemi vetëm 32 bit për të punuar me të. 120 00:05:29,710 --> 00:05:31,590 Pra, kjo është një kufizim i një noton. 121 00:05:31,590 --> 00:05:33,590 >> Tani për fat të mirë nuk ka një lloj tjetër të dhëna të quajtur 122 00:05:33,590 --> 00:05:36,530 të dyfishtë, e cila disi merret me këtë problem. 123 00:05:36,530 --> 00:05:39,980 Dyshe, si gjithandej, janë përdorur edhe për të ruajë numrat reale, apo pikë lundrues 124 00:05:39,980 --> 00:05:40,840 Vlerat. 125 00:05:40,840 --> 00:05:44,340 Dallimi është se dyshe janë saktësi të dyfishtë. 126 00:05:44,340 --> 00:05:48,177 Ata mund të përshtatet 64 bit të dhëna, ose tetë bytes. 127 00:05:48,177 --> 00:05:49,010 Cfare do te thote ajo? 128 00:05:49,010 --> 00:05:51,801 E pra, kjo do të thotë që ne mund të jetë shumë më saktë me presjes dhjetore. 129 00:05:51,801 --> 00:05:54,830 Në vend të që pi për shtatë vende ndoshta, me një noton, 130 00:05:54,830 --> 00:05:56,710 ne mund ndoshta të ketë atë në 30 vende. 131 00:05:56,710 --> 00:05:59,824 Nëse kjo është e rëndësishme, ju mund të dëshironi për të përdorur një të dyfishtë në vend të një noton. 132 00:05:59,824 --> 00:06:01,740 Në thelb, në qoftë se ju jeni punojnë në çdo gjë ku 133 00:06:01,740 --> 00:06:06,540 të paturit e një vend me të vërtetë të gjatë decimal dhe shumë saktësi është i rëndësishëm, 134 00:06:06,540 --> 00:06:08,630 ju ndoshta dëshironi të përdorni një overfloat të dyfishtë. 135 00:06:08,630 --> 00:06:11,250 Tani për shumicën e punës tuaj në CS50, një noton duhet të mjaftojë. 136 00:06:11,250 --> 00:06:15,340 Por e di që dyshe ekzistojnë si mënyrë për t'u marrë disi me saktësi 137 00:06:15,340 --> 00:06:20,980 problemi duke ju dhënë një shtesë 32 bit për të punuar me të për numrat tuaj. 138 00:06:20,980 --> 00:06:23,650 >> Tani kjo nuk është një lloj i të dhënave. 139 00:06:23,650 --> 00:06:24,390 Ky është një lloj. 140 00:06:24,390 --> 00:06:25,340 Dhe ajo që quhet e pavlefshme. 141 00:06:25,340 --> 00:06:27,506 Dhe unë jam duke folur në lidhje me të këtu, sepse ne kemi ndoshta 142 00:06:27,506 --> 00:06:29,520 parë atë disa herë tashmë në CS50. 143 00:06:29,520 --> 00:06:32,020 Dhe ju mund të pyesin ajo është mbi të gjitha. 144 00:06:32,020 --> 00:06:33,390 >> Pra, është një lloj i pavlefshëm. 145 00:06:33,390 --> 00:06:34,097 Ajo ekziston. 146 00:06:34,097 --> 00:06:35,180 Por kjo nuk është një lloj i të dhënave. 147 00:06:35,180 --> 00:06:39,350 >> Ne nuk mund të krijojë një ndryshore të tipit të pavlefshme dhe të caktojë një vlerë për të. 148 00:06:39,350 --> 00:06:42,519 Por, funksionet, për shembull, mund të ketë një lloj të kthimit pavlefshme. 149 00:06:42,519 --> 00:06:45,060 Në thelb, në qoftë se ju shihni një funksion që ka një lloj të kthimit pavlefshëm, 150 00:06:45,060 --> 00:06:46,970 kjo do të thotë se nuk ka kthim një vlerë. 151 00:06:46,970 --> 00:06:49,440 A mund të mendoni për një të përbashkët funksion që kemi përdorur deri tani 152 00:06:49,440 --> 00:06:52,780 në CS50 që nuk kthehet një vlerë? 153 00:06:52,780 --> 00:06:54,700 >> Printf është një. 154 00:06:54,700 --> 00:06:56,820 Printf nuk ka të vërtetë ndonjë gjë për ju kthehen. 155 00:06:56,820 --> 00:06:59,850 Ajo printon diçka të ekran, dhe kjo është në thelb 156 00:06:59,850 --> 00:07:01,650 një efekt anësor i asaj që bën printf. 157 00:07:01,650 --> 00:07:03,620 Por kjo nuk do të ju jap një vlerë mbrapa. 158 00:07:03,620 --> 00:07:08,419 Ju nuk kapur rezultatin dhe dyqan ajo në disa ndryshore të përdorin atë më vonë. 159 00:07:08,419 --> 00:07:10,710 Ajo vetëm shtyp diçka për ekran dhe ju jeni bërë. 160 00:07:10,710 --> 00:07:14,360 >> Pra, ne themi se printf është një funksion i pavlefshëm. 161 00:07:14,360 --> 00:07:16,450 Ajo kthen asgjë. 162 00:07:16,450 --> 00:07:18,580 >> Lista rrethues i një funksion mund të jetë i pavlefshëm. 163 00:07:18,580 --> 00:07:21,410 Dhe ju kam parë gjithashtu se mjaft në CS50 shumë. 164 00:07:21,410 --> 00:07:22,300 Pavlefshëm int main. 165 00:07:22,300 --> 00:07:23,260 A do të unazë një zile? 166 00:07:23,260 --> 00:07:24,080 167 00:07:24,080 --> 00:07:27,220 Në thelb çka do të thotë është se kryesor nuk ka marrë ndonjë parametrave. 168 00:07:27,220 --> 00:07:29,520 Nuk ka asnjë argument që të kaluar në kryesore. 169 00:07:29,520 --> 00:07:32,780 Tani më vonë ne do të shohim se nuk ka një mënyrë për të kaluar në argumentet kryesore, 170 00:07:32,780 --> 00:07:36,189 por deri tani ajo që ne kemi parë është i pavlefshëm int main. 171 00:07:36,189 --> 00:07:37,730 Kryesor thjesht nuk ka marrë ndonjë argumente. 172 00:07:37,730 --> 00:07:40,236 Dhe kështu që ne të specifikojë se duke thënë pavlefshëm. 173 00:07:40,236 --> 00:07:42,110 Ne jemi vetëm duke qenë shumë i qartë në lidhje me faktin 174 00:07:42,110 --> 00:07:44,430 se ajo nuk ka marrë ndonjë argument. 175 00:07:44,430 --> 00:07:47,160 >> Pra tani për tani, mjafton të thonë se zbrazëti në thelb 176 00:07:47,160 --> 00:07:50,789 duhet vetëm të shërbejë si një placeholder për ju si të menduarit rreth si asgjë. 177 00:07:50,789 --> 00:07:52,080 Kjo nuk është me të vërtetë bërë asgjë. 178 00:07:52,080 --> 00:07:53,550 Nuk ka vlera e kthimit këtu. 179 00:07:53,550 --> 00:07:54,770 Nuk ka parametra këtu. 180 00:07:54,770 --> 00:07:55,709 Është i pavlefshëm. 181 00:07:55,709 --> 00:07:57,250 Kjo është një kompleks pak më shumë se kaq. 182 00:07:57,250 --> 00:08:00,640 Por kjo duhet të mjaftojë për pjesa më e mirë e kursit. 183 00:08:00,640 --> 00:08:05,010 Dhe shpresojmë se tani ju keni një pak pak më shumë një koncept të asaj që është e pavlefshme. 184 00:08:05,010 --> 00:08:08,460 >> Pra, këto janë pesë llojet e ju do të Takimi që janë ndërtuar në të C. 185 00:08:08,460 --> 00:08:10,670 Por në CS50 ne gjithashtu kemi një bibliotekë. 186 00:08:10,670 --> 00:08:13,550 CS50.h, të cilat ju mund të përfshijnë. 187 00:08:13,550 --> 00:08:15,930 Dhe e cila do t'ju ofrojë me dy lloje të tjera 188 00:08:15,930 --> 00:08:18,280 që ju ndoshta do të jetë në gjendje për të përdorur në detyrat tuaja, 189 00:08:18,280 --> 00:08:21,210 apo vetëm duke punuar në përgjithësi të programimit. 190 00:08:21,210 --> 00:08:23,030 >> E para prej këtyre është bool. 191 00:08:23,030 --> 00:08:26,780 Pra Boolean llojin e të dhënave, bool, është përdorur për variablat 192 00:08:26,780 --> 00:08:28,114 që do të ruajë një vlerë Boolean. 193 00:08:28,114 --> 00:08:29,863 Nëse ju keni dëgjuar ndonjëherë ky term më parë, ju 194 00:08:29,863 --> 00:08:31,960 mund të dini se një Boolean vlerë është e aftë të vetëm 195 00:08:31,960 --> 00:08:34,440 mbajtur dy vlera të ndryshme të dallueshme. 196 00:08:34,440 --> 00:08:35,872 Vërtetë dhe të rreme. 197 00:08:35,872 --> 00:08:37,580 Tani kjo duket goxha themelore, e drejtë? 198 00:08:37,580 --> 00:08:40,496 Kjo është lloj i një surprizë që ky nuk ekziston në C si ajo e ndërtuar në. 199 00:08:40,496 --> 00:08:42,640 Dhe në shumë gjuhë moderne, natyrisht, Booleans 200 00:08:42,640 --> 00:08:45,390 janë një lloj të dhënave standarde default. 201 00:08:45,390 --> 00:08:47,192 Por në C, ata në të vërtetë nuk janë. 202 00:08:47,192 --> 00:08:48,400 Por, ne kemi krijuar atë për ju. 203 00:08:48,400 --> 00:08:51,910 Pra, nëse ndonjëherë ju duhet për të krijuar një variabël lloj të cilit është bool, 204 00:08:51,910 --> 00:08:55,230 vetëm të jetë i sigurt për të #include CS50.h në fillim të programit tuaj, 205 00:08:55,230 --> 00:08:57,800 dhe ju do të jetë në gjendje të krijojë variabla të tipit bool. 206 00:08:57,800 --> 00:09:02,095 >> Nëse ju harroni të #include CS50.h, dhe ju filloni duke përdorur ndryshore Boolean-tipit, 207 00:09:02,095 --> 00:09:04,970 ju mund të hasni disa probleme kur ju jeni hartimin programin tuaj. 208 00:09:04,970 --> 00:09:06,490 Pra, vetëm të jetë në vëzhgim për këtë. 209 00:09:06,490 --> 00:09:11,180 Dhe ndoshta ju mund të rregullojmë vetëm Problemet nga kile përfshirë CS50.h. 210 00:09:11,180 --> 00:09:14,590 >> Tjetri lloj kryesor të dhënat që ne sigurojë për ju në bibliotekë CS50 211 00:09:14,590 --> 00:09:15,670 është string. 212 00:09:15,670 --> 00:09:17,130 Pra, çfarë është një varg? 213 00:09:17,130 --> 00:09:18,520 Strings janë me të vërtetë vetëm fjalë. 214 00:09:18,520 --> 00:09:20,000 Ata janë koleksionet e karaktereve. 215 00:09:20,000 --> 00:09:20,640 Ata janë fjalë. 216 00:09:20,640 --> 00:09:21,390 Ata janë dënime. 217 00:09:21,390 --> 00:09:22,480 Ata janë paragrafë. 218 00:09:22,480 --> 00:09:25,850 Mund të jetë libra të tëra, madje. 219 00:09:25,850 --> 00:09:29,690 >> Shumë e shkurtër për të shumë të gjatë seri e karaktereve. 220 00:09:29,690 --> 00:09:34,310 Nëse keni nevojë të përdorni vargjet, për shembull, për të ruajtur një fjalë, 221 00:09:34,310 --> 00:09:37,609 vetëm të jetë i sigurt për të përfshirë CS50.h në fillim të programit tuaj 222 00:09:37,609 --> 00:09:38,900 kështu që ju mund të përdorni llojin string. 223 00:09:38,900 --> 00:09:43,910 Dhe pastaj ju mund të krijoni variablave cilit lloj të dhënave është string. 224 00:09:43,910 --> 00:09:46,160 Tani më vonë në kurs, ne gjithashtu do të shohim se kjo është 225 00:09:46,160 --> 00:09:47,752 jo e gjithë historia, ose. 226 00:09:47,752 --> 00:09:49,460 Ne do të hasni gjëra quajtur struktura, 227 00:09:49,460 --> 00:09:54,249 të cilat ju lejojnë për grupin se çfarë mund të jetë një numër të plotë dhe një varg në një njësi. 228 00:09:54,249 --> 00:09:56,290 Dhe ne mund të përdorni atë për disa qëllim, e cila mund 229 00:09:56,290 --> 00:09:57,750 të jetë në dispozicion më vonë në kurs. 230 00:09:57,750 --> 00:09:59,500 >> Dhe ne do të mësojnë në lidhje me llojet e përcaktuara, 231 00:09:59,500 --> 00:10:01,720 e cila ju lejon të krijoni vet lloje të të dhënave tuaja. 232 00:10:01,720 --> 00:10:03,060 Ne nuk kemi nevojë për t'u shqetësuar në lidhje me atë për tani. 233 00:10:03,060 --> 00:10:04,550 Por vetëm e di se kjo është diçka në horizont, 234 00:10:04,550 --> 00:10:07,633 se ka shumë më shumë për këtë në tërësi lloj gjë se unë po ju them vetëm 235 00:10:07,633 --> 00:10:08,133 tani. 236 00:10:08,133 --> 00:10:10,591 Pra, tani që ne kemi mësuar një pak për të dhënat themelore 237 00:10:10,591 --> 00:10:14,230 llojet dhe llojet e të dhënave CS50, le të flasim rreth asaj se si të punojnë me variablat 238 00:10:14,230 --> 00:10:18,530 dhe për të krijuar ato duke përdorur këto Llojet e të dhënave në programet tona. 239 00:10:18,530 --> 00:10:22,670 Nëse ju doni të krijoni një ndryshore, të gjithë ju duhet të bëni është dy gjëra. 240 00:10:22,670 --> 00:10:24,147 >> Së pari, ju duhet të jepni atë një lloj. 241 00:10:24,147 --> 00:10:26,230 Gjëja e dytë që ju duhet të bëni është t'i jepte një emër. 242 00:10:26,230 --> 00:10:28,740 Pasi të keni bërë këtë dhe shuplaka një pikëpresje në fund të asaj linjë, 243 00:10:28,740 --> 00:10:29,830 keni krijuar një ndryshore. 244 00:10:29,830 --> 00:10:32,370 >> Kështu që këtu është dy shembuj. 245 00:10:32,370 --> 00:10:35,744 Numri i int; letër Char ;. 246 00:10:35,744 --> 00:10:36,660 Çfarë kam bërë këtu? 247 00:10:36,660 --> 00:10:38,110 Unë kam krijuar dy variablave. 248 00:10:38,110 --> 00:10:40,190 >> E para, ndryshorja e emri është numër. 249 00:10:40,190 --> 00:10:44,830 Dhe numri është i aftë të mbajnë numër i plotë shkruani vlerat, sepse tipi i saj është int. 250 00:10:44,830 --> 00:10:48,040 Letër është një tjetër variabël që mund të mbajë karaktere 251 00:10:48,040 --> 00:10:50,240 sepse llojin e saj e të dhënave është char. 252 00:10:50,240 --> 00:10:51,772 >> Shumë e drejtpërdrejtë, e drejtë? 253 00:10:51,772 --> 00:10:53,480 Nëse e gjeni veten në një situatë ku 254 00:10:53,480 --> 00:10:56,250 ju duhet të krijoni shumta Variablat e të njëjtit lloj, 255 00:10:56,250 --> 00:10:58,740 ju vetëm duhet të specifikojë emri llojin dikur. 256 00:10:58,740 --> 00:11:01,600 Pastaj vetëm lista si shumë variabla e atij lloji sa ju nevojitet. 257 00:11:01,600 --> 00:11:04,230 >> Kështu që unë mund të për shembull, këtu në këtë linjë e tretë të kodit, 258 00:11:04,230 --> 00:11:07,420 thonë lartësi int ;, linjë të re. 259 00:11:07,420 --> 00:11:08,291 Gjerësia int ;. 260 00:11:08,291 --> 00:11:09,290 Dhe se do të punojë shumë. 261 00:11:09,290 --> 00:11:12,039 Unë ende do të merrni dy variabla të quajtur lartësi dhe gjerësi, secila prej të cilave 262 00:11:12,039 --> 00:11:12,730 eshte nje numer i plote. 263 00:11:12,730 --> 00:11:16,970 Por unë jam i lejuar për të, gjëra C sintaksë, konsolidojë atë në një linjë të vetme. 264 00:11:16,970 --> 00:11:20,230 Lartësi int, gjerësi; Është e njëjta gjë. 265 00:11:20,230 --> 00:11:23,900 Unë kam krijuar dy variabla, e quajtur lartësia një i quajtur gjerësi, dy prej të cilave 266 00:11:23,900 --> 00:11:26,730 janë në gjendje të mbajtjes Vlerat integer lloji. 267 00:11:26,730 --> 00:11:30,920 >> Në mënyrë të ngjashme këtu, unë mund të krijojë tre vlerat pikë lundrues në të njëjtën kohë. 268 00:11:30,920 --> 00:11:33,350 Unë ndoshta mund të krijojë një ndryshore quajtur rrënja katrore e 2-- 269 00:11:33,350 --> 00:11:35,766 e cila me sa duket do të përfundimisht mbajë point-- lundrues 270 00:11:35,766 --> 00:11:39,222 se përfaqësimi i sheshit Rrënja e 2-- rrënja katrore e 3, dhe pi. 271 00:11:39,222 --> 00:11:41,180 Unë mund të ketë bërë këtë në tre linja të veçanta. 272 00:11:41,180 --> 00:11:47,690 Noton, rrënja katrore 2; Float rrënjë katrore 3; noton pi; dhe se do të punojë shumë. 273 00:11:47,690 --> 00:11:50,590 >> Por përsëri, unë vetëm mund të konsoliduar këtë në një linjë të vetme të kodit. 274 00:11:50,590 --> 00:11:54,050 Bën gjërat pak shkurtër, jo si clunky. 275 00:11:54,050 --> 00:11:57,259 >> Tani në përgjithësi, është dizajn të mirë për të vetëm të deklarojë një ndryshore kur keni nevojë për atë. 276 00:11:57,259 --> 00:11:59,050 Dhe ne do të flasim pak pak më shumë në lidhje me atë 277 00:11:59,050 --> 00:12:00,945 më vonë në kurs kur kemi diskutuar qëllimin. 278 00:12:00,945 --> 00:12:03,320 Pra, nuk ke nevojë për të të krijojë të gjitha variablave tuaj 279 00:12:03,320 --> 00:12:05,990 në fillim të programit, i cili Disa njerëz mund të ketë bërë të kaluarën, 280 00:12:05,990 --> 00:12:08,700 ose ishte sigurisht një shumë e zakonshme praktikë coding shumë vite më parë 281 00:12:08,700 --> 00:12:11,700 kur punojnë me C. Ju vetëm mund duan të krijojnë një të drejtë të ndryshueshme kur 282 00:12:11,700 --> 00:12:13,140 keni nevojë për të. 283 00:12:13,140 --> 00:12:13,640 Në rregull. 284 00:12:13,640 --> 00:12:15,150 Pra, ne kemi krijuar variablave. 285 00:12:15,150 --> 00:12:16,790 Si nuk kemi përdorim ato? 286 00:12:16,790 --> 00:12:18,650 Pasi ne të deklarojë një ndryshueshme, ne nuk kemi nevojë 287 00:12:18,650 --> 00:12:21,237 të specifikojë llojin e të dhënave e kësaj variable më. 288 00:12:21,237 --> 00:12:24,070 Në fakt, në qoftë se ju bëni kështu, ju mund të përfundojnë me disa pasoja të pazakontë 289 00:12:24,070 --> 00:12:25,490 se ne do lloj i komentoj mbi për tani. 290 00:12:25,490 --> 00:12:27,365 Por mjafton për të thënë, gjëra të çuditshme janë duke shkuar 291 00:12:27,365 --> 00:12:30,740 të fillojnë të ndodhin, nëse ju pa dashje ri-deklarojë variablave me të njëjtin emër 292 00:12:30,740 --> 00:12:32,210 mbi dhe mbi. 293 00:12:32,210 --> 00:12:33,882 >> Kështu që këtu unë kam katër rreshta të kodit. 294 00:12:33,882 --> 00:12:36,090 Dhe unë kam një çift të Komentet nuk ka vetëm të tregojnë 295 00:12:36,090 --> 00:12:37,840 çfarë po ndodh në çdo vijë vetëm për të ndihmuar 296 00:12:37,840 --> 00:12:40,520 ju merrni vendosur në atë që po ndodh. 297 00:12:40,520 --> 00:12:41,520 Numri Pra int ;. 298 00:12:41,520 --> 00:12:42,520 Ju pashë se më parë. 299 00:12:42,520 --> 00:12:44,000 Kjo është një deklaratë e ndryshueshme. 300 00:12:44,000 --> 00:12:46,670 >> Unë kam krijuar tani një variabël quajtur numër që është 301 00:12:46,670 --> 00:12:48,970 aftë për të mbajtur vlerat integer-lloj. 302 00:12:48,970 --> 00:12:50,210 Unë e kam shpallur atë. 303 00:12:50,210 --> 00:12:53,770 >> Linja tjetër unë jam caktuar një vlerë të numrit. 304 00:12:53,770 --> 00:12:54,992 Numri i barabartë me 17. 305 00:12:54,992 --> 00:12:55,950 Çfarë po ndodh atje? 306 00:12:55,950 --> 00:12:58,880 Unë jam vënë numrin 17 brenda kësaj variable. 307 00:12:58,880 --> 00:13:02,760 >> Pra, nëse unë ndonjëherë pastaj të shtypura nga çfarë përmbajtja e numrit janë më vonë, 308 00:13:02,760 --> 00:13:04,030 ata do të më thonë se është 17. 309 00:13:04,030 --> 00:13:07,030 Kështu që unë kam deklaruar një ndryshore, dhe pastaj unë kam caktuar atë. 310 00:13:07,030 --> 00:13:10,570 >> Ne mund të përsëris procesin përsëri me shkronjën char ;. 311 00:13:10,570 --> 00:13:11,640 Kjo është një deklaratë. 312 00:13:11,640 --> 00:13:14,010 Letër e barabartë me kapitalin H. Kjo është një detyrë. 313 00:13:14,010 --> 00:13:16,030 Shumë i thjeshtë, too. 314 00:13:16,030 --> 00:13:18,319 >> Tani ky proces mund të duket lloj i trashë. 315 00:13:18,319 --> 00:13:20,110 Pse jemi bërë këtë në dy rreshta të kodit? 316 00:13:20,110 --> 00:13:21,401 A ka ndonjë mënyrë më të mirë për të bërë atë? 317 00:13:21,401 --> 00:13:22,250 Në fakt, nuk është. 318 00:13:22,250 --> 00:13:24,375 Ndonjëherë ju mund të shihni kjo quhet initialization. 319 00:13:24,375 --> 00:13:28,446 Kjo është kur ju të deklarojë një ndryshore dhe cakton një vlerë në të njëjtën kohë. 320 00:13:28,446 --> 00:13:30,320 Kjo është në fakt një goxha gjë e zakonshme për të bërë. 321 00:13:30,320 --> 00:13:32,870 Kur keni krijuar një ndryshore, ju zakonisht duan që ajo të ketë disa vlera themelore. 322 00:13:32,870 --> 00:13:34,330 Edhe në qoftë se kjo është 0 ose diçka. 323 00:13:34,330 --> 00:13:36,180 Ju vetëm të jepte një vlerë. 324 00:13:36,180 --> 00:13:38,360 >> Ju mund të iniciojnë një ndryshore. 325 00:13:38,360 --> 00:13:42,320 Int numri i barabartë me 17 është e njëjtë si dy linja e parë e kodit të lart. 326 00:13:42,320 --> 00:13:46,829 Letra char barabartë h është e njëjtë si Linjat e tretë dhe të katërt të kodit mësipërme. 327 00:13:46,829 --> 00:13:49,620 Takeaway më e rëndësishme këtu kur ne jemi deklaruar dhe caktimin e 328 00:13:49,620 --> 00:13:51,740 variablave është pasi ne kemi shpallur atë, njoftim 329 00:13:51,740 --> 00:13:53,700 Unë nuk jam duke përdorur llojin e të dhënave përsëri. 330 00:13:53,700 --> 00:13:57,916 Unë nuk jam duke thënë numri int barabartë me 17 për vija e dytë i kodit, per shembull. 331 00:13:57,916 --> 00:13:59,290 Unë jam vetëm duke thënë se numri i barabartë me 17. 332 00:13:59,290 --> 00:14:02,537 >> Përsëri, ri-deklaruar një ndryshore pas ju keni deklaruar tashmë ajo mund të çojë 333 00:14:02,537 --> 00:14:03,620 në një farë pasojë pazakontë. 334 00:14:03,620 --> 00:14:05,950 Pra, vetëm të jetë i kujdesshëm për këtë. 335 00:14:05,950 --> 00:14:06,660 >> Unë jam Doug Lloyd. 336 00:14:06,660 --> 00:14:08,870 Dhe kjo është CS50. 337 00:14:08,870 --> 00:14:10,499