1 00:00:00,000 --> 00:00:02,420 [MŪZIKAS ATSKAŅOŠANA] 2 00:00:05,189 --> 00:00:05,980 RUNĀTĀJS: Labi. 3 00:00:05,980 --> 00:00:07,995 Tātad parunāsim par citu lietu, kas ir raksturīga tikai C, proti, 4 00:00:07,995 --> 00:00:10,010 datu tipi un mainīgie. 5 00:00:10,010 --> 00:00:12,125 Kad es saku, ka tas ir unikāls tikai C, es tiešām domāju tikai tādā 6 00:00:12,125 --> 00:00:14,240 kontekstā, ka, ja esat programmētājs jau ļoti ilgu laiku un ja esat 7 00:00:14,240 --> 00:00:16,355 izmantojis modernās programmēšanas valodas jūs, iespējams, neesat 8 00:00:16,355 --> 00:00:18,470 strādājis ar datu tipiem, . 9 00:00:18,470 --> 00:00:21,070 Mūsdienu valodās, piemēram, PHP un JavaScript, kuras mēs arī redzēsim 10 00:00:21,070 --> 00:00:23,670 nedaudz vēlāk kursa laikā, jums faktiski nav jānorāda mainīgā datu 11 00:00:23,670 --> 00:00:26,270 veids, kad to izmantojat. 12 00:00:26,270 --> 00:00:28,067 Jūs vienkārši deklarējat to un sākat to lietot. 13 00:00:28,067 --> 00:00:29,900 Ja tas ir vesels skaitlis, tas zina, ka tas ir vesels skaitlis. 14 00:00:29,900 --> 00:00:31,960 Ja tā ir rakstzīme, tā zina, ka tā ir rakstzīme. 15 00:00:31,960 --> 00:00:35,320 Ja tas ir vārds, tas zina, ka tā ir tā saucamā virkne, . 16 00:00:35,320 --> 00:00:39,155 Bet valodā C, kas ir vecāka valoda, mums ir jānorāda katra mainīgā, 17 00:00:39,155 --> 00:00:42,990 ko izveidojam, datu tips kad šo mainīgo izmantojam pirmo reizi. 18 00:00:42,990 --> 00:00:45,030 Tātad C nāk ar dažiem iebūvētiem datu tipiem. 19 00:00:45,030 --> 00:00:46,972 Un iepazīsimies ar dažiem no tiem. 20 00:00:46,972 --> 00:00:50,711 Pēc tam mēs arī nedaudz parunāsim par dažiem datu tipiem, ko esam 21 00:00:50,711 --> 00:00:54,450 jums uzrakstījuši , lai jūs varētu tos izmantot CS50. 22 00:00:54,450 --> 00:00:56,130 Pirmais ir int. 23 00:00:56,130 --> 00:00:57,620 Int datu tips tiek izmantots mainīgajiem, kas glabās veselu skaitļu 24 00:00:57,620 --> 00:00:59,110 vērtības. 25 00:00:59,110 --> 00:01:03,210 Tātad 1, 2, 3, negatīvs 1, 2, 3 utt. 26 00:01:03,210 --> 00:01:06,400 Veselie skaitļi, kas jums jāpatur prātā, piedaloties viktorīnu, 27 00:01:06,400 --> 00:01:09,590 vienmēr aizņem četrus baitus atmiņas, kas ir 32 biti. 28 00:01:09,590 --> 00:01:11,620 Vienā baitā ir astoņi biti. 29 00:01:11,620 --> 00:01:15,375 Tātad tas nozīmē, ka vērtību diapazonu, ko var saglabāt vesels 30 00:01:15,375 --> 00:01:19,130 skaitlis, ierobežo tas, kas var iekļauties 32 bitu vērtībā. 31 00:01:19,130 --> 00:01:22,216 Kā izrādās, jau sen tika nolemts, ka mēs šo 32 bitu diapazonu 32 00:01:22,216 --> 00:01:25,303 sadalīsim negatīvos veselos skaitļos un pozitīvos veselos skaitļos, 33 00:01:25,303 --> 00:01:28,390 katram iegūstot pusi no diapazona. 34 00:01:28,390 --> 00:01:31,656 Tātad vērtību diapazons, ko mēs attēlojam ar veselu skaitli, ir no 35 00:01:31,656 --> 00:01:34,923 negatīva 2 līdz 31. pakāpei līdz 2 līdz 31. pakāpei mīnus 1, jo jums 36 00:01:34,923 --> 00:01:38,190 ir nepieciešama arī vieta 0. 37 00:01:38,190 --> 00:01:40,400 Tātad būtībā puse no iespējamām vērtībām, ko varat iekļaut int, ir 38 00:01:40,400 --> 00:01:42,610 negatīvas, bet puse ir pozitīvas. 39 00:01:42,610 --> 00:01:44,940 Un aptuveni šeit tas ir apmēram negatīvi 2 miljardi līdz aptuveni 40 00:01:44,940 --> 00:01:47,270 pozitīvi 2 miljardi. 41 00:01:47,270 --> 00:01:50,207 Dod vai ņem pāris simtus miljonu. 42 00:01:50,207 --> 00:01:52,290 Tātad tas ir tas, ko jūs varat ievietot veselā skaitļa mainīgajā. 43 00:01:52,290 --> 00:01:55,490 Tagad mums ir arī kaut kas, ko sauc par bezzīmes veselu skaitli. 44 00:01:55,490 --> 00:01:59,220 Tagad bezzīmes ints nav atsevišķs mainīgā tips. 45 00:01:59,220 --> 00:02:01,590 Drīzāk bezzīmes ir tas, ko sauc par kvalifikatoru. 46 00:02:01,590 --> 00:02:04,990 Tas nedaudz maina veselā skaitļa datu tipu. 47 00:02:04,990 --> 00:02:08,260 Un šajā gadījumā, ko nozīmē bezzīmes — un jūs varat izmantot arī 48 00:02:08,260 --> 00:02:11,530 citus bezzīmes datu tipus, taču vesels skaitlis nav vienīgais. 49 00:02:11,530 --> 00:02:14,733 Tas faktiski divkāršo pozitīvo vērtību diapazonu, ko vesels skaitlis 50 00:02:14,733 --> 00:02:17,936 var iegūt uz tā rēķina, ka vairs nevarēsit pieņemt negatīvas 51 00:02:17,936 --> 00:02:21,140 vērtības. 52 00:02:21,140 --> 00:02:24,617 Tātad ja jums ir skaitļi, par kuriem jūs zināt, ka tie būs lielāki 53 00:02:24,617 --> 00:02:28,095 par 2 miljardiem, bet mazāki par 4 miljardiem, piemēram, tas ir no 2 54 00:02:28,095 --> 00:02:31,572 līdz 32. pakāpei, ja zināt, ka jūsu vērtība nekad nebūs negatīva, 55 00:02:31,572 --> 00:02:35,050 iespējams, vēlēsities izmantot bezzīmes int. . . 56 00:02:35,050 --> 00:02:37,255 Jūs CS50 laiku pa laikam būsiet izmantojis bezzīmes mainīgos , tāpēc 57 00:02:37,255 --> 00:02:39,460 es to pieminu šeit. 58 00:02:39,460 --> 00:02:43,253 Bet atkal, vērtību diapazons, ko varat attēlot ar bezzīmju veselu 59 00:02:43,253 --> 00:02:47,046 skaitli kā t regulāru veselu skaitli, ir no 0 līdz 2 līdz 32. pakāpei 60 00:02:47,046 --> 00:02:50,840 mīnus 1 jeb aptuveni no 0 līdz 4 miljardiem. 61 00:02:50,840 --> 00:02:53,555 Tātad jūs faktiski divkāršojāt pozitīvo diapazonu, ko varat ievietot, 62 00:02:53,555 --> 00:02:56,270 bet esat atteicies no visām negatīvajām vērtībām. 63 00:02:56,270 --> 00:02:59,030 Turklāt bezzīmju nav vienīgais kvalifikators, ko mēs varam redzēt 64 00:02:59,030 --> 00:03:01,790 mainīgajiem datu tipiem. 65 00:03:01,790 --> 00:03:05,779 Ir arī lietas, ko sauc par short un long un const. 66 00:03:05,779 --> 00:03:07,820 Const mēs redzēsim nedaudz vēlāk kursa laikā. 67 00:03:07,820 --> 00:03:10,830 Short un long, mēs, iespējams, neizmantosim. 68 00:03:10,830 --> 00:03:12,830 Bet tikai ziniet, ka ir arī citi kvalifikatori. 69 00:03:12,830 --> 00:03:14,080 Bezzīmess nav vienīgais. 70 00:03:14,080 --> 00:03:16,596 Bet tas ir vienīgais, par kuru mēs šobrīd runāsim. 71 00:03:16,596 --> 00:03:17,310 Tātad viss kārtībā. 72 00:03:17,310 --> 00:03:18,393 Tātad mēs esam aptvēruši veselus skaitļus. 73 00:03:18,393 --> 00:03:19,200 Ko tālāk? 74 00:03:19,200 --> 00:03:20,130 Chars. 75 00:03:20,130 --> 00:03:21,875 Tātad chars tiek izmantoti mainīgajiem lielumiem, kuros tiks glabātas 76 00:03:21,875 --> 00:03:23,620 atsevišķas rakstzīmes. 77 00:03:23,620 --> 00:03:24,850 Char ir saīsinājums vārdam character. 78 00:03:24,850 --> 00:03:27,870 Un dažreiz jūs varat dzirdēt, ka cilvēki to izrunā kā car. 79 00:03:27,870 --> 00:03:29,945 Tātad rakstzīmes vienmēr aizņem vienu baitu atmiņas, kas ir tikai 8 80 00:03:29,945 --> 00:03:32,020 biti. 81 00:03:32,020 --> 00:03:35,490 Tātad tas nozīmē, ka tās var ietilpt tikai vērtību diapazonā no 82 00:03:35,490 --> 00:03:38,960 negatīva 2 līdz septītajai pakāpei vai negatīva 128 līdz 2 līdz 7. 83 00:03:38,960 --> 00:03:42,430 pakāpei mīnus 1, vai 127. 84 00:03:42,430 --> 00:03:45,680 Pateicoties ASCII, jau sen tika izlemts, kā ar dažādām rakstzīmēm, 85 00:03:45,680 --> 00:03:48,931 kuras visas pastāv mūsu tastatūrā, attēlot šos pozitīvos skaitļus no 86 00:03:48,931 --> 00:03:52,182 0 līdz 127 , . 87 00:03:52,182 --> 00:03:55,032 ā mēs redzēsim vēlāk kursa gaitā, un jūs, iespējams, kādā brīdī 88 00:03:55,032 --> 00:03:57,882 iegaumēsit, piemēram, lielo burtu A — rakstzīmju lielo A —, attēlo ar 89 00:03:57,882 --> 00:04:00,732 skaitli 65. 90 00:04:00,732 --> 00:04:03,111 Un iemesls tam ir tāpēc, ka tas ir tas, ko tam ir piešķīris ASCII 91 00:04:03,111 --> 00:04:05,490 standarts. 92 00:04:05,490 --> 00:04:07,850 A mazais burts ir 97. 93 00:04:07,850 --> 00:04:10,691 Rakstzīme 0, kad jūs faktiski ierakstāt rakstzīmi, nevis apzīmējat 94 00:04:10,691 --> 00:04:13,532 skaitli nulle, ir 48. 95 00:04:13,532 --> 00:04:15,240 Laika gaitā Jūs iemācīsities dažus no tiem. 96 00:04:15,240 --> 00:04:17,990 Un CS50 tie noteikti būs nepieciešami nedaudz vēlāk . 97 00:04:20,450 --> 00:04:23,390 Nākamais lielākais datu tips ir peldošā komata skaitļi. 98 00:04:23,390 --> 00:04:26,100 Tātad peldošā komata skaitļus sauc arī par reāliem skaitļiem. 99 00:04:26,100 --> 00:04:28,850 Tie būtībā ir skaitļi, kuros ir komats. 100 00:04:28,850 --> 00:04:32,470 Peldošā komata vērtības, tāpat kā veseli skaitļi, ietver 101 00:04:32,470 --> 00:04:36,090 4 baituatmiņu. 102 00:04:36,090 --> 00:04:37,580 Tagad šeit nav diagrammas. 103 00:04:37,580 --> 00:04:41,065 Nav skaitļu līnijas, jo float vērtību diapazona aprakstīšana nav īsti 104 00:04:41,065 --> 00:04:44,550 skaidra vai intuitīva. 105 00:04:44,550 --> 00:04:47,350 Pietiek teikt, ka jums ir jāstrādā ar 32 bitiem. 106 00:04:47,350 --> 00:04:52,373 Un, ja jums ir skaitlis, piemēram, pi, kuram ir vesela skaitļa daļa 3 107 00:04:52,373 --> 00:04:57,396 un peldošā komata daļa vai decimāldaļa 0,14159 utt., jums ir jāspēj 108 00:04:57,396 --> 00:05:02,420 attēlot to visu — veselo skaitļu daļu un decimāldaļu . 109 00:05:02,420 --> 00:05:04,550 Tātad ko tas, jūsuprāt, varētu nozīmēt? 110 00:05:04,550 --> 00:05:07,396 Viena lieta ir tāda, ka, ja decimāldaļa kļūst arvien garāka, ja man 111 00:05:07,396 --> 00:05:10,243 ir ļoti liela vesela skaitļa daļa, ar decimāldaļu es, iespējams, 112 00:05:10,243 --> 00:05:13,090 nevarēšu būt tik precīzs . 113 00:05:13,090 --> 00:05:15,280 Un tas tiešām ir float ierobežojums. 114 00:05:15,280 --> 00:05:17,229 Float ir precizitātes problēma. 115 00:05:17,229 --> 00:05:19,869 Mums ir tikai 32 biti, ar kuriem strādāt, tāpēc mēs varam būt tik 116 00:05:19,869 --> 00:05:22,510 precīzi ar savu decimāldaļu. 117 00:05:22,510 --> 00:05:26,110 Mēs nevaram noteikti decimāldaļas precizitāti līdz 100 vai 200 118 00:05:26,110 --> 00:05:29,710 cipariem, jo mums ir tikai 32 biti, ar kuriem strādāt. 119 00:05:29,710 --> 00:05:31,590 Tātad tas ir float ierobežojums. 120 00:05:31,590 --> 00:05:34,060 Tagad, par laimi, ir vēl viens datu tips, ko sauc par double, kas 121 00:05:34,060 --> 00:05:36,530 nedaudz risina šo problēmu. 122 00:05:36,530 --> 00:05:38,685 Doubles, tāpat kā floats, tiek izmantoti arī reālu skaitļu vai 123 00:05:38,685 --> 00:05:40,840 peldošā komata vērtību glabāšanai. 124 00:05:40,840 --> 00:05:44,340 Atšķirība ir tāda, ka doubles ir dubultā precizitāte. 125 00:05:44,340 --> 00:05:48,177 Tajos var ietilpt 64 biti datu jeb astoņi baiti. 126 00:05:48,177 --> 00:05:49,010 Ko tas nozīmē? 127 00:05:49,010 --> 00:05:51,801 Tas nozīmē, ka mēs varam būt daudz precīzāki ar decimālpunktu. 128 00:05:51,801 --> 00:05:54,255 Tā vietā, lai pi būtu līdz septiņām vietām, iespējams, ar float, mēs 129 00:05:54,255 --> 00:05:56,710 varētu palielināt līdz 30 vietām. 130 00:05:56,710 --> 00:05:59,824 Ja tas ir svarīgi, float vietā, iespējams, vēlēsities izmantot double. 131 00:05:59,824 --> 00:06:02,759 Būtībā, ja strādājat ar kaut ko , kur ir svarīgi izmantot ļoti garu 132 00:06:02,759 --> 00:06:05,694 ciparu aiz komata un lielu precizitāti, iespējams, labāk izmantot 133 00:06:05,694 --> 00:06:08,630 double overfloat. 134 00:06:08,630 --> 00:06:11,250 Tagad lielākajai daļai jūsu darba CS50 ar float vajadzētu pietikt. 135 00:06:11,250 --> 00:06:14,493 Taču ziniet, ka doubles pastāv kā veids, kā zināmā mērā tikt galā ar 136 00:06:14,493 --> 00:06:17,736 precizitātes problēmu, piešķirot jums papildu 32 bitus, kuros strādāt 137 00:06:17,736 --> 00:06:20,980 ar saviem skaitļiem. 138 00:06:20,980 --> 00:06:23,650 Šis nav datu tips. 139 00:06:23,650 --> 00:06:24,390 Šis ir tips. 140 00:06:24,390 --> 00:06:25,340 Un to sauc par void. 141 00:06:25,340 --> 00:06:27,430 Un es par to runāju šeit, jo mēs, iespējams, to CS50 esam jau 142 00:06:27,430 --> 00:06:29,520 redzējuši dažas reizes . 143 00:06:29,520 --> 00:06:32,020 Un jūs varētu domāt, par ko tas viss ir. 144 00:06:32,020 --> 00:06:33,390 Tātad void ir tips. 145 00:06:33,390 --> 00:06:34,097 Tas pastāv. 146 00:06:34,097 --> 00:06:35,180 Bet tas nav datu tips. 147 00:06:35,180 --> 00:06:39,350 Mēs nevaram izveidot tipa mainīgo void un piešķirt tam vērtību. 148 00:06:39,350 --> 00:06:42,519 Bet, piemēram, funkcijām var būt nederīgs void atgriešanas tips. 149 00:06:42,519 --> 00:06:44,744 Būtībā, ja redzat funkciju, kurai ir void atgriešanas tips, tas 150 00:06:44,744 --> 00:06:46,970 nozīmē, ka tā neatgriež vērtību. 151 00:06:46,970 --> 00:06:49,875 Vai varat iedomāties kādu līdzīgu funkciju, ko līdz šim esam 152 00:06:49,875 --> 00:06:52,780 izmantojuši CS50 un kas neatgriež vērtību? 153 00:06:52,780 --> 00:06:54,700 Printf ir viena. 154 00:06:54,700 --> 00:06:56,820 Printf jums faktiski neatgriež neko. 155 00:06:56,820 --> 00:06:59,235 Tas kaut ko ievada ekrānā, un būtībā tas ir blakusefekts tam, ko dara 156 00:06:59,235 --> 00:07:01,650 printf. 157 00:07:01,650 --> 00:07:03,620 Bet tas nedod jums atpakaļ vērtību . 158 00:07:03,620 --> 00:07:06,019 Jūs neuztverat rezultātu un saglabājat to kādā mainīgajā, lai to 159 00:07:06,019 --> 00:07:08,419 izmantotu vēlāk. 160 00:07:08,419 --> 00:07:10,710 Tas vienkārši ievada kaut ko uz ekrāna, un jūs esat pabeidzis. 161 00:07:10,710 --> 00:07:14,360 Tātad mēs sakām, ka printf ir void funkcija. 162 00:07:14,360 --> 00:07:16,450 Tā neko neatdod. 163 00:07:16,450 --> 00:07:18,580 Funkcijas perimetru saraksts var būt arī void. 164 00:07:18,580 --> 00:07:21,410 Un arī jūs to diezgan daudz esat redzējuši CS50. 165 00:07:21,410 --> 00:07:22,300 Int main void. 166 00:07:22,300 --> 00:07:23,260 Vai tas kaut ko atgādina? 167 00:07:24,080 --> 00:07:27,220 Būtībā tas nozīmē, ka main neņem nekādus parametrus. 168 00:07:27,220 --> 00:07:29,520 Nav neviena argumenta, kas tiktu nodots main. 169 00:07:29,520 --> 00:07:32,854 Tagad vēlāk mēs redzēsim, ka ir veids, kā argumentus nodot main, bet 170 00:07:32,854 --> 00:07:36,189 līdz šim tas, ko mēs esam redzējuši, ir main void. 171 00:07:36,189 --> 00:07:37,730 Main vienkārši nepieņem nekādus argumentus. 172 00:07:37,730 --> 00:07:40,236 Un tāpēc mēs to precizējam, sakot voidu. 173 00:07:40,236 --> 00:07:42,333 Mēs tikai ļoti skaidri runājam par to, ka tam nav nepieciešami nekādi 174 00:07:42,333 --> 00:07:44,430 argumenti. 175 00:07:44,430 --> 00:07:47,609 Tāpēc pagaidām pietiek pateikt, ka void būtībā vajadzētu būt tikai 176 00:07:47,609 --> 00:07:50,789 vietturim, lai jūs varētu domāt par neko. 177 00:07:50,789 --> 00:07:52,080 Tas īsti neko nedara. 178 00:07:52,080 --> 00:07:53,550 Šeit nav atgriešanās vērtības. 179 00:07:53,550 --> 00:07:54,770 Šeit nav parametru. 180 00:07:54,770 --> 00:07:55,709 Tas ir void. 181 00:07:55,709 --> 00:07:57,250 Tas ir nedaudz sarežģītāk. 182 00:07:57,250 --> 00:08:00,640 Bet ar to vajadzētu pietikt lielākaji kursa daļai. 183 00:08:00,640 --> 00:08:02,825 Un, cerams, tagad jums ir mazliet vairāk priekšstata par to, kas ir 184 00:08:02,825 --> 00:08:05,010 void. 185 00:08:05,010 --> 00:08:06,735 Tātad šie ir pieci tipi, ar kuriem jūs saskarsities un kas ir 186 00:08:06,735 --> 00:08:08,460 iebūvēti C. 187 00:08:08,460 --> 00:08:10,670 Bet CS50 mums ir arī bibliotēka. 188 00:08:10,670 --> 00:08:13,550 CS50.h, ko varat iekļaut. 189 00:08:13,550 --> 00:08:17,380 Un kas nodrošinās jums divus papildu tipus, kurus, iespējams, varēsit 190 00:08:17,380 --> 00:08:21,210 izmantot savos uzdevumos vai vienkārši strādājot ar programmēšanu. 191 00:08:21,210 --> 00:08:23,030 Pirmais no tiem ir bool. 192 00:08:23,030 --> 00:08:25,572 Būla datu tips, bool, tiek izmantots mainīgajiem, kas glabā Būla 193 00:08:25,572 --> 00:08:28,114 vērtību. 194 00:08:28,114 --> 00:08:31,277 Ja kādreiz esat dzirdējis šo terminu, iespējams, zināt, ka Būla 195 00:08:31,277 --> 00:08:34,440 vērtība var saturēt tikai divas dažādas atšķirīgas vērtības. 196 00:08:34,440 --> 00:08:35,872 Patiess un nepatiess. 197 00:08:35,872 --> 00:08:37,580 Tagad tas šķiet diezgan būtiski, vai ne? 198 00:08:37,580 --> 00:08:39,038 Tas ir sava veida pārsteigums, ka tas nepastāv C versijā, jo tas ir 199 00:08:39,038 --> 00:08:40,496 iebūvēts. 200 00:08:40,496 --> 00:08:42,943 Un daudzās mūsdienu valodās, protams, Būla ir standarta noklusējuma 201 00:08:42,943 --> 00:08:45,390 datu tips. 202 00:08:45,390 --> 00:08:47,192 Bet C valodā tie patiesībā nav. 203 00:08:47,192 --> 00:08:48,400 Bet mēs to esam izveidojuši jums. 204 00:08:48,400 --> 00:08:51,533 Tātad ja jums kādreiz ir jāizveido mainīgais, kura tips ir bool, 205 00:08:51,533 --> 00:08:54,666 programmas sākumā noteikti pieslēdziet #include CS50.h, un jūs 206 00:08:54,666 --> 00:08:57,800 varēsiet izveidot bool tipa mainīgos. 207 00:08:57,800 --> 00:09:01,385 Ja aizmirstat pieslēgt #include CS50.h un sākat lietot Būla tipa 208 00:09:01,385 --> 00:09:04,970 mainīgos, programmas kompilēšanas laikā var rasties dažas problēmas. 209 00:09:04,970 --> 00:09:06,490 Tāpēc vienkārši uzmanieties. 210 00:09:06,490 --> 00:09:11,180 Un varbūt jūs varat vienkārši novērst problēmas, iekļaujot CS50.h. 211 00:09:11,180 --> 00:09:13,425 Otrs galvenais datu tips, ko mēs jums nodrošinām CS50 bibliotēkā, ir 212 00:09:13,425 --> 00:09:15,670 virkne. 213 00:09:15,670 --> 00:09:17,130 Tātad kas ir virkne? 214 00:09:17,130 --> 00:09:18,520 Virknes patiesībā ir tikai vārdi. 215 00:09:18,520 --> 00:09:20,000 Tās ir rakstzīmju kolekcijas. 216 00:09:20,000 --> 00:09:20,640 Tie ir vārdi. 217 00:09:20,640 --> 00:09:21,390 Tie ir teikumi. 218 00:09:21,390 --> 00:09:22,480 Tās ir rindkopas. 219 00:09:22,480 --> 00:09:25,850 Var būt pat veselas grāmatas. 220 00:09:25,850 --> 00:09:29,690 Ļoti īsas līdz ļoti garas rakstzīmju sērijas. 221 00:09:29,690 --> 00:09:34,295 Ja jums ir jāizmanto virknes, piemēram, lai glabātu vārdu, programmas 222 00:09:34,295 --> 00:09:38,900 sākumā noteikti iekļaujiet CS50.h, lai varētu izmantot virknes tipu. 223 00:09:38,900 --> 00:09:43,910 Un tad jūs varat izveidot mainīgos, kuru datu tips ir virkne. 224 00:09:43,910 --> 00:09:47,752 Vēlāk kursā mēs redzēsim, ka arī tas nav viss stāsts. 225 00:09:47,752 --> 00:09:51,000 Mēs saskarsimies ar lietām, ko sauc par struktūrām, kas vienā vienībā 226 00:09:51,000 --> 00:09:54,249 ļauj grupēt to, kas var būt vesels skaitlis un virkne. 227 00:09:54,249 --> 00:09:55,999 Un mēs to varam izmantot kādam nolūkam, kas varētu noderēt vēlāk 228 00:09:55,999 --> 00:09:57,750 kursa laikā. 229 00:09:57,750 --> 00:09:59,735 Mēs arī uzzināsim par definētajiem tipiem, kas ļauj jums izveidot 230 00:09:59,735 --> 00:10:01,720 savus datu tipus. 231 00:10:01,720 --> 00:10:03,060 Mums par to pagaidām nav jāuztraucas. 232 00:10:03,060 --> 00:10:05,596 Bet tikai ziniet, ka tas ir kaut kas pie apvāršņa, ka visā šajā tipu 233 00:10:05,596 --> 00:10:08,133 lietā ir daudz vairāk, nekā es jums tagad stāstu. 234 00:10:08,133 --> 00:10:11,598 Tagad, kad esam mazliet uzzinājuši par pamata datu tipiem un CS50 235 00:10:11,598 --> 00:10:15,064 datu tipiem, parunāsim par to, kā strādāt ar mainīgajiem un izveidot 236 00:10:15,064 --> 00:10:18,530 tos, izmantojot šos datu tipus mūsu programmās. 237 00:10:18,530 --> 00:10:22,670 Ja vēlaties izveidot mainīgo, viss, kas jums jādara, ir divas lietas. 238 00:10:22,670 --> 00:10:24,147 Pirmkārt, jums ir jāpiešķir tam tips. 239 00:10:24,147 --> 00:10:26,230 Otra lieta, kas jums jādara, ir jādot tai nosaukumu. 240 00:10:26,230 --> 00:10:28,030 Kad esat to izdarījis un ievadījis semikolu šīs rindas beigās, esat 241 00:10:28,030 --> 00:10:29,830 izveidojis mainīgo. 242 00:10:29,830 --> 00:10:32,370 Tātad šeit ir divi piemēri. 243 00:10:32,370 --> 00:10:35,744 Int numurs; char burts;. 244 00:10:35,744 --> 00:10:36,660 Ko es te esmu izdarījis? 245 00:10:36,660 --> 00:10:38,110 Esmu izveidojis divus mainīgos. 246 00:10:38,110 --> 00:10:40,190 Pirmkārt, mainīgā nosaukums ir skaitlis. 247 00:10:40,190 --> 00:10:42,510 Un skaitlis spēj saturēt veselu skaitļu tipa vērtības, jo tā tips ir 248 00:10:42,510 --> 00:10:44,830 int. 249 00:10:44,830 --> 00:10:47,535 Burts ir vēl viens mainīgais, kurš var saturēt rakstzīmes, jo tā datu 250 00:10:47,535 --> 00:10:50,240 tips ir char. 251 00:10:50,240 --> 00:10:51,772 Diezgan vienkārši, vai ne? 252 00:10:51,772 --> 00:10:55,256 Ja atrodaties situācijā, kad jāizveido vairāki viena veida mainīgie, 253 00:10:55,256 --> 00:10:58,740 tipa nosaukums jānorāda tikai vienreiz. 254 00:10:58,740 --> 00:11:00,170 Pēc tam vienkārši uzskaitiet tik daudz šāda tipa mainīgo, cik 255 00:11:00,170 --> 00:11:01,600 nepieciešams. 256 00:11:01,600 --> 00:11:04,510 Tāpēc es varētu, piemēram, šajā trešajā koda rindā teikt int height;, 257 00:11:04,510 --> 00:11:07,420 new line. 258 00:11:07,420 --> 00:11:08,291 Int width;. 259 00:11:08,291 --> 00:11:09,290 Un tas arī derētu. 260 00:11:09,290 --> 00:11:11,010 Es joprojām iegūtu divus mainīgos lielumus, ko sauc par height un 261 00:11:11,010 --> 00:11:12,730 width, no kuriem katrs ir vesels skaitlis. 262 00:11:12,730 --> 00:11:16,970 Bet man ir atļauts, lietas C sintaksi, konsolidēt to vienā rindā. 263 00:11:16,970 --> 00:11:20,230 Int height, width; Tas ir viens un tas pats. 264 00:11:20,230 --> 00:11:23,480 Esmu izveidojis divus mainīgos, vienu sauc par height, otru sauc par 265 00:11:23,480 --> 00:11:26,730 width, un abi spēj saturēt vesela skaitļa tipa vērtības. 266 00:11:26,730 --> 00:11:30,920 Līdzīgi šeit es varu izveidot trīs peldošā komata vērtības vienlaikus. 267 00:11:30,920 --> 00:11:33,687 Es varbūt varu izveidot mainīgo, ko sauc par kvadrātsakni no 2 — kas, 268 00:11:33,687 --> 00:11:36,454 iespējams, galu galā saglabās peldošo komatu — šo kvadrātsakne no 2 269 00:11:36,454 --> 00:11:39,222 attēlojumu — kvadrātsakni no 3 un pi. 270 00:11:39,222 --> 00:11:41,180 Es būtu varējis to izdarīt trīs atsevišķās rindās. 271 00:11:41,180 --> 00:11:44,435 Float, kvadrātsakne no 2; Float kvadrātsakne no 3; Float pi; un tas 272 00:11:44,435 --> 00:11:47,690 arī derētu. 273 00:11:47,690 --> 00:11:50,590 Bet atkal es varu to vienkārši apvienot vienā koda rindā. 274 00:11:50,590 --> 00:11:54,050 Padara lietas mazliet īsākas, ne tik neveiklas. 275 00:11:54,050 --> 00:11:55,654 Tagad kopumā ir labs dizains deklarēt mainīgo tikai tad, kad tas ir 276 00:11:55,654 --> 00:11:57,259 nepieciešams. 277 00:11:57,259 --> 00:11:59,102 Un mēs par to nedaudz vairāk runāsim vēlāk kursa laikā, kad 278 00:11:59,102 --> 00:12:00,945 apspriedīsim darbības redzamības apgabalu. 279 00:12:00,945 --> 00:12:04,530 Tāpēc nav obligāti jāizveido visi mainīgie programmas sākumā, ko daži 280 00:12:04,530 --> 00:12:08,115 cilvēki varētu būt darījuši pagātnē, un kas noteikti bija ļoti 281 00:12:08,115 --> 00:12:11,700 izplatīta kodēšanas prakse pirms daudziem gadiem, strādājot ar C. 282 00:12:08,700 --> 00:12:10,920 Iespējams, vēlēsities izveidot mainīgo tieši tad, kad tas ir 283 00:12:10,920 --> 00:12:13,140 nepieciešams. 284 00:12:13,140 --> 00:12:13,640 Viss kārtībā. 285 00:12:13,640 --> 00:12:15,150 Tāpēc mēs esam izveidojuši mainīgos. 286 00:12:15,150 --> 00:12:16,790 Kā mēs tos izmantojam? 287 00:12:16,790 --> 00:12:21,237 Pēc mainīgā deklarēšanas mums vairs nav jānorāda šī mainīgā datu tips. 288 00:12:21,237 --> 00:12:23,363 Faktiski, ja jūs to darīsit, viss varētu beigties ar dīvainām sekām, 289 00:12:23,363 --> 00:12:25,490 kuras mēs pagaidām noklusēsim. 290 00:12:25,490 --> 00:12:28,850 Bet pietiks ar to, ka sāks notikt dīvainas lietas, ja netīšām 291 00:12:28,850 --> 00:12:32,210 atkārtoti deklarēsit mainīgos ar tādu pašu nosaukumu. 292 00:12:32,210 --> 00:12:33,882 Tātad šeit man ir četras koda rindiņas. 293 00:12:33,882 --> 00:12:37,201 Un man ir daži komentāri, kas tikai norāda, kas notiek katrā rindā, 294 00:12:37,201 --> 00:12:40,520 lai palīdzētu jums orientēties notiekošajā. 295 00:12:40,520 --> 00:12:41,520 Tātad int number;. 296 00:12:41,520 --> 00:12:42,520 Jūs to redzējāt iepriekš. 297 00:12:42,520 --> 00:12:44,000 Tā ir mainīga deklarācija. 298 00:12:44,000 --> 00:12:46,485 Tagad esmu izveidojis mainīgo, ko sauc par numuru, kas spēj saturēt 299 00:12:46,485 --> 00:12:48,970 vesela skaitļa vērtības. 300 00:12:48,970 --> 00:12:50,210 Esmu to deklarējis. 301 00:12:50,210 --> 00:12:53,770 Nākamajā rindā es piešķiru skaitlim vērtību. 302 00:12:53,770 --> 00:12:54,992 Number equals 17. 303 00:12:54,992 --> 00:12:55,950 Kas tur notiek? 304 00:12:55,950 --> 00:12:58,880 Es ievietoju skaitli 17 šī mainīgā iekšpusē. 305 00:12:58,880 --> 00:13:01,455 Tātad ja es vēlāk ievadīšu numura saturu, viņi man pateiks, ka tas ir 306 00:13:01,455 --> 00:13:04,030 17. 307 00:13:04,030 --> 00:13:07,030 Tāpēc esmu deklarējis mainīgo un pēc tam to piešķīris. 308 00:13:07,030 --> 00:13:10,570 Mēs varam atkārtot procesu vēlreiz ar char letter;. 309 00:13:10,570 --> 00:13:11,640 Tā ir deklarācija. 310 00:13:11,640 --> 00:13:14,010 Letter vienāds ar lielo H. 311 00:13:11,640 --> 00:13:16,030 Tas ir arī diezgan vienkāršs uzdevums. 312 00:13:16,030 --> 00:13:18,319 Tagad šis process varētu šķist muļķīgs. 313 00:13:18,319 --> 00:13:20,110 Kāpēc mēs to darām divās koda rindās? 314 00:13:20,110 --> 00:13:21,401 Vai ir kāds labāks veids, kā to izdarīt? 315 00:13:21,401 --> 00:13:22,250 Patiesībā ir. 316 00:13:22,250 --> 00:13:24,375 Dažreiz jūs varat redzēt to, ko sauc par inicializāciju. 317 00:13:24,375 --> 00:13:28,446 Tas notiek, kad deklarējat mainīgo un vienlaikus piešķirat vērtību. 318 00:13:28,446 --> 00:13:30,320 Tā patiesībā ir diezgan izplatīta darbība. 319 00:13:30,320 --> 00:13:31,595 Kad veidojat mainīgo, parasti vēlaties, lai tam būtu kāda 320 00:13:31,595 --> 00:13:32,870 pamatvērtība. 321 00:13:32,870 --> 00:13:34,330 Pat ja tā ir 0 vai kaut kas cits. 322 00:13:34,330 --> 00:13:36,180 Jūs vienkārši piešķirat tam vērtību. 323 00:13:36,180 --> 00:13:38,360 Varat inicializēt mainīgo. 324 00:13:38,360 --> 00:13:40,340 Int number ir vienāds ar 17 ir tāds pats kā pirmajās divās koda 325 00:13:40,340 --> 00:13:42,320 rindiņās augstāk. 326 00:13:42,320 --> 00:13:44,574 Char letter ir vienāds ar h ir tāds pats kā trešā un ceturtā koda 327 00:13:44,574 --> 00:13:46,829 rindiņa iepriekš. 328 00:13:46,829 --> 00:13:49,119 Vissvarīgākais šeit, kad mēs deklarējam un piešķiram mainīgos, ir pēc 329 00:13:49,119 --> 00:13:51,409 tam, kad esam to deklarējuši. Ievērojiet, ka es vairs neizmantoju 330 00:13:51,409 --> 00:13:53,700 datu tipu. 331 00:13:53,700 --> 00:13:57,916 Es nesaku, piemēram, int number ir vienāds ar 17 otrajā koda rindā. 332 00:13:57,916 --> 00:13:59,290 Es tikai saku, ka number ir vienāds ar 17. 333 00:13:59,290 --> 00:14:01,455 Atkal , atkārtota mainīgā deklarēšana pēc tam, kad tas jau ir 334 00:14:01,455 --> 00:14:03,620 deklarēts, var radīt dīvainas sekas. 335 00:14:03,620 --> 00:14:05,950 Tāpēc esietuzmanīgi. 336 00:14:05,950 --> 00:14:06,660 Es esmu Dags Loids. 337 00:14:06,660 --> 00:14:08,870 Un šis ir CS50.