1 00:00:00,000 --> 00:00:12,510 2 00:00:12,510 --> 00:00:13,870 >> ROB: V redu. 3 00:00:13,870 --> 00:00:16,770 Dobrodošli prvega odseka. 4 00:00:16,770 --> 00:00:17,480 Jaz sem Rob. 5 00:00:17,480 --> 00:00:18,806 >> JOSEPH: Jaz sem Joseph. 6 00:00:18,806 --> 00:00:21,540 >> ROB: Torej bomo potopite noter 7 00:00:21,540 --> 00:00:23,420 Prva stvar, ki govori o je Appliance. 8 00:00:23,420 --> 00:00:27,150 Torej, upajmo, da večina od vas jo prenesli že. 9 00:00:27,150 --> 00:00:37,180 Vendar pa si lahko ogledate navodila na cs50.net/appliance. 10 00:00:37,180 --> 00:00:38,430 Oh bog, zdaj sem v zadregi. 11 00:00:38,430 --> 00:00:44,590 12 00:00:44,590 --> 00:00:45,430 Še vedno slišim. 13 00:00:45,430 --> 00:00:47,232 >> JOSEPH: Vau, to zveni kot je negotova. 14 00:00:47,232 --> 00:00:52,460 >> ROB: Torej, nekateri ljudje so bili ob težave z njim, tako da ne čakati 15 00:00:52,460 --> 00:00:54,940 Zadnja minuta problema nastavljena na poskusiti in rešiti aparata in 16 00:00:54,940 --> 00:00:56,320 ugotovitev, da to ne deluje. 17 00:00:56,320 --> 00:00:59,010 >> JOSEPH: In če kaj ne deluje in ti potrebujejo pomoč, lahko greš na 18 00:00:59,010 --> 00:01:03,390 cs50.net/discussion kje smo imeti forum, kjer si 19 00:01:03,390 --> 00:01:04,110 Svoja vprašanja lahko objavite. 20 00:01:04,110 --> 00:01:06,655 In bomo prišli do njih sčasoma. 21 00:01:06,655 --> 00:01:07,490 >> ROB: V redu. 22 00:01:07,490 --> 00:01:12,180 Torej je to tisto, kar Appliance izgleda. 23 00:01:12,180 --> 00:01:15,480 Še enkrat, to je samo popolnoma ločeni operacijski sistem, ki deluje v okviru 24 00:01:15,480 --> 00:01:19,440 ne glede na operacijski sistem, ki ga se izvajajo na vaš prenosnik. 25 00:01:19,440 --> 00:01:24,450 In glavni stvari, ki jih boste uporabljali so gedit. 26 00:01:24,450 --> 00:01:28,050 Torej, upam, da je to že postala znana stran. 27 00:01:28,050 --> 00:01:29,470 Terminal. 28 00:01:29,470 --> 00:01:31,890 >> In lahko vodijo tudi Chrome v aparatu. 29 00:01:31,890 --> 00:01:33,860 Bilo je nekaj ljudi ki so poročali internet 30 00:01:33,860 --> 00:01:35,390 ne deluje v aparatu. 31 00:01:35,390 --> 00:01:38,090 In nekateri od njih samo domneva da se tam ne bi smel biti 32 00:01:38,090 --> 00:01:39,190 internet v aparatu. 33 00:01:39,190 --> 00:01:40,750 Ampak ja, pa naj da je internet. 34 00:01:40,750 --> 00:01:44,000 35 00:01:44,000 --> 00:01:46,410 >> Jaz bom rekel, prav zdaj, vendar pa ne res pomeni ničesar. 36 00:01:46,410 --> 00:01:50,680 Če je internet ne deluje, To je tisto, kar ste nagnjeni k potrebovali 37 00:01:50,680 --> 00:01:52,180 teči, da to popravimo. 38 00:01:52,180 --> 00:01:55,602 Če imate internet vprašanj ne se spomnite, samo post na 39 00:01:55,602 --> 00:01:57,560 Razpravljati, in bomo rekli, da je prost. 40 00:01:57,560 --> 00:02:00,420 Vendar internet je treba delati. 41 00:02:00,420 --> 00:02:06,650 >> Torej edina druga stvar - ja, nič ostalo je res pomembno. 42 00:02:06,650 --> 00:02:08,979 Vendar sem želel poudariti, da - 43 00:02:08,979 --> 00:02:13,290 glej v tem spodnjem desnem kotu. 44 00:02:13,290 --> 00:02:16,530 Tako da vsak od vaših naprav smeli imeti naslov IP. 45 00:02:16,530 --> 00:02:22,350 In kasneje v semestru, ta IP naslov bo postala bolj pomembna, kadar 46 00:02:22,350 --> 00:02:27,230 delate na spletni p-set, saj boste mogli dostopati 47 00:02:27,230 --> 00:02:32,310 Spletna stran delate iz vašega Lokalne Chrome s tega IP naslova. 48 00:02:32,310 --> 00:02:35,400 >> Toda, kaj mi je všeč, da uporabite IP naslov - in ne boste imeli, da to storite, 49 00:02:35,400 --> 00:02:37,460 samo želim, da ga točke - 50 00:02:37,460 --> 00:02:39,540 je tu. 51 00:02:39,540 --> 00:02:42,910 Torej je to okno terminal na moj Mac, to ni v 52 00:02:42,910 --> 00:02:44,580 Aparat sploh. 53 00:02:44,580 --> 00:02:47,190 In si lahko pogledate, kaj ta ukaz ne. 54 00:02:47,190 --> 00:02:51,855 Ampak bom SSH neposredno na mojo Appliance. 55 00:02:51,855 --> 00:02:53,410 Ne vem, kaj je IP. 56 00:02:53,410 --> 00:02:54,300 >> JOSEPH: 168 - 57 00:02:54,300 --> 00:02:56,080 >> 168.224.1.0. 58 00:02:56,080 --> 00:02:59,950 >> ROB: Torej, ko končam s tem, se prijavite 59 00:02:59,950 --> 00:03:05,450 Sedaj osnovi je enak terminal okno v moji Appliance. 60 00:03:05,450 --> 00:03:10,280 Zato sem precej nikoli nisem delal od znotraj same naprave. 61 00:03:10,280 --> 00:03:12,550 Vedno sem se to tekmovanje v teku V ozadju se čimbolj 62 00:03:12,550 --> 00:03:15,890 in SSHed vanjo. 63 00:03:15,890 --> 00:03:24,270 >> Vprašanje pri tem se ne boste da lahko uporabila gedit enostavno 64 00:03:24,270 --> 00:03:25,600 neposredno iz tega. 65 00:03:25,600 --> 00:03:31,500 Ampak, če hočeš biti resnično kul heker, potem morate navaditi 66 00:03:31,500 --> 00:03:34,220 linija ukaz urejevalnik besedila anyway. 67 00:03:34,220 --> 00:03:39,620 Torej Vim in Emacs in Nano, vsi ti različne alternative. 68 00:03:39,620 --> 00:03:41,560 Nano kaže, da je najlažje. 69 00:03:41,560 --> 00:03:45,006 In mislim, da nima Označevanje skladnje. 70 00:03:45,006 --> 00:03:47,620 Oh, ne, je popolnoma ne. 71 00:03:47,620 --> 00:03:49,870 Tako da lahko uporabite Nano, saj da je eden je zelo enostavno. 72 00:03:49,870 --> 00:03:52,000 >> Vidiš vse te ukaze na dnu. 73 00:03:52,000 --> 00:03:54,750 Ta mali korenček simbol. 74 00:03:54,750 --> 00:03:57,620 Če še niste videli prej, boste verjetno videli veliko zdaj. 75 00:03:57,620 --> 00:04:02,350 To običajno pomeni nadzorno korenček, tako kot v spodnjem levem kotu tipkovnice 76 00:04:02,350 --> 00:04:04,130 kontrolni znak. 77 00:04:04,130 --> 00:04:07,260 Torej, tukaj se mi povedal tukaj - 78 00:04:07,260 --> 00:04:08,710 oh, to ni odrezana, če povečam prijavite 79 00:04:08,710 --> 00:04:11,040 Torej Control, X je, kako Bom izhod. 80 00:04:11,040 --> 00:04:14,710 In pravi, da znam zadeti, Y za Da, za varčevanje, N za No 81 00:04:14,710 --> 00:04:17,190 Tako da je Nano. 82 00:04:17,190 --> 00:04:22,860 >> Vim in Emacs se nagibajo k nekoliko bolj zapleteno in prepričljivo. 83 00:04:22,860 --> 00:04:28,840 Ampak lahko se navadiš na to, in potem boste všeč. 84 00:04:28,840 --> 00:04:30,590 Torej to je to. 85 00:04:30,590 --> 00:04:31,720 >> JOSEPH: Ni potrebe za to. 86 00:04:31,720 --> 00:04:31,840 >> ROB: Ja. 87 00:04:31,840 --> 00:04:37,510 Vas prosimo, da uporabite gedit za preostanek semestra. 88 00:04:37,510 --> 00:04:40,630 Tako da vsa vprašanja, povezana-aparat? 89 00:04:40,630 --> 00:04:42,820 Ali imate kaj misli o tem, kaj drugega Treba je govoril o tem, 90 00:04:42,820 --> 00:04:43,610 aparat? 91 00:04:43,610 --> 00:04:43,996 Da. 92 00:04:43,996 --> 00:04:47,720 >> SPEAKER 1: Ko SSHed v vašo stvar je bila Crimson geslo? 93 00:04:47,720 --> 00:04:48,390 >> ROB: Ja. 94 00:04:48,390 --> 00:04:50,170 Geslo za zal veliko vse v aparatu se dogaja 95 00:04:50,170 --> 00:04:52,473 biti Crimson. 96 00:04:52,473 --> 00:04:56,517 >> SPEAKER 2: Namestite kot pravi IDE na napravi, bo to delovalo? 97 00:04:56,517 --> 00:04:59,200 98 00:04:59,200 --> 00:05:07,290 >> ROB: Mislim, Eclipse ima Fedora različica, v tem primeru, ja, 99 00:05:07,290 --> 00:05:08,420 lahko to storite. 100 00:05:08,420 --> 00:05:10,875 To verjetno ni res vredno. 101 00:05:10,875 --> 00:05:11,742 >> SPEAKER 2: OK. 102 00:05:11,742 --> 00:05:15,924 Tako da je verjetno lažje, če sem hotel uporabiti Eclipse, samo uporabljati materni in 103 00:05:15,924 --> 00:05:17,646 nato naložite na - 104 00:05:17,646 --> 00:05:21,090 >> ROB: Oh, to je verjetno tudi lažje. 105 00:05:21,090 --> 00:05:24,046 Vendar pa lahko dobite to delajo v aparatu. 106 00:05:24,046 --> 00:05:27,740 >> JOSEPH: In za kamero, vprašanje je bilo, lahko namestite drugo 107 00:05:27,740 --> 00:05:29,490 IDE notranjosti aparata? 108 00:05:29,490 --> 00:05:31,520 >> ROB: Eclipse pa Primer IDE. 109 00:05:31,520 --> 00:05:34,800 110 00:05:34,800 --> 00:05:36,050 Kakršne koli druge Appliance vprašanja? 111 00:05:36,050 --> 00:05:38,250 112 00:05:38,250 --> 00:05:38,680 Vse je v redu. 113 00:05:38,680 --> 00:05:44,920 >> Tako da bomo zdaj prešli na ukazni vrstici povezanih vmesnik stvari, tako CLI. 114 00:05:44,920 --> 00:05:47,990 In spet, grem na delo v tukaj, ker je to enaka 115 00:05:47,990 --> 00:05:52,780 delajo v terminalskem oknu v aparatu. 116 00:05:52,780 --> 00:05:54,160 Kako je videti, da je pisava? 117 00:05:54,160 --> 00:05:55,970 Je to dovolj velik? 118 00:05:55,970 --> 00:05:57,000 Vse je v redu. 119 00:05:57,000 --> 00:06:02,480 >> Torej obstaja veliko ukazov, ki boste morali dobiti precej uporablja za 120 00:06:02,480 --> 00:06:04,490 skozi semester. 121 00:06:04,490 --> 00:06:09,480 Velik dva za navigacijo so ls, seznam datoteke v tem imeniku, in 122 00:06:09,480 --> 00:06:11,380 cd, tako da spremenite imenik. 123 00:06:11,380 --> 00:06:18,390 Tako da sem lahko spremenite na namizje in nato Zelo pogost vzorec je cd 124 00:06:18,390 --> 00:06:22,550 imenik in takoj ls Kaj je v imeniku. 125 00:06:22,550 --> 00:06:25,540 >> Ljudje včasih ne zavedajo, da dokončanje Tab je stvar. 126 00:06:25,540 --> 00:06:28,370 Tako kot cd, VH, in potem sem udaril Tab. 127 00:06:28,370 --> 00:06:30,790 Jaz skoraj nikoli tip iz Vsega. 128 00:06:30,790 --> 00:06:32,920 In potem, če jaz vztrajati hitting Tab še enkrat, se bo samodejno 129 00:06:32,920 --> 00:06:33,670 začnete s seznamom za mene. 130 00:06:33,670 --> 00:06:37,000 Tako da sem lahko cd vhosts, lokalnega gostitelja. 131 00:06:37,000 --> 00:06:39,880 In to je le, da bo - 132 00:06:39,880 --> 00:06:43,380 V primeru, da še niste slišali izraz prej, imenik je samo še ena beseda 133 00:06:43,380 --> 00:06:45,170 za mapo. 134 00:06:45,170 --> 00:06:49,930 Torej, zdaj, če ste videli - 135 00:06:49,930 --> 00:06:51,810 pripeljimo, da do vrha. 136 00:06:51,810 --> 00:06:55,380 >> Torej, zdaj, če vidite v oklepaju, ki jih glej malo tilda, poševnica, vhost, 137 00:06:55,380 --> 00:06:56,810 slash, lokalnega gostitelja. 138 00:06:56,810 --> 00:07:00,040 Torej, Tilda, ki se nanaša na moji domači imenik. 139 00:07:00,040 --> 00:07:03,090 To je imenik si ko ste SSH prijavite 140 00:07:03,090 --> 00:07:05,660 To je imenik, da ste v trenutku, ko odpreš terminal. 141 00:07:05,660 --> 00:07:08,650 To je, kjer ste začeli. 142 00:07:08,650 --> 00:07:13,110 In tako sem znotraj mojega domačega imenika, in sem notranjost vhost 143 00:07:13,110 --> 00:07:14,475 Imenik znotraj mojega domačega imenika. 144 00:07:14,475 --> 00:07:19,670 In potem sem znotraj lokalnega gostila imenik znotraj tega. 145 00:07:19,670 --> 00:07:23,740 >> Tako nekatere druge uporabne stvari z cd - 146 00:07:23,740 --> 00:07:29,220 ali pa na splošno, tako dot vedno se nanaša na trenutni imenik. 147 00:07:29,220 --> 00:07:31,130 Cd, pika je precej neuporaben ukaz. 148 00:07:31,130 --> 00:07:35,150 Toda to se je spremenilo, da trenutni imenik. 149 00:07:35,150 --> 00:07:38,230 Bolj uporaben, v smislu cd je pika, pika, ki je 150 00:07:38,230 --> 00:07:40,220 pojdi gor en imenik. 151 00:07:40,220 --> 00:07:43,360 >> In ne pozabite, da je to - 152 00:07:43,360 --> 00:07:48,610 Hočem reči, vzdevke, vendar ti simboli, pika, in pika, pika, tistih, ki delo 153 00:07:48,610 --> 00:07:51,740 za precej koli ukaz ste bo treba razmišljati teče. 154 00:07:51,740 --> 00:07:55,370 Tako kot cd je verjetno, kjer boste uporabljate večino, vendar ti niso 155 00:07:55,370 --> 00:07:56,780 Stvari, ki so pravkar cd razume. 156 00:07:56,780 --> 00:07:59,980 To je precej nekaj, za kar celoten ukazni vrstici razume. 157 00:07:59,980 --> 00:08:01,932 Veliko programov razumeti pika in pika, pika. 158 00:08:01,932 --> 00:08:04,830 159 00:08:04,830 --> 00:08:09,090 >> Torej, druge koristne tisti - cd, pomišljaj. 160 00:08:09,090 --> 00:08:13,460 Tako, da se mi bo prinesla zadnja imenik, da sem bil noter 161 00:08:13,460 --> 00:08:15,980 Torej, včasih bom naredil nekaj podobnega, oh, jaz delam tukaj. 162 00:08:15,980 --> 00:08:21,110 In vidim neke napake z nečim, in Grem preiskati, ki ga bo 163 00:08:21,110 --> 00:08:24,020 nekaj naključno imenik nekje. 164 00:08:24,020 --> 00:08:25,260 In ne vem, če bom Spusti me noter. 165 00:08:25,260 --> 00:08:25,720 Prav tako bo. 166 00:08:25,720 --> 00:08:27,615 Torej delam, kar hočem v tem imeniku. 167 00:08:27,615 --> 00:08:28,950 Bla, bla, bla, bla, bla. 168 00:08:28,950 --> 00:08:31,770 In sem si mislil, v redu, želim iti nazaj, kjer sem bil. 169 00:08:31,770 --> 00:08:34,490 cd, dash, in to me pripelje nazaj. 170 00:08:34,490 --> 00:08:39,970 >> Torej bom vrgel veliko od tega na vas danes. 171 00:08:39,970 --> 00:08:43,730 Ne pričakujem, da boš zapomniti vsi od njih. 172 00:08:43,730 --> 00:08:46,170 To je nekako samo vem da obstajajo. 173 00:08:46,170 --> 00:08:48,690 In potem kasneje, ko si kot, hmm, rad bi šel nazaj 174 00:08:48,690 --> 00:08:51,870 imenik, da sem bil samo na, oh, počakajte, nekaj takega obstaja. 175 00:08:51,870 --> 00:08:53,980 Vam ne bo treba samo tip spet ves imenik. 176 00:08:53,980 --> 00:08:56,090 >> JOSEPH: In na koncu boste le jih znova in znova uporabiti, in 177 00:08:56,090 --> 00:08:57,830 da bomo postali spomin mišic. 178 00:08:57,830 --> 00:09:00,090 >> ROB: Ja. 179 00:09:00,090 --> 00:09:02,930 Torej, kako sem že prej povedal, da Tilda je vaš domači imenik. 180 00:09:02,930 --> 00:09:04,820 Tako da sem lahko cd, tildo. 181 00:09:04,820 --> 00:09:07,280 Ampak nimam niti to, da če sem samo - 182 00:09:07,280 --> 00:09:09,760 Jaz bom šel nazaj v imenik tako to ni nesmiselno primer. 183 00:09:09,760 --> 00:09:14,560 Ampak, če sem naredil cd, ki je prav tako Enako kot, pojdite na moji domači imenik. 184 00:09:14,560 --> 00:09:18,380 185 00:09:18,380 --> 00:09:19,880 Jaz Command, K. 186 00:09:19,880 --> 00:09:24,015 >> JOSEPH: lahko vnesete tudi jasno, Beseda, in ga je treba počistiti. 187 00:09:24,015 --> 00:09:28,650 >> ROB: In mislim, da tudi nadzor, L počne prav. 188 00:09:28,650 --> 00:09:29,690 Tako veliko različnih načinov. 189 00:09:29,690 --> 00:09:34,070 Mislim, da obstajajo nekatere razlike, kjer jasno in nadzor, bom samo 190 00:09:34,070 --> 00:09:37,280 Res ga potisnite proti vrhu in Še vedno lahko pomaknete nazaj. 191 00:09:37,280 --> 00:09:40,580 Ukaz, K dobesedno uničuje vse, kar je, in ti 192 00:09:40,580 --> 00:09:42,960 Ne morem se pomaknete nazaj. 193 00:09:42,960 --> 00:09:45,530 Vsaj, da je kako deluje v iTerm2. 194 00:09:45,530 --> 00:09:48,690 Ne vem, kako druge stvari - 195 00:09:48,690 --> 00:09:49,360 oh. 196 00:09:49,360 --> 00:09:55,450 >> S SSHing, tako da, če ste na Windows, boste morali prenesti PuTTY 197 00:09:55,450 --> 00:10:02,360 da SSH, ker Windows ne imajo podobno vgrajenim SSH orodja. 198 00:10:02,360 --> 00:10:06,150 Od Mac, lahko samo SSH neposredno vam iz okna terminala. 199 00:10:06,150 --> 00:10:08,755 200 00:10:08,755 --> 00:10:09,690 OK. 201 00:10:09,690 --> 00:10:11,840 Vprašanja? 202 00:10:11,840 --> 00:10:19,260 >> Ls, tako da nekaj navaditi z večino teh ukazov je - 203 00:10:19,260 --> 00:10:20,060 dobro, bom naredil eno. 204 00:10:20,060 --> 00:10:21,310 Ls, dash, l. 205 00:10:21,310 --> 00:10:26,330 Torej dash, l je tisto, kar bomo poklicati zastavo ls. 206 00:10:26,330 --> 00:10:30,770 In veliko teh ukazov ima zastavami da lahko preide na njih. 207 00:10:30,770 --> 00:10:35,020 Torej, v tem primeru, dash, l zastava da pove, da mi polni 208 00:10:35,020 --> 00:10:37,850 seznam vseh informacij, teh datotek. 209 00:10:37,850 --> 00:10:44,790 >> Tako vidimo, da je bilo tukaj namizje spremenjen 30. julija, ob 00:54. 210 00:10:44,790 --> 00:10:47,160 Prenosi bil spremenjen na 6. september. 211 00:10:47,160 --> 00:10:52,350 To so sedanja velikost in bajtov teh imenikov. 212 00:10:52,350 --> 00:10:54,412 Vam ni treba razumeti vse to. 213 00:10:54,412 --> 00:11:00,380 >> Ta stvar na levi strani, ti drwx je, da bo postala veliko bolj pomembna 214 00:11:00,380 --> 00:11:02,290 kasneje, ko boste morali spopasti z - 215 00:11:02,290 --> 00:11:05,900 da ima opraviti s tem, kdo ima dovoljenja gledati teh datotek. 216 00:11:05,900 --> 00:11:09,880 In tako, če ne bi bil edini uporabnik na ta računalnik, bi morali biti sposobni 217 00:11:09,880 --> 00:11:13,345 recimo, OK, jaz bi moral biti samo eden dovoliti, da pogled na to zadevo ali pa bom 218 00:11:13,345 --> 00:11:14,870 dogaja, da bi vsi pogled na to zadevo. 219 00:11:14,870 --> 00:11:17,710 Torej, nekdo drug na mojem računalniku lahko ogledate na tej datoteki. 220 00:11:17,710 --> 00:11:22,190 221 00:11:22,190 --> 00:11:25,600 Sploh ne vem, kaj je to - kaj to storiti? 222 00:11:25,600 --> 00:11:26,840 >> JOSEPH: Nisem čisto prepričan, pravzaprav. 223 00:11:26,840 --> 00:11:27,705 >> ROB: Ne vem. 224 00:11:27,705 --> 00:11:30,530 >> JOSEPH: Ampak, če ne veste, da je koristen ukaz, ki ga lahko uporabite 225 00:11:30,530 --> 00:11:31,680 da vam povem, kaj pomeni izhod. 226 00:11:31,680 --> 00:11:33,780 In če ste tip v človeku Pred poveljstvom - 227 00:11:33,780 --> 00:11:35,000 tako M-N-. ROB: Man. 228 00:11:35,000 --> 00:11:37,690 Torej, človek je še ena da je zelo koristen. 229 00:11:37,690 --> 00:11:39,540 In človek, ls. 230 00:11:39,540 --> 00:11:47,320 Torej man strani, imajo tako ukaze, ki si bo z uporabo 231 00:11:47,320 --> 00:11:50,330 v ukazni vrstici, imajo pa tudi Naloge, ki bodo pomembno 232 00:11:50,330 --> 00:11:52,530 s C. Tako lahko človek - 233 00:11:52,530 --> 00:11:53,720 in sem prezreti 3. 234 00:11:53,720 --> 00:11:57,410 Ampak man 3 printf bo prinesla up različico C printf. 235 00:11:57,410 --> 00:12:01,030 Ampak, če sem naredil človek printf, to je bo bruhati ukaz printf 236 00:12:01,030 --> 00:12:03,540 , ki se zgodi v ukazni vrstici. 237 00:12:03,540 --> 00:12:05,730 >> Torej človek, ls. 238 00:12:05,730 --> 00:12:09,030 Man strani lahko precej prepričljivo. 239 00:12:09,030 --> 00:12:12,770 Tu, čeprav, boste videli ta vnos vseh teh zastav, ki ls 240 00:12:12,770 --> 00:12:14,300 razume. 241 00:12:14,300 --> 00:12:17,876 Torej, če gremo v dash, l, in - 242 00:12:17,876 --> 00:12:19,300 Jaz bom samo vrgel to pri vas. 243 00:12:19,300 --> 00:12:23,050 Ampak za iskanje, ki jih želite prvi udaril vprašanje 244 00:12:23,050 --> 00:12:24,780 Oznaka ali gumb slash. 245 00:12:24,780 --> 00:12:26,040 Tako drastično. 246 00:12:26,040 --> 00:12:29,000 >> In potem sem lahko poiščete za vse, kar si želim. 247 00:12:29,000 --> 00:12:33,780 Torej bom poševnica za pomišljaj, l. 248 00:12:33,780 --> 00:12:35,110 In tam je bil. 249 00:12:35,110 --> 00:12:37,450 Torej, uporabite dolgo obliko kotacijo. 250 00:12:37,450 --> 00:12:40,060 Da ne mi pomaga ugotoviti, kaj da zlasti stolpec mišljeno, ampak jaz 251 00:12:40,060 --> 00:12:44,480 Predvidevam, nekje tukaj to bi razložilo, da je. 252 00:12:44,480 --> 00:12:48,740 Tako da uporabite man strani za katerikoli ukaz da ne boste takoj razumeli. 253 00:12:48,740 --> 00:12:51,080 >> Sem prepričan, da lahko tudi človek, človek. 254 00:12:51,080 --> 00:12:53,070 Vmesnik na spletu referenčni priročniki. 255 00:12:53,070 --> 00:12:57,700 256 00:12:57,700 --> 00:13:03,570 Oh, ena zadnja, ki je morda nekoliko Pomembni so ls, dash,. 257 00:13:03,570 --> 00:13:08,490 Tako opazili, če sem naredil ls, Dobim te datoteke pet. 258 00:13:08,490 --> 00:13:11,480 Če naredim ls, dash, sem dobili veliko več datotek. 259 00:13:11,480 --> 00:13:15,350 Torej skupno stvar med vsemi temi Nove datoteke je vnaprej pika. 260 00:13:15,350 --> 00:13:21,220 >> Torej konvencije je, da se datoteka, ki se začne s piko skriti. 261 00:13:21,220 --> 00:13:25,300 Torej ne želite videti te datoteke, ki jih Ne želim, da ga imajo igraš z 262 00:13:25,300 --> 00:13:26,750 vašega imenika. 263 00:13:26,750 --> 00:13:30,020 To je le, če ste eksplicitno vprašati, Vse je v redu, ls, dash,, pokaži mi. 264 00:13:30,020 --> 00:13:32,830 Stojala za vse datoteke, vključno s skritimi narave. 265 00:13:32,830 --> 00:13:37,260 266 00:13:37,260 --> 00:13:39,270 Tako nekateri drugi ukazi. 267 00:13:39,270 --> 00:13:41,323 Oh, vprašanja v tem trenutku? 268 00:13:41,323 --> 00:13:41,746 Da. 269 00:13:41,746 --> 00:13:45,914 >> ZVOČNIK 3: Ko boste to storili ls, Kaj je pika, pika? 270 00:13:45,914 --> 00:13:46,870 >> ROB: Oh. 271 00:13:46,870 --> 00:13:48,780 Torej, to je tisto, kar sem govoril. 272 00:13:48,780 --> 00:13:50,890 To je ista stvar, kjer Lahko mi cd, pika, pika. 273 00:13:50,890 --> 00:13:56,790 Tako tehnično, pika in pika, pika, so datoteke, ki obstajajo v vsak 274 00:13:56,790 --> 00:14:03,620 imenik, kjer datoteko dot nanaša na trenutni imenik. 275 00:14:03,620 --> 00:14:06,930 Torej, če sem cd, pika, grem da ostanejo v imeniku. 276 00:14:06,930 --> 00:14:10,870 In pika, pika se vedno nanaša na Predhodna imeniku eno raven navzgor. 277 00:14:10,870 --> 00:14:18,200 Torej, če sem šel v dnevnikih in ls, dash, al, Bom videl, pika, pika. cd dot, dot 278 00:14:18,200 --> 00:14:20,390 me pripelje na prejšnjo imenik. 279 00:14:20,390 --> 00:14:24,530 280 00:14:24,530 --> 00:14:25,780 Ja. 281 00:14:25,780 --> 00:14:27,160 282 00:14:27,160 --> 00:14:28,110 OK. 283 00:14:28,110 --> 00:14:33,070 >> Torej še precej pomembna ukaz rm. 284 00:14:33,070 --> 00:14:35,650 Tako da je tisto, kar bomo uporabiti za odstranitev. 285 00:14:35,650 --> 00:14:38,100 In mi dejansko ne drugo Ukaz prvi. 286 00:14:38,100 --> 00:14:39,610 Torej mkdir. 287 00:14:39,610 --> 00:14:42,770 Mkdir je, kako si lahko ustvariti imenike. 288 00:14:42,770 --> 00:14:47,530 In bom ustvariti začasnega imenika in gredo v tej začasni imenik. 289 00:14:47,530 --> 00:14:49,590 In kot je bilo pričakovano, je prazna. 290 00:14:49,590 --> 00:14:53,680 Ampak, če ls I, dash, imam še piko in pika, pika, pika, ker se nanaša na 291 00:14:53,680 --> 00:14:54,480 trenutni imenik. 292 00:14:54,480 --> 00:14:56,170 In pika, pika nanaša Predhodna imenik. 293 00:14:56,170 --> 00:14:58,700 In tistih, ki bodo vedno obstajali, ne glede na Imenik ste palcev 294 00:14:58,700 --> 00:15:01,910 295 00:15:01,910 --> 00:15:09,010 >> In to je popolnoma nepotrebno ukaz, vendar na dotik. 296 00:15:09,010 --> 00:15:11,880 Jaz sem samo, da jo uporabljajo, ker je enostaven način za ustvarjanje datotek. 297 00:15:11,880 --> 00:15:16,180 Torej dotikajte se dotaknite b, c dotikajte je le dogaja, da ustvarijo tri datoteke z imenom, 298 00:15:16,180 --> 00:15:17,845 b in c, da so popolnoma prazen. 299 00:15:17,845 --> 00:15:20,450 300 00:15:20,450 --> 00:15:24,980 Torej točka zame ustvarjanje tistih Prvo mesto je samo zato, da rm je 301 00:15:24,980 --> 00:15:26,250 kako jih lahko odstranite. 302 00:15:26,250 --> 00:15:27,850 Torej rm,. 303 00:15:27,850 --> 00:15:30,960 To se dogaja, da me prosi, odstranite Redno prazna datoteka? 304 00:15:30,960 --> 00:15:33,170 In potem bom rekel Yes. 305 00:15:33,170 --> 00:15:39,090 >> Torej, če sem prepričani, da želim izbrisati to datoteko ne da bi se 306 00:15:39,090 --> 00:15:44,500 pozvani, odstranite redno prazno datoteko?, potem rm, dash, f se bo 307 00:15:44,500 --> 00:15:48,230 zastave, ki pravi, da na silo odstraniti, ne čeprav me spodbudilo, oh, ste 308 00:15:48,230 --> 00:15:49,710 prepričani, da želite izbrisati datoteko? 309 00:15:49,710 --> 00:15:50,810 Da, prepričan sem. 310 00:15:50,810 --> 00:15:56,050 Torej rm, dash, fb bo samo to storiti, ne da bi vprašal. 311 00:15:56,050 --> 00:15:57,950 >> Torej, kaj je naredil nekaj več imenikov. 312 00:15:57,950 --> 00:16:03,670 mkdir, TMP2, cd, TMP2, dotaknite, dotik b. 313 00:16:03,670 --> 00:16:04,300 OK. 314 00:16:04,300 --> 00:16:08,180 Sedaj želim odstraniti TMP2 kot imenik. 315 00:16:08,180 --> 00:16:10,316 Torej rm TMP2. 316 00:16:10,316 --> 00:16:12,920 Ne morete odstraniti TMP2, je imenik. 317 00:16:12,920 --> 00:16:21,370 Torej, vprašanje tukaj je, da rm ne takoj delati na imenikov. 318 00:16:21,370 --> 00:16:26,530 To je pomenilo le za datoteke, kot so non-imeniške datoteke. 319 00:16:26,530 --> 00:16:30,800 >> In kaj lahko storimo Tukaj je rm, dash, r. 320 00:16:30,800 --> 00:16:35,160 , Ki stoji za rekurzivno, ki bi lahko nič ne pomeni, da vas še ni. 321 00:16:35,160 --> 00:16:38,280 Toda, ko prideš na rekurzija, to bo pomenilo več. 322 00:16:38,280 --> 00:16:43,540 Torej rm, dash, r, TMP2 bo rekurzivno šel v ta imenik. 323 00:16:43,540 --> 00:16:45,540 Tako se spustite v imeniku TMP2? 324 00:16:45,540 --> 00:16:47,330 Ja, gremo v to. 325 00:16:47,330 --> 00:16:49,360 Ali želimo odstraniti TMP2 /? 326 00:16:49,360 --> 00:16:49,745 Da. 327 00:16:49,745 --> 00:16:51,830 Ali želimo odstraniti TMP2 / b? 328 00:16:51,830 --> 00:16:52,840 Da. 329 00:16:52,840 --> 00:16:55,170 Zdaj želimo odstraniti Imenik TMP2? 330 00:16:55,170 --> 00:16:56,040 Da. 331 00:16:56,040 --> 00:16:58,410 In tako zdaj imenik in vse, kar je v notranjosti 332 00:16:58,410 --> 00:16:59,660 o je bil odstranjen. 333 00:16:59,660 --> 00:17:02,850 334 00:17:02,850 --> 00:17:07,250 >> Tam je tehnično vodenje rmdir , ki jo lahko uporabite za odstranjevanje 335 00:17:07,250 --> 00:17:11,670 imeniki, vendar pa deluje le na praznih imenikov anyway. 336 00:17:11,670 --> 00:17:14,109 In glej, da naj samo narediti mkdir, TMP2 znova. 337 00:17:14,109 --> 00:17:15,940 TMP2, se dotaknite. 338 00:17:15,940 --> 00:17:16,800 OK. 339 00:17:16,800 --> 00:17:22,770 Torej, če sem poskusil odstraniti dirtmp2, da bomo pravijo, imenik ni prazen. 340 00:17:22,770 --> 00:17:29,540 Zato sem precej nikoli ne uporabljajte remove dir ukaz, ker itak rm, dash, 341 00:17:29,540 --> 00:17:35,140 r bo delo na prazne imenike in niso prazne imenike. 342 00:17:35,140 --> 00:17:37,760 >> In tudi, če ne želite imeti iti skozi celoten proces 343 00:17:37,760 --> 00:17:40,720 spuščati v imeniku in odstranjevanje vsako posamezno datoteko, rm, 344 00:17:40,720 --> 00:17:44,190 dash, RF, TMP2. 345 00:17:44,190 --> 00:17:45,670 In zdaj ga ni več. 346 00:17:45,670 --> 00:17:51,220 >> Nekaj ​​biti previdni pa je rm, dash, RF. 347 00:17:51,220 --> 00:17:53,660 In strah me celo vrsto, ker če sem slučajno 348 00:17:53,660 --> 00:17:55,090 pritisnite tipko Enter ali kaj podobnega. 349 00:17:55,090 --> 00:18:02,735 Torej rm, dash, RF, Tilda bi brez me je spodbudilo, f ne pozove 350 00:18:02,735 --> 00:18:05,670 mi, se bo samodejno odstrani moje celo domači imenik in 351 00:18:05,670 --> 00:18:06,780 vse v njem. 352 00:18:06,780 --> 00:18:11,460 Torej si lahko mislite, da je neumno stvar. 353 00:18:11,460 --> 00:18:12,830 In dobro je. 354 00:18:12,830 --> 00:18:18,600 >> Vendar se lahko zgodi zelo enostavno z nesreča, če, recimo, sem si želel, da se odstranijo 355 00:18:18,600 --> 00:18:21,640 moja slash, vhost imenik. 356 00:18:21,640 --> 00:18:26,610 In ravno v hitrem tipkanju, Po naključju sem to storiti. 357 00:18:26,610 --> 00:18:31,880 Da bo rekurzivno odstraniti oba moja dom in imenik vhost 358 00:18:31,880 --> 00:18:35,450 v tem posebnem imeniku, ki so pravkar se zgodi, da ne obstaja prav zdaj. 359 00:18:35,450 --> 00:18:39,520 Vendar bi to še vedno odstranite moje celo domači imenik. 360 00:18:39,520 --> 00:18:43,090 Najmanj jih nimajo F, da bi me najprej vpraša. 361 00:18:43,090 --> 00:18:45,670 In jaz bi bilo všeč, oh, ne, Ne želim, da to storim. 362 00:18:45,670 --> 00:18:50,570 Ampak ljudje, poševnica, vključno jaz ponavadi dobijo v 363 00:18:50,570 --> 00:18:53,090 navado vedno RF-ing. 364 00:18:53,090 --> 00:18:58,713 Tudi redna datoteke, da sem lahko samo RM c, jaz ponavadi samo rm, dash, RF, c. 365 00:18:58,713 --> 00:19:01,330 Samo bodi previden, ko ste RF-ing. 366 00:19:01,330 --> 00:19:03,160 >> SPEAKER 4: Kaj storiti, C? 367 00:19:03,160 --> 00:19:11,570 >> ROB: C govorim o tem, da je C datoteko v tem imeniku, ki rm, c. 368 00:19:11,570 --> 00:19:15,730 >> JOSEPH: In še bolj nevarno, če uporabljate zvezda, se nanaša na vse, kar je v 369 00:19:15,730 --> 00:19:16,450 imenik. 370 00:19:16,450 --> 00:19:20,040 Torej, kaj sem ponavadi nagnjeni k storiti, je, da bom pojdite v imenik in želim, da 371 00:19:20,040 --> 00:19:21,510 odstranite vse datoteke tam. 372 00:19:21,510 --> 00:19:23,640 Torej rm, dash, RF, zvezda. 373 00:19:23,640 --> 00:19:25,700 >> ROB: Ja. 374 00:19:25,700 --> 00:19:26,780 Rm, dash, RF, zvezda. 375 00:19:26,780 --> 00:19:29,530 >> JOSEPH: In če niste previdni kaj ste v imenik - 376 00:19:29,530 --> 00:19:33,340 Nisem bil v temp, vendar sem bil po naključju v mojem domačem imeniku, 377 00:19:33,340 --> 00:19:35,450 potem bom odstranite vse v mojem domačem imeniku. 378 00:19:35,450 --> 00:19:39,095 In sem dejansko naredil, da prej, in Mislim, da ste to storili pred ali 379 00:19:39,095 --> 00:19:40,640 Jay je naredil, da prej. 380 00:19:40,640 --> 00:19:42,480 >> ROB: sem pomotoma odstranili - 381 00:19:42,480 --> 00:19:44,480 tako prezreti, da je ukaz za bit. 382 00:19:44,480 --> 00:19:45,800 >> JOSEPH: Ni zabavno. 383 00:19:45,800 --> 00:19:52,650 >> ROB: Torej v bin slash je kup binarnih datotek, kjer boste 384 00:19:52,650 --> 00:19:54,840 poznati, kot na Jek. 385 00:19:54,840 --> 00:20:00,740 No, Jek in v bistvu vsi ti Stvari, da tečem na ukaz 386 00:20:00,740 --> 00:20:02,060 linije so v tem slash bin. 387 00:20:02,060 --> 00:20:03,090 >> JOSEPH: Kot ls je tukaj. 388 00:20:03,090 --> 00:20:06,285 >> ROB: Torej pika, poševnica, ls bi Seznam tega imenika. 389 00:20:06,285 --> 00:20:08,120 >> JOSEPH: Rm je tudi v tem imeniku. 390 00:20:08,120 --> 00:20:12,770 >> ROB: sem pomotoma rm, RF-ed bin, ki odstrani ukaza sem lahko 391 00:20:12,770 --> 00:20:14,380 morda kdaj želeli. 392 00:20:14,380 --> 00:20:18,085 Ki potem sem zopet Nova Appliance na tej točki. 393 00:20:18,085 --> 00:20:20,170 >> JOSEPH: Zato bodite zelo previdni pri uporabite ta ukaz. 394 00:20:20,170 --> 00:20:21,120 >> PUBLIKA: [neslišno]? 395 00:20:21,120 --> 00:20:22,640 >> ROB: Da. 396 00:20:22,640 --> 00:20:24,135 To je tudi slabo navado priti v. 397 00:20:24,135 --> 00:20:27,920 398 00:20:27,920 --> 00:20:30,170 Če opazite, da sem zdaj - 399 00:20:30,170 --> 00:20:33,580 No, ne moreš opazili, vendar moj zoom-in morda lahko. 400 00:20:33,580 --> 00:20:35,360 Torej, zdaj sem root @ aparat. 401 00:20:35,360 --> 00:20:39,790 Torej jharvard je uporabnik želimo da vedno uporabljate. 402 00:20:39,790 --> 00:20:43,820 Root je uporabnik, ki ima dovoljenje absolutno ničesar. 403 00:20:43,820 --> 00:20:50,260 >> Torej opazil, ko sem jharvard, če poskušam cd - 404 00:20:50,260 --> 00:20:52,461 kaj je imenik, ki? 405 00:20:52,461 --> 00:20:53,980 Oh, koren je dober primer. 406 00:20:53,980 --> 00:20:54,950 Torej cd, korenina. 407 00:20:54,950 --> 00:20:56,030 Dovoljenje zavrnjeno. 408 00:20:56,030 --> 00:21:00,060 Ker če gledamo na tem seznamu - 409 00:21:00,060 --> 00:21:02,410 in še enkrat, ti ne bi bilo treba povsem razumem. 410 00:21:02,410 --> 00:21:09,210 A ti trije pomišljaji govorijo da ne pustite, da kateri koli drugi 411 00:21:09,210 --> 00:21:11,120 Uporabnik v tem imeniku. 412 00:21:11,120 --> 00:21:14,540 In imenik zgodi, da v lasti uporabnika root. 413 00:21:14,540 --> 00:21:20,310 >> Torej dejstvo, da sem jharvard in ne Tisti, ki ni koren je dovoljeno v 414 00:21:20,310 --> 00:21:23,490 ta imenik, kar pomeni, da sem bo dobil dovoljenje zavrnjeno, ko sem 415 00:21:23,490 --> 00:21:25,160 poskusite cd vanjo. 416 00:21:25,160 --> 00:21:31,370 Torej, ko sem korenina, imam dovoljenje za naredil absolutno ničesar, vključno 417 00:21:31,370 --> 00:21:34,660 brisanje bistvenih datotek do naprave in 418 00:21:34,660 --> 00:21:36,640 uniči celotno stvar. 419 00:21:36,640 --> 00:21:41,240 >> Torej, to je slaba navada, da se v Pravkar tava okoli vašega 420 00:21:41,240 --> 00:21:43,650 operacijski sistem kot root. 421 00:21:43,650 --> 00:21:46,520 Sem ga vseeno. 422 00:21:46,520 --> 00:21:48,710 Vprašanja? 423 00:21:48,710 --> 00:21:52,230 In bom izhod koren, ostanejo kot jharvard. 424 00:21:52,230 --> 00:21:54,510 OK. 425 00:21:54,510 --> 00:21:55,820 >> Bolj ustrezne ukaze. 426 00:21:55,820 --> 00:22:03,975 Torej grem nazaj v našo temp, mv ukaz stoji za potezo. 427 00:22:03,975 --> 00:22:05,450 Lahko premaknete. 428 00:22:05,450 --> 00:22:07,610 Zdaj želimo, da ga pokličete b, tako da zdaj se imenuje b. 429 00:22:07,610 --> 00:22:10,650 Ali pa morda želimo, da se premaknete b gor en imenik. 430 00:22:10,650 --> 00:22:12,730 Torej, zdaj prazna tem imeniku je. 431 00:22:12,730 --> 00:22:15,410 Jaz bom šel nazaj na moj domači imenik, in vidimo, da je b v tukaj, ker 432 00:22:15,410 --> 00:22:19,230 domači imenik je bil eden imenik up od imenik, ki je bil b prijavite 433 00:22:19,230 --> 00:22:24,710 434 00:22:24,710 --> 00:22:26,580 >> Tam je tudi cp. 435 00:22:26,580 --> 00:22:33,210 Torej, cp je kopirati super odsek, pika, besedilo. 436 00:22:33,210 --> 00:22:35,750 Ne morem ga poklicati s, pika, besedilo. 437 00:22:35,750 --> 00:22:39,780 Zdaj imamo tako super odsek, pika, besedilo in s, pika, besedilo. 438 00:22:39,780 --> 00:22:41,340 To deluje tudi na imenikov. 439 00:22:41,340 --> 00:22:44,040 440 00:22:44,040 --> 00:22:46,560 Jaz RF-ED eno datoteko. 441 00:22:46,560 --> 00:22:48,200 Torej cp - 442 00:22:48,200 --> 00:22:51,710 No, najprej poskusimo CP NTU TMP2. 443 00:22:51,710 --> 00:22:53,220 Tako opustitev začasni imenik. 444 00:22:53,220 --> 00:22:57,440 Torej podobno rm, privzeto vedenje je, da ne deluje na imenikov. 445 00:22:57,440 --> 00:23:01,570 >> In spet, podobno rm, privzeto vedenje - dobro, da bi jo na delo 446 00:23:01,570 --> 00:23:04,230 z imenikov je, dash-r proč. 447 00:23:04,230 --> 00:23:09,240 Torej kopiranje rekurzivno temp Imenik v TMP2. 448 00:23:09,240 --> 00:23:13,700 In tako zdaj imamo tako tmp in TMP2, in da ni to koristno, saj tmp 449 00:23:13,700 --> 00:23:16,814 je prazna na prvem mestu. 450 00:23:16,814 --> 00:23:18,660 TMP2. 451 00:23:18,660 --> 00:23:22,680 >> Zdaj pa kopirati tmp v TMP2. 452 00:23:22,680 --> 00:23:27,900 In vidimo, da ima TMP2 tudi datoteko , ker imenik in 453 00:23:27,900 --> 00:23:32,220 vse, kar je znotraj, da Imenik je kopiral. 454 00:23:32,220 --> 00:23:36,000 In da lahko nekoliko koristno če bi rekli, da delate 455 00:23:36,000 --> 00:23:38,860 na problem določiti enega - 456 00:23:38,860 --> 00:23:41,320 ali dejansko, kasneje problem seta še bolj pomembno, saj 457 00:23:41,320 --> 00:23:43,660 bo en kup spisov in stvari. 458 00:23:43,660 --> 00:23:47,010 >> Ampak si želite, za delček drugič, ti si kot, v redu sem 459 00:23:47,010 --> 00:23:50,210 bo poskusil nekaj drugega. 460 00:23:50,210 --> 00:23:57,860 Naj samo kopirati mojo celotno pset1 Imenik v pset1 backup, tako da, če 461 00:23:57,860 --> 00:24:01,490 Sem na koncu vijačenje stvari, sem lahko pojdi nazaj v svoj backup imenika. 462 00:24:01,490 --> 00:24:07,340 Obstaja več ustrezni način različic varnostno kopiranje kode, ampak 463 00:24:07,340 --> 00:24:10,610 To je vedno hiter način, da samo, da poskrbite, da imate kopijo nečesa 464 00:24:10,610 --> 00:24:11,860 da ste o tem, da se spremeni. 465 00:24:11,860 --> 00:24:16,974 466 00:24:16,974 --> 00:24:27,090 >> Torej odmev je tudi ukaz one-off, da vrsta sillily bo samo tiskanje na 467 00:24:27,090 --> 00:24:31,540 ukazni vrstici, kaj si želel ponoviti. 468 00:24:31,540 --> 00:24:32,680 Torej echo hi. 469 00:24:32,680 --> 00:24:35,420 Mi bomo samo tiskanje hi. 470 00:24:35,420 --> 00:24:38,030 Echo zdravo svet. 471 00:24:38,030 --> 00:24:39,800 Bomo natisnete zdravo svet. 472 00:24:39,800 --> 00:24:44,350 To pride v uporabo, ko začnejo združevati ukaze. 473 00:24:44,350 --> 00:24:48,300 >> In spet, ne pričakujem, da boste v celoti še razumem, ampak to je 474 00:24:48,300 --> 00:24:49,910 kaj videti. 475 00:24:49,910 --> 00:24:52,470 In potem, če ste Googling za primere ali se zavedaš, da želite storiti 476 00:24:52,470 --> 00:24:55,030 nekaj, kar je lahko koristno. 477 00:24:55,030 --> 00:24:59,020 Torej dajmo, kot na primer, Je tako, dash, l. 478 00:24:59,020 --> 00:25:01,160 Tako da tukaj ne vidim izhoda LS, dash, l. 479 00:25:01,160 --> 00:25:06,560 In sem rekel, v redu, želim shranite, da v datoteko. 480 00:25:06,560 --> 00:25:11,620 Vse te proizvodnje tukaj, želim dati v ločeno datoteko. 481 00:25:11,620 --> 00:25:16,080 >> Torej, to malo večja kot simbol je tisto, kar bomo poklical. 482 00:25:16,080 --> 00:25:18,570 Mi smo preusmerjanje izhod v datoteko. 483 00:25:18,570 --> 00:25:21,680 Recimo datoteke bla, ker je to kaj sem se nagibajo, da ga vedno pokličem. 484 00:25:21,680 --> 00:25:26,430 Sedaj bomo videli smo datoteko bla tukaj. 485 00:25:26,430 --> 00:25:30,270 In če sem jo odprla, bom videl, da je ravno izhod iz ukaza 486 00:25:30,270 --> 00:25:31,990 da sem tekel. 487 00:25:31,990 --> 00:25:36,020 In podobno, lahko - 488 00:25:36,020 --> 00:25:41,260 če je bil to izhod v datoteko, to je dobil prispevek iz datoteke. 489 00:25:41,260 --> 00:25:45,790 490 00:25:45,790 --> 00:25:47,050 Kaj je ukaz, ki sem - 491 00:25:47,050 --> 00:25:49,620 >> JOSEPH: Mislim, da lahko uporabite bolj ali manj verjetno. 492 00:25:49,620 --> 00:25:53,031 >> ROB: Kaj pa nekaj manj bla? 493 00:25:53,031 --> 00:25:53,930 Ne vem. 494 00:25:53,930 --> 00:25:57,870 Če ste prišli na ta scenarij, kot je tam je psets, da je to koristno za. 495 00:25:57,870 --> 00:25:59,950 >> JOSEPH: Lahko cev je v odmev. 496 00:25:59,950 --> 00:26:02,920 Pipe datoteke v odmev, da ga vidim. 497 00:26:02,920 --> 00:26:04,060 >> ROB: To je cev. 498 00:26:04,060 --> 00:26:04,860 >> JOSEPH: Žal mi je. 499 00:26:04,860 --> 00:26:06,190 >> ROB: V redu. 500 00:26:06,190 --> 00:26:12,720 Torej je to izhod v datoteko. 501 00:26:12,720 --> 00:26:18,700 To je dobil besedilo iz datoteke in jo izroči programa. 502 00:26:18,700 --> 00:26:20,560 In boste videli tudi tega tipa. 503 00:26:20,560 --> 00:26:24,410 Torej, to je nekako počne oboje hkrati. 504 00:26:24,410 --> 00:26:28,310 In pravzaprav, bom predstavil dva nova ukaze, samo da bi jo uporabljali. 505 00:26:28,310 --> 00:26:33,060 >> Zgodovina je priročen ukaz, ki je le bo izpisal seznam 506 00:26:33,060 --> 00:26:34,940 kaj sem jih kdaj teči ukazno vrstico. 507 00:26:34,940 --> 00:26:38,290 Tako vidimo tukaj vse, kar imam ki poteka že ves ta čas. 508 00:26:38,290 --> 00:26:39,540 Veliko ls-ih. 509 00:26:39,540 --> 00:26:41,570 510 00:26:41,570 --> 00:26:48,470 >> In še koristen ukaz grep da njegov namen pa je treba preiskati 511 00:26:48,470 --> 00:26:52,060 besedilo, ki iščejo vzorce, no, išče za karkoli 512 00:26:52,060 --> 00:26:53,310 želim, da bi si za. 513 00:26:53,310 --> 00:26:59,770 In tako priročna uporaba, tukaj je, recimo želimo, da zgrabite zgodovino. 514 00:26:59,770 --> 00:27:03,860 In hočem, da si za ukaze kjer sem - kaj je 515 00:27:03,860 --> 00:27:05,000 uporabna ena iskati? 516 00:27:05,000 --> 00:27:06,898 >> JOSEPH: [neslišno]? 517 00:27:06,898 --> 00:27:09,710 >> ROB: Ali pa si samo poglej za vse dotakne, iz kakršnega koli razloga. 518 00:27:09,710 --> 00:27:13,850 Torej, to je tisto, kar bo izgledal. 519 00:27:13,850 --> 00:27:15,560 In ti ne bi bilo treba v celoti Razumem, da. 520 00:27:15,560 --> 00:27:20,570 Ampak ideja je tukaj, zgodovina daje Enako izhod je to storila tu 521 00:27:20,570 --> 00:27:25,030 kje je to, tiskanje na celoten Zgodovina vsega, kar sem jih kdaj teči. 522 00:27:25,030 --> 00:27:27,030 Mi smo nato mimo, da - 523 00:27:27,030 --> 00:27:30,230 Tako namesto da bi jo tiskanje na zaslon, želimo prenesti, da 524 00:27:30,230 --> 00:27:34,640 Ukaz grep, ki išče vse primerke besede dotik. 525 00:27:34,640 --> 00:27:40,280 >> In tako z uporabo te kombinacije Orodja za zgodovino in grep, vidim, OK, 526 00:27:40,280 --> 00:27:44,820 tukaj je vse ukaze kar sem jih kdaj teči, in tukaj je nekoliko skupno eno. 527 00:27:44,820 --> 00:27:45,510 Mi smo na dnu. 528 00:27:45,510 --> 00:27:47,930 In to je tudi mi dali ukaz Pravkar sem tekel, da je 529 00:27:47,930 --> 00:27:51,240 Beseda dotik v njej. 530 00:27:51,240 --> 00:27:58,500 Ampak cev je zelo uporabna stvar za združevanje več programov. 531 00:27:58,500 --> 00:28:04,670 In dejansko, to je bližnjica za najete me izhod zgodovina vložiti bla, in 532 00:28:04,670 --> 00:28:10,190 Naj grep z datotečnim bla kot tisto, kar sem želel pogledati. 533 00:28:10,190 --> 00:28:13,460 Torej cev je samo bližnjica pri teh dveh ukazov. 534 00:28:13,460 --> 00:28:13,950 Da. 535 00:28:13,950 --> 00:28:15,306 >> SPEAKER 4: [neslišno]? 536 00:28:15,306 --> 00:28:16,556 >> ROB: Da. 537 00:28:16,556 --> 00:28:20,142 538 00:28:20,142 --> 00:28:21,110 Kaj je - 539 00:28:21,110 --> 00:28:21,858 Oh. 540 00:28:21,858 --> 00:28:24,820 Naj testiranje je. 541 00:28:24,820 --> 00:28:29,170 Torej, mačka, pes, ribe. 542 00:28:29,170 --> 00:28:33,770 Torej, želim, da grep. 543 00:28:33,770 --> 00:28:37,680 Dash, r, ponovno, se bo rekurzivno, zato želim, da se spustimo 544 00:28:37,680 --> 00:28:38,870 vse imenike. 545 00:28:38,870 --> 00:28:43,210 Želim rekurzivno grep za vse - in naj se začasno 546 00:28:43,210 --> 00:28:44,460 To se mi s poti. 547 00:28:44,460 --> 00:28:48,650 548 00:28:48,650 --> 00:28:50,740 Ignoriraj me. 549 00:28:50,740 --> 00:28:51,360 OK. 550 00:28:51,360 --> 00:28:56,740 >> Torej, želim, da začasno grep za vse primerke besede rib. 551 00:28:56,740 --> 00:29:00,510 In tako sem, kaj počnem, je grepping rekurzivno besedo rib. 552 00:29:00,510 --> 00:29:05,410 In zvezda pomeni več kot vse te datoteke v tem imeniku. 553 00:29:05,410 --> 00:29:08,930 In zato mi je dal dovoljenje zavrnjeno, ker ni dovoljeno, da se glasi, da 554 00:29:08,930 --> 00:29:10,060 Zlasti datoteke. 555 00:29:10,060 --> 00:29:14,040 Vendar je bilo ugotovljeno, ribe v datoteki, test. 556 00:29:14,040 --> 00:29:18,450 >> Lahko bi tudi rekli, še posebej, samo jaz želeli videti v datotečnem bla, v 557 00:29:18,450 --> 00:29:19,580 tem primeru ga ne boste našli ničesar. 558 00:29:19,580 --> 00:29:20,990 Želim samo, da si v datoteki, test. 559 00:29:20,990 --> 00:29:22,240 To boste našli ribe. 560 00:29:22,240 --> 00:29:25,980 561 00:29:25,980 --> 00:29:29,260 To je zelo koristen ukaz vedeti, na splošno. 562 00:29:29,260 --> 00:29:31,640 Obstaja nekaj alternativ grep ki naj bi se bolj 563 00:29:31,640 --> 00:29:36,780 programer prijazen, vendar sem se nagibajo da še vedno pade nazaj na grep. 564 00:29:36,780 --> 00:29:38,030 Vprašanja? 565 00:29:38,030 --> 00:29:39,965 566 00:29:39,965 --> 00:29:40,919 OK. 567 00:29:40,919 --> 00:29:42,520 >> Ali obstajajo tudi drugi ukazi? 568 00:29:42,520 --> 00:29:45,270 Oh. 569 00:29:45,270 --> 00:29:48,370 Just one-off ena, da sem vedno Ugotovijo, da bo zabavno je cal. 570 00:29:48,370 --> 00:29:55,610 Torej opazil, ko sem v to ljubko celozaslonski način, nimam takega vrh 571 00:29:55,610 --> 00:29:56,720 Orodna vrstica ali kaj podobnega. 572 00:29:56,720 --> 00:29:59,530 Torej cal me samo daje lepo koledar, ki je prav 573 00:29:59,530 --> 00:30:02,380 zdaj odrezan, predvidevam. 574 00:30:02,380 --> 00:30:04,770 Ampak lepo ukaz. 575 00:30:04,770 --> 00:30:06,540 >> JOSEPH: To je [neslišno]. 576 00:30:06,540 --> 00:30:09,170 Drugi ukazi, ki jih lahko imajo videl vključujejo Jek in narediti. 577 00:30:09,170 --> 00:30:11,180 Mi bomo šli čez njih Več podrobnosti kasneje. 578 00:30:11,180 --> 00:30:13,400 Ampak, če si delal na PSET, morate biti 579 00:30:13,400 --> 00:30:15,160 seznanjeni s temi. 580 00:30:15,160 --> 00:30:16,640 >> ROB: V redu. 581 00:30:16,640 --> 00:30:18,520 Vprašanja o stvareh ukazno vrstico? 582 00:30:18,520 --> 00:30:22,450 583 00:30:22,450 --> 00:30:23,260 Vse je v redu. 584 00:30:23,260 --> 00:30:27,416 Torej gremo na nekatere Povezanih C stvari. 585 00:30:27,416 --> 00:30:28,666 Spremenljivke math. 586 00:30:28,666 --> 00:30:39,078 587 00:30:39,078 --> 00:30:40,060 OK. 588 00:30:40,060 --> 00:30:45,230 Torej, tako kot smo imeli matematiko v nič, lahko uporabite tudi matematiko v C. 589 00:30:45,230 --> 00:30:49,270 >> Preden smo prišli do, da v celoti, tako spremenljivke. 590 00:30:49,270 --> 00:30:53,920 Ne pozabite, da vsakič, ko ugotovi, spremenljivka kot int x ali float y, vas 591 00:30:53,920 --> 00:30:56,710 dati ga vnesite, preden Ime spremenljivke. 592 00:30:56,710 --> 00:31:03,020 Torej tipi smo videli doslej, so int, float, double, dolgo dolgo, kar sem 593 00:31:03,020 --> 00:31:06,150 dejansko ne vem, če smo že razvidno, da doslej. 594 00:31:06,150 --> 00:31:07,700 >> Obstajajo nekatere druge narave. 595 00:31:07,700 --> 00:31:09,990 Smo videli char. 596 00:31:09,990 --> 00:31:13,920 Tukaj je kratka, kar je, kot da je Nasprotje dolgo dolgo kjer je 597 00:31:13,920 --> 00:31:16,650 manjša od celo število. 598 00:31:16,650 --> 00:31:18,580 Videli smo tudi niz. 599 00:31:18,580 --> 00:31:23,070 Torej, kaj je tako posebnega niza? 600 00:31:23,070 --> 00:31:25,350 Zakaj bi jaz rekel, da je ni čisto tako notr? 601 00:31:25,350 --> 00:31:27,030 >> SPEAKER 4: To v resnici ne obstaja. 602 00:31:27,030 --> 00:31:27,990 >> ROB: Ja. 603 00:31:27,990 --> 00:31:31,820 Torej, edini razlog, da imamo niz je zato, ker ko boste to storili 604 00:31:31,820 --> 00:31:33,215 hash, vključujejo cs50.h. 605 00:31:33,215 --> 00:31:36,530 606 00:31:36,530 --> 00:31:42,670 In bomo videli primere kasneje - oh, da ne obravnava, da je dobro - 607 00:31:42,670 --> 00:31:46,160 kjer cs50.h počne nekaj po vzoru vrste 608 00:31:46,160 --> 00:31:49,230 def, znak zvezda, niz. 609 00:31:49,230 --> 00:31:53,280 >> In tako, da je rekel, da mi sploh ne veš kaj char zvezda je še. 610 00:31:53,280 --> 00:31:56,770 A to se pravi, želimo niz. 611 00:31:56,770 --> 00:32:00,250 Vsak kraj, ste bili z uporabo niza, si bi bilo mogoče z uporabo char zvezdo, 612 00:32:00,250 --> 00:32:04,670 ki dejansko je tip, ki obstaja v jeziku C. 613 00:32:04,670 --> 00:32:06,680 Ampak bomo prišli do tega. 614 00:32:06,680 --> 00:32:07,860 Oh, in gre nazaj. 615 00:32:07,860 --> 00:32:10,170 Gladka. 616 00:32:10,170 --> 00:32:15,370 >> Torej isto stvar z BOOL kjer true in false. 617 00:32:15,370 --> 00:32:22,510 To ni res vgrajenega tipa v C. Namesto tega, to je samo, ima to 618 00:32:22,510 --> 00:32:23,740 vrednost nič? 619 00:32:23,740 --> 00:32:26,200 Potem bomo pa le razmisli , da je lažna. 620 00:32:26,200 --> 00:32:27,350 Ali ima to vrednost - 621 00:32:27,350 --> 00:32:30,530 dobro, ima to vsaka vrednost, ki ni enaka nič? 622 00:32:30,530 --> 00:32:32,200 Potem bomo pa menijo, da bi bilo res. 623 00:32:32,200 --> 00:32:35,940 Torej, ena je res, dve je res, kaj različen od nič, je res. 624 00:32:35,940 --> 00:32:38,710 625 00:32:38,710 --> 00:32:42,790 Torej to so tiste,. 626 00:32:42,790 --> 00:32:47,624 Vprašanja o razglasitvi spremenljivk in spremenljivka vrste in vse to? 627 00:32:47,624 --> 00:32:48,100 Ja. 628 00:32:48,100 --> 00:32:52,384 >> SPEAKER 4: Za dolgo dolgo, v knjigi, je dejal, da je bilo treba dolgo dolgo int. 629 00:32:52,384 --> 00:32:54,288 Vendar pa bo le dolgo dolgo deluje? 630 00:32:54,288 --> 00:32:58,210 631 00:32:58,210 --> 00:33:01,470 >> ROB: Torej te vrste modifikatorjev. 632 00:33:01,470 --> 00:33:04,170 Torej int x. 633 00:33:04,170 --> 00:33:07,710 Tako bomo lahko rekli tudi nepodpisani int x. 634 00:33:07,710 --> 00:33:09,640 Lahko rečemo, kratka int x. 635 00:33:09,640 --> 00:33:12,570 Lahko rečemo, dolgo dolgo int x. 636 00:33:12,570 --> 00:33:17,250 Ampak precej koli od teh stvari, ki sem pravkar rekel, nepodpisani int, short int, 637 00:33:17,250 --> 00:33:21,480 dolgo dolgo int, lahko znebite int in se bo le domnevati, 638 00:33:21,480 --> 00:33:22,510 da si mislil int. 639 00:33:22,510 --> 00:33:26,045 Torej nepodpisani x, kar pomeni le - 640 00:33:26,045 --> 00:33:29,400 veš, kako običajno pri notr, lahko rečete x je enaka negativne 3? 641 00:33:29,400 --> 00:33:31,636 Z nepodpisani int, ne moreš. 642 00:33:31,636 --> 00:33:34,480 >> JOSEPH: In še enkrat, za zaprtimi vrati, Vprašanje je, kaj je razlika 643 00:33:34,480 --> 00:33:37,796 med dolgem notr in šele dolgo časa? 644 00:33:37,796 --> 00:33:38,410 >> ROB: Ja. 645 00:33:38,410 --> 00:33:42,850 Torej bom skoraj nikoli napisati dolgo dolgo int. 646 00:33:42,850 --> 00:33:44,100 Bom napisal dolgo dolgo. 647 00:33:44,100 --> 00:33:47,770 648 00:33:47,770 --> 00:33:50,636 >> JOSEPH: Kakšno vprašanje? 649 00:33:50,636 --> 00:33:51,886 >> ROB: OK. 650 00:33:51,886 --> 00:33:56,180 651 00:33:56,180 --> 00:34:02,390 Tako bedni opomin, da je, kako izjavljamo spremenljivko in inicializacijo 652 00:34:02,390 --> 00:34:04,450 spremenljiva in razglasi drugo spremenljiva in inicializacijo 653 00:34:04,450 --> 00:34:05,870 vse v enem koraku. 654 00:34:05,870 --> 00:34:09,370 Torej deklaracija spremenljivke in inicializacijo spremenljivke nimajo 655 00:34:09,370 --> 00:34:11,120 do, vendar lahko na isti liniji. 656 00:34:11,120 --> 00:34:15,409 657 00:34:15,409 --> 00:34:20,060 >> Torej imamo standardnih operaterji math da ste navajeni - 658 00:34:20,060 --> 00:34:22,199 plus, minus, razkorak, krat. 659 00:34:22,199 --> 00:34:24,389 Tam je tudi modulu, kar bomo videli. 660 00:34:24,389 --> 00:34:29,060 Ni vsaj C, vgrajen moč 661 00:34:29,060 --> 00:34:31,765 Potenciranje operater strešica. 662 00:34:31,765 --> 00:34:33,770 No, pa je operater strešica, vendar to ni moč. 663 00:34:33,770 --> 00:34:34,239 >> JOSEPH: Ampak to ni Potenciranje, ja. 664 00:34:34,239 --> 00:34:36,210 >> ROB: Ne uporabljajte Caret domnevati, da to pomeni, 665 00:34:36,210 --> 00:34:39,980 kot kvadrat ali karkoli. 666 00:34:39,980 --> 00:34:42,289 Torej nekaj stvari, da v misel o delitvi. 667 00:34:42,289 --> 00:34:46,282 668 00:34:46,282 --> 00:34:48,880 Jaz bom stal. 669 00:34:48,880 --> 00:34:51,315 Tako razglašena začetnih odgovor. 670 00:34:51,315 --> 00:34:54,670 Tako smo govoriš float odgovor enak 1 deljeno z 10. 671 00:34:54,670 --> 00:34:57,500 Natisni odgovor na dve decimalni mesti. 672 00:34:57,500 --> 00:35:02,180 >> In to je ena od stvari, ki sem bi človek printf da ugotovimo, da 673 00:35:02,180 --> 00:35:05,110 Kaj za vraga pa%, pika, 2f pomeni? 674 00:35:05,110 --> 00:35:07,930 In to samo pomeni, no, ignoriranje 0.2. 675 00:35:07,930 --> 00:35:10,420 In%, f je tisto, kar bomo uporabili natisniti, da plavajo. 676 00:35:10,420 --> 00:35:15,370 0.2 je rekel, da print izplavajo na dve decimalni mesti. 677 00:35:15,370 --> 00:35:19,600 Tako da je ta program ima napako, in morda so pred tem videli v nekaterih 678 00:35:19,600 --> 00:35:20,870 Pred CS seveda. 679 00:35:20,870 --> 00:35:22,170 Ampak kaj je to bug? 680 00:35:22,170 --> 00:35:23,050 >> SPEAKER 5: Zero. 681 00:35:23,050 --> 00:35:24,130 >> ROB: Ja. 682 00:35:24,130 --> 00:35:29,630 Torej, ko smo rekli, odgovor je enak 1 deljeno z 10, smo želeli 683 00:35:29,630 --> 00:35:31,610 odgovor na 0,1. 684 00:35:31,610 --> 00:35:37,450 Toda 1 deljeno z 10, 1 je celo število, 10 je celo število. 685 00:35:37,450 --> 00:35:41,060 In tako, ko mi celo, deljen z celo, da bomo dobili nazaj 686 00:35:41,060 --> 00:35:42,190 celo število. 687 00:35:42,190 --> 00:35:43,660 Torej 1 deljeno z 10 je 0,1. 688 00:35:43,660 --> 00:35:46,760 >> Ker je treba, da nam celo, to je le, da bo vrgel proč, da 689 00:35:46,760 --> 00:35:49,410 decimalno mesto, in pravijo, da Odgovor je 0. 690 00:35:49,410 --> 00:35:55,314 In tako, ko smo natisniti odgovoriti tukaj, da se bo tiskanje 0,00. 691 00:35:55,314 --> 00:35:58,430 >> JOSEPH: In samo kot opomba, da je dejansko vrže proč, kaj je po 692 00:35:58,430 --> 00:35:59,390 decimalno vejico. 693 00:35:59,390 --> 00:36:03,180 Torej, če si imel namesto 6 deljeno s 10, si morda mislite, da bi vam 694 00:36:03,180 --> 00:36:05,200 0.6 in potem bi zaokrožiti na 1. 695 00:36:05,200 --> 00:36:10,520 Ampak dejansko, kaj se zgodi, ko tip Naloge je, da kapljice, kar je 696 00:36:10,520 --> 00:36:11,470 decimalno vejico. 697 00:36:11,470 --> 00:36:13,020 Torej 0.6 ne postane 0. 698 00:36:13,020 --> 00:36:13,370 >> ROB: Ja. 699 00:36:13,370 --> 00:36:15,160 In bomo rekli skrajšaj za to. 700 00:36:15,160 --> 00:36:21,760 Torej, ko odda na int, decimalno je obrezana. 701 00:36:21,760 --> 00:36:23,980 Torej fix za to - tam je pravzaprav dva. 702 00:36:23,980 --> 00:36:27,890 In jaz bom naredil to drugo, saj ta je veliko lažje pritrditi. 703 00:36:27,890 --> 00:36:32,670 >> Torej en popravek je uporaba boje V diviziji. 704 00:36:32,670 --> 00:36:34,720 In res, imate samo bi eden od njih float. 705 00:36:34,720 --> 00:36:37,400 Ampak to je nekako jasno, samo da bi oba plava. 706 00:36:37,400 --> 00:36:41,170 Torej 1,0 deljeno s 10,0 je deljenjem dva plovci. 707 00:36:41,170 --> 00:36:43,970 Tako da bo odgovor na koncu pa float, in tako boste 708 00:36:43,970 --> 00:36:48,050 pravilno natisnili 0,10 tukaj. 709 00:36:48,050 --> 00:36:52,220 >> Nekaj, kar ne deluje tako dobro o tem, da je, no, seveda, je bilo enostavno 710 00:36:52,220 --> 00:36:56,240 dovolj za pretvorbo 1 do plovec, tako da je 1,0. 711 00:36:56,240 --> 00:37:02,180 Ampak kaj če bi namesto smo imeli dve celi števili kot int x enak 1 in int y 712 00:37:02,180 --> 00:37:05,660 enak 10, in potem smo želeli da se x deljeno s y? 713 00:37:05,660 --> 00:37:10,420 Torej ni preprosto samo narediti X.0 ali kaj podobnega. 714 00:37:10,420 --> 00:37:12,790 >> Tako določi tisti, ki je litje. 715 00:37:12,790 --> 00:37:19,780 Torej litja način C za pretvorbo iz ene spremenljivke tipa v drugega. 716 00:37:19,780 --> 00:37:22,320 Torej tukaj 1 je celo število. 717 00:37:22,320 --> 00:37:27,050 In s tem da ta plovec pred da smo vlivanje 1 do likvidna sredstva. 718 00:37:27,050 --> 00:37:30,350 In tako bo to spremeniti 1 do 1,0. 719 00:37:30,350 --> 00:37:33,380 In to bo pretvoril 10 do 10,0. 720 00:37:33,380 --> 00:37:36,790 >> In potem se stvari obnašajo podobno Prejšnja različica smo pravkar pokazali, 721 00:37:36,790 --> 00:37:42,190 kjer je, kot je bilo pričakovano, smo dobili 0,10 in bo to izpisal. 722 00:37:42,190 --> 00:37:44,120 In to lahko storimo z spremenljivke, preveč. 723 00:37:44,120 --> 00:37:47,376 Tako lahko rečemo, float x deljeno s float y. 724 00:37:47,376 --> 00:37:48,626 >> JOSEPH: Kakšno vprašanje? 725 00:37:48,626 --> 00:37:54,182 726 00:37:54,182 --> 00:38:00,090 >> ROB: Torej, tako kot v rednem matematiki, imamo operaterja prednost. 727 00:38:00,090 --> 00:38:06,960 Torej, v matematiki, ste bolj verjetno, , da ga pokličete red operacij. 728 00:38:06,960 --> 00:38:09,890 Tu uradni izraz operater prednost. 729 00:38:09,890 --> 00:38:15,230 Vendar operater prednost, ali večina operaterji, je, kot bi pričakovali. 730 00:38:15,230 --> 00:38:22,660 >> Torej, tako kot v matematiki, 2-krat 10 je bodo bolj kot združene 731 00:38:22,660 --> 00:38:25,410 Ta 10 deljeno z 2 in nato 2. 732 00:38:25,410 --> 00:38:29,745 Vrstni red operacij, bo to storil 2 krat 10, 10, deljeno z 2, in nato 733 00:38:29,745 --> 00:38:32,720 to bom naredil 20 plus 5 plus 2. 734 00:38:32,720 --> 00:38:37,020 Tako da je, kot je bilo pričakovano, in jih lahko uporabite oklepaju v skupini izrazov. 735 00:38:37,020 --> 00:38:41,063 Ne morete uporabljati oglatih oklepajev v skupini izrazov. 736 00:38:41,063 --> 00:38:41,544 Ja? 737 00:38:41,544 --> 00:38:43,468 >> SPEAKER 5: Ali bi lahko dejansko pojdite nazaj eno sekundo? 738 00:38:43,468 --> 00:38:47,316 Lahko odda int v niz? 739 00:38:47,316 --> 00:38:53,330 >> ROB: Torej v C, lahko odda ničesar hočeš karkoli želite. 740 00:38:53,330 --> 00:38:55,600 To ne pomeni, da je dobra stvar. 741 00:38:55,600 --> 00:38:59,760 Torej, ko odda int k Niz, ki pomeni - 742 00:38:59,760 --> 00:39:03,240 in bomo prišli v to bolj temeljito - 743 00:39:03,240 --> 00:39:03,720 >> JOSEPH: Veliko pozneje. 744 00:39:03,720 --> 00:39:06,840 >> ROB: Nisem hotel reči, veliko kasneje, zato sem se potrudil, da spremenite svojo kazen. 745 00:39:06,840 --> 00:39:13,370 Bomo prišli v to veliko bolj temeljito kasneje, če res, če imate 746 00:39:13,370 --> 00:39:14,810 Niz spremenljivka - 747 00:39:14,810 --> 00:39:17,160 tako niz lahko poljubno dolgo, kajne? 748 00:39:17,160 --> 00:39:21,850 In smo že rekel, da je int štiri bajte in dolgo časa je osem 749 00:39:21,850 --> 00:39:23,620 bajte in plovec je štiri bajte. 750 00:39:23,620 --> 00:39:29,520 Torej niz, tako kot notr, ima samo Določeno število bajtov nanj. 751 00:39:29,520 --> 00:39:31,800 In da bodo štiri bajte. 752 00:39:31,800 --> 00:39:34,750 >> Toda niz je lahko precej poljubno dolgo, kajne? 753 00:39:34,750 --> 00:39:40,190 Torej, zdravo svet že, če je to 10 znakov ali karkoli, ki je že 754 00:39:40,190 --> 00:39:42,670 bo v 4 bajte Jaz mogoče vgraditi v nizu. 755 00:39:42,670 --> 00:39:51,140 In tako, kako strune res deluje, je, da so kje v spomin, da niz 756 00:39:51,140 --> 00:39:52,380 se hranijo. 757 00:39:52,380 --> 00:39:57,290 >> In tako sem, ko sem rekel niz x enaka Hello World, znotraj x je 758 00:39:57,290 --> 00:40:01,840 samo rekel, oh, zdravo je svet shranjeni na tem mestu v spominu. 759 00:40:01,840 --> 00:40:07,060 Torej, če se trudimo, da glasuje celo do niz, nato pa sva poskušali razložiti 760 00:40:07,060 --> 00:40:10,500 nekaj naključno del spomina kot niz. 761 00:40:10,500 --> 00:40:14,465 In to skoraj vedno pokvari stvari. 762 00:40:14,465 --> 00:40:17,040 >> JOSEPH: Ampak če to zamenjavati vi, bomo prikrivali 763 00:40:17,040 --> 00:40:17,550 bolj poglobljeno kasneje. 764 00:40:17,550 --> 00:40:17,850 >> ROB: Ja. 765 00:40:17,850 --> 00:40:20,540 To je, če greste priti v kazalcev. 766 00:40:20,540 --> 00:40:25,485 In da je pomemben kos dveh tednih tega predmeta. 767 00:40:25,485 --> 00:40:28,275 >> SPEAKER 6: Ali to deluje kot predmeti v drugih jezikih, ali ni res? 768 00:40:28,275 --> 00:40:34,050 >> ROB: Torej, v drugih jezikih predmetov bi bili zastopani s pomočjo kazalcev. 769 00:40:34,050 --> 00:40:37,070 770 00:40:37,070 --> 00:40:38,793 To ni ista stvar, čeprav. 771 00:40:38,793 --> 00:40:42,110 772 00:40:42,110 --> 00:40:42,910 Vsak misli? 773 00:40:42,910 --> 00:40:43,760 >> JOSEPH: Ne 774 00:40:43,760 --> 00:40:44,185 Ni misli. 775 00:40:44,185 --> 00:40:44,980 >> ROB: OK. 776 00:40:44,980 --> 00:40:46,994 >> JOSEPH: Next. 777 00:40:46,994 --> 00:40:48,255 >> ROB: Just gredo s tem. 778 00:40:48,255 --> 00:40:48,670 Vse je v redu. 779 00:40:48,670 --> 00:40:51,120 Torej modulu. 780 00:40:51,120 --> 00:40:53,900 Tako kot imamo plus, minus, deliti in množiti. 781 00:40:53,900 --> 00:40:56,720 Torej modulu je tista, ki jo lahko ne bi videl. 782 00:40:56,720 --> 00:40:59,540 In to samo pove, daje me preostanek. 783 00:40:59,540 --> 00:41:02,850 Torej 55% 10. 784 00:41:02,850 --> 00:41:06,840 Preostanek dela 55 razdeljeni s 10 bi 5. 785 00:41:06,840 --> 00:41:09,630 Torej 55% 10 je 5. 786 00:41:09,630 --> 00:41:12,260 In bi 3% 5 znaša 3. 787 00:41:12,260 --> 00:41:14,180 8% 8 bo 0. 788 00:41:14,180 --> 00:41:15,903 16% 15 bo 1. 789 00:41:15,903 --> 00:41:20,670 >> JOSEPH: Ena stvar, upoštevajte, s tem, preveč, je pa morda ne bo deloval kot je bilo pričakovano 790 00:41:20,670 --> 00:41:22,700 Če uporabljate negativno število. 791 00:41:22,700 --> 00:41:26,215 Tako negativen 5% 4, nekateri ljudje Morda menite, da je - 792 00:41:26,215 --> 00:41:28,890 793 00:41:28,890 --> 00:41:33,808 Kaj bi si mislili, negativni 5% 4, ne bi bilo? 794 00:41:33,808 --> 00:41:34,792 >> SPEAKER 5: One. 795 00:41:34,792 --> 00:41:37,920 >> JOSEPH: Torej, nekateri ljudje pravijo eno, nekateri pravijo negativnem. 796 00:41:37,920 --> 00:41:38,450 Toda kaj - 797 00:41:38,450 --> 00:41:40,820 >> ROB: Jaz ne bi niti omenjenega enega. 798 00:41:40,820 --> 00:41:42,370 >> JOSEPH: Dva, žal. 799 00:41:42,370 --> 00:41:43,240 Nekateri ljudje pravijo - 800 00:41:43,240 --> 00:41:43,450 >> ROB: Tri. 801 00:41:43,450 --> 00:41:43,800 >> JOSEPH: Three? 802 00:41:43,800 --> 00:41:44,890 >> ROB: Negative - 803 00:41:44,890 --> 00:41:45,950 kaj je bilo - negativna pet - 804 00:41:45,950 --> 00:41:47,100 >> JOSEPH: Tri, tri, tri. 805 00:41:47,100 --> 00:41:48,450 Žal mi je. 806 00:41:48,450 --> 00:41:51,910 Ker modulu, na splošno, ko ste videl drugje, to običajno pomeni, 807 00:41:51,910 --> 00:41:54,000 vrne pozitivno število, kajne? 808 00:41:54,000 --> 00:42:01,160 >> ROB: Torej, ko smo rekli v matematiki, 10% je, se nagibajo k želeli, da vam - 809 00:42:01,160 --> 00:42:05,980 če bomo mod za 10, nato pa pričakujemo, da bomo dobili število med 0 in 9. 810 00:42:05,980 --> 00:42:09,860 Sem, da se ne zgodi, da bo dobil negativne številke vrnil. 811 00:42:09,860 --> 00:42:15,898 >> JOSEPH: Torej negativen 5% 4 bi bil negativen 1. 812 00:42:15,898 --> 00:42:19,325 >> ROB: Ampak to je redko, da si mod-ing negativne številke za začetek. 813 00:42:19,325 --> 00:42:25,490 814 00:42:25,490 --> 00:42:25,970 Skip to. 815 00:42:25,970 --> 00:42:27,314 >> Joseph: Ja. 816 00:42:27,314 --> 00:42:29,420 >> ROB: Meh. 817 00:42:29,420 --> 00:42:29,990 OK. 818 00:42:29,990 --> 00:42:36,400 Torej ena zadnja stvar, poudariti pa boje je, da je nevarno vedenje, 819 00:42:36,400 --> 00:42:39,850 vendar boje niso točna zastopanje. 820 00:42:39,850 --> 00:42:46,190 Torej grem nazaj v bajti še enkrat, ne pozabite da je int vedno štiri bajte in 821 00:42:46,190 --> 00:42:47,830 Plovec je vedno štiri bajte. 822 00:42:47,830 --> 00:42:51,340 Tako na primer Lucasova je precej dobro. 823 00:42:51,340 --> 00:42:55,730 >> Torej, mislim 1 deljeno z 3. 824 00:42:55,730 --> 00:42:57,800 Torej 0,3333333. 825 00:42:57,800 --> 00:43:03,540 Če imam le 32 bitov, kako lahko Shranjujem 0,33333 točno? 826 00:43:03,540 --> 00:43:07,250 In morda, iz katerega koli razloga, boste rekli, Vse je v redu, no, reciva 827 00:43:07,250 --> 00:43:13,210 da je to predvsem 1011001, dajmo samo rekel, da bi morala biti 0,333333. 828 00:43:13,210 --> 00:43:16,960 No, imate samo končno število ti delci, zato je nemogoče, da 829 00:43:16,960 --> 00:43:22,550 predstavljajo vsak s plavajočo vejico vrednost, saj le 32 bitov. 830 00:43:22,550 --> 00:43:25,580 >> No, to je nemogoče, da predstavlja vsaka plavajočo vejico vrednost glede na neskončno - 831 00:43:25,580 --> 00:43:28,480 No, glede na vsako končno število bitov. 832 00:43:28,480 --> 00:43:38,265 Torej, vprašanje tu je, no, če smo uporabili natisniti na dve decimalni mesti, 833 00:43:38,265 --> 00:43:42,000 nismo pravilno dobili odgovor 0.10. 834 00:43:42,000 --> 00:43:47,510 Ampak pod pokrovom motorja, to je res shranjujejo čim bližje k 835 00:43:47,510 --> 00:43:51,790 0,10 kot tistih bitov lahko predstavlja. 836 00:43:51,790 --> 00:43:53,200 Je to na naslednji diapozitiv? 837 00:43:53,200 --> 00:43:53,830 Ali pa je to, ne? 838 00:43:53,830 --> 00:43:54,660 >> JOSEPH: Ja, to je to. 839 00:43:54,660 --> 00:43:55,750 >> ROB: Blegh, blegh. 840 00:43:55,750 --> 00:43:57,760 >> JOSEPH: Ja, lahko samo potegnite zapiske gor a košček. 841 00:43:57,760 --> 00:43:59,700 >> ROB: grem za povečavo V na zadnji na tem. 842 00:43:59,700 --> 00:44:00,950 Oh moj bog, to je [neslišno]. 843 00:44:00,950 --> 00:44:06,089 844 00:44:06,089 --> 00:44:08,300 Tako da število. 845 00:44:08,300 --> 00:44:12,300 To je tisto, kar se bo natisnjen Če bomo teči ta program. 846 00:44:12,300 --> 00:44:20,340 In opazil, da to ni res big deal če smo le skrbeti kot 847 00:44:20,340 --> 00:44:21,920 02:58 decimalna mesta natančno. 848 00:44:21,920 --> 00:44:26,700 Kot da smo samo prvotno natisnjena 0,10, in da je, zakaj smo videli nič narobe. 849 00:44:26,700 --> 00:44:31,380 Ampak, ko smo začeli že v Točno, točno število, ki je 850 00:44:31,380 --> 00:44:35,660 predstavlja, vidimo, da ne more točno predstavlja 0.1. 851 00:44:35,660 --> 00:44:40,900 >> In del problema, tukaj je podobno, Vse je v redu, da je v redu, ampak, dobro, 852 00:44:40,900 --> 00:44:46,120 Prvo, kaj pa če smo poskušali narediti, Odgovor je enak enak 0,1? 853 00:44:46,120 --> 00:44:49,200 Je, da se bo vrnil drži ali ne? 854 00:44:49,200 --> 00:44:51,850 In zato je težko reči. 855 00:44:51,850 --> 00:44:53,330 Mislim, da bi lahko dejansko vrne true. 856 00:44:53,330 --> 00:44:55,265 Bo prvi - 857 00:44:55,265 --> 00:44:56,180 Ne vem. 858 00:44:56,180 --> 00:45:00,090 Odgovor je, ko se začneš ukvarjati z vrednostmi v plavajoči vejici, ste zal 859 00:45:00,090 --> 00:45:05,150 veliko se ne sme uporabljati enakosti zaradi tega nenatančnosti. 860 00:45:05,150 --> 00:45:09,470 >> In za vse, kar morate vedeti, da je za stotino decimalno mesto, 861 00:45:09,470 --> 00:45:13,670 plavajočo vejico ni mogel pravilno ravnati. 862 00:45:13,670 --> 00:45:18,180 In tako enakost bo samo ne še čeprav številka - če je bil 863 00:45:18,180 --> 00:45:24,450 s pomočjo natančne številke, je treba številke so bili povsem enako. 864 00:45:24,450 --> 00:45:27,790 To je v teku, kot 50 Izračuni, ki uporabljajo ti plavajoča 865 00:45:27,790 --> 00:45:30,270 Vrednosti točke, lahko napaka zgraditi gor in gor in gor, in 866 00:45:30,270 --> 00:45:31,125 Stvari le dobili narobe. 867 00:45:31,125 --> 00:45:33,870 >> JOSEPH: In tam so bili res znani primeri tega dogajanja. 868 00:45:33,870 --> 00:45:37,190 Tako kot so NASA inženirji to gotten Narobe, ki povzročajo rakete, da eksplodira v 869 00:45:37,190 --> 00:45:38,665 zrak, potem ko so že začeli. 870 00:45:38,665 --> 00:45:41,490 In veliko vprašanj, kot to. 871 00:45:41,490 --> 00:45:41,956 Torej, ja. 872 00:45:41,956 --> 00:45:45,218 >> 6 zvočnikov: Ko rečeš 0,3 f, Ali skrajšajte počitek? 873 00:45:45,218 --> 00:45:46,468 Ali pa se zaokroži navzgor ali navzdol? 874 00:45:46,468 --> 00:45:48,800 875 00:45:48,800 --> 00:45:50,200 >> ROB: Bo printf okoli nje? 876 00:45:50,200 --> 00:45:52,180 >> JOSEPH: Mislim, da printf skrajša. 877 00:45:52,180 --> 00:45:52,640 >> ROB: OK. 878 00:45:52,640 --> 00:45:59,890 Tako smo lahko podobno šel v nasprotni Smer tu, v tem primeru, 879 00:45:59,890 --> 00:46:03,320 katerem bi lahko predstavljajo 0.1 je s to številko. 880 00:46:03,320 --> 00:46:06,820 Katerem je bi mogli predstavljajo 0,2 je v nasprotnem 881 00:46:06,820 --> 00:46:11,420 Smer, 0,199999996356 ali kaj podobnega. 882 00:46:11,420 --> 00:46:17,480 Torej, če smo šli v tej smeri Stvari, nato printf 0,3 f bi se vrnil 883 00:46:17,480 --> 00:46:20,866 1,99 namesto 2,00. 884 00:46:20,866 --> 00:46:22,960 >> JOSEPH: In nisem povsem prepričan o tem. 885 00:46:22,960 --> 00:46:25,430 Morda boste želeli napisati majhen, majhen Program za samo preverite to. 886 00:46:25,430 --> 00:46:29,370 >> ROB: Čeprav, kaj smo prepričani, da če si se potrudil, da glasuje, da 887 00:46:29,370 --> 00:46:33,660 int in vlivanje za notr se bo povzroči, da skrajšajte decimalke, če 888 00:46:33,660 --> 00:46:38,140 poskusite, da odda 1.9999999 za notr, boste dobili 1. 889 00:46:38,140 --> 00:46:41,440 In tako bi morali na splošno uporabo round funkcijo v knjižnici matematike. 890 00:46:41,440 --> 00:46:44,190 891 00:46:44,190 --> 00:46:45,440 Vprašanja? 892 00:46:45,440 --> 00:46:47,660 893 00:46:47,660 --> 00:46:48,982 OK. 894 00:46:48,982 --> 00:46:54,000 >> JOSEPH: Torej gremo na pogoje in logične izraze. 895 00:46:54,000 --> 00:46:58,120 Torej ste videli to prej. 896 00:46:58,120 --> 00:47:07,420 In dejansko, dovolite mi, poskrbite, da moj Računalnik je v pravi obliki tukaj. 897 00:47:07,420 --> 00:47:08,670 Prostor. 898 00:47:08,670 --> 00:47:10,630 899 00:47:10,630 --> 00:47:13,870 Žal mi je, da bomo morali spopasti malo z limitom na robovih. 900 00:47:13,870 --> 00:47:15,830 >> Ampak ja, so videli vi prej v nič. 901 00:47:15,830 --> 00:47:19,930 Torej, ta tukaj je izraz ki se uporablja pri 902 00:47:19,930 --> 00:47:21,250 pogojni stavek. 903 00:47:21,250 --> 00:47:23,930 Torej odgovoriti večja od nič volje vam povem, resnična ali neresnična. 904 00:47:23,930 --> 00:47:26,530 In to je zelo pomembno, saj omogočajo nam, da uvede 905 00:47:26,530 --> 00:47:28,670 Logika v našo kodo. 906 00:47:28,670 --> 00:47:32,820 >> Tako na primer, to je program napisana v nič, ki zahteva od uporabnika 907 00:47:32,820 --> 00:47:36,980 za celo število in jim pove, ali celo, da so vam dali bil 908 00:47:36,980 --> 00:47:38,690 pozitivno ali negativno število. 909 00:47:38,690 --> 00:47:42,980 In pretvorbo tukaj za prikaz je najprej natisniti izjavo, 910 00:47:42,980 --> 00:47:43,870 dajte mi celo število. 911 00:47:43,870 --> 00:47:45,980 In potem jih prosi za število. 912 00:47:45,980 --> 00:47:49,870 >> In potem ste uporabili pogojne logike preko tukaj, da preveri, ali ta številka 913 00:47:49,870 --> 00:47:52,030 je dejansko večji od nič, ali ne. 914 00:47:52,030 --> 00:47:58,960 Torej, tukaj imamo logični izraz Notranjost pogojena Če izjavo. 915 00:47:58,960 --> 00:48:00,660 Ali obstaja kakšna vprašanja? 916 00:48:00,660 --> 00:48:03,030 Ali obstajajo kakršne koli vprašanja o tem? 917 00:48:03,030 --> 00:48:03,950 OK. 918 00:48:03,950 --> 00:48:06,140 >> Tako da je več kot samo večja od seveda. 919 00:48:06,140 --> 00:48:10,385 Lahko zgraditi logičnih izrazov uporabljate večino vrst stvari, ki jih 920 00:48:10,385 --> 00:48:11,150 bi bilo misliti v matematiki. 921 00:48:11,150 --> 00:48:12,370 Torej, višja kot. 922 00:48:12,370 --> 00:48:13,740 To bi moralo biti manj kot. 923 00:48:13,740 --> 00:48:14,990 Žal mi je. 924 00:48:14,990 --> 00:48:18,520 925 00:48:18,520 --> 00:48:19,760 In razmik. 926 00:48:19,760 --> 00:48:22,971 >> ROB: Bog ne daj, da ga zapusti. 927 00:48:22,971 --> 00:48:23,620 >> JOSEPH: V redu. 928 00:48:23,620 --> 00:48:25,950 Torej je večja od manj kot, večji kot ali enako, manj 929 00:48:25,950 --> 00:48:27,070 kot ali enaka. 930 00:48:27,070 --> 00:48:31,980 Mi uporabljamo dvojne enaka za preverjanje enakost, saj single enaka sredstva 931 00:48:31,980 --> 00:48:32,810 naloga, kajne? 932 00:48:32,810 --> 00:48:33,140 Da. 933 00:48:33,140 --> 00:48:37,130 In potem bomo lahko tudi ne enaka ga uporabo klicaj, enaka. 934 00:48:37,130 --> 00:48:41,530 >> In ta simbol klicaj lahko treba razširiti tudi tako, da če hočeš 935 00:48:41,530 --> 00:48:44,050 da se obrnemo na kakršno koli logičnim izraz, lahko to storite. 936 00:48:44,050 --> 00:48:48,530 Tako da bo ta ocenila, da res le, če je odgovor manj 937 00:48:48,530 --> 00:48:51,240 ali enak nič. 938 00:48:51,240 --> 00:48:53,950 Kakršna koli vprašanja o tem? 939 00:48:53,950 --> 00:48:55,180 OK. 940 00:48:55,180 --> 00:48:58,840 >> Tako da lahko tudi kombinirate ti Izrazi, ki uporabljajo logično in in 941 00:48:58,840 --> 00:48:59,790 logično Or. 942 00:48:59,790 --> 00:49:03,530 Torej je to samo simbol In ki mora biti Shift, 7. 943 00:49:03,530 --> 00:49:07,720 In to je simbol cev, ki je ne male črke L. To je ena 944 00:49:07,720 --> 00:49:09,440 to je pravica nad vašo tipko Enter. 945 00:49:09,440 --> 00:49:12,870 Torej boste uporabili dve te simbolizirajo logično in logično Or. 946 00:49:12,870 --> 00:49:18,180 >> Torej bo to vrne true le, če odgovor je ena, dva, tri, ali štiri. 947 00:49:18,180 --> 00:49:23,030 In to se bo vrnil res le, če odgovor je onstran, da je na obeh straneh. 948 00:49:23,030 --> 00:49:26,190 Torej, to ni ena, dva, tri ali štiri. 949 00:49:26,190 --> 00:49:28,385 In način, kako bi uporabili da v izrazu - 950 00:49:28,385 --> 00:49:29,990 >> ROB: Ali nič ali pet. 951 00:49:29,990 --> 00:49:32,200 >> JOSEPH: Nič ali pet. 952 00:49:32,200 --> 00:49:32,380 Žal mi je. 953 00:49:32,380 --> 00:49:33,320 Ja, ja, ja. 954 00:49:33,320 --> 00:49:34,180 OK. 955 00:49:34,180 --> 00:49:38,980 In več kot tukaj, enako vam pot bi uporabil ta izraz, manjša 956 00:49:38,980 --> 00:49:42,000 Izraz strani Če pogojena Izjava, bi si ga tudi uporabo 957 00:49:42,000 --> 00:49:47,800 enak način, ki ga samo ga je dala v notranjosti oklepaje izjavi If. 958 00:49:47,800 --> 00:49:54,020 Torej bo to printf le ogenj, če odgovor je ena, dva, tri, ali štiri. 959 00:49:54,020 --> 00:49:56,002 Vsa vprašanja o združevanju izrazi? 960 00:49:56,002 --> 00:50:00,450 961 00:50:00,450 --> 00:50:04,240 >> Torej obstaja še en pogojni konstrukt pravimo Če / Else. 962 00:50:04,240 --> 00:50:08,120 Torej v bistvu, to sedaj pomeni, OK, če nekaj, kar sem želela preveriti, ni bilo 963 00:50:08,120 --> 00:50:11,600 res, potem pojdite na drug in opravljanje te druge ukrepe. 964 00:50:11,600 --> 00:50:15,570 Torej, v tem primeru, sem vprašal Uporabnik za celo število. 965 00:50:15,570 --> 00:50:17,790 Je celo število, večje od nič? 966 00:50:17,790 --> 00:50:18,310 Ja? 967 00:50:18,310 --> 00:50:20,100 No, potem pa so izbrali pozitivno število. 968 00:50:20,100 --> 00:50:22,320 Če ne, potem mora imeti negativna ali enaka nič. 969 00:50:22,320 --> 00:50:27,530 Torej si izbral negativno število ali v tem primeru nič. 970 00:50:27,530 --> 00:50:29,235 Da. 971 00:50:29,235 --> 00:50:30,485 Ali nič. 972 00:50:30,485 --> 00:50:36,320 973 00:50:36,320 --> 00:50:39,300 >> In potem imamo tudi če / Else, Če in Else. 974 00:50:39,300 --> 00:50:45,640 Torej, to nam omogoča izvedbo zaporedje Samo stvari, če je prvi, ki so propadla. 975 00:50:45,640 --> 00:50:49,540 Torej, v tem primeru, zdaj pa delamo zadnja izberete nič. 976 00:50:49,540 --> 00:50:53,080 Torej, če ni izbral pozitivno niti negativno število, potem morajo 977 00:50:53,080 --> 00:50:53,640 so se spet nič. 978 00:50:53,640 --> 00:50:56,720 Tako da gre samo navzdol verige, kot je ta. 979 00:50:56,720 --> 00:50:59,960 >> Torej primer, kako Če je drugačen od - 980 00:50:59,960 --> 00:51:02,590 Če / Else je drugačen od samo zaporedje investicijskih skladov. 981 00:51:02,590 --> 00:51:07,680 In to je skupno vprašanje, ki ljudje vprašajo, je dobro, če dobiš kot 982 00:51:07,680 --> 00:51:11,265 95 v CS50, kaj bo to Program vam povem? 983 00:51:11,265 --> 00:51:12,600 >> SPEAKER 5: Imaš A. 984 00:51:12,600 --> 00:51:13,490 >> JOSEPH: Da. 985 00:51:13,490 --> 00:51:14,960 Imaš vsak eden od tistih, ki prav. 986 00:51:14,960 --> 00:51:17,130 Imaš A, imaš B, si Dobil C in D, kajne? 987 00:51:17,130 --> 00:51:19,770 Tako bi ocenili vse te v vrstnem redu. 988 00:51:19,770 --> 00:51:23,570 Torej, medtem ko 95 je večji od 90, je prav tako je večja od 80, je tudi 989 00:51:23,570 --> 00:51:25,790 večji od 70 let, in to je prav tako je večja od 60 let. 990 00:51:25,790 --> 00:51:27,620 Torej imaš vse tiste razrede. 991 00:51:27,620 --> 00:51:31,630 In Predvidevam, da bi Samo želim A. 992 00:51:31,630 --> 00:51:34,060 >> Način, da se določi, da je za zamenjavo tiste z Else / Če je. 993 00:51:34,060 --> 00:51:37,540 Torej, v tem primeru, se ji zdi, da je 95 večji od 90, potem pa ne 994 00:51:37,540 --> 00:51:38,885 ne ovrednoti ostalo izjav. 995 00:51:38,885 --> 00:51:41,900 996 00:51:41,900 --> 00:51:43,150 Vsa vprašanja o tem? 997 00:51:43,150 --> 00:51:48,580 998 00:51:48,580 --> 00:51:52,470 >> Torej obstaja še en pogojno nekako strukture, ki smo tukaj, ki smo 999 00:51:52,470 --> 00:51:53,390 pokličite izjavo stikalo. 1000 00:51:53,390 --> 00:51:57,390 Torej, to vam omogoča, da v bistvu preveriti kakšna vrednost števila si dal 1001 00:51:57,390 --> 00:51:59,000 v izkazu stikalo je. 1002 00:51:59,000 --> 00:52:03,200 Torej, v tem scenariju, smo preklapljanje od n, in mi rekel, oh, če je n 1003 00:52:03,200 --> 00:52:04,710 ena, nato natisnete to izjavo. 1004 00:52:04,710 --> 00:52:07,910 In potem prekinil, kar pomeni izhod iz switch stavku. 1005 00:52:07,910 --> 00:52:12,670 >> Če ne bi bil eden, potem, no, samo sčasoma preveriti vseh teh zadevah. 1006 00:52:12,670 --> 00:52:16,280 In tako preverja, če je ena, dve ali tri, in to ustrezno natisne. 1007 00:52:16,280 --> 00:52:19,780 In kaj je to privzeta ključna beseda tukaj sredstvo je, če ne vnesete katerokoli 1008 00:52:19,780 --> 00:52:21,690 tistih, nato pa reči Invalid. 1009 00:52:21,690 --> 00:52:25,910 Torej, recimo, sem prosil za n in Uporabnik mi daje štiri. 1010 00:52:25,910 --> 00:52:29,470 No, to se ujema Noben od teh primerov, Tako se bo izpisal, kar je v 1011 00:52:29,470 --> 00:52:30,540 privzeto oddelek. 1012 00:52:30,540 --> 00:52:31,180 Ja, vprašanje? 1013 00:52:31,180 --> 00:52:32,614 >> SPEAKER 5: Lahko uporabite logični izraze namesto 1014 00:52:32,614 --> 00:52:33,570 en, dva ali tri? 1015 00:52:33,570 --> 00:52:36,940 >> JOSEPH: Torej, vprašanje je, ali lahko uporabljate Boolove izraze namesto ene, 1016 00:52:36,940 --> 00:52:37,940 dve, tri? 1017 00:52:37,940 --> 00:52:40,520 In C, verjamem, da si ne morem storiti. 1018 00:52:40,520 --> 00:52:44,320 Ampak tudi v drugih jezikih, ki jih morda naletijo na koncu 1019 00:52:44,320 --> 00:52:46,460 semester kot JavaScript lahko. 1020 00:52:46,460 --> 00:52:50,050 No, bi si morali najprej izračunati ta vrednost in jo nato uporabite v 1021 00:52:50,050 --> 00:52:50,650 stikalo izjavo. 1022 00:52:50,650 --> 00:52:50,930 Ja? 1023 00:52:50,930 --> 00:52:54,760 >> ROB: Torej del v korist stikala Stavki se zamislite, če je to storila 1024 00:52:54,760 --> 00:52:58,680 kot Če / Else, tako kot, če je n enak enaka ena ali karkoli. 1025 00:52:58,680 --> 00:53:00,300 Else / Če je n enako enako dva, karkoli. 1026 00:53:00,300 --> 00:53:01,960 Else / Če je n enako enako tri. 1027 00:53:01,960 --> 00:53:05,930 Torej način Program bi potekal je zaporedno bi šel dol navedenega seznama 1028 00:53:05,930 --> 00:53:07,500 in preverjanje, je n ena? 1029 00:53:07,500 --> 00:53:08,040 Nope. 1030 00:53:08,040 --> 00:53:09,070 Je n dva? 1031 00:53:09,070 --> 00:53:09,490 Nope. 1032 00:53:09,490 --> 00:53:10,940 Je n tri? 1033 00:53:10,940 --> 00:53:11,710 Ja. 1034 00:53:11,710 --> 00:53:12,610 Ali to. 1035 00:53:12,610 --> 00:53:15,270 >> Ker je z izjavami stikala, to je dejansko sposobni zbrati, da bi bilo 1036 00:53:15,270 --> 00:53:16,360 zelo hitro. 1037 00:53:16,360 --> 00:53:19,550 In takoj, ko pravi, stikalo, da pravi, vse v redu, je n dva, sem 1038 00:53:19,550 --> 00:53:23,060 Takoj bom skočil, kjer Jaz sem moral začeti izvršitve. 1039 00:53:23,060 --> 00:53:26,080 Ne bom najprej preveriti, je n ena, je n dva? 1040 00:53:26,080 --> 00:53:28,860 To je mogoče takoj začeti početje to, kar je moral storiti. 1041 00:53:28,860 --> 00:53:33,830 >> In zaradi tega, da ne more sprejmejo logičnih pogojev. 1042 00:53:33,830 --> 00:53:36,480 Ali pa bi to morali storiti zaporedno, tako kot vse v redu, je n 1043 00:53:36,480 --> 00:53:37,820 večja od nič? 1044 00:53:37,820 --> 00:53:41,140 Ostalo je n večji od 10 ali karkoli. 1045 00:53:41,140 --> 00:53:44,780 >> JOSEPH: V tem primeru, če ste uporabili Če / Else,, nato pa bi se, če je stikalo 1046 00:53:44,780 --> 00:53:47,792 potekajo približno trikrat hitreje, kot če / drugega, If. 1047 00:53:47,792 --> 00:53:53,060 1048 00:53:53,060 --> 00:53:56,040 Mi lahko organiziramo stikalo na primer Tako, da ne zlomi 1049 00:53:56,040 --> 00:53:57,520 Po vsakem od primerov. 1050 00:53:57,520 --> 00:54:00,960 Torej, v tem primeru bom delitev Številke, ki jih izberejo v eno in 1051 00:54:00,960 --> 00:54:04,250 dva pa niso visoke številke in tri čemer je veliko število. 1052 00:54:04,250 --> 00:54:08,290 >> Torej v tem primeru, če je n ena ali dva, pa bo hit zadevo in potem bo 1053 00:54:08,290 --> 00:54:10,640 padejo skozi, ker ni prelom. 1054 00:54:10,640 --> 00:54:11,610 In se bo končala tukaj. 1055 00:54:11,610 --> 00:54:15,360 Torej, če smo izbrali eno, bo to printf in tako prekinil, da nobena 1056 00:54:15,360 --> 00:54:17,610 To se izvaja. 1057 00:54:17,610 --> 00:54:21,870 In seveda, če pridejo v treh ali kaj drugega, potem bo to preskočite 1058 00:54:21,870 --> 00:54:25,320 tisti, in ne tja, in to bo namesto izvršiti 1059 00:54:25,320 --> 00:54:27,490 ustreza linijo. 1060 00:54:27,490 --> 00:54:29,390 Ali obstajajo kakršne koli vprašanja o tem? 1061 00:54:29,390 --> 00:54:29,780 Ja? 1062 00:54:29,780 --> 00:54:32,642 >> SPEAKER 4: Bi si dobil napako, če ti imeli odmor po enem primeru pa je 1063 00:54:32,642 --> 00:54:34,550 niso imeli kaj za to, da naredim? 1064 00:54:34,550 --> 00:54:37,820 >> JOSEPH: Torej, vprašanje je, ki bi jih dobili napaka, če imate odmor po 1065 00:54:37,820 --> 00:54:39,730 Če ena, vendar ni nič narediti? 1066 00:54:39,730 --> 00:54:41,520 In odgovor je ne. 1067 00:54:41,520 --> 00:54:43,172 Ne boste dejansko dobili napako. 1068 00:54:43,172 --> 00:54:44,590 Ja, mm hmm. 1069 00:54:44,590 --> 00:54:54,540 >> Tako nekako malo sprememb tukaj, Bom dal printf tukaj. 1070 00:54:54,540 --> 00:54:55,790 Ops. 1071 00:54:55,790 --> 00:55:00,994 1072 00:55:00,994 --> 00:55:04,880 Torej, kaj bi to tiskati, če Sem dal eno v kot vhod? 1073 00:55:04,880 --> 00:55:07,530 1074 00:55:07,530 --> 00:55:07,770 Ja. 1075 00:55:07,770 --> 00:55:10,360 To bi vam povedal, da ni sprejela Visoko število dvakrat, kajne? 1076 00:55:10,360 --> 00:55:13,500 Ker bi se udaril, da je prvi primer, da ne bi prekinil, in da bi padla 1077 00:55:13,500 --> 00:55:15,730 preko na drugem primeru. 1078 00:55:15,730 --> 00:55:16,950 Vsa vprašanja o tem? 1079 00:55:16,950 --> 00:55:18,280 >> ROB: Ali imate kakšno vprašanje? 1080 00:55:18,280 --> 00:55:20,840 >> JOSEPH: OK, se ohladi. 1081 00:55:20,840 --> 00:55:22,400 Vse je v redu. 1082 00:55:22,400 --> 00:55:25,780 Tako da je še nekaj drugega, kar imenujemo trikomponentnih operaterja, ki je v bistvu 1083 00:55:25,780 --> 00:55:29,010 nadomestno skladnjo, da delaš Če nato Else. 1084 00:55:29,010 --> 00:55:30,470 In to vam omogoča, da to storite vse v eni vrstici. 1085 00:55:30,470 --> 00:55:34,110 Torej, v tem posebnem programu, Sprašujem uporabnika za n. 1086 00:55:34,110 --> 00:55:37,190 In, če je n večji kot 100, pravim jim bodo pobrali veliko število. 1087 00:55:37,190 --> 00:55:39,560 Sicer sem jim povedal, da izbrala majhno število. 1088 00:55:39,560 --> 00:55:43,030 >> Tako da bomo lahko uporabite to res dolgo sintakso, niz, S, in nato preveri če je n 1089 00:55:43,030 --> 00:55:45,260 večja od 100 in dodelite v skladu s tem. 1090 00:55:45,260 --> 00:55:49,450 Vendar pa lahko to veliko bolj jedrnato z uporabo te trikomponentne operaterja sintakso 1091 00:55:49,450 --> 00:55:52,090 ki vključuje vprašanje znamko in debelega črevesa. 1092 00:55:52,090 --> 00:55:55,070 Torej vprašanje znamka je v bistvu sprašujem, ali ne? 1093 00:55:55,070 --> 00:55:56,625 >> ROB: Mogoče približate tamle. 1094 00:55:56,625 --> 00:55:57,372 >> JOSEPH: Da. 1095 00:55:57,372 --> 00:56:00,210 Dobro vprašanje. 1096 00:56:00,210 --> 00:56:02,550 Torej, to je ternarnim operater. 1097 00:56:02,550 --> 00:56:06,100 Sem najprej vprašati, je n večji kot 100? 1098 00:56:06,100 --> 00:56:09,770 Če je tako, potem se izvrši prva igra pred debelega črevesa. 1099 00:56:09,770 --> 00:56:13,360 Če ni, potem sem izvršiti Drugi del po debelem črevesu. 1100 00:56:13,360 --> 00:56:16,640 Torej, če je n večji kot 100, potem pobere visoke in postavlja 1101 00:56:16,640 --> 00:56:18,360 da v niz s. 1102 00:56:18,360 --> 00:56:22,170 Če je n manj kot 100 zagrabi nizka in potem postavlja, da v niz s. 1103 00:56:22,170 --> 00:56:30,186 Tako da bodo strnili to velik kos dol v samo tej eni vrstici. 1104 00:56:30,186 --> 00:56:32,010 >> SPEAKER 5: Ali je to priljubljen? 1105 00:56:32,010 --> 00:56:36,070 >> JOSEPH: Ja, to je zelo priljubljena za stvari, kjer v bistvu želite 1106 00:56:36,070 --> 00:56:38,700 Ne naloga, ki temelji na neke vrste stanju. 1107 00:56:38,700 --> 00:56:43,110 In v tem primeru smo se poskuša dodeliti vrednost niza s. 1108 00:56:43,110 --> 00:56:44,840 To ni tako - 1109 00:56:44,840 --> 00:56:47,670 Mislim, da res ne raje je v drugih primerih. 1110 00:56:47,670 --> 00:56:49,390 Ampak to je še posebej uporabno za to nalogo. 1111 00:56:49,390 --> 00:56:54,490 >> ROB: To je precej pogost vzorec kjer imate kakšne spremenljivke, ki 1112 00:56:54,490 --> 00:56:58,200 boš rekel, če kaj, nastavite ta spremenljivka z eno vrednostjo, sicer pa nastavite 1113 00:56:58,200 --> 00:56:59,810 ta spremenljivka na drugo vrednost. 1114 00:56:59,810 --> 00:57:03,360 In da je scenarij kjer uporaba tememem. 1115 00:57:03,360 --> 00:57:05,220 >> JOSEPH: In ste za varčevanje veliko prog, kajne? 1116 00:57:05,220 --> 00:57:08,090 In to samo naredi kodo nedvomno malo bolj berljiva. 1117 00:57:08,090 --> 00:57:08,635 Ja, vprašanje? 1118 00:57:08,635 --> 00:57:12,384 >> 6 zvočnikov: Za tememem, lahko greš, String s Enako besede, vprašaj? 1119 00:57:12,384 --> 00:57:15,280 In potem bi lahko, recimo, pet različnih možnosti. 1120 00:57:15,280 --> 00:57:18,310 In glede na tisto število n je bil, bi izbrali eno od teh? 1121 00:57:18,310 --> 00:57:22,210 >> JOSEPH: Torej, vprašanje je, ali obstaja nekako sintakse, kjer lahko naredite niz 1122 00:57:22,210 --> 00:57:25,910 je enaka n, potem pa imajo več kot dve Možnosti po tem vprašajem? 1123 00:57:25,910 --> 00:57:29,740 In preprost odgovor je ne, tam ni Res dober način za to, da če 1124 00:57:29,740 --> 00:57:33,850 želite gnezdo multiple ternarnih subjektov v drugega. 1125 00:57:33,850 --> 00:57:38,050 >> Lahko bi naredil tako kot n večji od 100, question mark, nato pa še 1126 00:57:38,050 --> 00:57:41,850 trikomponentnih operaterja, n večji od 50, vprašaj, in nest ga na ta način. 1127 00:57:41,850 --> 00:57:45,240 Toda v tem scenariju, vaša koda je pridobivanje vrste neberljiv in grdo, 1128 00:57:45,240 --> 00:57:47,920 in bi bilo morda bolje, da greš na Če / Else izjava na tej točki. 1129 00:57:47,920 --> 00:57:54,530 >> ROB: In prav tako, kot stranski note, PHP nepravilno izvaja ternarnim 1130 00:57:54,530 --> 00:57:58,053 subjekt, ki ugnezdene ternaries sploh ne delujejo kot bi morale. 1131 00:57:58,053 --> 00:57:58,840 >> Joseph: Ja. 1132 00:57:58,840 --> 00:58:01,170 Tako da dobi malo zmedeno, še posebej, če greš 1133 00:58:01,170 --> 00:58:02,145 na različnih jezikih. 1134 00:58:02,145 --> 00:58:04,810 >> ROB: To je zmedeno dovolj, da jeziki so narobe o tem. 1135 00:58:04,810 --> 00:58:08,030 1136 00:58:08,030 --> 00:58:11,510 >> JOSEPH: Torej, pravzaprav, samo da bi razjasnili, to vsi vedo, kaj je to 1137 00:58:11,510 --> 00:58:13,900 % S počne tukaj? 1138 00:58:13,900 --> 00:58:15,650 Vsa vprašanja o tem? 1139 00:58:15,650 --> 00:58:19,760 Mislim, da samo za kamero,% s v bistvu nam omogoča postaviti ogrado 1140 00:58:19,760 --> 00:58:20,790 za niz. 1141 00:58:20,790 --> 00:58:23,920 In potem na koncu smo določajo, da spremenljivka želimo postaviti v to 1142 00:58:23,920 --> 00:58:25,500 Imetnik mesto je s. 1143 00:58:25,500 --> 00:58:27,730 Tako da v bistvu traja ov in ga postavi tukaj. 1144 00:58:27,730 --> 00:58:32,130 In potem se bo izpisal, si izbral visoka ali si izbral majhno število. 1145 00:58:32,130 --> 00:58:33,770 OK. 1146 00:58:33,770 --> 00:58:36,970 >> Torej zanke omogočajo, da opravlja stvari s krožnimi gibi, kajne? 1147 00:58:36,970 --> 00:58:40,300 Morda ste to naleteli na Scratch v obliki Forever zank 1148 00:58:40,300 --> 00:58:45,650 ali ponavljajte, dokler ali Ponovi zlasti število prenosov. 1149 00:58:45,650 --> 00:58:47,540 Torej, zakaj je to dobro za nas? 1150 00:58:47,540 --> 00:58:51,500 No, v C, recimo, da imamo to Pesem izvaja v nič, da 1151 00:58:51,500 --> 00:58:53,450 poje, to je pesem , ki se nikoli ne konča. 1152 00:58:53,450 --> 00:58:55,710 To šele goes naprej in naprej in na veke vekomaj. 1153 00:58:55,710 --> 00:58:59,395 No, vam ne morem narediti program da ima neskončno število printf 1154 00:58:59,395 --> 00:59:00,850 Izjave v tem, kajne? 1155 00:59:00,850 --> 00:59:04,900 >> Torej v tem scenariju, eno smer da pa bi lahko to delo in 1156 00:59:04,900 --> 00:59:09,330 da bi bilo tiskanje vedno je namesto tega uporabite while zanko. 1157 00:59:09,330 --> 00:59:13,640 Tako bo sicer zanka izvesti, kaj je v telesu dveh naramnic, ki 1158 00:59:13,640 --> 00:59:17,250 pripada temelji na tisto stanje. 1159 00:59:17,250 --> 00:59:21,170 Torej v tem konkretnem primeru prej, če želimo natisniti to večno, kaj 1160 00:59:21,170 --> 00:59:23,590 lahko storimo? 1161 00:59:23,590 --> 00:59:25,190 No, seveda, kajne? 1162 00:59:25,190 --> 00:59:32,290 >> Torej je to nekako združuje idejo nekaterih Boolean izražanja 1163 00:59:32,290 --> 00:59:33,610 skupaj z zanko. 1164 00:59:33,610 --> 00:59:35,780 In smo se naučili o logičnim izrazi prej. 1165 00:59:35,780 --> 00:59:39,650 Torej, ko stanje znotraj da medtem ko je še vedno velja, to zanko 1166 00:59:39,650 --> 00:59:41,480 bo izvajal naprej in naprej in naprej. 1167 00:59:41,480 --> 00:59:44,640 In v tem primeru, če bomo samo ponudbo s res, to povzroči neskončno 1168 00:59:44,640 --> 00:59:49,310 zanke, ki natisne pesem naprej in naprej in kot smo želeli, ne da bi prej 1169 00:59:49,310 --> 00:59:52,410 ki ima program, ki je neskončno število printf izjav, ki je 1170 00:59:52,410 --> 00:59:55,220 ni mogoče. 1171 00:59:55,220 --> 00:59:57,810 >> Torej bolj prepričljivo, čeprav to lahko uporabite z 1172 00:59:57,810 --> 00:59:59,710 spremenljiva in stanje. 1173 00:59:59,710 --> 01:00:04,420 Torej, recimo, želimo ponoviti Stavek, popolnoma Poln zavoj, 10-krat. 1174 01:00:04,420 --> 01:00:08,380 Torej, kaj lahko storite z zanko, medtem ko je lahko najprej inicializacijo števec 1175 01:00:08,380 --> 01:00:10,860 spremenljivka izven Zanko, medtem ko bi 10. 1176 01:00:10,860 --> 01:00:14,360 In potem v bistvu, vsakič, ko greste skozi zanko, medtem ko si natisnete 1177 01:00:14,360 --> 01:00:19,090 izjavo in potem zmanjša Števec spremenljivka dokler na koncu 1178 01:00:19,090 --> 01:00:23,020 na neki točki, ko odštejemo I dovolj krat, 1 od Dovolj sem časov - 1179 01:00:23,020 --> 01:00:27,290 in samo za pojasnitev, sem minus minus pomeni, da je enak I minus 1. 1180 01:00:27,290 --> 01:00:31,280 >> To bo v bistvu bi jaz navzdol točka, kjer je nekoč sem zadel nič, to 1181 01:00:31,280 --> 01:00:35,260 pogoj ni več res in tako da izstopi iz zanke. 1182 01:00:35,260 --> 01:00:37,045 Torej povsem Poln zavoj natisne le 10-krat. 1183 01:00:37,045 --> 01:00:39,550 1184 01:00:39,550 --> 01:00:41,080 Kakršnakoli vprašanja o while zanko? 1185 01:00:41,080 --> 01:00:44,580 1186 01:00:44,580 --> 01:00:46,790 OK. 1187 01:00:46,790 --> 01:00:50,550 >> Torej obstaja način, da lahko to, kar smo pravkar naredil bolj jedrnato z 1188 01:00:50,550 --> 01:00:51,715 pravimo Za zanke. 1189 01:00:51,715 --> 01:00:55,750 Torej Za zanka je sestavljena iz inicializacijo, stanje, in 1190 01:00:55,750 --> 01:00:58,950 posodobitev, tako kot smo imeli prej V tem while zanko. 1191 01:00:58,950 --> 01:00:59,890 Torej, kaj si poglejmo. 1192 01:00:59,890 --> 01:01:02,900 V tem zanko, medtem ko smo imeli inicializacija, nato pa smo imeli 1193 01:01:02,900 --> 01:01:04,260 pogojem, da smo preverili. 1194 01:01:04,260 --> 01:01:06,450 In potem smo imeli posodobitev korak na vrhu. 1195 01:01:06,450 --> 01:01:10,060 >> Z zanko, to v bistvu traja Te tri stvari, in ga kondenzira 1196 01:01:10,060 --> 01:01:11,370 dol v eni vrstici. 1197 01:01:11,370 --> 01:01:15,130 Torej prva stvar, ki jo počne Za zanke je inicializacija. 1198 01:01:15,130 --> 01:01:19,090 In potem ti podpičjem, nato pa vam stanje, ki je I 1199 01:01:19,090 --> 01:01:22,200 večja od nič gre tja, in potem update korak. 1200 01:01:22,200 --> 01:01:26,470 Tako postane ta opravi na Zelo konec zanke telesa. 1201 01:01:26,470 --> 01:01:28,790 Torej ti dve programi v bistvu enakovredni. 1202 01:01:28,790 --> 01:01:31,960 1203 01:01:31,960 --> 01:01:33,870 >> Vsa vprašanja? 1204 01:01:33,870 --> 01:01:37,000 Torej, kaj je ena razlika med tema dvema? 1205 01:01:37,000 --> 01:01:38,000 Lahko vsakdo poudariti? 1206 01:01:38,000 --> 01:01:40,480 Morda bi bilo nekoliko subtilen. 1207 01:01:40,480 --> 01:01:41,930 To je samo zelo majhna razlika. 1208 01:01:41,930 --> 01:01:42,330 Ja? 1209 01:01:42,330 --> 01:01:49,008 >> SPEAKER 5: Si ne bi mogli uporabiti spremenljivka I izven zanko 1210 01:01:49,008 --> 01:01:49,962 [Neslišno]? 1211 01:01:49,962 --> 01:01:50,900 >> JOSEPH: Točno tako. 1212 01:01:50,900 --> 01:01:53,550 Torej je to nekaj, kar bomo prišli do kasneje se imenuje spremenljivka področje. 1213 01:01:53,550 --> 01:01:56,610 Ampak v bistvu je to int življenje I zunaj tega while zanko. 1214 01:01:56,610 --> 01:01:59,800 Torej, ko je ta Medtem zanka storiti izvršitve, bom lahko uporabila sem kasneje 1215 01:01:59,800 --> 01:02:00,880 na v programu. 1216 01:02:00,880 --> 01:02:05,430 >> Ker se s tem Za zanko, to int I je zajeta v notranjosti ta zanka. 1217 01:02:05,430 --> 01:02:10,240 In zato, ker je v notranjosti tega odseka v zanko, ki se začne 1218 01:02:10,240 --> 01:02:13,200 v oklepajih in se konča z curly brace tam. 1219 01:02:13,200 --> 01:02:16,120 Karkoli, da je razglašena za notranjost Tukaj se ne sme uporabljati zunaj. 1220 01:02:16,120 --> 01:02:20,420 Torej, če sem poskusil, da ga uporabljam zunaj, ga bom povej mi, črno simbol. 1221 01:02:20,420 --> 01:02:22,420 In v bistvu, jaz ne bi mogli uporabljati. 1222 01:02:22,420 --> 01:02:28,460 >> ROB: In tudi, pred 10 leti, v dobesedno vsi primeri, zaviti oklepaji so 1223 01:02:28,460 --> 01:02:31,140 tisto, kar se uporablja za določanje Obseg spremenljivke. 1224 01:02:31,140 --> 01:02:37,240 Torej tam, int i je enak 10 je izjavila znotraj tega 1225 01:02:37,240 --> 01:02:38,520 komplet zavite oklepaje. 1226 01:02:38,520 --> 01:02:42,530 In tako se potem tako dolgo, kot ste poskušali uporabiti I Pred tem kodrastimi oklepaja, je že v redu. 1227 01:02:42,530 --> 01:02:47,090 1228 01:02:47,090 --> 01:02:51,460 Morda boste opazili, ko napišete make, vas glej, pomišljaj pomišljaj, STD, enaka, C99. 1229 01:02:51,460 --> 01:02:57,100 >> Tako da je kasneje različica C, GCC je uvedlo to daje tudi 1230 01:02:57,100 --> 01:02:58,740 Ta bližnjica. 1231 01:02:58,740 --> 01:03:03,505 Torej ta uporablja, da se ne dovoli v C. In lahko vidite, zakaj, ker je to int 1232 01:03:03,505 --> 01:03:07,600 I je zunaj tega kodraste opornico, vendar je še vedno velja, da je v 1233 01:03:07,600 --> 01:03:09,750 Obseg teh zavitih oklepajih. 1234 01:03:09,750 --> 01:03:14,120 Ampak to je zelo priročno stvar, in zato je dobro podaljšek. 1235 01:03:14,120 --> 01:03:15,370 >> JOSEPH: Kakšno vprašanje? 1236 01:03:15,370 --> 01:03:17,550 1237 01:03:17,550 --> 01:03:19,260 OK. 1238 01:03:19,260 --> 01:03:22,820 Torej, kaj je bolj koristno je, da včasih hočeš neke dinamike v 1239 01:03:22,820 --> 01:03:23,410 tvoja zanka, kajne? 1240 01:03:23,410 --> 01:03:26,350 Vi ne želite, da samo nujno tiskanje popolnoma Poln zavoj ves čas, si 1241 01:03:26,350 --> 01:03:28,650 želite odštevati od 10 ali nekaj takega. 1242 01:03:28,650 --> 01:03:32,010 In tako lahko uporabite spremenljivko števec znotraj te zanke kot tudi. 1243 01:03:32,010 --> 01:03:35,530 In v tem primeru je ta program samo odšteva od 10. pa vse navzdol. 1244 01:03:35,530 --> 01:03:39,260 In kaj ne natisne? 1245 01:03:39,260 --> 01:03:42,790 To ne natisne nič, V redu, ker ko - 1246 01:03:42,790 --> 01:03:45,460 Ja, to tudi ne natisne 11. 1247 01:03:45,460 --> 01:03:49,200 >> Torej se ne natisne nič, ker ko Jaz nič, ne pozabite, da ovrednoti 1248 01:03:49,200 --> 01:03:52,170 pogoj, preden gre v za izvedbo zanke telo. 1249 01:03:52,170 --> 01:03:56,820 In ko je nič, to je neresnično, tako ne natisnejo odšteva 1250 01:03:56,820 --> 01:04:00,200 nič, samo natisne štetja dol 10 vse tja do 1. 1251 01:04:00,200 --> 01:04:03,420 Če bi dejansko želel, da natisnete nič, potem bi dal enačaj 1252 01:04:03,420 --> 01:04:04,750 Po daljši od znaka. 1253 01:04:04,750 --> 01:04:09,400 1254 01:04:09,400 --> 01:04:10,130 OK. 1255 01:04:10,130 --> 01:04:16,410 >> Torej en način, da to potrditev vnosa, ki je, ko se od uporabnika zahteva, naj storijo 1256 01:04:16,410 --> 01:04:18,620 nekaj, kar si želite, da bi bili prepričani, da po vaših navodilih, je, da uporabite 1257 01:04:18,620 --> 01:04:19,400 Medtem ko je zanka, kajne? 1258 01:04:19,400 --> 01:04:22,990 Torej, v tem primeru, sem prosim za s pozitivnim predznakom, potem pa sem 1259 01:04:22,990 --> 01:04:23,810 čakanja na vhodu. 1260 01:04:23,810 --> 01:04:28,210 >> In potem sem preveril Čeprav je vhod manj kot nič, da jih vprašam. 1261 01:04:28,210 --> 01:04:32,100 Torej, dokler mi dajo številne ki ni pozitivno, da sprašuje, 1262 01:04:32,100 --> 01:04:33,600 da prosi, da vprašam. 1263 01:04:33,600 --> 01:04:35,860 Toda kaj je nekako čudno glede tega? 1264 01:04:35,860 --> 01:04:38,570 Ali pa tisto, kar se ne zdi optimalna o ta struktura tukaj? 1265 01:04:38,570 --> 01:04:44,282 1266 01:04:44,282 --> 01:04:44,758 Kdorkoli? 1267 01:04:44,758 --> 01:04:45,234 Ja? 1268 01:04:45,234 --> 01:04:47,614 >> 6 zvočnikov: Ste ponavljanje Navodila za dvakrat. 1269 01:04:47,614 --> 01:04:48,100 >> JOSEPH: Right. 1270 01:04:48,100 --> 01:04:50,090 Torej imamo dva printf stavke tukaj, kajne? 1271 01:04:50,090 --> 01:04:53,440 Torej obstaja način, kako bi lahko to dobil samo na eno, ki bi omogočil naše 1272 01:04:53,440 --> 01:04:57,170 kodo lažje branje in malo bolj čist. 1273 01:04:57,170 --> 01:05:00,180 In potem mi ne bi bilo treba so Spravi se dvakrat dobro. 1274 01:05:00,180 --> 01:05:03,740 In eden od načinov, kako lahko to storite, je z uporabo do-while zanko. 1275 01:05:03,740 --> 01:05:07,670 >> In Do-while zanko je v bistvu drugačna oblika while zanko, kjer 1276 01:05:07,670 --> 01:05:11,460 vse, kar je v zavitih oklepajih dobi zažene vsaj enkrat. 1277 01:05:11,460 --> 01:05:14,840 Torej tukaj, izjavljam, int vhod, zunaj prvič. 1278 01:05:14,840 --> 01:05:18,100 In potem sem samo rekel, to storite pouk, ko je vhodni 1279 01:05:18,100 --> 01:05:19,140 je manjša od nič. 1280 01:05:19,140 --> 01:05:20,530 Tako se dotakne najprej storiti. 1281 01:05:20,530 --> 01:05:24,190 To bo vedno izvršiti ta vsaj enkrat, tako da bo vedno vprašal uporabnika 1282 01:05:24,190 --> 01:05:25,960 za vnos vsaj enkrat. 1283 01:05:25,960 --> 01:05:29,390 In potem se ocenjuje, da je prispevek, in gre naprej v krogu. 1284 01:05:29,390 --> 01:05:30,135 Ja, vprašanje? 1285 01:05:30,135 --> 01:05:32,602 >> SPEAKER 6: Ali obstaja način, da to storite [Neslišno] vrste, kot če rečeš, 1286 01:05:32,602 --> 01:05:34,268 GetString, in nekdo [neslišno] 1287 01:05:34,268 --> 01:05:35,220 obstaja način, da se [neslišno] 1288 01:05:35,220 --> 01:05:40,060 >> JOSEPH: Torej, vprašanje je, ali obstaja način za potrditev vnos, če uporabnik 1289 01:05:40,060 --> 01:05:41,850 ne postavlja v desno tip spremenljivke? 1290 01:05:41,850 --> 01:05:44,460 Torej, če bomo prosili za notr in so nam niz namesto tega. 1291 01:05:44,460 --> 01:05:49,110 In v funkcijah, ki jih izvajajo za vas, GetInt, GetString v vseh 1292 01:05:49,110 --> 01:05:52,680 tiste funkcije, ki jih dejansko že narediti, da se takšne osnovne vhodom 1293 01:05:52,680 --> 01:05:54,120 Validacija pod pokrovom. 1294 01:05:54,120 --> 01:05:57,390 Torej, če ste z uporabo funkcije, ki jih vam dal, da vam ni treba, da res. 1295 01:05:57,390 --> 01:06:01,380 >> Toda, če želite videti bolj v tem, kako lahko dejansko narediti, si lahko ogledate 1296 01:06:01,380 --> 01:06:03,360 pod pokrovom na datoteko I/O-- 1297 01:06:03,360 --> 01:06:07,990 ni vložilo, standardne I / O funkcije kot so branje iz standardnega vhoda in 1298 01:06:07,990 --> 01:06:08,580 standardni izhod. 1299 01:06:08,580 --> 01:06:10,630 In lahko dobite boljši občutek o tem, kako bi lahko to naredil. 1300 01:06:10,630 --> 01:06:13,670 >> ROB: Eno vprašanje, čeprav je izrecno Na primeru si 1301 01:06:13,670 --> 01:06:17,070 je dejal, lahko pričakujete vrvico in vnesem int. 1302 01:06:17,070 --> 01:06:20,110 Kako bi ti povedati razlike med namerno želijo 1303 01:06:20,110 --> 01:06:23,130 Niz 123 v primerjavi želijo int 123? 1304 01:06:23,130 --> 01:06:29,230 Torej niz, to je precej ni validacija, to je samo, kar se jim 1305 01:06:29,230 --> 01:06:31,600 začel boste razlagajo kot niz. 1306 01:06:31,600 --> 01:06:35,790 >> Int je lažje, saj ni važno, input vzameš od uporabnika, da ste 1307 01:06:35,790 --> 01:06:37,470 Vedno ob niz. 1308 01:06:37,470 --> 01:06:40,650 In tako, da niz lahko potem preverjanje, so vse te 1309 01:06:40,650 --> 01:06:44,218 dejansko številčne številke? 1310 01:06:44,218 --> 01:06:45,170 >> JOSEPH: OK. 1311 01:06:45,170 --> 01:06:46,420 Vsa vprašanja o do-while zanko? 1312 01:06:46,420 --> 01:06:49,170 >> ROB: Oh, in to je prav - 1313 01:06:49,170 --> 01:06:55,130 grem nazaj na področje, nekoliko pogosti napaka poskuša uporabiti nekatere lokalne 1314 01:06:55,130 --> 01:06:59,540 spremenljivka v okviru te Do-Medtem, ko je zanka znotraj tega stanja. 1315 01:06:59,540 --> 01:07:02,850 In dejansko, če bomo znebili to in dejal, vhod int enaka 1316 01:07:02,850 --> 01:07:06,990 GetInt, potem bo prevajalnik nadrl us, ker vhod ne obstaja 1317 01:07:06,990 --> 01:07:08,900 zunaj področja ti zaviti oklepaji. 1318 01:07:08,900 --> 01:07:10,792 >> JOSEPH: In to je, zakaj smo Potrebujem to zasedbo tukaj. 1319 01:07:10,792 --> 01:07:13,620 1320 01:07:13,620 --> 01:07:14,630 OK. 1321 01:07:14,630 --> 01:07:17,530 Torej si lahko prekinil tudi iz Zanka zgodaj, če želite. 1322 01:07:17,530 --> 01:07:21,240 Torej je to drugačen način izvajanjem, kar smo pravkar izvaja. 1323 01:07:21,240 --> 01:07:24,340 In namesto uporabe pogoj v oklepaju, smo s pomočjo 1324 01:07:24,340 --> 01:07:26,920 Če izjava v notranjosti telesa o Do-while zanko. 1325 01:07:26,920 --> 01:07:30,000 >> In v bistvu, ko je vhodna končno večja od nič, bomo 1326 01:07:30,000 --> 01:07:31,000 premakniti iz zanke. 1327 01:07:31,000 --> 01:07:33,420 In tako bomo šli vsi Tako sem dol. 1328 01:07:33,420 --> 01:07:37,920 In lahko vidite, da bi to Verjetno je prednost v tem 1329 01:07:37,920 --> 01:07:39,870 scenarij, ker je malo nekoliko čistejši in malo 1330 01:07:39,870 --> 01:07:41,380 nekoliko lažje brati. 1331 01:07:41,380 --> 01:07:45,210 Ker to si nekako imajo dodatne linije v njem. 1332 01:07:45,210 --> 01:07:47,890 To je samo malo grši, Mislim, na nek način. 1333 01:07:47,890 --> 01:07:48,530 Ja, vprašanje? 1334 01:07:48,530 --> 01:07:52,178 >> SPEAKER 4: Bo prekinil le dobil ste iz enega niza naramnic? 1335 01:07:52,178 --> 01:07:53,080 >> JOSEPH: Right. 1336 01:07:53,080 --> 01:07:58,100 Torej je vprašanje bo prekinil le prideš iz ene zanke? 1337 01:07:58,100 --> 01:07:59,280 In odgovor je pritrdilen. 1338 01:07:59,280 --> 01:08:04,290 Torej, če ste ugnezdena Za zank, za Na primer, če imam za notr mi je enaka 0. 1339 01:08:04,290 --> 01:08:09,040 do 10 in nato za notr J enaka 0. do 10, če bom prekinil iz notranje 1340 01:08:09,040 --> 01:08:12,310 zanka, bom še šel z zunanjo zanko. 1341 01:08:12,310 --> 01:08:15,760 Zato bomo še naprej opravlja operacije na zunanji strani. 1342 01:08:15,760 --> 01:08:17,640 Vsa vprašanja o tem? 1343 01:08:17,640 --> 01:08:18,000 Ja? 1344 01:08:18,000 --> 01:08:21,760 >> SPEAKER 5: Ampak prekinil samo funkcije za zavite oklepaje, ne pa tudi za druge 1345 01:08:21,760 --> 01:08:22,230 izjave? 1346 01:08:22,230 --> 01:08:22,700 [Neslišno] 1347 01:08:22,700 --> 01:08:27,620 >> JOSEPH: Torej je vprašanje bo prekinil Funkcija samo za zanke, v nasprotju z 1348 01:08:27,620 --> 01:08:29,014 druge izjave všeč, če bi? 1349 01:08:29,014 --> 01:08:32,950 In ja, da je tako, saj boš rešil iz zanke, desno, 1350 01:08:32,950 --> 01:08:33,630 v nekem smislu. 1351 01:08:33,630 --> 01:08:37,215 >> ROB: V večini primerov, to je to je nekako, če kaj, 1352 01:08:37,215 --> 01:08:37,660 nato prekinil. 1353 01:08:37,660 --> 01:08:41,580 Torej vam ni treba, da bi prekinil uporablja za Če da se ovije okoli njega. 1354 01:08:41,580 --> 01:08:45,250 In tudi to ni veliko zanki vendar ne pozabite, da so tudi stikala 1355 01:08:45,250 --> 01:08:46,340 pobegnil iz odmori. 1356 01:08:46,340 --> 01:08:48,390 Videla sva se uporablja počitnice s stikali prej. 1357 01:08:48,390 --> 01:08:52,189 >> JOSEPH: In lahko se jih uporabi tudi Medtem ko se v zankah in for zanke. 1358 01:08:52,189 --> 01:08:54,560 Vsa vprašanja? 1359 01:08:54,560 --> 01:08:55,830 OK. 1360 01:08:55,830 --> 01:08:57,779 Torej, naslednjič se je funkcij. 1361 01:08:57,779 --> 01:09:01,500 Torej, morda ste uporabili eno od teh BYOB bloki v vašem Scratch projektu. 1362 01:09:01,500 --> 01:09:04,569 In to v bistvu omogoča da se opredeli niz 1363 01:09:04,569 --> 01:09:05,680 navodila je treba upoštevati. 1364 01:09:05,680 --> 01:09:09,569 >> In kaj mislim s tem je, kaj je razmišljati nazaj na matematiki, desno, algebra. 1365 01:09:09,569 --> 01:09:13,370 Imate tisto, čemur pravimo funkcija x, nekateri spremenljivka, in recimo, da je to 1366 01:09:13,370 --> 01:09:16,080 Funkcija f od x enako x plus 5. 1367 01:09:16,080 --> 01:09:20,410 Torej si lahko zamislite f x saj to black polje, ki traja 15 in pozneje 1368 01:09:20,410 --> 01:09:22,590 proizvaja 20. 1369 01:09:22,590 --> 01:09:26,630 >> Tako na splošno, funkcija nekaj, kar traja nekaj vhodov in 1370 01:09:26,630 --> 01:09:27,880 nato pa proizvaja nekaj izhodov. 1371 01:09:27,880 --> 01:09:31,920 1372 01:09:31,920 --> 01:09:32,960 In zakaj so funkcije, dobro? 1373 01:09:32,960 --> 01:09:35,189 Oni so dobri za več razlogov. 1374 01:09:35,189 --> 01:09:40,470 Torej nekdo rad, da bi zabodel kaj organizacija pomeni? 1375 01:09:40,470 --> 01:09:42,630 V smislu, zakaj funkcij, so v pomoč? 1376 01:09:42,630 --> 01:09:43,090 Ja? 1377 01:09:43,090 --> 01:09:44,735 >> SPEAKER 4: To je vaše koda bolj berljiva. 1378 01:09:44,735 --> 01:09:45,399 >> JOSEPH: Right. 1379 01:09:45,399 --> 01:09:47,670 Torej ena od stvari, ki se jih naredi kodo bolj berljivo, kajne? 1380 01:09:47,670 --> 01:09:53,710 Namesto da bi kot int x je enako x krat x krat x, lahko imam kocko x, 1381 01:09:53,710 --> 01:09:57,190 ki je bolj berljiva in bolj razumljivo, da bralca. 1382 01:09:57,190 --> 01:10:01,150 >> Organizacija je tudi v smislu razšla kodo v obvladljive 1383 01:10:01,150 --> 01:10:05,610 dele, tako da namesto da izvajati vse to v enem dolgem odseku 1384 01:10:05,610 --> 01:10:09,070 V glavnem, lahko nekako razdelili v kot, OK, dajmo napisati funkcijo 1385 01:10:09,070 --> 01:10:11,910 na kocko nekaj, dajmo napisati delujejo na kvadratni nekaj. 1386 01:10:11,910 --> 01:10:15,950 Na ta način ga lahko razdeli na drobne, majhne dele, ki jih lahko reševanje 1387 01:10:15,950 --> 01:10:18,944 v nasprotju s poskuša rešiti Velik problem naenkrat. 1388 01:10:18,944 --> 01:10:21,806 >> ROB: Ali celo drobne, majhne dele, ki ti in partner ne more spopasti. 1389 01:10:21,806 --> 01:10:22,283 >> Joseph: Ja. 1390 01:10:22,283 --> 01:10:23,855 >> ROB: Torej, namesto da bi oba skušaš vsadil enega 1391 01:10:23,855 --> 01:10:27,170 delovati hkrati. 1392 01:10:27,170 --> 01:10:28,800 >> JOSEPH: Poenostavitev. 1393 01:10:28,800 --> 01:10:30,050 Kdo želel ugibati? 1394 01:10:30,050 --> 01:10:33,080 1395 01:10:33,080 --> 01:10:33,410 Ja? 1396 01:10:33,410 --> 01:10:34,675 >> SPEAKER 5: več ponovitev. 1397 01:10:34,675 --> 01:10:35,260 >> JOSEPH: Right. 1398 01:10:35,260 --> 01:10:39,210 Torej, ena stvar, ki jo lahko naredite z Poenostavitev je, da je nekako na 1399 01:10:39,210 --> 01:10:42,520 podobno kot ponovne uporabnosti je, da Nekoč sem napisal funkcijo kocke, sem lahko 1400 01:10:42,520 --> 01:10:45,410 samo uporabo, ki znova in znova in znova spet v mojem programu namesto tipkanja 1401 01:10:45,410 --> 01:10:49,610 x-krat x krat x več in znova in znova. 1402 01:10:49,610 --> 01:10:52,980 In poenostavitev tudi tukaj samo pomeni, da naredi svojo kodo vrste 1403 01:10:52,980 --> 01:10:55,900 lažje debug, ko ste po delih Ta se v funkcij. 1404 01:10:55,900 --> 01:10:58,250 Ker potem lahko locirajo kam vaše težave nekako so. 1405 01:10:58,250 --> 01:11:00,910 1406 01:11:00,910 --> 01:11:02,160 Vsa vprašanja? 1407 01:11:02,160 --> 01:11:04,200 1408 01:11:04,200 --> 01:11:06,540 >> Torej, še ena ideja je abstrakcija, kajne? 1409 01:11:06,540 --> 01:11:07,390 Ta black box. 1410 01:11:07,390 --> 01:11:11,360 Tako kot veš, kaj počne GetInt da sprejme vnos uporabnika? 1411 01:11:11,360 --> 01:11:12,510 Smo vam res ni povedal, kajne? 1412 01:11:12,510 --> 01:11:15,670 Vse, kar sem vam povedal, je GetInt ne točno to, kar pravi, da ne. 1413 01:11:15,670 --> 01:11:18,440 Torej, tudi če vam ne povem, kako deluje, veste. 1414 01:11:18,440 --> 01:11:21,670 >> Torej v tem primeru je to quadruple funkcijo, ki ne 1415 01:11:21,670 --> 01:11:24,520 različnih stvari, da vložek da se stvori izhod. 1416 01:11:24,520 --> 01:11:28,050 In lahko štirikrat več tako, da jo pomnožimo s štiri. 1417 01:11:28,050 --> 01:11:30,790 Ali si lahko to, kar imenujemo bit se premika z dva. 1418 01:11:30,790 --> 01:11:32,960 In bomo to kritje malo kasneje. 1419 01:11:32,960 --> 01:11:36,570 In ni potrebe, da veš, kako to funkcija dejansko deluje tako dolgo, kot to 1420 01:11:36,570 --> 01:11:37,640 Deluje kot je navedeno. 1421 01:11:37,640 --> 01:11:40,740 >> Torej, pod pokrovom, bi moral biti podobno, vrnejo vhodni krat 1422 01:11:40,740 --> 01:11:41,690 osem deljeno z dva. 1423 01:11:41,690 --> 01:11:42,510 In ti ne bi vedel, kajne? 1424 01:11:42,510 --> 01:11:44,970 Vse, kar morate vedeti je to ne, kaj piše. 1425 01:11:44,970 --> 01:11:48,070 Tako, da je uporabna stvar O abstrakcije. 1426 01:11:48,070 --> 01:11:52,910 >> In še ena stvar je nekako ta ideja o lokalizaciji kodo na eno 1427 01:11:52,910 --> 01:11:54,280 Določen odsek. 1428 01:11:54,280 --> 01:11:57,450 Torej, če imate težave, vam ne iti po vsem kodo poskuša 1429 01:11:57,450 --> 01:11:58,730 da se določi, kje je problem. 1430 01:11:58,730 --> 01:12:00,990 Torej, v tem primeru, sem izvajala kocko narobe. 1431 01:12:00,990 --> 01:12:02,820 Mislil sem, kocka je množenjem s tri. 1432 01:12:02,820 --> 01:12:05,760 >> Torej, v tem primeru pa je to en program da samo se pomnoži s tri 1433 01:12:05,760 --> 01:12:06,750 povsod. 1434 01:12:06,750 --> 01:12:10,910 In tu je še en program, ki ima Odkupi kocka ven v funkciji. 1435 01:12:10,910 --> 01:12:14,040 In tako zdaj, če želim popraviti svoj napako Tu moram popraviti vsak linijo 1436 01:12:14,040 --> 01:12:15,620 kode v tem programu. 1437 01:12:15,620 --> 01:12:19,190 Medtem ko na drugi strani, če bi uporabili Funkcija, rabim samo spremeniti 1438 01:12:19,190 --> 01:12:20,650 kaj je bilo narobe na enem mestu. 1439 01:12:20,650 --> 01:12:25,330 1440 01:12:25,330 --> 01:12:28,730 >> Torej, v računalništvu, smo pokličite vhode in izhode. 1441 01:12:28,730 --> 01:12:31,640 Vhodi se imenujejo parametri ali argumenti in izhodi se imenujejo 1442 01:12:31,640 --> 01:12:32,950 vrne vrednosti. 1443 01:12:32,950 --> 01:12:39,000 In bomo videli, kako nam to pomaga sort od definiramo funkcijo v sekundi. 1444 01:12:39,000 --> 01:12:41,430 Torej je ta opredelitev funkcija za cubing. 1445 01:12:41,430 --> 01:12:45,110 Torej je potrebno vhod, nato pa se vrne, da število krat 1446 01:12:45,110 --> 01:12:47,020 samo trikrat. 1447 01:12:47,020 --> 01:12:48,020 Torej, kaj je razdeliti. 1448 01:12:48,020 --> 01:12:53,090 >> Tako da imamo glavo funkcijo, ki v bistvu sestavljen iz treh stvari. 1449 01:12:53,090 --> 01:12:56,050 Torej imamo parametre, ki so, kot sem že dejal, 1450 01:12:56,050 --> 01:12:57,680 vhodi v tej funkciji. 1451 01:12:57,680 --> 01:12:59,300 In potem smo dali funkcijo ime. 1452 01:12:59,300 --> 01:13:00,740 V tem primeru, je pozval kocka. 1453 01:13:00,740 --> 01:13:03,860 In potem smo opredeliti, kaj na vrsto o je vrednost donos. 1454 01:13:03,860 --> 01:13:06,760 >> Torej, v tem primeru moja kocka funkcija bo v celo število in je tudi 1455 01:13:06,760 --> 01:13:07,890 vrne celo število. 1456 01:13:07,890 --> 01:13:11,510 Torej, če sem mimo v dveh, dva je celo, vrne osem do mene, ki 1457 01:13:11,510 --> 01:13:13,250 je celo število. 1458 01:13:13,250 --> 01:13:15,420 Torej vrnitev tipa parametre imena. 1459 01:13:15,420 --> 01:13:16,670 Vprašanja o tem? 1460 01:13:16,670 --> 01:13:19,440 1461 01:13:19,440 --> 01:13:24,230 >> In nato vrne vrednost dejansko navedena na koncu z besedami vrnitev 1462 01:13:24,230 --> 01:13:27,540 in potem vračanje karkoli vsebuje vrednost donosa. 1463 01:13:27,540 --> 01:13:30,940 Torej, v tem primeru, če bi dal vse skupaj, funkcija bo v 1464 01:13:30,940 --> 01:13:35,100 parametri, ki se imenuje nekaj, in da vrne nekaj, kar je tip 1465 01:13:35,100 --> 01:13:36,350 da smo rekli, da je, da bo. 1466 01:13:36,350 --> 01:13:39,830 1467 01:13:39,830 --> 01:13:41,080 Vsa vprašanja? 1468 01:13:41,080 --> 01:13:43,710 1469 01:13:43,710 --> 01:13:45,080 >> Torej, kako bomo uporabili funkcijo? 1470 01:13:45,080 --> 01:13:49,230 No, smo napisali funkcijo in nato jih uporabljamo v našem programu, kajne? 1471 01:13:49,230 --> 01:13:51,565 Poklical sem ga kocka, in potem sem lahko uporabite kocko. 1472 01:13:51,565 --> 01:13:54,200 >> Toda, kaj je pomembno omeniti je, da se zadeve reda. 1473 01:13:54,200 --> 01:13:58,100 Če imam kocko pod glavno, da je dogaja, da naletite na kocke. 1474 01:13:58,100 --> 01:14:00,360 In na tej točki, ni nič imenovana kocka v programu, in to je 1475 01:14:00,360 --> 01:14:02,550 le, da bo všeč, imam Ne vem, kaj kocka. 1476 01:14:02,550 --> 01:14:05,060 >> Tako, da bo povedal, implicitno Izjava funkcije. 1477 01:14:05,060 --> 01:14:06,690 To je napaka, ki se pojavi. 1478 01:14:06,690 --> 01:14:10,230 In tako v tem primeru, kocka je spodaj Glavno, da je ne bo 1479 01:14:10,230 --> 01:14:12,006 vedeti o tem. 1480 01:14:12,006 --> 01:14:14,724 >> SPEAKER 5: Torej glavna je običajno zadnja funkcija definirana? 1481 01:14:14,724 --> 01:14:17,290 >> JOSEPH: Torej, vprašanje je, je glavni običajno zadnji 1482 01:14:17,290 --> 01:14:18,170 stvar, ki bi jo opredeliti? 1483 01:14:18,170 --> 01:14:19,730 In ne. 1484 01:14:19,730 --> 01:14:22,280 To je zato, ker smo ponavadi radi glavni biti na vrhu, kajne? 1485 01:14:22,280 --> 01:14:24,640 Ker je to prva stvar, ki jo želijo odprtju programer 1486 01:14:24,640 --> 01:14:25,640 Program za videti. 1487 01:14:25,640 --> 01:14:29,950 In tako, kako bomo rešili to vprašanje smo radi glavni biti na vrhu, vendar 1488 01:14:29,950 --> 01:14:33,750 Funkcije, ki jih želimo, smo jim želeli da je pod glavnim še lahko uporabila 1489 01:14:33,750 --> 01:14:34,930 jim znotraj main? 1490 01:14:34,930 --> 01:14:36,870 >> No, bomo uporabili kar imenujemo Funkcija prototip. 1491 01:14:36,870 --> 01:14:40,830 Torej, kaj je funkcija prototip bistvu se je najprej potrebno kaj 1492 01:14:40,830 --> 01:14:45,060 podpis ali glava funkcije kaj želimo izvajati navzdol 1493 01:14:45,060 --> 01:14:47,420 tukaj, in mi ga dal na Vrh programa. 1494 01:14:47,420 --> 01:14:51,400 >> Torej, v tem primeru rečemo, da je dobro, kasneje v našem programu, greva 1495 01:14:51,400 --> 01:14:55,010 da bi obljubo, da bo izvajanje tega Funkcija se imenuje int kocka, ki traja 1496 01:14:55,010 --> 01:14:56,260 vhod število. 1497 01:14:56,260 --> 01:15:00,870 Torej sedaj, saj je nad glavnim, Glavno, da se dogaja, da se reči, oh, dobro, 1498 01:15:00,870 --> 01:15:03,910 kasneje v programu, ki se bo tam, tako da sem se lahko sklicuje na to, da bom 1499 01:15:03,910 --> 01:15:05,230 samo pustite, da gredo skozi, za zdaj. 1500 01:15:05,230 --> 01:15:07,660 >> In nato na dnu, izvajamo kocko. 1501 01:15:07,660 --> 01:15:11,180 In potem glavna bo samo rekel, dobro, bo to neke vrste povezavo 1502 01:15:11,180 --> 01:15:12,250 Ta dva simbola skupaj. 1503 01:15:12,250 --> 01:15:14,320 In bomo kritje, kaj to pomeni kasneje. 1504 01:15:14,320 --> 01:15:17,090 In tako bomo vedeli, da je to kocka funkcijo, ki naj bi ga uporabili. 1505 01:15:17,090 --> 01:15:19,630 1506 01:15:19,630 --> 01:15:23,383 >> ROB: [neslišno] o želijo Glavni na dnu ali 1507 01:15:23,383 --> 01:15:24,880 top, sem videl oba. 1508 01:15:24,880 --> 01:15:28,630 Obstajajo stvari, ki tako kot postaviti glavni na dnu. 1509 01:15:28,630 --> 01:15:32,520 Toda, ko postane projekt posebej velika, običajno glavna je v 1510 01:15:32,520 --> 01:15:34,290 vložiti vse svoje. 1511 01:15:34,290 --> 01:15:38,170 In na tej točki, kot je int kocka linija bi - 1512 01:15:38,170 --> 01:15:42,460 Notranjost stdio.h kup vrstic, tako kot to notr 1513 01:15:42,460 --> 01:15:44,010 Kocka int vnosna vrstica. 1514 01:15:44,010 --> 01:15:50,170 >> In tako ti prototipi so stvari, ki jih ponavadi dajo v header datoteke, na 1515 01:15:50,170 --> 01:15:52,140 , ki kažejo, da ni pomembno. 1516 01:15:52,140 --> 01:15:54,700 No, saj ni važno. 1517 01:15:54,700 --> 01:15:56,070 Tisti, ki gredo vedno na vrhu. 1518 01:15:56,070 --> 01:15:59,490 In če je glavni ni datoteka vse sama, vam ni treba skrbeti za dajanje 1519 01:15:59,490 --> 01:16:02,360 posameznih funkcij prototipi v datoteki. 1520 01:16:02,360 --> 01:16:05,370 >> JOSEPH: In bomo prišli do, da je malo malce kasneje, ko Rob začne govoriti 1521 01:16:05,370 --> 01:16:06,380 o izdelavi. 1522 01:16:06,380 --> 01:16:09,480 In tako se je tudi razlika med parametrom in argumentom. 1523 01:16:09,480 --> 01:16:12,500 In parameter je samo tisto, pravimo teh vložkov, ko 1524 01:16:12,500 --> 01:16:13,820 definiramo funkcijo. 1525 01:16:13,820 --> 01:16:16,950 In ga imenujemo argument, ko smo dejansko prehajajo v funkciji. 1526 01:16:16,950 --> 01:16:19,600 >> Torej v tem primeru, to je parameter, kot smo rekli prej. 1527 01:16:19,600 --> 01:16:24,130 In ko smo dejansko uporabljajo tam, kocka X, X sama 1528 01:16:24,130 --> 01:16:25,910 kar imenujemo argument do funkcije kocke. 1529 01:16:25,910 --> 01:16:28,150 >> ROB: Torej argumenti parameter so - 1530 01:16:28,150 --> 01:16:33,270 da je to razlikovanje, zelo zmeden izmenično. 1531 01:16:33,270 --> 01:16:37,090 Na tej točki se mi, to je kot eno od tiste besede, ko sem jo videl v 1532 01:16:37,090 --> 01:16:41,190 divji, ne morem pomagati, ampak takoj Vprašanje, ali se ga uporablja v 1533 01:16:41,190 --> 01:16:44,120 Pravilna ozadje, ker Razlika je dovolj subtilen, da samo 1534 01:16:44,120 --> 01:16:45,500 vsi nagiba - 1535 01:16:45,500 --> 01:16:48,530 Skoraj vedno rečem argument ne glede na to, kaj mislim. 1536 01:16:48,530 --> 01:16:51,230 1537 01:16:51,230 --> 01:16:54,630 >> JOSEPH: in funkcije so tudi koristne za tisto, čemur pravimo stranske učinke. 1538 01:16:54,630 --> 01:16:59,230 Tako lahko funkcija sprejme nobenih vložkov, in lahko proizvajajo tudi brez izhoda. 1539 01:16:59,230 --> 01:17:03,280 Torej, v tem primeru, sem definira podprogram, ki nima 1540 01:17:03,280 --> 01:17:03,970 vrne vrednost. 1541 01:17:03,970 --> 01:17:07,730 In da bi se določilo, da smo uporabili pravimo praznino tukaj. 1542 01:17:07,730 --> 01:17:10,890 Tako je stranski učinek te funkcije je, da je to samo natisne stvari 1543 01:17:10,890 --> 01:17:11,920 ven na strani. 1544 01:17:11,920 --> 01:17:13,840 To dejansko ne bo vsaka vložki, in to ne 1545 01:17:13,840 --> 01:17:15,360 dejansko prinesel nobenih rezultatov. 1546 01:17:15,360 --> 01:17:18,230 >> Toda to je lahko koristno v smislu če želite, na primer, razhroščevanje 1547 01:17:18,230 --> 01:17:21,530 nekaj v vašem programu, če hočeš napisati malo podprogram, ki 1548 01:17:21,530 --> 01:17:25,160 natisne, recimo, vsebina spomina ali kaj podobnega. 1549 01:17:25,160 --> 01:17:29,800 In tako se ti neželeni učinki so včasih koristne izven okvira 1550 01:17:29,800 --> 01:17:33,010 of rad vhode in izhode. 1551 01:17:33,010 --> 01:17:34,260 Vsa vprašanja? 1552 01:17:34,260 --> 01:17:37,270 1553 01:17:37,270 --> 01:17:44,240 >> In na koncu ta segment, kaj ta program naredil? 1554 01:17:44,240 --> 01:17:47,420 Dam ti fantje nekaj sekund, da se glasi skozi njo. 1555 01:17:47,420 --> 01:17:52,720 1556 01:17:52,720 --> 01:17:56,880 Na zelo osnovni ravni, kar smo želeli reči, da zamenjave X in Y, ne? 1557 01:17:56,880 --> 01:18:00,090 >> Torej, koliko vas dejansko misli To bo zamenjali X in Y? 1558 01:18:00,090 --> 01:18:02,160 Naj dvigne roko. 1559 01:18:02,160 --> 01:18:02,760 Nihče. 1560 01:18:02,760 --> 01:18:03,070 OK. 1561 01:18:03,070 --> 01:18:06,720 Ki misli, da bo ne zamenjajo X in Y? 1562 01:18:06,720 --> 01:18:09,120 In vsota, ki je bila ne celotnega prostora. 1563 01:18:09,120 --> 01:18:10,440 Tako da nekateri ljudje niso prepričani. 1564 01:18:10,440 --> 01:18:10,920 OK. 1565 01:18:10,920 --> 01:18:11,630 To je smiselno. 1566 01:18:11,630 --> 01:18:16,450 >> Torej, gremo skozi to, kar se zgodi, ko ste dejansko prvi klic funkcije 1567 01:18:16,450 --> 01:18:18,320 Da bi odgovorili na to vprašanje. 1568 01:18:18,320 --> 01:18:21,430 Torej je to tisto, spomin nekako izgleda. 1569 01:18:21,430 --> 01:18:23,860 To je nekako kot poenostavljenega modela kaj spomin zgleda, ko 1570 01:18:23,860 --> 01:18:24,800 zaženete program. 1571 01:18:24,800 --> 01:18:27,270 Torej, nekaj je pozval kup tukaj in 1572 01:18:27,270 --> 01:18:28,330 nekaj, kar ti kup. 1573 01:18:28,330 --> 01:18:30,950 In ti rastejo proti Sredi spomina. 1574 01:18:30,950 --> 01:18:33,860 >> Torej v tem primeru, ko pokličete funkcijo, je 1575 01:18:33,860 --> 01:18:35,680 dobi dal na kupu. 1576 01:18:35,680 --> 01:18:38,900 In potem, kar je vsebovano, da funkcija ostane v tisto, čemur pravimo, da 1577 01:18:38,900 --> 01:18:40,550 Funkcija je kup okvir. 1578 01:18:40,550 --> 01:18:44,500 In tako bi dobili lepo vizualizacijo to Pojdimo - na primer, smo imeli 1579 01:18:44,500 --> 01:18:45,960 Program Glavni prej. 1580 01:18:45,960 --> 01:18:47,820 In znotraj glavno, smo poklicali kocko. 1581 01:18:47,820 --> 01:18:50,650 Torej glavna bi najprej šel na kupu okvir, saj je prva naloga 1582 01:18:50,650 --> 01:18:51,640 da se reče. 1583 01:18:51,640 --> 01:18:55,740 >> In potem ko je kocka imenuje znotraj Glavno, dobi dal na vrhu glavnega 1584 01:18:55,740 --> 01:18:57,790 notranjosti spomina. 1585 01:18:57,790 --> 01:19:02,090 Torej, kaj boste opazili, tukaj je, da je kocka ima svoje parametrov in njenem 1586 01:19:02,090 --> 01:19:02,950 Lastna domačini. 1587 01:19:02,950 --> 01:19:06,720 Torej, ko ste dejansko opraviti nekaj funkcija, parametri, ki jih 1588 01:19:06,720 --> 01:19:09,910 dobi so kopije, kar je bilo sprejet od glavnih. 1589 01:19:09,910 --> 01:19:14,140 >> In nekako to pojasnite, kaj je sprehod skozi program. 1590 01:19:14,140 --> 01:19:16,960 Torej imamo kup, to je samo kup del. 1591 01:19:16,960 --> 01:19:21,240 In kaj moramo storiti, je najprej inicializacijo X in Y, da ena in dve. 1592 01:19:21,240 --> 01:19:22,400 Torej imamo te male škatle. 1593 01:19:22,400 --> 01:19:25,310 Sedijo na kupu glavnih je uokviriti na kupu. 1594 01:19:25,310 --> 01:19:26,580 Vsebujejo ena in dve. 1595 01:19:26,580 --> 01:19:28,820 >> Zdaj pravimo swap. 1596 01:19:28,820 --> 01:19:33,940 Kaj se zgodi, je, da smo mimo X in Y v swap in swap ustvarja lastne kopije 1597 01:19:33,940 --> 01:19:36,520 za tiste spremenljivke, za uporabo v notranjosti njenega dimnika okvirja. 1598 01:19:36,520 --> 01:19:39,920 Torej, zdaj tam, imamo, kar vsebuje vrednost, ki x pridobili; in B 1599 01:19:39,920 --> 01:19:41,620 ki vsebuje vrednosti, ki y imel. 1600 01:19:41,620 --> 01:19:42,670 Torej, ena, dva. 1601 01:19:42,670 --> 01:19:47,130 >> In boste opazili, da je to samostojen od x in y znotraj žarometov. 1602 01:19:47,130 --> 01:19:51,390 Tako smo sedaj ustvarili začasno spremenljivka vsebuje. 1603 01:19:51,390 --> 01:19:56,100 Postavili smo enako B, tako da Spremembe od enega do dveh. 1604 01:19:56,100 --> 01:19:59,340 In potem smo postavili b enaki na temperaturi, ki je ena. 1605 01:19:59,340 --> 01:20:01,640 >> In potem zdaj smo izhod iz te funkcije. 1606 01:20:01,640 --> 01:20:04,310 1607 01:20:04,310 --> 01:20:07,410 Ko zapustite iz funkcije, Sveženj okvir dobi izstrelil off stack. 1608 01:20:07,410 --> 01:20:08,270 Kličemo ga potisnite. 1609 01:20:08,270 --> 01:20:12,750 Pritisneš Stack okvir na kupu in ti pop če off dimnika. 1610 01:20:12,750 --> 01:20:16,080 In kaj se zgodi, je vse, kar je je bilo v dimnik okvirja vrste tik 1611 01:20:16,080 --> 01:20:17,280 gre v plamenih. 1612 01:20:17,280 --> 01:20:19,180 In tako, da ne obstaja več. 1613 01:20:19,180 --> 01:20:20,470 >> Toda kaj smo opazili? 1614 01:20:20,470 --> 01:20:23,690 Mi dejansko nikoli spremenila vrednosti x in y, desna? 1615 01:20:23,690 --> 01:20:26,530 Torej tisti, ostal lokalen glavni. 1616 01:20:26,530 --> 01:20:29,900 In s posredovanjem stvari v zamenjavo smo pravzaprav nikoli spremenila te vrednote. 1617 01:20:29,900 --> 01:20:31,260 In kaj pravijo temu? 1618 01:20:31,260 --> 01:20:33,040 Temu pravimo po vrednosti. 1619 01:20:33,040 --> 01:20:36,860 >> Torej v C, ko se boste peljali stvari v funkcije, da jih posreduje po vrednosti in 1620 01:20:36,860 --> 01:20:40,160 naredi kopijo njih za funkcija za uporabo. 1621 01:20:40,160 --> 01:20:43,980 In bomo spoznali nekaj, kar ti po referenci kasneje, a to 1622 01:20:43,980 --> 01:20:45,390 Tako boste lahko rešili ta problem. 1623 01:20:45,390 --> 01:20:47,080 Vendar mi ne bo treba skrbeti da šele kasneje. 1624 01:20:47,080 --> 01:20:52,200 >> ROB: In pravzaprav, da je izraz, ki prehaja z referenco, tako C nima niti 1625 01:20:52,200 --> 01:20:54,270 mimo primerjanje. 1626 01:20:54,270 --> 01:20:56,760 C je izključno posredovanje z vrednostjo. 1627 01:20:56,760 --> 01:20:59,630 Ne glede na to, kaj počnete, vedno ste poteka kopijo nečesa. 1628 01:20:59,630 --> 01:21:03,395 To je ravno tako, kot sem nekako omenil da prej s kazalci 1629 01:21:03,395 --> 01:21:07,690 in da je niz res samo štiri bajti kaže nekam v spomin. 1630 01:21:07,690 --> 01:21:11,890 >> No, če imam ta niz, in to je mi je povedal, da je, če niz - 1631 01:21:11,890 --> 01:21:15,470 No, če imam to kazalec, da je to mesto v pomnilniku, potem sem lahko prenese 1632 01:21:15,470 --> 01:21:19,160 Izvod tega kazalca na funkcijo, in to funkcijo še vedno ne ve, kje v 1633 01:21:19,160 --> 01:21:19,780 pomnilnik je. 1634 01:21:19,780 --> 01:21:22,950 Torej oba kazalci so kazali na istem mestu v pomnilniku, in 1635 01:21:22,950 --> 01:21:26,460 to je, kako bomo mogli spremeniti stvari, ki presegajo 1636 01:21:26,460 --> 01:21:29,852 Sedanji kup okvir. 1637 01:21:29,852 --> 01:21:31,040 >> JOSEPH: Ali želite storiti pripravo? 1638 01:21:31,040 --> 01:21:31,820 >> ROB: Ne, to je 05:30. 1639 01:21:31,820 --> 01:21:32,910 >> JOSEPH: OK. 1640 01:21:32,910 --> 01:21:35,040 To je 5:30. 1641 01:21:35,040 --> 01:21:35,360 OK. 1642 01:21:35,360 --> 01:21:39,280 Tako bomo zajeli pripravo Mislim, v Naslednji razdelek, ali vaš oddelek 1643 01:21:39,280 --> 01:21:42,795 Vodja bo na tej točki. 1644 01:21:42,795 --> 01:21:43,272 In - 1645 01:21:43,272 --> 01:21:44,630 >> ROB: Kakšno vprašanje? 1646 01:21:44,630 --> 01:21:46,760 >> JOSEPH: Kakšno vprašanje? 1647 01:21:46,760 --> 01:21:47,150 Ja? 1648 01:21:47,150 --> 01:21:52,469 >> SPEAKER 5: Uporaba strune iz CS50, vsaka Funkcije, ki jih želimo uporabiti za 1649 01:21:52,469 --> 01:21:53,880 tiste, to bo, kot funkcije C. 1650 01:21:53,880 --> 01:21:59,050 CS50 ni šla v in je vsaka dodatna. 1651 01:21:59,050 --> 01:22:01,850 >> ROB: Pravilno. 1652 01:22:01,850 --> 01:22:08,155 Koli od C kot [neslišno], si bi uporabil tiste na naših strune. 1653 01:22:08,155 --> 01:22:12,400 >> JOSEPH: In še zadnja stvar, želim omeniti, je, da imamo slogovni priročnik 1654 01:22:12,400 --> 01:22:13,130 za ta razred. 1655 01:22:13,130 --> 01:22:13,360 >> ROB: Oh, ja. 1656 01:22:13,360 --> 01:22:15,270 >> JOSEPH: Torej, če ste prišli iz programiranje ozadje, preden boste 1657 01:22:15,270 --> 01:22:17,750 Morda imajo nekatera pravila, če pišete kodo kot polaganje 1658 01:22:17,750 --> 01:22:20,950 oporniki na isti liniji ali zlasti načini Feed 1659 01:22:20,950 --> 01:22:22,240 ali poimenovanju spremenljivk. 1660 01:22:22,240 --> 01:22:26,870 V tem razredu, želimo slediti Poseben priročnik stil samo zato, 1661 01:22:26,870 --> 01:22:31,100 No, če greš ven in delati v industrija, boš mogoče pričakovati 1662 01:22:31,100 --> 01:22:34,780 slediti navodila slog družba, pri kateri greš. 1663 01:22:34,780 --> 01:22:38,040 >> Kot je na primer Facebook Mislim ima posebno vrsto poimenovanje 1664 01:22:38,040 --> 01:22:38,760 konvencije. 1665 01:22:38,760 --> 01:22:42,570 In tu je razlika med kamelo Ohišje spremenljivke in tako kot 1666 01:22:42,570 --> 01:22:44,610 jih ločite s podčrtaji. 1667 01:22:44,610 --> 01:22:52,170 In tudi mislim, da je najpomembneje, kot so na primer, zamik, kajne? 1668 01:22:52,170 --> 01:22:56,440 >> Mi zaviti oklepaji začnete, kjer stanje, in jih 1669 01:22:56,440 --> 01:22:57,730 so v naslednji vrstici. 1670 01:22:57,730 --> 01:23:01,230 In smo tudi postaviti zavite oklepaje v tudi če je samo ena vrstica. 1671 01:23:01,230 --> 01:23:06,100 In veliko krat, obstajajo načini, kako početi je, kjer lahko pustite teh naramnic 1672 01:23:06,100 --> 01:23:08,380 off, če je to le ena vrstica v skladu z izjavo If. 1673 01:23:08,380 --> 01:23:12,070 Toda v tem razredu, želimo slediti Poseben priročnik stil samo zato, da bi dobili 1674 01:23:12,070 --> 01:23:13,550 uporablja za take stvari. 1675 01:23:13,550 --> 01:23:16,410 >> ROB: Ja, in Style 50 se bo uveljavitev te slog vodnik, in mi smo 1676 01:23:16,410 --> 01:23:18,080 boste uporabljali Style 50 v razred kodo. 1677 01:23:18,080 --> 01:23:25,150 Tako da naredi stvari lažje za nas in upajmo, da ne bi smeli reči, da 1678 01:23:25,150 --> 01:23:30,120 veliko slabše za vas, saj standardizirane slog ne sme biti, da 1679 01:23:30,120 --> 01:23:31,460 nerealno. 1680 01:23:31,460 --> 01:23:36,000 >> JOSEPH: In končno, da bi našli stil informacijami, obiščite manual.cs50.net/style. 1681 01:23:36,000 --> 01:23:37,725 In ja. 1682 01:23:37,725 --> 01:23:40,575 >> SPEAKER 4: Ali boste za uveljavljanje koli znakov na vrstico? 1683 01:23:40,575 --> 01:23:42,480 >> ROB: Da. 1684 01:23:42,480 --> 01:23:45,405 >> JOSEPH: Žal mi je, fantje. 1685 01:23:45,405 --> 01:23:47,680 >> ROB: To je kot enega od edine. 1686 01:23:47,680 --> 01:23:50,420 Na tej točki, sem v redu s 120. 1687 01:23:50,420 --> 01:23:52,460 Jaz sem v redu s pravim 120 znakov v vrstici. 1688 01:23:52,460 --> 01:23:53,830 Razumem, da bi bilo nekaj omejitev. 1689 01:23:53,830 --> 01:23:57,130 Mislim, da 80 je tako majhen, vendar bomo njene izvršitve. 1690 01:23:57,130 --> 01:24:00,260 >> JOSEPH: Osebno mislim, da s C, 80 znakov je bolj OK. 1691 01:24:00,260 --> 01:24:04,160 Ko začnete pridobivanje drugih jezike, kot so JavaScript in PHP, ne 1692 01:24:04,160 --> 01:24:08,860 zato smiselno, da se le omeji je na 80 znakov. 1693 01:24:08,860 --> 01:24:09,260 OK. 1694 01:24:09,260 --> 01:24:12,780 No, to je bilo super odsek. 1695 01:24:12,780 --> 01:24:14,750 Ali kdo rad sladkarije? 1696 01:24:14,750 --> 01:24:16,000 >> SPEAKER 4: Da. 1697 01:24:16,000 --> 01:24:18,667