1 00:00:00,000 --> 00:00:02,420 >> [Glazbom] 2 00:00:02,420 --> 00:00:05,189 3 00:00:05,189 --> 00:00:05,980 Govornik: U redu. 4 00:00:05,980 --> 00:00:08,540 Tako ćemo razgovarati o još stvar koja je vrsta jedinstvena za C, 5 00:00:08,540 --> 00:00:10,010 što je vrsta podataka i varijabli. 6 00:00:10,010 --> 00:00:12,340 Kad kažem jedinstvena u C, ja stvarno znači samo u kontekstu, 7 00:00:12,340 --> 00:00:14,470 Ako ste bili programer za stvarno dugo vremena, 8 00:00:14,470 --> 00:00:16,270 ste vjerojatno ne radio s vrstama podataka 9 00:00:16,270 --> 00:00:18,470 Ako ste koristili moderni programskim jezicima. 10 00:00:18,470 --> 00:00:20,432 Moderni jezici poput PHP i JavaScript, 11 00:00:20,432 --> 00:00:22,640 koji je također ćemo vidjeti malo kasnije u tijeku, 12 00:00:22,640 --> 00:00:25,550 vi zapravo ne morate navesti Tip podataka varijable 13 00:00:25,550 --> 00:00:26,270 kada ga koristite. 14 00:00:26,270 --> 00:00:28,067 >> Vi samo ga prijaviti i početi koristiti ga. 15 00:00:28,067 --> 00:00:29,900 Ako je cijeli broj, to znam da je cijeli broj. 16 00:00:29,900 --> 00:00:31,960 Ako je lik, to je zna da je lik. 17 00:00:31,960 --> 00:00:35,320 Ako je riječ, ona zna je niz tzv. 18 00:00:35,320 --> 00:00:37,300 >> No, u C, što je stariji jezik, trebamo 19 00:00:37,300 --> 00:00:39,420 navesti podatke tip svake varijable 20 00:00:39,420 --> 00:00:42,990 da smo stvorili prvi put da koristimo tu varijablu. 21 00:00:42,990 --> 00:00:45,030 Dakle C dolazi s nekim ugrađene tipove podataka. 22 00:00:45,030 --> 00:00:46,972 I neka je upoznati s nekim od njih. 23 00:00:46,972 --> 00:00:50,180 I onda nakon toga također ćemo pričati malo o nekim od tipova podataka 24 00:00:50,180 --> 00:00:54,450 da smo pisana za vas, tako da ih možete koristiti u CS50. 25 00:00:54,450 --> 00:00:56,130 >> Prvi je int. 26 00:00:56,130 --> 00:00:59,110 Vrsta int podaci koriste se za varijable koje će pohraniti cjelobrojne vrijednosti. 27 00:00:59,110 --> 00:01:03,210 Dakle 1, 2, 3, negativna 1, 2, 3, i tako dalje. 28 00:01:03,210 --> 00:01:05,960 Integers, što je nešto što treba imati na umu za kviz, 29 00:01:05,960 --> 00:01:09,590 uvijek zauzimaju četiri bajta memorije, što je 32 bita. 30 00:01:09,590 --> 00:01:11,620 Postoji osam bitova u bajtu. 31 00:01:11,620 --> 00:01:14,470 >> Dakle, to znači da je raspon vrijednosti koje cijeli broj može pohraniti 32 00:01:14,470 --> 00:01:19,130 ograničena je ono što može stati u 32 bita u vrijednosti podataka. 33 00:01:19,130 --> 00:01:21,850 Sada, kao što se ispostavilo, Odavno je prošlo odlučio 34 00:01:21,850 --> 00:01:24,310 da bismo se razišli da niz od 32 bita 35 00:01:24,310 --> 00:01:26,650 u negative integers i pozitivne integers, 36 00:01:26,650 --> 00:01:28,390 svaki dobivanje polovice opsega. 37 00:01:28,390 --> 00:01:32,230 Dakle, raspon vrijednosti koje zastupamo s cjelobrojna u rasponu od negativnog 2 38 00:01:32,230 --> 00:01:36,520 do 31. snage na 2 do 31. napajanja minus 1, 39 00:01:36,520 --> 00:01:38,190 izazvati također trebate mjesto za 0. 40 00:01:38,190 --> 00:01:41,650 >> Tako je u osnovi polovica mogućih vrijednosti što može stati u int su negativni, 41 00:01:41,650 --> 00:01:42,610 a pola su pozitivni. 42 00:01:42,610 --> 00:01:47,270 I otprilike ovdje, ovo je o negativnim 2 milijarde do pozitivnih 2 milijarde. 43 00:01:47,270 --> 00:01:50,207 Dati ili uzeti nekoliko stotina milijuna. 44 00:01:50,207 --> 00:01:52,290 Dakle, to je ono što može stati u varijablu integer. 45 00:01:52,290 --> 00:01:55,490 Sada imamo i nešto zove nepotpisani cijeli broj. 46 00:01:55,490 --> 00:01:59,220 Sada nepotpisani Ints nisu zasebna vrsta varijable. 47 00:01:59,220 --> 00:02:01,590 Umjesto toga, nepotpisani je ono što se zove označni. 48 00:02:01,590 --> 00:02:04,990 Ona mijenja podatke Vrsta cijeli broj nešto. 49 00:02:04,990 --> 00:02:07,850 >> I u ovom slučaju, što je nepotpisani means-- a također možete 50 00:02:07,850 --> 00:02:11,530 koristiti nepotpisane druge vrste podataka, broj nije jedini. 51 00:02:11,530 --> 00:02:15,310 Što je to učinkovito radi se u parovima pozitivni raspon vrijednosti 52 00:02:15,310 --> 00:02:19,350 da cijeli broj može preuzeti na trošak više nije igrač 53 00:02:19,350 --> 00:02:21,140 da se na negativne vrijednosti. 54 00:02:21,140 --> 00:02:25,400 Dakle, ako imate brojeve koje znate će dobiti veći od 2 milijarde manje nego 55 00:02:25,400 --> 00:02:31,280 od 4 milijarde, za example-- što je 2 do 32. power-- 56 00:02:31,280 --> 00:02:33,330 možda želite koristiti nepotpisani int, ako vas 57 00:02:33,330 --> 00:02:35,050 znam svoju vrijednost nikad neće biti negativan. 58 00:02:35,050 --> 00:02:37,216 >> Vi povremeno ćete imati koristi za nepotpisani varijabli 59 00:02:37,216 --> 00:02:39,460 u CS50, što je razlog zašto sam ga spomenuti ovdje. 60 00:02:39,460 --> 00:02:43,830 Ali opet, raspon vrijednosti koju može predstavljati s unsigned integer 61 00:02:43,830 --> 00:02:48,240 da t redovite cijeli broj, su 0 na 2 do 32. snage minus 1, 62 00:02:48,240 --> 00:02:50,840 ili približno 0 do 4 milijarde. 63 00:02:50,840 --> 00:02:53,730 Tako ste učinkovito udvostručen pozitivni niz koji možete stati, 64 00:02:53,730 --> 00:02:56,270 ali ste odustali sve negativne vrijednosti. 65 00:02:56,270 --> 00:03:00,040 >> Sada kao stranu, nepotpisani nije jedini označni 66 00:03:00,040 --> 00:03:01,790 da bismo mogli vidjeti promjenjive vrste podataka. 67 00:03:01,790 --> 00:03:05,779 Tu su i stvari nazivaju kratko i dugo i konst. 68 00:03:05,779 --> 00:03:07,820 Const ćemo vidjeti malo Nešto kasnije u tijeku. 69 00:03:07,820 --> 00:03:10,830 Kratko i dugo, vjerojatno neće. 70 00:03:10,830 --> 00:03:12,830 >> Ali samo znam da postoji drugi kvalifikacijski. 71 00:03:12,830 --> 00:03:14,080 Nepotpisani nije jedini. 72 00:03:14,080 --> 00:03:16,596 Ali to je samo jedan smo ćemo govoriti o sada. 73 00:03:16,596 --> 00:03:17,310 Dakle, sve u redu. 74 00:03:17,310 --> 00:03:18,393 Tako smo pokriveni integers. 75 00:03:18,393 --> 00:03:19,200 Što je sljedeće? 76 00:03:19,200 --> 00:03:20,130 >> Znakova. 77 00:03:20,130 --> 00:03:23,620 Tako znakova služe za varijable koje će pohraniti jednu znakova. 78 00:03:23,620 --> 00:03:24,850 Char je kratica za karaktera. 79 00:03:24,850 --> 00:03:27,870 A ponekad možda čujete ljudi ga izgovoriti kako je automobil. 80 00:03:27,870 --> 00:03:32,020 >> Dakle, likovi uvijek uzeti jednu bajt memorije, što je samo 8 bita. 81 00:03:32,020 --> 00:03:35,700 Dakle, to znači da oni mogu samo stati vrijednosti u rasponu od negativnih 2 82 00:03:35,700 --> 00:03:42,430 do sedme sile, ili negativna 128, na 2 do 7. snage minus 1, ili 127. 83 00:03:42,430 --> 00:03:45,710 >> Zahvaljujući ASCII, bilo je davno odlučio način 84 00:03:45,710 --> 00:03:50,805 mapirati one pozitivne brojeve od 0-127 raznim likovima 85 00:03:50,805 --> 00:03:52,182 da sve funkcionira na našoj tipkovnici. 86 00:03:52,182 --> 00:03:54,640 Dakle, kao što ćemo vidjeti kasnije u tečaj, a vi ćete vjerojatno 87 00:03:54,640 --> 00:03:57,700 dolaze upamtiti neke točka, glavni A, za example-- 88 00:03:57,700 --> 00:04:00,732 znak grad A- karata na broj 65. 89 00:04:00,732 --> 00:04:02,940 A razlog za to je jer to je ono što je to 90 00:04:02,940 --> 00:04:05,490 dodijeljena od strane ASCII standardu. 91 00:04:05,490 --> 00:04:07,850 >> Mala A je 97. 92 00:04:07,850 --> 00:04:11,900 Lik 0 kad vas zapravo upišite karakter, ne 93 00:04:11,900 --> 00:04:13,532 predstavlja broj nula, je 48. 94 00:04:13,532 --> 00:04:15,240 Vi ćete naučiti par od njih kao i ti ići. 95 00:04:15,240 --> 00:04:17,990 A vi ćete sigurno doći na potrebu ih malo kasnije u CS50. 96 00:04:17,990 --> 00:04:20,450 97 00:04:20,450 --> 00:04:23,390 >> Sljedeći veliki tip podataka je brojeve s pomičnim zarezom. 98 00:04:23,390 --> 00:04:26,100 Dakle, s pomičnim zarezom brojevi također poznat kao realnih brojeva. 99 00:04:26,100 --> 00:04:28,850 Oni su zapravo brojevi koji imati decimalnu točku u njima. 100 00:04:28,850 --> 00:04:33,360 Krajnja vrijednost poput brojeva također 101 00:04:33,360 --> 00:04:36,090 sadržane u roku od 4 bajta memorije. 102 00:04:36,090 --> 00:04:37,580 Sada nema grafikon ovdje. 103 00:04:37,580 --> 00:04:40,890 Nema broj linija, jer opisuje raspon plovka 104 00:04:40,890 --> 00:04:44,550 Nije sasvim jasno i intuitivno. 105 00:04:44,550 --> 00:04:47,350 >> Dovoljno je da vam kažem ima 32 bita raditi. 106 00:04:47,350 --> 00:04:49,730 A ako imate broj poput pi, koja ima 107 00:04:49,730 --> 00:04:55,510 cijeli dio 3, i plutajući Točka dio ili decimalni dio 0,14159, 108 00:04:55,510 --> 00:04:58,735 i tako dalje, morate biti mogućnosti da predstavljaju sve it-- 109 00:04:58,735 --> 00:05:02,420 cijeli broj dijela i decimalna dio. 110 00:05:02,420 --> 00:05:04,550 >> Dakle, što misliš, što bi moglo značiti? 111 00:05:04,550 --> 00:05:08,180 Jedna stvar je da ako decimalnog dio dobiva duže i duže, 112 00:05:08,180 --> 00:05:10,660 ako imam vrlo veliki cijeli dio, ja ne bih 113 00:05:10,660 --> 00:05:13,090 moći biti precizniji s decimalnim dijelom. 114 00:05:13,090 --> 00:05:15,280 I to je zapravo ograničenje plovka. 115 00:05:15,280 --> 00:05:17,229 >> Plovci imaju preciznost problem. 116 00:05:17,229 --> 00:05:19,270 Imamo samo 32 bita raditi, tako da mi samo možemo 117 00:05:19,270 --> 00:05:22,510 biti tako precizan s našim decimalnog dijela. 118 00:05:22,510 --> 00:05:27,300 Ne možemo nužno imati decimale dio precizna na 100 ili 200 znamenki, 119 00:05:27,300 --> 00:05:29,710 jer imamo samo 32 bita raditi. 120 00:05:29,710 --> 00:05:31,590 Dakle, to je ograničenje plovka. 121 00:05:31,590 --> 00:05:33,590 >> Sada srećom postoji drugi tip podataka naziva 122 00:05:33,590 --> 00:05:36,530 dvostruko, što donekle bavi ovim problemom. 123 00:05:36,530 --> 00:05:39,980 Parovi, poput kola, također se koriste za pohraniti realne brojeve ili pomičnim zarezom 124 00:05:39,980 --> 00:05:40,840 vrijednosti. 125 00:05:40,840 --> 00:05:44,340 Razlika je u tome parovi su dvokrevetne preciznosti. 126 00:05:44,340 --> 00:05:48,177 Oni mogu stati 64 bitova Podaci ili osam bajtova. 127 00:05:48,177 --> 00:05:49,010 Što to znači? 128 00:05:49,010 --> 00:05:51,801 Pa, to znači da može biti puno više precizan s decimalne točke. 129 00:05:51,801 --> 00:05:54,830 Umjesto da pi na sedam mjesta možda, s plovkom, 130 00:05:54,830 --> 00:05:56,710 mi možda može imati do 30 mjesta. 131 00:05:56,710 --> 00:05:59,824 Ako je to važno, možda želite koristiti dvostruka umjesto plovka. 132 00:05:59,824 --> 00:06:01,740 Uglavnom, ako ste radi na bilo što gdje 133 00:06:01,740 --> 00:06:06,540 ima jako dugu decimalno mjesto i puno preciznosti je važno, 134 00:06:06,540 --> 00:06:08,630 vjerojatno želite koristite dvostruku overfloat. 135 00:06:08,630 --> 00:06:11,250 Sada za većinu svog rada u CS50, plovak trebao biti dovoljan. 136 00:06:11,250 --> 00:06:15,340 Ali znam da parovi postoje kao način da se nešto nositi s preciznošću 137 00:06:15,340 --> 00:06:20,980 Problem dajući vam dodatni 32 bitova za rad s za svoje brojeve. 138 00:06:20,980 --> 00:06:23,650 >> Sada to nije vrsta podataka. 139 00:06:23,650 --> 00:06:24,390 To je vrsta. 140 00:06:24,390 --> 00:06:25,340 I to se zove nevažeće. 141 00:06:25,340 --> 00:06:27,506 A ja govorim o tome ovdje jer smo vjerojatno 142 00:06:27,506 --> 00:06:29,520 Vidio ga je nekoliko puta već u CS50. 143 00:06:29,520 --> 00:06:32,020 A možda se pitate ono što je sve o tome. 144 00:06:32,020 --> 00:06:33,390 >> Dakle, praznina je vrsta. 145 00:06:33,390 --> 00:06:34,097 To ne postoji. 146 00:06:34,097 --> 00:06:35,180 Ali, to nije vrsta podataka. 147 00:06:35,180 --> 00:06:39,350 >> Ne možemo stvoriti varijablu tipa poništiti i dodijeliti vrijednost na njega. 148 00:06:39,350 --> 00:06:42,519 No funkcije, na primjer, može imati povratnu nevažeće tip. 149 00:06:42,519 --> 00:06:45,060 Uglavnom, ako vidite funkciju da ima povratnu nevažeće tip, 150 00:06:45,060 --> 00:06:46,970 to znači da se ne vraća vrijednost. 151 00:06:46,970 --> 00:06:49,440 Možete li se sjetiti čest funkcija koja smo dosad koristi 152 00:06:49,440 --> 00:06:52,780 u CS50 da se ne vraća vrijednost? 153 00:06:52,780 --> 00:06:54,700 >> Printf je jedan. 154 00:06:54,700 --> 00:06:56,820 Printf zapravo ne povratak ništa za vas. 155 00:06:56,820 --> 00:06:59,850 Ona ispisuje nešto na zaslon, a to je u osnovi 156 00:06:59,850 --> 00:07:01,650 nuspojava ono printf radi. 157 00:07:01,650 --> 00:07:03,620 Ali to ti ne daje vrijednost vratiti. 158 00:07:03,620 --> 00:07:08,419 Vi ne uhvatiti rezultat i trgovinu to u nekoj varijabli ga koristiti kasnije. 159 00:07:08,419 --> 00:07:10,710 To samo ispisuje nešto zaslon i gotovi ste. 160 00:07:10,710 --> 00:07:14,360 >> Tako možemo reći da printf je funkcija nevažeće. 161 00:07:14,360 --> 00:07:16,450 Ona se vraća ništa. 162 00:07:16,450 --> 00:07:18,580 >> Popis perimetru funkcija također može biti nevažeće. 163 00:07:18,580 --> 00:07:21,410 A vi ste vidjeli da vrlo malo u CS50 previše. 164 00:07:21,410 --> 00:07:22,300 Int glavna nevažeće. 165 00:07:22,300 --> 00:07:23,260 Da li to zvono zvoni? 166 00:07:23,260 --> 00:07:24,080 167 00:07:24,080 --> 00:07:27,220 Uglavnom ono što to znači je da Glavna ne poduzimati nikakve parametre. 168 00:07:27,220 --> 00:07:29,520 Nema argument da dobiti prošao u glavni. 169 00:07:29,520 --> 00:07:32,780 Sada kasnije ćemo vidjeti da postoji način da prođe argumente u glavni, 170 00:07:32,780 --> 00:07:36,189 ali do sada što smo Vidio je int glavna nevažeće. 171 00:07:36,189 --> 00:07:37,730 Glavni jednostavno ne poduzimati nikakve argumente. 172 00:07:37,730 --> 00:07:40,236 I tako smo naveli da je rekavši nevažeće. 173 00:07:40,236 --> 00:07:42,110 Mi samo se vrlo eksplicitno o tome 174 00:07:42,110 --> 00:07:44,430 da ne poduzimati nikakve argumente. 175 00:07:44,430 --> 00:07:47,160 >> Dakle, za sada, dovoljno je kažu da je prazninu u osnovi 176 00:07:47,160 --> 00:07:50,789 samo treba poslužiti kao rezervirano mjesto za vas kao razmišljanje o što je ništa. 177 00:07:50,789 --> 00:07:52,080 Nije zapravo radi ništa. 178 00:07:52,080 --> 00:07:53,550 Nema povratka vrijednosti ovdje. 179 00:07:53,550 --> 00:07:54,770 Nema parametara ovdje. 180 00:07:54,770 --> 00:07:55,709 To je nevažeće. 181 00:07:55,709 --> 00:07:57,250 To je malo složeniji od toga. 182 00:07:57,250 --> 00:08:00,640 No, to bi trebalo biti dostatno za bolji dio tečaja. 183 00:08:00,640 --> 00:08:05,010 I nadam se da sada imate malo nešto više od koncepta o tome što je praznina. 184 00:08:05,010 --> 00:08:08,460 >> Dakle, to su pet vrsta vi ćete Susret koji su ugrađeni u C. 185 00:08:08,460 --> 00:08:10,670 No, u CS50 imamo knjižnicu. 186 00:08:10,670 --> 00:08:13,550 CS50.h, koji možete uključiti. 187 00:08:13,550 --> 00:08:15,930 I koji će vam pružiti sa dvije dodatne vrste 188 00:08:15,930 --> 00:08:18,280 da ćete vjerojatno biti u mogućnosti koristiti na svoje zadatke, 189 00:08:18,280 --> 00:08:21,210 ili samo raditi općenito programiranje. 190 00:08:21,210 --> 00:08:23,030 >> Prva od njih je bool. 191 00:08:23,030 --> 00:08:26,780 Dakle, Boolean tip podataka, bool, koristi se za varijable 192 00:08:26,780 --> 00:08:28,114 koje će pohraniti Boolean vrijednost. 193 00:08:28,114 --> 00:08:29,863 Ako ste ikada čuli ovaj pojam prije, 194 00:08:29,863 --> 00:08:31,960 Možda znate da je Booleova Vrijednost je sposoban samo 195 00:08:31,960 --> 00:08:34,440 drži dvije različite različite vrijednosti. 196 00:08:34,440 --> 00:08:35,872 Istina i laž. 197 00:08:35,872 --> 00:08:37,580 Sada to izgleda prilično temeljno, zar ne? 198 00:08:37,580 --> 00:08:40,496 To je vrsta iznenađenje da je ovaj ne postoji u C kao što je izgrađen-in. 199 00:08:40,496 --> 00:08:42,640 I u mnogim modernim jezicima, Naravno, logičke izraze 200 00:08:42,640 --> 00:08:45,390 su standardni tip zadani podataka. 201 00:08:45,390 --> 00:08:47,192 No, u C, oni zapravo nisu. 202 00:08:47,192 --> 00:08:48,400 Ali mi smo ga stvorili za vas. 203 00:08:48,400 --> 00:08:51,910 Dakle, ako ste ikada trebati za stvaranje varijabla čija je tip bool, 204 00:08:51,910 --> 00:08:55,230 Samo budite sigurni da #include CS50.h na početku vašeg programa, 205 00:08:55,230 --> 00:08:57,800 a vi ćete biti u mogućnosti to stvoriti varijable tipa bool. 206 00:08:57,800 --> 00:09:02,095 >> Ako ste zaboravili #include CS50.h i počnete koristiti Boolean tipa varijable, 207 00:09:02,095 --> 00:09:04,970 možda sresti neke probleme kada ste sastavljanju svoj program. 208 00:09:04,970 --> 00:09:06,490 Dakle, samo se na vidikovcu za to. 209 00:09:06,490 --> 00:09:11,180 A možda možete jednostavno popraviti Problemi po kilogramu uključujući CS50.h. 210 00:09:11,180 --> 00:09:14,590 >> Drugi glavni tip podataka koje smo osigurati za vas u CS50 knjižnici 211 00:09:14,590 --> 00:09:15,670 je niz. 212 00:09:15,670 --> 00:09:17,130 Dakle, ono što je string? 213 00:09:17,130 --> 00:09:18,520 Nizovi su stvarno samo riječi. 214 00:09:18,520 --> 00:09:20,000 Oni su zbirke znakova. 215 00:09:20,000 --> 00:09:20,640 Oni su riječi. 216 00:09:20,640 --> 00:09:21,390 Oni su rečenice. 217 00:09:21,390 --> 00:09:22,480 Oni stavke. 218 00:09:22,480 --> 00:09:25,850 Moglo bi biti cijela knjiga, čak. 219 00:09:25,850 --> 00:09:29,690 >> Vrlo kratko i vrlo dugo Niz znakova. 220 00:09:29,690 --> 00:09:34,310 Ako morate koristiti žice, na primjer, za spremanje riječ, 221 00:09:34,310 --> 00:09:37,609 Samo budite sigurni da su CS50.h na početku vašeg programa 222 00:09:37,609 --> 00:09:38,900 tako da možete koristiti tipa String. 223 00:09:38,900 --> 00:09:43,910 A onda možete stvoriti varijabli čiji je tip podataka niz. 224 00:09:43,910 --> 00:09:46,160 Sada kasnije u tijeku, ćemo vidjeti da je to 225 00:09:46,160 --> 00:09:47,752 Ne cijela priča, bilo. 226 00:09:47,752 --> 00:09:49,460 Mi ćemo se susresti stvari nazivaju strukture, 227 00:09:49,460 --> 00:09:54,249 koji vam omogućuju da se skupine koje mogu biti cijeli broj i ogrlicu u jednu cjelinu. 228 00:09:54,249 --> 00:09:56,290 I možemo koristiti da za neke svrhe, što bi moglo 229 00:09:56,290 --> 00:09:57,750 doći u ruci kasnije u tijeku. 230 00:09:57,750 --> 00:09:59,500 >> A mi ćemo također naučiti o određenim vrstama, 231 00:09:59,500 --> 00:10:01,720 koji omogućuju vam da stvorite vlastite vrste podataka. 232 00:10:01,720 --> 00:10:03,060 Ne morate se brinuti o tome za sada. 233 00:10:03,060 --> 00:10:04,550 Ali samo znam da je to nešto na horizontu, 234 00:10:04,550 --> 00:10:07,633 da postoji mnogo više da se ove cjeline Vrsta stvar nego ti govorim samo 235 00:10:07,633 --> 00:10:08,133 Sada. 236 00:10:08,133 --> 00:10:10,591 Dakle, sada kada smo naučili malo o osnovnim podacima 237 00:10:10,591 --> 00:10:14,230 Vrste i tipovi CS50 podataka, neka je razgovarati o tome kako raditi s varijablama 238 00:10:14,230 --> 00:10:18,530 i stvoriti pomoću njih to vrste podataka u našim programima. 239 00:10:18,530 --> 00:10:22,670 Ako želite stvoriti varijablu, sve što trebate učiniti je dvije stvari. 240 00:10:22,670 --> 00:10:24,147 >> Prvo, morate dati ga promijeniti. 241 00:10:24,147 --> 00:10:26,230 Druga stvar koju trebate učiniti je dati mu ime. 242 00:10:26,230 --> 00:10:28,740 Nakon što ste to učinili i ošamario zarezom na kraju tog retka, 243 00:10:28,740 --> 00:10:29,830 ste stvorili varijablu. 244 00:10:29,830 --> 00:10:32,370 >> Dakle, evo dva primjera. 245 00:10:32,370 --> 00:10:35,744 Int broj; char slovo ;. 246 00:10:35,744 --> 00:10:36,660 Što sam učinio ovdje? 247 00:10:36,660 --> 00:10:38,110 Napravio sam dvije varijable. 248 00:10:38,110 --> 00:10:40,190 >> Prvo, varijabla je ime je broj. 249 00:10:40,190 --> 00:10:44,830 I broj je sposoban za držanje cijeli broj upišite vrijednosti, jer je njegov tip je int. 250 00:10:44,830 --> 00:10:48,040 Pismo je još varijabla koji se drže znakove 251 00:10:48,040 --> 00:10:50,240 jer mu je tip podataka char. 252 00:10:50,240 --> 00:10:51,772 >> Prilično jednostavno, zar ne? 253 00:10:51,772 --> 00:10:53,480 Ako se nađete u situaciji u kojoj 254 00:10:53,480 --> 00:10:56,250 morate stvoriti više varijable iste vrste, 255 00:10:56,250 --> 00:10:58,740 samo trebate odrediti Nakon što je naziv vrste. 256 00:10:58,740 --> 00:11:01,600 Onda samo popis onoliko varijabli tog tipa kao što je potrebno. 257 00:11:01,600 --> 00:11:04,230 >> Tako sam mogao, na primjer, ovdje u ovom trećem retku koda, 258 00:11:04,230 --> 00:11:07,420 kažu visina int ;, novu liniju. 259 00:11:07,420 --> 00:11:08,291 Int širina ;. 260 00:11:08,291 --> 00:11:09,290 I to će raditi previše. 261 00:11:09,290 --> 00:11:12,039 Ja bih uvijek dobiti dvije varijable pod nazivom Visina i širina, od kojih je svaki 262 00:11:12,039 --> 00:11:12,730 je cijeli broj. 263 00:11:12,730 --> 00:11:16,970 Ali ja smijem, stvari C sintaksu, konsolidirati ga u jednom retku. 264 00:11:16,970 --> 00:11:20,230 Int visina, širina; To je ista stvar. 265 00:11:20,230 --> 00:11:23,900 Napravio sam dvije varijable, jedna zove Visina se zove širine, od kojih oba 266 00:11:23,900 --> 00:11:26,730 su sposobni za gospodarstvo cjelobrojne vrijednosti tipa. 267 00:11:26,730 --> 00:11:30,920 >> Isto ovdje, ja mogu stvoriti tri s pomičnim zarezom vrijednosti odjednom. 268 00:11:30,920 --> 00:11:33,350 Ja možda mogu stvoriti varijablu naziva korijen 2-- 269 00:11:33,350 --> 00:11:35,766 koja je vjerojatno će na kraju držite plutajući point-- 270 00:11:35,766 --> 00:11:39,222 da je zastupljenost trgu Korijen 2-- kvadratni korijen od 3 i pi. 271 00:11:39,222 --> 00:11:41,180 Mogao sam to učinio na tri zasebne linije. 272 00:11:41,180 --> 00:11:47,690 Float, korijen 2; Float korijen 3; plutaju pi; i da će raditi previše. 273 00:11:47,690 --> 00:11:50,590 >> Ali opet, ja mogu samo učvrstiti ovo u jednu liniju koda. 274 00:11:50,590 --> 00:11:54,050 Čini stvari malo kraće, a ne kao nespretan. 275 00:11:54,050 --> 00:11:57,259 >> Sada u cjelini, to je dobar dizajn za samo proglasiti varijablu kada vam je potrebna. 276 00:11:57,259 --> 00:11:59,050 A mi ćemo govoriti malo nešto više o tome 277 00:11:59,050 --> 00:12:00,945 kasnije u tijeku kad smo razgovarali opseg. 278 00:12:00,945 --> 00:12:03,320 Dakle, ne nužno stvoriti sve svoje varijable 279 00:12:03,320 --> 00:12:05,990 na početku programa, koji neki ljudi mogu učiniti prošlost, 280 00:12:05,990 --> 00:12:08,700 ili je svakako vrlo česta Prije kodiranja praksi mnogo godina 281 00:12:08,700 --> 00:12:11,700 kada se radi s C. Možda će Vam upravo želite stvoriti varijablu u pravu kada 282 00:12:11,700 --> 00:12:13,140 vam je potrebna. 283 00:12:13,140 --> 00:12:13,640 U redu. 284 00:12:13,640 --> 00:12:15,150 Tako smo stvorili varijable. 285 00:12:15,150 --> 00:12:16,790 Kako ih koristiti? 286 00:12:16,790 --> 00:12:18,650 Nakon što smo proglasiti promjenjiva, mi ne trebaju 287 00:12:18,650 --> 00:12:21,237 odrediti vrste podataka te varijable više. 288 00:12:21,237 --> 00:12:24,070 U stvari, ako to učinite, možda ćete završiti s nekim čudnim posljedicama 289 00:12:24,070 --> 00:12:25,490 da ćemo nekako prijeći preko za sada. 290 00:12:25,490 --> 00:12:27,365 No, dovoljno je reći, čudne stvari su se događa 291 00:12:27,365 --> 00:12:30,740 za početak se događa ako slučajno ponovno proglasiti varijable s istim imenom 292 00:12:30,740 --> 00:12:32,210 više i više. 293 00:12:32,210 --> 00:12:33,882 >> Dakle, ovdje imam četiri linije koda. 294 00:12:33,882 --> 00:12:36,090 I ja imam par Komentari tu samo ukazuju 295 00:12:36,090 --> 00:12:37,840 Što se događa na svaki redak samo pomoći 296 00:12:37,840 --> 00:12:40,520 što se nalazi u ono što se događa. 297 00:12:40,520 --> 00:12:41,520 Dakle int broj ;. 298 00:12:41,520 --> 00:12:42,520 Vi vidjeli da je ranije. 299 00:12:42,520 --> 00:12:44,000 To je varijabla izjava. 300 00:12:44,000 --> 00:12:46,670 >> Sada smo stvorili varijablu nazvao broj koji je 301 00:12:46,670 --> 00:12:48,970 sposoban za držanje vrijednosti broj tipa. 302 00:12:48,970 --> 00:12:50,210 Ja sam ga proglasio. 303 00:12:50,210 --> 00:12:53,770 >> U sljedećem retku sam dodjeljivanje vrijednost na broj. 304 00:12:53,770 --> 00:12:54,992 Broj jednak 17. 305 00:12:54,992 --> 00:12:55,950 Što se događa tamo? 306 00:12:55,950 --> 00:12:58,880 Ja sam stavljajući broj 17 unutar tog varijable. 307 00:12:58,880 --> 00:13:02,760 >> Dakle, ako sam ikada zatim ispisati ono Sadržaj broja su kasnije, 308 00:13:02,760 --> 00:13:04,030 oni će mi reći da je 17. 309 00:13:04,030 --> 00:13:07,030 Tako sam proglasio varijablu, a onda sam ga dodjeljuje. 310 00:13:07,030 --> 00:13:10,570 >> Možemo ponoviti postupak opet s char slovo ;. 311 00:13:10,570 --> 00:13:11,640 To je izjava. 312 00:13:11,640 --> 00:13:14,010 Pismo jednak kapital H. To je zadatak. 313 00:13:14,010 --> 00:13:16,030 Prilično jednostavan, previše. 314 00:13:16,030 --> 00:13:18,319 >> Sada ovaj proces može Čini vrsta glup. 315 00:13:18,319 --> 00:13:20,110 Zašto ovo radimo u dvije linije koda? 316 00:13:20,110 --> 00:13:21,401 Postoji li bolji način za to učiniti? 317 00:13:21,401 --> 00:13:22,250 U stvari, ne postoji. 318 00:13:22,250 --> 00:13:24,375 Ponekad možete vidjeti to se zove inicijalizaciju. 319 00:13:24,375 --> 00:13:28,446 To je kada se deklarirati varijablu i dodijeliti vrijednost u isto vrijeme. 320 00:13:28,446 --> 00:13:30,320 To je zapravo prilično uobičajena stvar za napraviti. 321 00:13:30,320 --> 00:13:32,870 Kada stvorite varijablu, obično želite imati neke osnovne vrijednosti. 322 00:13:32,870 --> 00:13:34,330 Čak i ako je 0 ili nešto. 323 00:13:34,330 --> 00:13:36,180 Vi samo ćete dati mu vrijednost. 324 00:13:36,180 --> 00:13:38,360 >> Možete inicijalizirati varijablu. 325 00:13:38,360 --> 00:13:42,320 Int broj jednak 17 je isto kao i Prve dvije linije koda iznad. 326 00:13:42,320 --> 00:13:46,829 Char slovo jednak h je ista kao Treća i četvrta linija koda iznad. 327 00:13:46,829 --> 00:13:49,620 Najvažniji takeaway ovdje kada smo proglašenja i dodjela 328 00:13:49,620 --> 00:13:51,740 varijable je nakon što ste objavio obavijest 329 00:13:51,740 --> 00:13:53,700 Nisam ponovo na vrstu podataka. 330 00:13:53,700 --> 00:13:57,916 Ne kažem int broj jednak 17 na druga linija koda, npr. 331 00:13:57,916 --> 00:13:59,290 Samo kažem broj jednak 17. 332 00:13:59,290 --> 00:14:02,537 >> Opet, ponovno izjavljuje varijablu nakon ste već proglasila to može dovesti 333 00:14:02,537 --> 00:14:03,620 na neki čudan posljedica. 334 00:14:03,620 --> 00:14:05,950 Dakle, samo budite oprezni da. 335 00:14:05,950 --> 00:14:06,660 >> Ja sam Doug Lloyd. 336 00:14:06,660 --> 00:14:08,870 A to je CS50. 337 00:14:08,870 --> 00:14:10,499