1 00:00:00,000 --> 00:00:02,420 >> [Speel van musiek] 2 00:00:02,420 --> 00:00:05,189 3 00:00:05,189 --> 00:00:05,980 Spreker: Alle reg. 4 00:00:05,980 --> 00:00:08,540 So laat ons praat oor 'n ander ding wat soort van uniek aan C, 5 00:00:08,540 --> 00:00:10,010 wat is datatipes en veranderlikes. 6 00:00:10,010 --> 00:00:12,340 Wanneer ek sê uniek aan C, Ek het regtig net beteken in die konteks van, 7 00:00:12,340 --> 00:00:14,470 as jy 'n programmeerder gewees het vir 'n baie lang tyd, 8 00:00:14,470 --> 00:00:16,270 Jy het waarskynlik nie saam met datatipes 9 00:00:16,270 --> 00:00:18,470 as jy die moderne gebruik het programmeertale. 10 00:00:18,470 --> 00:00:20,432 Moderne tale soos PHP en JavaScript, 11 00:00:20,432 --> 00:00:22,640 wat ons ook sal sien 'n bietjie later in die kursus, 12 00:00:22,640 --> 00:00:25,550 jy nie eintlik om te spesifiseer die data tipe van 'n veranderlike 13 00:00:25,550 --> 00:00:26,270 wanneer jy dit gebruik. 14 00:00:26,270 --> 00:00:28,067 >> Jy verklaar dat dit net en begin om dit te gebruik. 15 00:00:28,067 --> 00:00:29,900 As dit is 'n heelgetal is, is dit weet dit is 'n heelgetal. 16 00:00:29,900 --> 00:00:31,960 As dit is 'n karakter, dit is weet dit is 'n karakter. 17 00:00:31,960 --> 00:00:35,320 As dit is 'n woord nie, weet dit is 'n string, die sogenaamde. 18 00:00:35,320 --> 00:00:37,300 >> Maar in C, wat 'n ouer taal, moet ons 19 00:00:37,300 --> 00:00:39,420 om die data spesifiseer tipe elke veranderlike 20 00:00:39,420 --> 00:00:42,990 dat ons die skep van die eerste keer wat ons gebruik wat veranderlike. 21 00:00:42,990 --> 00:00:45,030 So C kom met 'n paar ingeboude data tipes. 22 00:00:45,030 --> 00:00:46,972 En laat ons kry vertroud met 'n paar van daardie. 23 00:00:46,972 --> 00:00:50,180 En dan daarna sal ons ook praat bietjie oor 'n paar van die data tipes 24 00:00:50,180 --> 00:00:54,450 wat ons het vir jou geskryf, sodat jy kan dit gebruik in CS50. 25 00:00:54,450 --> 00:00:56,130 >> Die eerste is int. 26 00:00:56,130 --> 00:00:59,110 Die tipe int data word gebruik vir veranderlikes wat sal heelgetalwaardes te stoor. 27 00:00:59,110 --> 00:01:03,210 So 1, 2, 3, negatiewe 1, 2, 3, en so aan. 28 00:01:03,210 --> 00:01:05,960 Heelgetalle, wat is iets wat jy moet in gedagte hou vir die quiz, 29 00:01:05,960 --> 00:01:09,590 neem altyd vier grepe geheue, wat is 32 stukkies. 30 00:01:09,590 --> 00:01:11,620 Daar is agt stukkies in 'n greep. 31 00:01:11,620 --> 00:01:14,470 >> So dit beteken dat die omvang van die waardes wat 'n heelgetal kan stoor 32 00:01:14,470 --> 00:01:19,130 is beperk deur wat binne kan inpas 32 stukkies werd van inligting. 33 00:01:19,130 --> 00:01:21,850 Nou as dit blyk, dit is lank gelede besluit 34 00:01:21,850 --> 00:01:24,310 dat ons sou verdeel daardie reeks van 32 stukkies 35 00:01:24,310 --> 00:01:26,650 in negatiewe heelgetalle en positiewe heelgetalle, 36 00:01:26,650 --> 00:01:28,390 elke kry die helfte van die reeks. 37 00:01:28,390 --> 00:01:32,230 So het die omvang van die waardes wat ons verteenwoordig met 'n heeltallige wissel van negatiewe 2 38 00:01:32,230 --> 00:01:36,520 die 31 mag om 2 tot die 31 mag minus 1, 39 00:01:36,520 --> 00:01:38,190 veroorsaak dat jy ook 'n plek vir 0. 40 00:01:38,190 --> 00:01:41,650 >> So basies die helfte van die moontlike waardes jy kan inpas in 'n int negatief is, 41 00:01:41,650 --> 00:01:42,610 en die helfte is positief. 42 00:01:42,610 --> 00:01:47,270 En rofweg hier, dit is oor die negatiewe 2000000000 om positiewe 2000000000. 43 00:01:47,270 --> 00:01:50,207 Gee of neem 'n paar honderd miljoen. 44 00:01:50,207 --> 00:01:52,290 So dit is wat jy kan inpas in 'n heelgetal veranderlike. 45 00:01:52,290 --> 00:01:55,490 Nou het ons ook iets genoem 'n ongetekende heelgetal. 46 00:01:55,490 --> 00:01:59,220 Nou unsigned SY is nie 'n aparte tipe veranderlike. 47 00:01:59,220 --> 00:02:01,590 Inteendeel, unsigned is wat genoem word 'n kwalifiseerder. 48 00:02:01,590 --> 00:02:04,990 Dit verander die data tipe integer effens. 49 00:02:04,990 --> 00:02:07,850 >> En in hierdie geval, wat unsigned means-- en jy kan ook 50 00:02:07,850 --> 00:02:11,530 gebruik unsigned ander tipes data, heelgetal is nie die enigste een nie. 51 00:02:11,530 --> 00:02:15,310 Wat dit doen, is effektief dubbelspel die positiewe reeks waardes 52 00:02:15,310 --> 00:02:19,350 dat 'n heelgetal op kan neem by die koste van nie meer toelaat 53 00:02:19,350 --> 00:02:21,140 jy op negatiewe waardes aan te neem. 54 00:02:21,140 --> 00:02:25,400 So as jy die getalle wat jy weet sal hoër as 2 biljoen maar minder kry 55 00:02:25,400 --> 00:02:31,280 as 4 miljard vir example-- wat is 2 tot die 32 power-- 56 00:02:31,280 --> 00:02:33,330 jy dalk wil om te gebruik 'n ongetekende int as jy 57 00:02:33,330 --> 00:02:35,050 weet wat jou waarde sal nooit negatief wees. 58 00:02:35,050 --> 00:02:37,216 >> Jy sal soms het gebruik word vir ongetekende veranderlikes 59 00:02:37,216 --> 00:02:39,460 in CS50, wat is die rede waarom ek noem dit hier. 60 00:02:39,460 --> 00:02:43,830 Maar weereens, die omvang van die waardes wat jy kan verteenwoordig met 'n ongetekende heelgetal 61 00:02:43,830 --> 00:02:48,240 as om gereelde heelgetal T, is 0 2 tot die mag 32 minus 1, 62 00:02:48,240 --> 00:02:50,840 of ongeveer 0-4000000000. 63 00:02:50,840 --> 00:02:53,730 So jy het effektief verdubbel die positiewe reeks wat jy kan inpas, 64 00:02:53,730 --> 00:02:56,270 maar jy het al opgegee die negatiewe waardes. 65 00:02:56,270 --> 00:03:00,040 >> Nou as 'n eenkant, unsigned is nie die enigste kwalifiseerder 66 00:03:00,040 --> 00:03:01,790 dat ons kan sien veranderlike tipes data. 67 00:03:01,790 --> 00:03:05,779 Daar is ook dinge genoem kort en lang en konst. 68 00:03:05,779 --> 00:03:07,820 Konst ons sal sien 'n bietjie bietjie later in die kursus. 69 00:03:07,820 --> 00:03:10,830 Kort en lang, sal ons waarskynlik nie. 70 00:03:10,830 --> 00:03:12,830 >> Maar net weet dat daar is ander kwalifiseerders. 71 00:03:12,830 --> 00:03:14,080 Unsigned is nie die enigste een nie. 72 00:03:14,080 --> 00:03:16,596 Maar dit is die enigste een wat ons is gaan om te praat oor nou. 73 00:03:16,596 --> 00:03:17,310 So alles reg. 74 00:03:17,310 --> 00:03:18,393 Dus het ons gedek heelgetalle. 75 00:03:18,393 --> 00:03:19,200 Wat is volgende? 76 00:03:19,200 --> 00:03:20,130 >> Karakters. 77 00:03:20,130 --> 00:03:23,620 So karakters word gebruik vir veranderlikes wat sal enkele karakters te stoor. 78 00:03:23,620 --> 00:03:24,850 Char is kort vir karakter. 79 00:03:24,850 --> 00:03:27,870 En soms kan jy hoor mense spreek dit as motor. 80 00:03:27,870 --> 00:03:32,020 >> So karakters neem mens altyd byte van die geheue, wat net 8 stukkies. 81 00:03:32,020 --> 00:03:35,700 So dit beteken dat hulle net kan inpas waardes in die reeks van negatiewe 2 82 00:03:35,700 --> 00:03:42,430 om die sewende krag, of negatief 128, 2 tot die mag 7 minus 1, of 127. 83 00:03:42,430 --> 00:03:45,710 >> Danksy ASCII, dit was lank gelede besluit 'n manier 84 00:03:45,710 --> 00:03:50,805 aan diegene positiewe nommers kaart by 0-127 verskeie karakters 85 00:03:50,805 --> 00:03:52,182 dat alle bestaan ​​op ons sleutelbord. 86 00:03:52,182 --> 00:03:54,640 So as ons sal later in te sien die kursus, en jy sal waarskynlik 87 00:03:54,640 --> 00:03:57,700 kom om te onthou op 'n sekere punt, kapitaal A, vir example-- 88 00:03:57,700 --> 00:04:00,732 die karakter kapitaal A-- kaarte om die nommer 65. 89 00:04:00,732 --> 00:04:02,940 En die rede daarvoor is want dit is wat is dit 90 00:04:02,940 --> 00:04:05,490 toegeken deur die ASCII standaard. 91 00:04:05,490 --> 00:04:07,850 >> Kleinletters A is 97. 92 00:04:07,850 --> 00:04:11,900 Die karakter 0 vir wanneer jy eintlik tik die karakter, nie 93 00:04:11,900 --> 00:04:13,532 verteenwoordig die aantal nul, is 48. 94 00:04:13,532 --> 00:04:15,240 Jy sal 'n paar leer van hierdie as jy gaan. 95 00:04:15,240 --> 00:04:17,990 En jy sal beslis kom nodig hulle 'n bietjie later in CS50. 96 00:04:17,990 --> 00:04:20,450 97 00:04:20,450 --> 00:04:23,390 >> Die volgende groot tipe data dryf punt getalle. 98 00:04:23,390 --> 00:04:26,100 So swaai punt nommers is ook bekend as die reële getalle. 99 00:04:26,100 --> 00:04:28,850 Hulle is basies getalle wat 'n desimale punt in hulle nie. 100 00:04:28,850 --> 00:04:33,360 Drywende punt waardes soos heelgetalle is ook 101 00:04:33,360 --> 00:04:36,090 vervat in 4 grepe van die geheue. 102 00:04:36,090 --> 00:04:37,580 Nou is daar geen grafiek hier. 103 00:04:37,580 --> 00:04:40,890 Daar is geen getallelyn, want die beskrywing van die omvang van 'n float 104 00:04:40,890 --> 00:04:44,550 is nie presies duidelik of intuïtief. 105 00:04:44,550 --> 00:04:47,350 >> Dit is voldoende om te sê jy het 32 ​​stukkies om te werk met. 106 00:04:47,350 --> 00:04:49,730 En as jy het 'n aantal soos pi, wat het 107 00:04:49,730 --> 00:04:55,510 'n heeltallige deel 3, en 'n drywende punt gedeelte of desimale deel 0,14159, 108 00:04:55,510 --> 00:04:58,735 en so aan, moet jy wees in staat wees om al it-- verteenwoordig 109 00:04:58,735 --> 00:05:02,420 die heeltallige deel en die desimale deel. 110 00:05:02,420 --> 00:05:04,550 >> So, wat dink jy dat kan beteken? 111 00:05:04,550 --> 00:05:08,180 Een ding is dat indien die desimale deel kry langer, 112 00:05:08,180 --> 00:05:10,660 as ek 'n baie groot heeltallige deel, kan ek nie 113 00:05:10,660 --> 00:05:13,090 in staat wees om presies te wees as met die desimale deel. 114 00:05:13,090 --> 00:05:15,280 En dit is werklik die beperking van 'n float. 115 00:05:15,280 --> 00:05:17,229 >> Dryf 'n presisie probleem. 116 00:05:17,229 --> 00:05:19,270 Ons het net 32 ​​stukkies werk, sodat ons kan net 117 00:05:19,270 --> 00:05:22,510 wees so akkuraat met ons desimale deel. 118 00:05:22,510 --> 00:05:27,300 Ons kan nie noodwendig 'n desimale deel presiese 100 of 200 syfers, 119 00:05:27,300 --> 00:05:29,710 want ons het net 32 stukkies om te werk met. 120 00:05:29,710 --> 00:05:31,590 So dit is 'n beperking van 'n float. 121 00:05:31,590 --> 00:05:33,590 >> Nou gelukkig is daar 'n ander tipe data genoem 122 00:05:33,590 --> 00:05:36,530 dubbel, wat ietwat handel met hierdie probleem. 123 00:05:36,530 --> 00:05:39,980 Dubbelspel, soos dryf, word ook gebruik om stoor reële getalle, of swaai punt 124 00:05:39,980 --> 00:05:40,840 waardes. 125 00:05:40,840 --> 00:05:44,340 Die verskil is dat dubbelspel is dubbel presisie. 126 00:05:44,340 --> 00:05:48,177 Hulle kan inpas 64 stukkies data, of agt grepe. 127 00:05:48,177 --> 00:05:49,010 Wat beteken dit? 128 00:05:49,010 --> 00:05:51,801 Wel, dit beteken dat ons 'n baie meer presiese met die desimale punt. 129 00:05:51,801 --> 00:05:54,830 In plaas van om pi tot sewe plekke dalk met 'n float, 130 00:05:54,830 --> 00:05:56,710 ons kan dit dalk moet 30 plekke. 131 00:05:56,710 --> 00:05:59,824 As dit is belangrik, wil jy dalk om 'n dubbele gebruik in plaas van 'n float. 132 00:05:59,824 --> 00:06:01,740 Basies, as jy werk op enigiets waar 133 00:06:01,740 --> 00:06:06,540 'n baie lang desimale plek en 'n baie van presisie is belangrik, 134 00:06:06,540 --> 00:06:08,630 jy waarskynlik wil gebruik 'n dubbele overfloat. 135 00:06:08,630 --> 00:06:11,250 Nou vir die meeste van jou werk in CS50, 'n float moet volstaan. 136 00:06:11,250 --> 00:06:15,340 Maar weet dat dubbelspel bestaan ​​as 'n manier om 'n bietjie te gaan met die presisie 137 00:06:15,340 --> 00:06:20,980 probleem deur jou 'n ekstra 32 stukkies om te werk met jou nommers. 138 00:06:20,980 --> 00:06:23,650 >> Nou is dit nie 'n tipe data. 139 00:06:23,650 --> 00:06:24,390 Dit is 'n tipe. 140 00:06:24,390 --> 00:06:25,340 En dit is nietig genoem. 141 00:06:25,340 --> 00:06:27,506 En ek praat oor dit hier, want ons het waarskynlik 142 00:06:27,506 --> 00:06:29,520 'n paar keer al in CS50 dit gesien. 143 00:06:29,520 --> 00:06:32,020 En jy mag dalk wonder wat dit gaan alles oor. 144 00:06:32,020 --> 00:06:33,390 >> So leemte is 'n tipe. 145 00:06:33,390 --> 00:06:34,097 Dit bestaan ​​nie. 146 00:06:34,097 --> 00:06:35,180 Maar dit is nie 'n tipe data. 147 00:06:35,180 --> 00:06:39,350 >> Ons kan nie 'n veranderlike van tipe skep nie nietig en ken 'n waarde om dit te. 148 00:06:39,350 --> 00:06:42,519 Maar funksies, byvoorbeeld, kan 'n tipe leemte terugkeer het. 149 00:06:42,519 --> 00:06:45,060 Basies, as jy 'n funksie te sien wat 'n tipe leemte terugkeer, 150 00:06:45,060 --> 00:06:46,970 dit beteken dat dit nie 'n waarde terug te keer. 151 00:06:46,970 --> 00:06:49,440 Kan jy dink aan 'n gemeenskaplike funksie wat ons tot dusver gebruik het 152 00:06:49,440 --> 00:06:52,780 in CS50 dit beteken 'n waarde nie weer terugkom nie? 153 00:06:52,780 --> 00:06:54,700 >> Printf is een. 154 00:06:54,700 --> 00:06:56,820 Printf nie eintlik vir julle iets terug te keer. 155 00:06:56,820 --> 00:06:59,850 Dit druk iets doen om die skerm, en dit is basies 156 00:06:59,850 --> 00:07:01,650 'n newe-effek van wat printf doen. 157 00:07:01,650 --> 00:07:03,620 Maar dit gee jou nie 'n waarde terug. 158 00:07:03,620 --> 00:07:08,419 Jy hoef nie die gevolg en die winkel op te vang dit in sommige veranderlike om dit later op te gebruik. 159 00:07:08,419 --> 00:07:10,710 Dit druk net iets om die skerm en jy klaar. 160 00:07:10,710 --> 00:07:14,360 >> So ons dat printf sê is 'n leemte funksie. 161 00:07:14,360 --> 00:07:16,450 Dit gee niks. 162 00:07:16,450 --> 00:07:18,580 >> Die omtrek van 'n lys funksie kan ook nietig wees. 163 00:07:18,580 --> 00:07:21,410 En jy het ook gesien dat nogal 'n bietjie in CS50 ook. 164 00:07:21,410 --> 00:07:22,300 Int belangrikste leemte. 165 00:07:22,300 --> 00:07:23,260 Is dit 'n klokkie? 166 00:07:23,260 --> 00:07:24,080 167 00:07:24,080 --> 00:07:27,220 Basies wat dit beteken, is dat hoof geen parameters neem. 168 00:07:27,220 --> 00:07:29,520 Daar is geen argument dat kry geslaag in hoof-. 169 00:07:29,520 --> 00:07:32,780 Nou later sal ons sien dat daar 'n manier om argumente slaag in hoof, 170 00:07:32,780 --> 00:07:36,189 maar tot dusver wat ons gesien is int main nietig. 171 00:07:36,189 --> 00:07:37,730 Main net nie enige argumente te neem. 172 00:07:37,730 --> 00:07:40,236 En so het ons spesifiseer dat deur te sê leeg. 173 00:07:40,236 --> 00:07:42,110 Ons is net dat dit baie eksplisiete oor die feit 174 00:07:42,110 --> 00:07:44,430 dat dit nie enige argumente neem nie. 175 00:07:44,430 --> 00:07:47,160 >> So vir nou, is dit voldoende om sê dat leemte basies 176 00:07:47,160 --> 00:07:50,789 moet net dien as 'n plekhouer vir jou as dink oor as niks. 177 00:07:50,789 --> 00:07:52,080 Dit is nie regtig iets te doen. 178 00:07:52,080 --> 00:07:53,550 Daar is geen terugkeer waarde hier. 179 00:07:53,550 --> 00:07:54,770 Daar is geen parameters hier. 180 00:07:54,770 --> 00:07:55,709 Dit is nietig. 181 00:07:55,709 --> 00:07:57,250 Dit is 'n bietjie meer kompleks as dit. 182 00:07:57,250 --> 00:08:00,640 Maar dit moet genoeg wees vir die beter deel van die kursus. 183 00:08:00,640 --> 00:08:05,010 En hopelik jy nou 'n bietjie het bietjie meer van 'n konsep van wat nietig is. 184 00:08:05,010 --> 00:08:08,460 >> So dit is die vyf tipes wat jy sal ontmoeting wat gebou-in C. 185 00:08:08,460 --> 00:08:10,670 Maar in CS50 ons het ook 'n biblioteek. 186 00:08:10,670 --> 00:08:13,550 CS50.h, wat jy kan in te sluit. 187 00:08:13,550 --> 00:08:15,930 En wat sal u voorsien met twee bykomende tipes 188 00:08:15,930 --> 00:08:18,280 dat jy waarskynlik in staat sal wees te gebruik op jou opdragte, 189 00:08:18,280 --> 00:08:21,210 of net werk oor die algemeen programmering. 190 00:08:21,210 --> 00:08:23,030 >> Die eerste van hierdie is Bool. 191 00:08:23,030 --> 00:08:26,780 So die Boole tipe data, Bool, word gebruik vir veranderlikes 192 00:08:26,780 --> 00:08:28,114 wat sal 'n Boolese waarde te stoor. 193 00:08:28,114 --> 00:08:29,863 As jy al ooit gehoor hierdie kwartaal voordat jy 194 00:08:29,863 --> 00:08:31,960 kan weet dat 'n Boole waarde in staat is om net 195 00:08:31,960 --> 00:08:34,440 hou twee verskillende afsonderlike waardes. 196 00:08:34,440 --> 00:08:35,872 Ware en valse. 197 00:08:35,872 --> 00:08:37,580 Nou lyk dit redelik fundamentele, reg? 198 00:08:37,580 --> 00:08:40,496 Dit is soort van 'n verrassing dat hierdie bestaan ​​nie in C as dit is gebou in. 199 00:08:40,496 --> 00:08:42,640 En in baie moderne tale, natuurlik, Booleans 200 00:08:42,640 --> 00:08:45,390 is 'n standaard tipe verstek data. 201 00:08:45,390 --> 00:08:47,192 Maar in C, hulle is eintlik nie. 202 00:08:47,192 --> 00:08:48,400 Maar ons het dit vir jou geskep. 203 00:08:48,400 --> 00:08:51,910 So as jy ooit nodig het om te skep 'n veranderlike wie tipe is Bool, 204 00:08:51,910 --> 00:08:55,230 net seker wees om include CS50.h aan die begin van jou program, 205 00:08:55,230 --> 00:08:57,800 en jy sal in staat wees om te skep veranderlikes van die tipe Bool. 206 00:08:57,800 --> 00:09:02,095 >> As jy vergeet om include CS50.h en jy begin met behulp van Boole-tipe veranderlikes, 207 00:09:02,095 --> 00:09:04,970 jy kan 'n paar probleme ondervind wanneer jy die opstel van jou program. 208 00:09:04,970 --> 00:09:06,490 Dus net op die uitkyk vir daardie. 209 00:09:06,490 --> 00:09:11,180 En miskien kan jy net los die probleme deur pond insluitend CS50.h. 210 00:09:11,180 --> 00:09:14,590 >> Die ander groot tipe data wat ons voorsiening te maak vir jou in die CS50 biblioteek 211 00:09:14,590 --> 00:09:15,670 is string. 212 00:09:15,670 --> 00:09:17,130 So, wat is 'n string? 213 00:09:17,130 --> 00:09:18,520 Snare is regtig net woorde. 214 00:09:18,520 --> 00:09:20,000 Hulle is versamelings van karakters. 215 00:09:20,000 --> 00:09:20,640 Hulle is woorde. 216 00:09:20,640 --> 00:09:21,390 Hulle is sinne. 217 00:09:21,390 --> 00:09:22,480 Hulle is paragrawe. 218 00:09:22,480 --> 00:09:25,850 Dalk hele boeke, selfs. 219 00:09:25,850 --> 00:09:29,690 >> Baie kort om baie lang reeks karakters. 220 00:09:29,690 --> 00:09:34,310 As jy nodig het om stringe te gebruik, byvoorbeeld om 'n woord te slaan, 221 00:09:34,310 --> 00:09:37,609 net seker wees om CS50.h sluit aan die begin van jou program 222 00:09:37,609 --> 00:09:38,900 sodat jy kan die tipe string gebruik. 223 00:09:38,900 --> 00:09:43,910 En dan kan jy veranderlikes te skep wie tipe data is string. 224 00:09:43,910 --> 00:09:46,160 Nou later in die kursus, ons sal ook sien dat dit is 225 00:09:46,160 --> 00:09:47,752 nie die hele storie, óf. 226 00:09:47,752 --> 00:09:49,460 Ons sal dinge teëkom genoem strukture, 227 00:09:49,460 --> 00:09:54,249 wat jou toelaat om 'n groep wat kan wees 'n heelgetal en 'n string in 'n eenheid. 228 00:09:54,249 --> 00:09:56,290 En ons kan gebruik wat vir 'n doel, wat kan 229 00:09:56,290 --> 00:09:57,750 handig te pas kom later in die kursus. 230 00:09:57,750 --> 00:09:59,500 >> En ons sal ook leer oor gedefinieerde tipes, 231 00:09:59,500 --> 00:10:01,720 wat jou toelaat om te skep jou eie datatipes. 232 00:10:01,720 --> 00:10:03,060 Ons hoef nie te bekommer oor wat vir nou. 233 00:10:03,060 --> 00:10:04,550 Maar net weet dat dit is iets op die horison, 234 00:10:04,550 --> 00:10:07,633 dat daar 'n baie meer aan hierdie hele tipe ding as ek vertel jou net 235 00:10:07,633 --> 00:10:08,133 nou. 236 00:10:08,133 --> 00:10:10,591 So nou dat ons geleer het 'n bietjie oor die basiese data 237 00:10:10,591 --> 00:10:14,230 tipes en die CS50 data tipes, laat praat oor hoe om te werk met veranderlikes 238 00:10:14,230 --> 00:10:18,530 en hulle te skep deur gebruik te maak van hierdie tipes data in ons programme. 239 00:10:18,530 --> 00:10:22,670 As jy wil om 'n veranderlike te skep, al wat jy hoef te doen, is twee dinge. 240 00:10:22,670 --> 00:10:24,147 >> Eerstens, moet jy om dit 'n soort. 241 00:10:24,147 --> 00:10:26,230 Die tweede ding wat jy nodig om te doen is gee dit 'n naam. 242 00:10:26,230 --> 00:10:28,740 Sodra jy dit gedoen het en geklap n kommapunt aan die einde van die lyn, 243 00:10:28,740 --> 00:10:29,830 jy 'n veranderlike geskep het. 244 00:10:29,830 --> 00:10:32,370 >> So hier is twee voorbeelde. 245 00:10:32,370 --> 00:10:35,744 Int getal, char brief ;. 246 00:10:35,744 --> 00:10:36,660 Wat het ek hier gedoen het? 247 00:10:36,660 --> 00:10:38,110 Ek het twee veranderlikes geskep. 248 00:10:38,110 --> 00:10:40,190 >> Die eerste, die veranderlike se naam is nommer. 249 00:10:40,190 --> 00:10:44,830 En die aantal in staat is om te hou heelgetal tik waardes, want sy soort is int. 250 00:10:44,830 --> 00:10:48,040 Brief is 'n ander veranderlike wat kan karakters hou 251 00:10:48,040 --> 00:10:50,240 omdat die data tipe is char. 252 00:10:50,240 --> 00:10:51,772 >> Redelik eenvoudig, reg? 253 00:10:51,772 --> 00:10:53,480 As jy jouself in 'n situasie waar 254 00:10:53,480 --> 00:10:56,250 wat jy nodig het om verskeie skep veranderlikes van dieselfde soort, 255 00:10:56,250 --> 00:10:58,740 jy hoef net te spesifiseer die tik naam 'n keer. 256 00:10:58,740 --> 00:11:01,600 Dan net soveel veranderlikes lys van daardie tipe as jy nodig het. 257 00:11:01,600 --> 00:11:04,230 >> So ek kon byvoorbeeld hier in die derde reël van die kode, 258 00:11:04,230 --> 00:11:07,420 sê int hoogte ;, nuwe lyn. 259 00:11:07,420 --> 00:11:08,291 Int breedte ;. 260 00:11:08,291 --> 00:11:09,290 En dit sou te werk. 261 00:11:09,290 --> 00:11:12,039 Ek sal nog steeds kry twee veranderlikes genoem hoogte en breedte, wat elk 262 00:11:12,039 --> 00:11:12,730 'n heelgetal is. 263 00:11:12,730 --> 00:11:16,970 Maar ek mag, dinge om te C sintaksis, konsolideer tot 'n enkele lyn. 264 00:11:16,970 --> 00:11:20,230 Int hoogte, breedte; Dit is dieselfde ding. 265 00:11:20,230 --> 00:11:23,900 Ek het twee veranderlikes, een wat geroep is geskep hoogte een wat geroep breedte, beide van wat 266 00:11:23,900 --> 00:11:26,730 in staat is om hou heelgetal tipe waardes. 267 00:11:26,730 --> 00:11:30,920 >> Net so hier is, kan ek drie te skep drywende punt waardes gelyktydig. 268 00:11:30,920 --> 00:11:33,350 Ek kan dalk te skep 'n veranderlike genoem vierkantswortel van 2-- 269 00:11:33,350 --> 00:11:35,766 wat vermoedelik sal uiteindelik hou die swaai point-- 270 00:11:35,766 --> 00:11:39,222 dat verteenwoordiging van die vierkant wortel van 2-- vierkantswortel van 3 en pi. 271 00:11:39,222 --> 00:11:41,180 Ek kon dit gedoen het op drie afsonderlike lyne. 272 00:11:41,180 --> 00:11:47,690 Vlot, vierkantswortel 2; Dryf vierkantswortel 3; dryf pi; en dit sou te werk. 273 00:11:47,690 --> 00:11:50,590 >> Maar weereens, ek kan net konsolideer dit in 'n enkele lyn van die kode. 274 00:11:50,590 --> 00:11:54,050 Maak dinge 'n bietjie korter, nie as clunky. 275 00:11:54,050 --> 00:11:57,259 >> Nou in die algemeen, is dit 'n goeie ontwerp om slegs verklaar 'n veranderlike wanneer jy dit nodig het. 276 00:11:57,259 --> 00:11:59,050 En ons sal 'n bietjie praat bietjie meer oor wat 277 00:11:59,050 --> 00:12:00,945 later in die kursus wanneer ons bespreek omvang. 278 00:12:00,945 --> 00:12:03,320 So nie noodwendig hoef te skep al jou veranderlikes 279 00:12:03,320 --> 00:12:05,990 aan die begin van die program, wat sommige mense kan die verlede gedoen het, 280 00:12:05,990 --> 00:12:08,700 of was beslis 'n baie algemene kodering praktyk baie jare gelede 281 00:12:08,700 --> 00:12:11,700 wanneer daar met C. Jy mag dalk net wil 'n veranderlike reg toe te skep 282 00:12:11,700 --> 00:12:13,140 jy dit nodig het. 283 00:12:13,140 --> 00:12:13,640 Alles reg. 284 00:12:13,640 --> 00:12:15,150 Dus het ons geskep veranderlikes. 285 00:12:15,150 --> 00:12:16,790 Hoe kan ons dit gebruik? 286 00:12:16,790 --> 00:12:18,650 Nadat ons verklaar veranderlike, het ons nie nodig 287 00:12:18,650 --> 00:12:21,237 die tipe data spesifiseer van daardie veranderlike nie. 288 00:12:21,237 --> 00:12:24,070 In werklikheid, as jy dit doen, kan jy eindig met 'n paar weird gevolge 289 00:12:24,070 --> 00:12:25,490 dat ons sal soort van glans oor vir nou. 290 00:12:25,490 --> 00:12:27,365 Maar om te sê, vreemde dinge gaan 291 00:12:27,365 --> 00:12:30,740 om te begin gebeur as jy per ongeluk weer verklaar veranderlikes met dieselfde naam 292 00:12:30,740 --> 00:12:32,210 oor en oor. 293 00:12:32,210 --> 00:12:33,882 >> So hier Ek het vier reëls van die kode. 294 00:12:33,882 --> 00:12:36,090 En ek het 'n paar van die kommentaar daar net aandui 295 00:12:36,090 --> 00:12:37,840 wat gebeur op elke lyn net om te help 296 00:12:37,840 --> 00:12:40,520 jy lê in wat gaan aan. 297 00:12:40,520 --> 00:12:41,520 So int getal ;. 298 00:12:41,520 --> 00:12:42,520 Jy sien dat voorheen. 299 00:12:42,520 --> 00:12:44,000 Dit is 'n veranderlike verklaring. 300 00:12:44,000 --> 00:12:46,670 >> Ek het nou 'n veranderlike geskep genoem getal wat is 301 00:12:46,670 --> 00:12:48,970 in staat te hou heelgetal-tipe waardes. 302 00:12:48,970 --> 00:12:50,210 Ek het verklaar dit. 303 00:12:50,210 --> 00:12:53,770 >> Die volgende reël ek toeken 'n waarde te nommer. 304 00:12:53,770 --> 00:12:54,992 Nommer gelyk 17. 305 00:12:54,992 --> 00:12:55,950 Wat gebeur daar? 306 00:12:55,950 --> 00:12:58,880 Ek is besig om die nommer 17 binnekant van die veranderlike. 307 00:12:58,880 --> 00:13:02,760 >> So as ek ooit druk dan wat die inhoud van getal is later op, 308 00:13:02,760 --> 00:13:04,030 hulle sal vir my sê dit is 17. 309 00:13:04,030 --> 00:13:07,030 So het 'n veranderlike Ek verklaar, en dan het ek dit opgedra. 310 00:13:07,030 --> 00:13:10,570 >> Ons kan die proses herhaal weer met 'char brief ;. 311 00:13:10,570 --> 00:13:11,640 Dit is 'n verklaring. 312 00:13:11,640 --> 00:13:14,010 Brief gelyk kapitaal H. Dit is 'n opdrag. 313 00:13:14,010 --> 00:13:16,030 Redelik eenvoudig, ook. 314 00:13:16,030 --> 00:13:18,319 >> Nou hierdie proses mag lyk soort van dom. 315 00:13:18,319 --> 00:13:20,110 Hoekom doen ons dit in twee reëls van die kode? 316 00:13:20,110 --> 00:13:21,401 Is daar 'n beter manier om dit te doen? 317 00:13:21,401 --> 00:13:22,250 Trouens, daar is. 318 00:13:22,250 --> 00:13:24,375 Soms jy kan sien hierdie sogenaamde inisialisering. 319 00:13:24,375 --> 00:13:28,446 Dit is wanneer jy 'n veranderlike verklaar en ken 'n waarde op dieselfde tyd. 320 00:13:28,446 --> 00:13:30,320 Dit is eintlik 'n mooi algemene ding om te doen. 321 00:13:30,320 --> 00:13:32,870 Wanneer jy 'n veranderlike, het jy gewoonlik te skep dit wil hê om 'n paar basiese waarde het. 322 00:13:32,870 --> 00:13:34,330 Selfs al is dit 0 of iets. 323 00:13:34,330 --> 00:13:36,180 Jy net jy gee dit 'n waarde. 324 00:13:36,180 --> 00:13:38,360 >> Jy kan 'n veranderlike inisialiseer. 325 00:13:38,360 --> 00:13:42,320 Int getal is gelyk aan 17 is dieselfde as die eerste twee reëls van die kode bo. 326 00:13:42,320 --> 00:13:46,829 Char brief gelyk h is dieselfde as die derde en vierde reëls van die kode hierbo. 327 00:13:46,829 --> 00:13:49,620 Die belangrikste afhaal hier wanneer ons verklaar en die toeken 328 00:13:49,620 --> 00:13:51,740 veranderlikes is nadat ons het verklaar dit, kennisgewing 329 00:13:51,740 --> 00:13:53,700 Ek is nie weer die gebruik van die tipe data. 330 00:13:53,700 --> 00:13:57,916 Ek sê nie int getal is gelyk aan 17 op die tweede reël van die kode, byvoorbeeld. 331 00:13:57,916 --> 00:13:59,290 Ek sê maar net getal is gelyk aan 17. 332 00:13:59,290 --> 00:14:02,537 >> Weereens, re-waarby 'n veranderlike na jy reeds verklaar dit kan lei 333 00:14:02,537 --> 00:14:03,620 sommige weird gevolg. 334 00:14:03,620 --> 00:14:05,950 So net versigtig wees van daardie. 335 00:14:05,950 --> 00:14:06,660 >> Ek is Doug Lloyd. 336 00:14:06,660 --> 00:14:08,870 En dit is CS50. 337 00:14:08,870 --> 00:14:10,499