1 00:00:00,000 --> 00:00:02,420 >> [MUSIC nagpe-play] 2 00:00:02,420 --> 00:00:05,189 3 00:00:05,189 --> 00:00:05,980 Tagapagsalita: Lahat ng karapatan. 4 00:00:05,980 --> 00:00:08,540 Kaya sabihin makipag-usap tungkol sa isa pang bagay na uri ng natatangi sa C, 5 00:00:08,540 --> 00:00:10,010 na kung saan ay uri ng data at mga variable. 6 00:00:10,010 --> 00:00:12,340 Kapag sinasabi ko na natatangi sa C, i really ang ibig sabihin lamang sa konteksto ng, 7 00:00:12,340 --> 00:00:14,470 kung kayo ay isang programmer para sa isang tunay na matagal na panahon, 8 00:00:14,470 --> 00:00:16,270 na sa iyo marahil ay hindi nagtrabaho sa mga uri ng data 9 00:00:16,270 --> 00:00:18,470 kung ginamit mo modernong programming languages. 10 00:00:18,470 --> 00:00:20,432 Modern mga wika tulad ng PHP at JavaScript, 11 00:00:20,432 --> 00:00:22,640 na gagamitin din namin makita ang isang maliit sa susunod sa mga kurso, 12 00:00:22,640 --> 00:00:25,550 hindi mo talaga kailangang tukuyin ang mga uri ng data ng isang variable 13 00:00:25,550 --> 00:00:26,270 kapag gumamit ka ng mga ito. 14 00:00:26,270 --> 00:00:28,067 >> Ipinapahayag mo lang ito at simulan ang paggamit nito. 15 00:00:28,067 --> 00:00:29,900 Kung ito ay isang integer, ito kung ito ay isang integer. 16 00:00:29,900 --> 00:00:31,960 Kung ito ay isang karakter, ito ay alam ito ay isang character. 17 00:00:31,960 --> 00:00:35,320 Kung ito ay isang salita, alam ito ito ay isang string, tinatawag na. 18 00:00:35,320 --> 00:00:37,300 >> Ngunit sa C, kung saan ay isang mas lumang wika, kailangan namin 19 00:00:37,300 --> 00:00:39,420 upang tukuyin ang mga data uri ng bawat variable 20 00:00:39,420 --> 00:00:42,990 na gumawa kami sa unang pagkakataon na ginagamit namin na variable. 21 00:00:42,990 --> 00:00:45,030 Kaya C ay may ilang mga built-in na mga uri ng data. 22 00:00:45,030 --> 00:00:46,972 At sabihin makakuha ng pamilyar sa ilan sa mga iyon. 23 00:00:46,972 --> 00:00:50,180 At pagkatapos ay pagkatapos gagamitin din namin na makipag-usap sa isang nang kaunti tungkol sa ilan sa mga uri ng data 24 00:00:50,180 --> 00:00:54,450 na namin ang nakasulat para sa iyo, upang maaari mong gamitin ang mga ito sa CS50. 25 00:00:54,450 --> 00:00:56,130 >> Ang una ay int. 26 00:00:56,130 --> 00:00:59,110 Ang uri int data ay ginagamit para sa mga variable na tindahan ng mga halaga ng integer. 27 00:00:59,110 --> 00:01:03,210 Kaya 1, 2, 3, negatibong 1, 2, 3, at iba pa. 28 00:01:03,210 --> 00:01:05,960 Integers, na kung saan ay isang bagay na dapat panatilihin sa isip para sa mga pagsusulit, 29 00:01:05,960 --> 00:01:09,590 palaging tumagal ng hanggang sa apat na bytes ng memorya, na kung saan ay 32 bits. 30 00:01:09,590 --> 00:01:11,620 May walong bits sa isang byte. 31 00:01:11,620 --> 00:01:14,470 >> Kaya ito ay nangangahulugan na ang mga hanay ng mga mga halaga na maaaring tindahan ng isang integer 32 00:01:14,470 --> 00:01:19,130 ay nililimitahan ng kung ano ang maaaring magkasya sa loob 32 piraso na halaga ng impormasyon. 33 00:01:19,130 --> 00:01:21,850 Ngayon na ito ay lumiliko out, ito ay matagal na ang nakalipas ay nagpasya 34 00:01:21,850 --> 00:01:24,310 na kami maghiwalay na hanay ng 32 bits 35 00:01:24,310 --> 00:01:26,650 sa negatibong integer at positibong integer, 36 00:01:26,650 --> 00:01:28,390 bawat pagkuha ng kalahati ng mga hanay. 37 00:01:28,390 --> 00:01:32,230 Kaya ang hanay ng mga halaga na kumakatawan namin may isang hanay integer mula sa negatibong 2 38 00:01:32,230 --> 00:01:36,520 sa ika-31 ng kapangyarihan sa 2 hanggang ang ika-31 kapangyarihan minus 1, 39 00:01:36,520 --> 00:01:38,190 maging sanhi ng kailangan mo rin ng isang lugar para sa 0. 40 00:01:38,190 --> 00:01:41,650 >> Kaya talaga sa kalahati ng mga posibleng halaga maaari mong magkasya sa isang int ay negatibo, 41 00:01:41,650 --> 00:01:42,610 at ang kalahati ay positibo. 42 00:01:42,610 --> 00:01:47,270 At halos dito, ito ay tungkol sa mga negatibong 2 bilyon sa tungkol sa positibong 2 bilyong. 43 00:01:47,270 --> 00:01:50,207 Magbigay o kumuha ng ilang daang milyong. 44 00:01:50,207 --> 00:01:52,290 Kaya na kung ano ang maaari mong magkasya sa isang integer variable. 45 00:01:52,290 --> 00:01:55,490 Ngayon kami ay mayroon din ng isang bagay tinatawag na isang unsigned integer. 46 00:01:55,490 --> 00:01:59,220 Ngayon unsigned ints ay hindi isang hiwalay na uri ng variable. 47 00:01:59,220 --> 00:02:01,590 Sa halip, unsigned ay kung ano ang tinatawag na isang qualifier. 48 00:02:01,590 --> 00:02:04,990 Binabago nito ang data uri ng integer na bahagyang. 49 00:02:04,990 --> 00:02:07,850 >> At sa kasong ito, kung ano ang unsigned means-- at maaari mo ring 50 00:02:07,850 --> 00:02:11,530 gamitin unsigned iba pang mga uri ng data, integer ay hindi lamang ang isa. 51 00:02:11,530 --> 00:02:15,310 Ano ito epektibo ang ginagawa ay doble ang positibong hanay ng mga halaga 52 00:02:15,310 --> 00:02:19,350 na isang integer ay maaaring tumagal ng sa sa kapinsalaan ng hindi na nagpapahintulot 53 00:02:19,350 --> 00:02:21,140 mong gawin sa mga negatibong halaga. 54 00:02:21,140 --> 00:02:25,400 Kaya kung mayroon kang mga numero na kilala mo ay makakakuha ng mas mataas kaysa sa 2 bilyong ngunit mas mababa 55 00:02:25,400 --> 00:02:31,280 sa 4 na bilyon, para example-- na kung saan ay 2 hanggang ika-32 power-- 56 00:02:31,280 --> 00:02:33,330 baka gusto mong gamitin isang unsigned int kung ikaw 57 00:02:33,330 --> 00:02:35,050 malaman ang iyong mga halaga ay hindi kailanman magiging negatibo. 58 00:02:35,050 --> 00:02:37,216 >> Magkakaroon ka paminsan-minsan ginagamit para sa unsigned variable 59 00:02:37,216 --> 00:02:39,460 sa CS50, na kung saan ay kung bakit ako banggitin ito dito. 60 00:02:39,460 --> 00:02:43,830 Ngunit muli, ang hanay ng mga halaga na kayo maaari kumakatawan sa isang wala pang kontratang integer 61 00:02:43,830 --> 00:02:48,240 bilang sa t regular integer, mga 0 sa 2 hanggang ika-32 kapangyarihan minus 1, 62 00:02:48,240 --> 00:02:50,840 o humigit-kumulang 0-4000000000. 63 00:02:50,840 --> 00:02:53,730 Kaya kaepektibo mo na nadoble ang positive na hanay na maaari mong magkasya, 64 00:02:53,730 --> 00:02:56,270 ngunit iyong ibinigay up ang lahat ng ang negatibong halaga. 65 00:02:56,270 --> 00:03:00,040 >> Ngayon bilang isang bukod, unsigned ay hindi lamang ang qualifier 66 00:03:00,040 --> 00:03:01,790 upang aming makita para sa variable na uri ng data. 67 00:03:01,790 --> 00:03:05,779 May mga bagay na tinatawag din maikli at mahaba at const. 68 00:03:05,779 --> 00:03:07,820 Const namin makita ang isang maliit na bit mamaya sa kurso. 69 00:03:07,820 --> 00:03:10,830 Maikli at mahaba, marahil hindi kami. 70 00:03:10,830 --> 00:03:12,830 >> Ngunit lamang malaman na may mga iba pang qualifiers. 71 00:03:12,830 --> 00:03:14,080 Unsigned ay hindi ang isa lamang. 72 00:03:14,080 --> 00:03:16,596 Ngunit ito ay ang isa lamang na hindi namin pagpunta sa makipag-usap tungkol sa ngayon. 73 00:03:16,596 --> 00:03:17,310 Kaya lahat ng karapatan. 74 00:03:17,310 --> 00:03:18,393 Kaya namin sakop ang integer. 75 00:03:18,393 --> 00:03:19,200 Ano ang susunod? 76 00:03:19,200 --> 00:03:20,130 >> Karakter. 77 00:03:20,130 --> 00:03:23,620 Kaya karakter ay ginagamit para sa mga variable na tindahan ng nag-iisang character. 78 00:03:23,620 --> 00:03:24,850 Pansamantalang trabaho ay maikli para sa character. 79 00:03:24,850 --> 00:03:27,870 At kung minsan maaari mong marinig tao bigkasin ito bilang kotse. 80 00:03:27,870 --> 00:03:32,020 >> Kaya mga character ay laging kumukuha ng isa byte ng memorya, na kung saan ay bits 8 lamang. 81 00:03:32,020 --> 00:03:35,700 Kaya ito ay nangangahulugan na maaari nilang lamang magkasya mga halaga sa hanay ng mga negatibong 2 82 00:03:35,700 --> 00:03:42,430 sa ikapitong kapangyarihan, o negatibong 128, sa 2 hanggang ika-7 ng kapangyarihan minus 1, o 127. 83 00:03:42,430 --> 00:03:45,710 >> Salamat sa ASCII, ito ay matagal na ang nakalipas ay nagpasya isang paraan 84 00:03:45,710 --> 00:03:50,805 upang i-map ang mga positibong numero mula sa 0-127 sa iba't-ibang mga character 85 00:03:50,805 --> 00:03:52,182 na ang lahat ng umiiral sa aming keyboard. 86 00:03:52,182 --> 00:03:54,640 Kaya bilang namin makita sa susunod sa ang kurso, at makikita mo marahil 87 00:03:54,640 --> 00:03:57,700 dumating kabisaduhin ang ilan point, capital A, para example-- 88 00:03:57,700 --> 00:04:00,732 ang character capital A-- mga mapa sa number 65. 89 00:04:00,732 --> 00:04:02,940 At ang mga dahilan para sa na dahil na kung ano ang ito ay 90 00:04:02,940 --> 00:04:05,490 ay nakatakda sa pamamagitan ng standard na ASCII. 91 00:04:05,490 --> 00:04:07,850 >> Lowercase A ay 97. 92 00:04:07,850 --> 00:04:11,900 Ang karakter 0 para sa kapag kayo talagang i-type ang mga character, hindi 93 00:04:11,900 --> 00:04:13,532 na kumakatawan sa bilang zero, ay 48. 94 00:04:13,532 --> 00:04:15,240 Matututunan mo ang isang pares sa mga ito ang pumunta sa iyo. 95 00:04:15,240 --> 00:04:17,990 At makikita mo tiyak na dumating sa kailangan mga ito nang kaunti sa ibang pagkakataon sa CS50. 96 00:04:17,990 --> 00:04:20,450 97 00:04:20,450 --> 00:04:23,390 >> Ang susunod na malaking uri ng data ay lumulutang point numero. 98 00:04:23,390 --> 00:04:26,100 Kaya lumulutang point numero ay na kilala rin bilang tunay na numero. 99 00:04:26,100 --> 00:04:28,850 Ang mga ito ay karaniwang numero na magkaroon ng isang decimal point sa kanila. 100 00:04:28,850 --> 00:04:33,360 Lumulutang halaga ng point tulad ng integer ding 101 00:04:33,360 --> 00:04:36,090 nilalaman sa loob ng 4 bytes ng memorya. 102 00:04:36,090 --> 00:04:37,580 Ngayon ay walang tsart dito. 103 00:04:37,580 --> 00:04:40,890 Walang numero ng linya, dahil naglalarawan ng mga saklaw ng isang float 104 00:04:40,890 --> 00:04:44,550 ay hindi eksakto malinaw o intuitive. 105 00:04:44,550 --> 00:04:47,350 >> Sapat nang sabihin sa iyo may 32 bits upang gumana sa. 106 00:04:47,350 --> 00:04:49,730 At kung mayroon kang isang bilang tulad ng pay, na may 107 00:04:49,730 --> 00:04:55,510 isang integer part 3, at isang lumulutang point bahagi, o decimal part 0.14159, 108 00:04:55,510 --> 00:04:58,735 at iba pa, kailangan mo upang maging maaaring kumatawan sa lahat ng it-- 109 00:04:58,735 --> 00:05:02,420 ng integer na bahagi at ang decimal bahagi. 110 00:05:02,420 --> 00:05:04,550 >> Kaya kung ano ang sa tingin mo na maaaring ibig sabihin nito? 111 00:05:04,550 --> 00:05:08,180 Ang isang bagay na kung decimal makakakuha ng part na at na, 112 00:05:08,180 --> 00:05:10,660 kung mayroon akong isang napakalaking integer bahagi, huwag akong 113 00:05:10,660 --> 00:05:13,090 maaaring maging tumpak sa decimal bahagi. 114 00:05:13,090 --> 00:05:15,280 At iyon talaga ang limitasyon ng isang float. 115 00:05:15,280 --> 00:05:17,229 >> Sa kamay ay may isang problema precision. 116 00:05:17,229 --> 00:05:19,270 Kami lamang magkaroon ng 32 bits upang magtrabaho kasama, kaya kami ay maaari lamang 117 00:05:19,270 --> 00:05:22,510 kaya tiyak sa aming mga decimal na bahagi. 118 00:05:22,510 --> 00:05:27,300 Hindi namin kinakailangang magkaroon ng isang decimal part tumpak na 100 o 200 na numero, 119 00:05:27,300 --> 00:05:29,710 dahil kami ay may lamang 32 bits upang gumana sa. 120 00:05:29,710 --> 00:05:31,590 Kaya na ang isang limitasyon ng isang float. 121 00:05:31,590 --> 00:05:33,590 >> Ngayon kabutihang-palad may ibang uri ng data na tinatawag na 122 00:05:33,590 --> 00:05:36,530 double, na medyo trato sa problemang ito. 123 00:05:36,530 --> 00:05:39,980 Doubles, tulad ng kamay, ay ginagamit din upang tindahan ng tunay na mga numero, o mga lumulutang na tuldok 124 00:05:39,980 --> 00:05:40,840 halaga. 125 00:05:40,840 --> 00:05:44,340 Ang pagkakaiba ay na doubles ay double precision. 126 00:05:44,340 --> 00:05:48,177 Maaari silang magkasya 64 bits ng data, o walong bytes. 127 00:05:48,177 --> 00:05:49,010 Ano ang ibig sabihin nito? 128 00:05:49,010 --> 00:05:51,801 Well, ito ay nangangahulugan na maaari naming maging ng maraming higit pa tumpak na gamit ang decimal point. 129 00:05:51,801 --> 00:05:54,830 Sa halip ng pagkakaroon pi sa pitong lugar siguro, na may isang float, 130 00:05:54,830 --> 00:05:56,710 maaari naming baka mayroon ito sa 30 lugar. 131 00:05:56,710 --> 00:05:59,824 Kung na mahalaga, maaari mong ang paggamit ng isang double sa halip ng isang float. 132 00:05:59,824 --> 00:06:01,740 Talaga, kung ikaw ay nagtatrabaho sa anumang bagay na kung saan ang 133 00:06:01,740 --> 00:06:06,540 ang pagkakaroon ng isang tunay na matagal na decimal na lugar at ng maraming katumpakan ay mahalaga, 134 00:06:06,540 --> 00:06:08,630 malamang na gusto mong gumamit ng isang double overfloat. 135 00:06:08,630 --> 00:06:11,250 Ngayon para sa karamihan ng iyong trabaho sa CS50, isang float ay dapat magkasiya. 136 00:06:11,250 --> 00:06:15,340 Ngunit alam na doubles umiiral bilang isang paraan upang medyo harapin ang katumpakan 137 00:06:15,340 --> 00:06:20,980 problema sa pamamagitan ng pagbibigay sa iyo ng dagdag na 32 bits upang gumana sa para sa iyong numero. 138 00:06:20,980 --> 00:06:23,650 >> Ngayon ito ay hindi isang uri ng data. 139 00:06:23,650 --> 00:06:24,390 Ito ay isang uri. 140 00:06:24,390 --> 00:06:25,340 At ito ay tinatawag na walang bisa. 141 00:06:25,340 --> 00:06:27,506 At ako ng pakikipag-usap tungkol sa mga ito dito dahil hindi namin marahil 142 00:06:27,506 --> 00:06:29,520 makikita ito ng ilang beses na sa CS50. 143 00:06:29,520 --> 00:06:32,020 At maaaring ikaw ay nagtataka kung ano ang lahat ay tungkol. 144 00:06:32,020 --> 00:06:33,390 >> Kaya walang bisa ay isang uri. 145 00:06:33,390 --> 00:06:34,097 Ito ay hindi umiiral. 146 00:06:34,097 --> 00:06:35,180 Ngunit ito ay hindi isang uri ng data. 147 00:06:35,180 --> 00:06:39,350 >> Hindi kami makalikha ng isang variable ng uri walang bisa at magtalaga ng isang halaga sa mga ito. 148 00:06:39,350 --> 00:06:42,519 Ngunit function, halimbawa, ay maaaring magkaroon ng isang uri void return. 149 00:06:42,519 --> 00:06:45,060 Talaga, kung makita mo ang isang function na may isang uri void return, 150 00:06:45,060 --> 00:06:46,970 ito ay nangangahulugan na ito ay hindi nagbabalik ng halaga. 151 00:06:46,970 --> 00:06:49,440 Maaari mong isipin ng isang karaniwang function na iyong ginamit namin sa ngayon 152 00:06:49,440 --> 00:06:52,780 sa CS50 na hindi nagbabalik ng halaga? 153 00:06:52,780 --> 00:06:54,700 >> Printf ay isa. 154 00:06:54,700 --> 00:06:56,820 Printf ay hindi tunay bumalik anumang bagay sa iyo. 155 00:06:56,820 --> 00:06:59,850 Ito ay kopya ng isang bagay upang ang screen, at ito ay isa lamang 156 00:06:59,850 --> 00:07:01,650 isang epekto ng kung ano ang ginagawa printf. 157 00:07:01,650 --> 00:07:03,620 Ngunit ito ay hindi magbibigay sa iyo ang halaga ng isang back. 158 00:07:03,620 --> 00:07:08,419 Hindi mo makuha ang mga resulta at store ito sa ilang mga variable na gamitin ito sa ibang pagkakataon. 159 00:07:08,419 --> 00:07:10,710 Ito ay kopya ng isang bagay na screen at tapos ka na. 160 00:07:10,710 --> 00:07:14,360 >> Kaya sinabi namin na printf ay isang walang bisa function. 161 00:07:14,360 --> 00:07:16,450 Ito ay bumalik sa wala. 162 00:07:16,450 --> 00:07:18,580 >> Ang perimeter listahan ng isang ay maaari ding maging void function. 163 00:07:18,580 --> 00:07:21,410 At iyong nakita rin na ang lubos ng kaunti sa CS50 masyadong. 164 00:07:21,410 --> 00:07:22,300 Int pangunahing walang bisa. 165 00:07:22,300 --> 00:07:23,260 Ba na singsing ng isang kampanilya? 166 00:07:23,260 --> 00:07:24,080 167 00:07:24,080 --> 00:07:27,220 Talaga kung ano ang ibig sabihin ay na pangunahing hindi gumawa ng anumang mga parameter ay. 168 00:07:27,220 --> 00:07:29,520 Walang argument na makakuha ng lumipas sa main. 169 00:07:29,520 --> 00:07:32,780 Ngayon sa susunod kami makita na mayroong isang paraan upang pumasa argumento sa main, 170 00:07:32,780 --> 00:07:36,189 ngunit sa ngayon kung ano na namin nakita ay int pangunahing walang bisa. 171 00:07:36,189 --> 00:07:37,730 Main lamang ay hindi gumawa ng anumang argumento. 172 00:07:37,730 --> 00:07:40,236 At kaya kami tukuyin na sa pamamagitan ng pagsasabi na walang bisa. 173 00:07:40,236 --> 00:07:42,110 Lang kami sa pagiging napaka malinaw tungkol sa ang katunayan 174 00:07:42,110 --> 00:07:44,430 na ito ay hindi gumawa ng anumang argumento. 175 00:07:44,430 --> 00:07:47,160 >> Kaya sa ngayon, sapat nang sabihin na void talaga 176 00:07:47,160 --> 00:07:50,789 dapat lamang maglingkod bilang isang placeholder para sa iyo bilang pag-iisip tungkol sa bilang wala. 177 00:07:50,789 --> 00:07:52,080 Ito ay hindi talagang gumagawa ng anumang bagay. 178 00:07:52,080 --> 00:07:53,550 Walang bumalik halaga dito. 179 00:07:53,550 --> 00:07:54,770 Walang mga parameter dito. 180 00:07:54,770 --> 00:07:55,709 Ito ay walang bisa. 181 00:07:55,709 --> 00:07:57,250 Ito ay isang maliit na mas kumplikadong kaysa sa. 182 00:07:57,250 --> 00:08:00,640 Ngunit ito ay dapat magkasiya para sa ang mas magandang bahagi ng kurso. 183 00:08:00,640 --> 00:08:05,010 At sana ngayon ay mayroon ka ng isang maliit na bit higit pa sa isang konsepto ng kung ano void ay. 184 00:08:05,010 --> 00:08:08,460 >> Kaya ang mga ay ang limang uri bibigyan ka magkasalubong na ay built-in sa C. 185 00:08:08,460 --> 00:08:10,670 Ngunit sa CS50 din namin na magkaroon ng isang library. 186 00:08:10,670 --> 00:08:13,550 CS50.h, na maaari mong isama. 187 00:08:13,550 --> 00:08:15,930 At kung saan ay nagbibigay sa iyo may dalawang karagdagang mga uri 188 00:08:15,930 --> 00:08:18,280 na ikaw ay malamang na ma upang gamitin sa iyong mga takdang-aralin, 189 00:08:18,280 --> 00:08:21,210 o nagtatrabaho lamang sa pangkalahatan ang programming. 190 00:08:21,210 --> 00:08:23,030 >> Ang unang mga ito ay bool. 191 00:08:23,030 --> 00:08:26,780 Kaya ang Boolean uri ng data, bool, ay ginagamit para sa mga variable 192 00:08:26,780 --> 00:08:28,114 na tindahan ng isang Boolean halaga. 193 00:08:28,114 --> 00:08:29,863 Kung kailanman na iyong narinig bago ang term na ito, ikaw 194 00:08:29,863 --> 00:08:31,960 maaaring malaman na ang isang Boolean halaga na kaya ng lamang 195 00:08:31,960 --> 00:08:34,440 may hawak na dalawang magkaibang mga natatanging halaga. 196 00:08:34,440 --> 00:08:35,872 Tama at mali. 197 00:08:35,872 --> 00:08:37,580 Ngayon na ito ay tila medyo pundamental na, i-right? 198 00:08:37,580 --> 00:08:40,496 Ito ay uri ng isang sorpresa na ito ay hindi umiiral sa C bilang ito ay built-in. 199 00:08:40,496 --> 00:08:42,640 At sa maraming modernong mga wika, siyempre, Booleans 200 00:08:42,640 --> 00:08:45,390 ay isang karaniwang uri ng default data. 201 00:08:45,390 --> 00:08:47,192 Ngunit sa C, ang mga ito ay talagang hindi. 202 00:08:47,192 --> 00:08:48,400 Ngunit ginawa namin ito para sa iyo. 203 00:08:48,400 --> 00:08:51,910 Kaya kung sakaling kailanganin mong lumikha ng isang variable na ang uri ay bool, 204 00:08:51,910 --> 00:08:55,230 siguraduhin na # include CS50.h lamang sa simula ng iyong programa, 205 00:08:55,230 --> 00:08:57,800 at makikita mo na ang lumikha variable ng uri bool. 206 00:08:57,800 --> 00:09:02,095 >> Kung nakalimutan mong # include CS50.h, at mo simulang gamitin ang mga variable Boolean-uri, 207 00:09:02,095 --> 00:09:04,970 maaari ninyong matagpuan ang ilang mga problema kapag naka-ipon ng iyong programa. 208 00:09:04,970 --> 00:09:06,490 Kaya lang ay sa pagbabantay para sa. 209 00:09:06,490 --> 00:09:11,180 At siguro ay maaari mo lamang ayusin ang mga problema sa pamamagitan ng pound kabilang CS50.h. 210 00:09:11,180 --> 00:09:14,590 >> Ang iba pang mga pangunahing uri ng data na aming magbigay para sa iyo sa CS50 library 211 00:09:14,590 --> 00:09:15,670 ay string. 212 00:09:15,670 --> 00:09:17,130 Kaya kung ano ang isang string? 213 00:09:17,130 --> 00:09:18,520 String ay talagang lamang ang mga salita. 214 00:09:18,520 --> 00:09:20,000 Ang mga ito ay mga koleksyon ng mga character. 215 00:09:20,000 --> 00:09:20,640 Ang mga ito ay mga salita. 216 00:09:20,640 --> 00:09:21,390 Ang mga ito ay mga pangungusap. 217 00:09:21,390 --> 00:09:22,480 Ang mga ito ay mga talata. 218 00:09:22,480 --> 00:09:25,850 Maaaring buong libro, kahit. 219 00:09:25,850 --> 00:09:29,690 >> Very short na masyadong mahaba serye ng mga character. 220 00:09:29,690 --> 00:09:34,310 Kung kailangan mong gumamit ng mga string, halimbawa, sa mga tindahan ng isang salita, 221 00:09:34,310 --> 00:09:37,609 siguraduhin na isama ang CS50.h lamang sa simula ng inyong programa 222 00:09:37,609 --> 00:09:38,900 upang maaari mong gamitin ang mga uri ng string. 223 00:09:38,900 --> 00:09:43,910 At pagkatapos ay maaari kang lumikha ng mga variable type na data ay string. 224 00:09:43,910 --> 00:09:46,160 Ngayon sa susunod sa mga kurso, gagamitin din namin makita na iyan ay 225 00:09:46,160 --> 00:09:47,752 hindi ang buong kuwento, alinman. 226 00:09:47,752 --> 00:09:49,460 Susubukan naming nakakaharap bagay tinatawag na kaayusan, 227 00:09:49,460 --> 00:09:54,249 na magpapahintulot sa inyo na grupo kung ano ang maaaring isang integer at ang isang string sa isang yunit. 228 00:09:54,249 --> 00:09:56,290 At maaari naming gamitin para sa sa ilang layunin, na maaaring 229 00:09:56,290 --> 00:09:57,750 dumating sa madaling gamitin sa susunod sa kurso. 230 00:09:57,750 --> 00:09:59,500 >> At kami na ring malaman tungkol sa natukoy na mga uri, 231 00:09:59,500 --> 00:10:01,720 na nagbibigay-daan sa iyo upang lumikha ang iyong sariling uri ng data. 232 00:10:01,720 --> 00:10:03,060 Hindi natin kailangan mag-alala tungkol na para sa ngayon. 233 00:10:03,060 --> 00:10:04,550 Ngunit lamang malaman na iyon ang isang bagay sa abot-tanaw, 234 00:10:04,550 --> 00:10:07,633 na mayroong isang pulutong mas na ito buong type bagay kaysa ako na nagsasabi sa iyo lamang 235 00:10:07,633 --> 00:10:08,133 ngayon. 236 00:10:08,133 --> 00:10:10,591 Kaya ngayon na aming natutunan ng kaunti tungkol sa mga pangunahing data 237 00:10:10,591 --> 00:10:14,230 mga uri at ang mga uri CS50 data, sabihin makipag-usap tungkol sa kung paano gumagana sa mga variable 238 00:10:14,230 --> 00:10:18,530 at likhain ang mga ito gamit ang mga uri ng data sa aming mga programa. 239 00:10:18,530 --> 00:10:22,670 Kung nais mong lumikha ng isang variable, ang lahat ng kailangan mong gawin ay ang dalawang bagay. 240 00:10:22,670 --> 00:10:24,147 >> Una, kailangan mo upang bigyan ito ng isang uri. 241 00:10:24,147 --> 00:10:26,230 Ang ikalawang bagay na kailangan mo gawin ay bigyan ito ng isang pangalan. 242 00:10:26,230 --> 00:10:28,740 Sa sandaling nagawa mo na at slapped isang semicolon sa dulo ng linya, 243 00:10:28,740 --> 00:10:29,830 ka na ng isang variable. 244 00:10:29,830 --> 00:10:32,370 >> Kaya narito ang dalawang halimbawa. 245 00:10:32,370 --> 00:10:35,744 Number Int; char sulat ;. 246 00:10:35,744 --> 00:10:36,660 Ano ang ginawa ko dito? 247 00:10:36,660 --> 00:10:38,110 Lumikha ako ng dalawang variable. 248 00:10:38,110 --> 00:10:40,190 >> Ang una, ang mga variable na ni pangalan ko ay number. 249 00:10:40,190 --> 00:10:44,830 At bilang ay may-hawak na integer nagta-type na mga halaga, dahil ang uri nito ay int. 250 00:10:44,830 --> 00:10:48,040 Letter ay isa pang variable na maaaring magkaroon ng mga letra 251 00:10:48,040 --> 00:10:50,240 dahil sa kanyang uri ng data ay char. 252 00:10:50,240 --> 00:10:51,772 >> Medyo prangka, di ba? 253 00:10:51,772 --> 00:10:53,480 Kung nakita mo ang iyong sarili sa isang sitwasyon na kung saan ang 254 00:10:53,480 --> 00:10:56,250 kailangan mong lumikha ng maramihang variable ng parehong uri, 255 00:10:56,250 --> 00:10:58,740 kailangan mo lamang na tukuyin ang ang uri ng pangalan ng isang beses. 256 00:10:58,740 --> 00:11:01,600 Pagkatapos lamang ng listahan ng maraming mga variable ng uri na kailangan mo. 257 00:11:01,600 --> 00:11:04,230 >> Kaya maaari ko halimbawa, dito sa ikatlong linya ng code, 258 00:11:04,230 --> 00:11:07,420 sabihin taas int ;, bagong linya. 259 00:11:07,420 --> 00:11:08,291 Int width ;. 260 00:11:08,291 --> 00:11:09,290 At iyon ay masyadong trabaho. 261 00:11:09,290 --> 00:11:12,039 Gusto ko pa rin makakuha ng tinatawag na dalawang variable taas at lapad, ang bawat isa ay 262 00:11:12,039 --> 00:11:12,730 ay isang integer. 263 00:11:12,730 --> 00:11:16,970 Ngunit ako pinapayagan na, mga bagay na C syntax, pag-isahin ang mga ito sa isang solong linya. 264 00:11:16,970 --> 00:11:20,230 Int taas, lapad; Ito ay ang parehong bagay. 265 00:11:20,230 --> 00:11:23,900 Lumikha ako ng dalawang variable, isa na tinatawag na taas isa na tinatawag na lapad, na parehong 266 00:11:23,900 --> 00:11:26,730 ay kaya ng mga humahawak integer value type. 267 00:11:26,730 --> 00:11:30,920 >> Katulad dito, maaari kong lumikha ng tatlong lumulutang na halaga ng point sa isang beses. 268 00:11:30,920 --> 00:11:33,350 Maaari ko marahil lumikha ng isang variable tinatawag na square root ng 2-- 269 00:11:33,350 --> 00:11:35,766 na siguro ay tuluyang matagal ang lumulutang point-- 270 00:11:35,766 --> 00:11:39,222 na representasyon ng mga parisukat ugat ng 2-- square root of 3, at pi. 271 00:11:39,222 --> 00:11:41,180 Maaari ba akong magkaroon ng tapos na ito sa tatlong magkahiwalay na mga linya. 272 00:11:41,180 --> 00:11:47,690 Magpalutang, square root 2; Magpalutang ng square root 3; lumutang pi; at na masyadong trabaho. 273 00:11:47,690 --> 00:11:50,590 >> Subalit muli, maaari ko lamang pag-isahin na ito sa isang solong linya ng code. 274 00:11:50,590 --> 00:11:54,050 Gagawa ng mga bagay ng isang maliit na piraso mas maikli, hindi bilang clunky. 275 00:11:54,050 --> 00:11:57,259 >> Ngayon sa pangkalahatan, ito ay magandang disenyo upang lamang ipinapahayag ng isang variable kapag kailangan mo ito. 276 00:11:57,259 --> 00:11:59,050 At kami ay makipag-usap sa isang maliit na kaunti pa tungkol sa na 277 00:11:59,050 --> 00:12:00,945 sa susunod sa mga kurso kapag usapan namin ang saklaw. 278 00:12:00,945 --> 00:12:03,320 Kaya hindi naman kailangan na lumikha ng lahat ng iyong mga variable 279 00:12:03,320 --> 00:12:05,990 sa simula ng programa, na ang ilang mga tao ay maaaring magkaroon ng tapos na sa nakaraan, 280 00:12:05,990 --> 00:12:08,700 o ay tiyak na isang napaka-pangkaraniwan coding pagsasanay sa maraming mga taon na nakalipas 281 00:12:08,700 --> 00:12:11,700 kapag nagtatrabaho sa mga C. maaari lamang mo nais na lumikha ng isang karapatan variable kapag 282 00:12:11,700 --> 00:12:13,140 kailangan mo ito. 283 00:12:13,140 --> 00:12:13,640 Lahat tama. 284 00:12:13,640 --> 00:12:15,150 Kaya lumikha kami ng mga variable. 285 00:12:15,150 --> 00:12:16,790 Paano ko gagamitin ang mga ito? 286 00:12:16,790 --> 00:12:18,650 Pagkatapos naming ipahayag ang isang variable, hindi namin kailangan 287 00:12:18,650 --> 00:12:21,237 upang tukuyin ang mga uri ng data ng variable na anymore. 288 00:12:21,237 --> 00:12:24,070 Sa katunayan, kung gagawin mo ito, maaari mong end up sa ilang mga kakatwang mga kahihinatnan 289 00:12:24,070 --> 00:12:25,490 na makikita namin uri ng pagtakpan para sa ngayon. 290 00:12:25,490 --> 00:12:27,365 Ngunit magkasiya ito upang sabihin, kakaiba mga bagay ay pagpunta 291 00:12:27,365 --> 00:12:30,740 upang simulan ang nangyayari kung hindi mo sinasadyang muling magpahayag ng variable na may parehong pangalan 292 00:12:30,740 --> 00:12:32,210 paulit-ulit. 293 00:12:32,210 --> 00:12:33,882 >> Kaya dito mayroon akong apat na linya ng code. 294 00:12:33,882 --> 00:12:36,090 At ako ay may isang pares ng mga Tingnan ang mga komento doon lamang na nagpapahiwatig 295 00:12:36,090 --> 00:12:37,840 ano ang nangyayari sa bawat linya para lamang makatulong sa 296 00:12:37,840 --> 00:12:40,520 ikaw ay makakuha ng nakatayo sa kung ano ang nangyayari sa. 297 00:12:40,520 --> 00:12:41,520 Kaya int number ;. 298 00:12:41,520 --> 00:12:42,520 Nakita mo na dati. 299 00:12:42,520 --> 00:12:44,000 Iyan ay isang variable na deklarasyon. 300 00:12:44,000 --> 00:12:46,670 >> Ngayon ko na nilikha ng isang variable tinatawag na numero na 301 00:12:46,670 --> 00:12:48,970 may-hawak na mga halaga ng integer-type. 302 00:12:48,970 --> 00:12:50,210 Ipinahayag ko na ito. 303 00:12:50,210 --> 00:12:53,770 >> Ang susunod na linya ako magtatalaga isang halaga sa numero. 304 00:12:53,770 --> 00:12:54,992 Number katumbas 17. 305 00:12:54,992 --> 00:12:55,950 Ano ang nangyayari doon? 306 00:12:55,950 --> 00:12:58,880 Ako ng paglalagay ng bilang 17 sa loob ng variable na iyon. 307 00:12:58,880 --> 00:13:02,760 >> Kaya kung sakaling pagkatapos i-print out ko kung ano ang ang mga nilalaman ng numero ay sa susunod, 308 00:13:02,760 --> 00:13:04,030 ito ay sabihin sa akin ito ay 17. 309 00:13:04,030 --> 00:13:07,030 Kaya hindi ko na ipinahayag ng isang variable, at pagkatapos ay itinalaga ko na ito. 310 00:13:07,030 --> 00:13:10,570 >> Maaari naming ulitin ang proseso muli gamit char sulat ;. 311 00:13:10,570 --> 00:13:11,640 Iyan ay isang deklarasyon. 312 00:13:11,640 --> 00:13:14,010 Letter katumbas capital H. Iyan ay isang assignment. 313 00:13:14,010 --> 00:13:16,030 Medyo prangka, masyadong. 314 00:13:16,030 --> 00:13:18,319 >> Ngayon ang prosesong ito maaaring mukhang uri ng ulok. 315 00:13:18,319 --> 00:13:20,110 Bakit namin ginagawa ito sa dalawang linya ng code? 316 00:13:20,110 --> 00:13:21,401 Mayroon bang mas mahusay na paraan upang gawin ito? 317 00:13:21,401 --> 00:13:22,250 Sa katunayan, mayroong. 318 00:13:22,250 --> 00:13:24,375 Minsan maaari mong makita ang ito na tinatawag na Pinasimulan. 319 00:13:24,375 --> 00:13:28,446 Ito ay kapag ipinapahayag mo ang isang variable at magtalaga ng isang halaga sa parehong oras. 320 00:13:28,446 --> 00:13:30,320 Ito ay talagang isang pretty pangkaraniwang bagay na gawin. 321 00:13:30,320 --> 00:13:32,870 Kapag lumikha ka ng isang variable, ikaw ay karaniwang Gusto ito upang magkaroon ng ilang mga pangunahing halaga. 322 00:13:32,870 --> 00:13:34,330 Kahit na ito ay 0 o isang bagay. 323 00:13:34,330 --> 00:13:36,180 Ikaw lamang mong bigyan ito ng isang halaga. 324 00:13:36,180 --> 00:13:38,360 >> Maaari mong magpasimula ng isang variable. 325 00:13:38,360 --> 00:13:42,320 Int numero ay katumbas ng 17 ay katulad ng ang unang dalawang linya ng code up sa itaas. 326 00:13:42,320 --> 00:13:46,829 Pansamantalang trabaho titik ay katumbas ng h ay ang parehong bilang ng mga ikatlo at ikaapat na linya ng code sa itaas. 327 00:13:46,829 --> 00:13:49,620 Ang pinaka-mahalagang takeaway dito kapag kami ay deklarasyon at pagtatalaga 328 00:13:49,620 --> 00:13:51,740 variable ay matapos naming Na ipinahayag ito, ang paunawa 329 00:13:51,740 --> 00:13:53,700 Hindi ko na muli gamit ang mga uri ng data. 330 00:13:53,700 --> 00:13:57,916 Hindi ko na sinasabi number int katumbas 17 sa ang pangalawang linya ng code, halimbawa. 331 00:13:57,916 --> 00:13:59,290 Lamang ako sinasabi number katumbas 17. 332 00:13:59,290 --> 00:14:02,537 >> Muli, muling deklarasyon ng variable pagkatapos nakalikha ka na ipinahayag maaari itong humantong 333 00:14:02,537 --> 00:14:03,620 sa ilang mga kakatwang mga kinahinatnan. 334 00:14:03,620 --> 00:14:05,950 Kaya mag-ingat ng mga na lamang. 335 00:14:05,950 --> 00:14:06,660 >> Ako Doug Lloyd. 336 00:14:06,660 --> 00:14:08,870 At ito ay CS50. 337 00:14:08,870 --> 00:14:10,499