1 00:00:00,000 --> 00:00:12,510 2 00:00:12,510 --> 00:00:13,870 >> ROB: U redu. 3 00:00:13,870 --> 00:00:16,770 Dobrodošli u prvom dijelu. 4 00:00:16,770 --> 00:00:17,480 Ja sam Rob. 5 00:00:17,480 --> 00:00:18,806 >> JOSEPH: Ja sam Joseph. 6 00:00:18,806 --> 00:00:21,540 >> ROB: Tako ćemo roniti pravo u. 7 00:00:21,540 --> 00:00:23,420 Prva stvar koju treba govoriti o je Appliance. 8 00:00:23,420 --> 00:00:27,150 Dakle, nadamo se većina vas ima skinuti ga već. 9 00:00:27,150 --> 00:00:37,180 No, možete vidjeti upute na cs50.net/appliance. 10 00:00:37,180 --> 00:00:38,430 O Bože, sad sam samosvjesna. 11 00:00:38,430 --> 00:00:44,590 12 00:00:44,590 --> 00:00:45,430 Još uvijek sam ga čuti. 13 00:00:45,430 --> 00:00:47,232 >> JOSEPH: Wow, to zvuči kao to je dezorijentiran. 14 00:00:47,232 --> 00:00:52,460 >> ROB: Dakle, neki ljudi su vlasništvo problemi s njom, pa ne čekajte 15 00:00:52,460 --> 00:00:54,940 last minute problema postavljena na pokušati riješiti aparat i 16 00:00:54,940 --> 00:00:56,320 saznate da to ne radi. 17 00:00:56,320 --> 00:00:59,010 >> JOSEPH: A ako se nešto ne radi a vi trebate pomoć, možete ići na 18 00:00:59,010 --> 00:01:03,390 cs50.net/discussion gdje smo imaju forum gdje ste 19 00:01:03,390 --> 00:01:04,110 mogu postavljati pitanja. 20 00:01:04,110 --> 00:01:06,655 I mi ćemo doći do njih s vremenom. 21 00:01:06,655 --> 00:01:07,490 >> ROB: U redu. 22 00:01:07,490 --> 00:01:12,180 Dakle, to je ono što Appliance izgleda. 23 00:01:12,180 --> 00:01:15,480 Opet, to je samo potpuno odvojene operativni sustav izvodi u roku 24 00:01:15,480 --> 00:01:19,440 bez obzira na sustav operativnog ste radite na prijenosnom računalu. 25 00:01:19,440 --> 00:01:24,450 A glavni je ono što vam se koriste su gedit. 26 00:01:24,450 --> 00:01:28,050 Dakle, nadamo se da je već postalo poznato mjesto. 27 00:01:28,050 --> 00:01:29,470 Terminal. 28 00:01:29,470 --> 00:01:31,890 >> A također možete izvoditi Chrome u Appliance. 29 00:01:31,890 --> 00:01:33,860 Bilo je par ljudi koji su izvijestili internet 30 00:01:33,860 --> 00:01:35,390 ne rade u Appliance. 31 00:01:35,390 --> 00:01:38,090 A neki od njih tek su preuzeli da ne bi trebalo biti 32 00:01:38,090 --> 00:01:39,190 Internet u Appliance. 33 00:01:39,190 --> 00:01:40,750 Ali da, tu je trebalo da se internet. 34 00:01:40,750 --> 00:01:44,000 35 00:01:44,000 --> 00:01:46,410 >> Ja ću to reći odmah, ali to ipak ne zapravo znači ništa. 36 00:01:46,410 --> 00:01:50,680 Ako internet ne radi, to je ono što imaju tendenciju da je potrebno 37 00:01:50,680 --> 00:01:52,180 pokrenuti to popraviti. 38 00:01:52,180 --> 00:01:55,602 Ako imate internet probleme, zar ne zapamtite ga, samo ga objaviti na 39 00:01:55,602 --> 00:01:57,560 Razgovarati, a mi ćemo reći da su pokrenuti. 40 00:01:57,560 --> 00:02:00,420 No, internet bi trebao raditi. 41 00:02:00,420 --> 00:02:06,650 >> Dakle, jedina druga stvar - da, ništa ostalo je stvarno relevantno. 42 00:02:06,650 --> 00:02:08,979 No, samo sam htio ukazati na to da - 43 00:02:08,979 --> 00:02:13,290 pogledajte u ovom donjem desnom kutu. 44 00:02:13,290 --> 00:02:16,530 Dakle, svaki od svojih aparata treba imati IP adresu. 45 00:02:16,530 --> 00:02:22,350 I kasnije u semestru, to IP adresa će postati važnije kada 46 00:02:22,350 --> 00:02:27,230 radite na web p-set, jer ćete biti u mogućnosti pristupiti 47 00:02:27,230 --> 00:02:32,310 Web radite od svoje lokalna Chrome pomoću ovu IP adresu. 48 00:02:32,310 --> 00:02:35,400 >> Ali ono što mi se sviđa koristiti IP adresu - i ne morate to učiniti, ja 49 00:02:35,400 --> 00:02:37,460 Samo želim da se to ukazati - 50 00:02:37,460 --> 00:02:39,540 je ovdje. 51 00:02:39,540 --> 00:02:42,910 Dakle, ovo je terminal prozor moj Mac, to nije u 52 00:02:42,910 --> 00:02:44,580 Aparati na sve. 53 00:02:44,580 --> 00:02:47,190 A možete pogledati što ova naredba radi. 54 00:02:47,190 --> 00:02:51,855 Ali ću SSH izravno mom Appliance. 55 00:02:51,855 --> 00:02:53,410 Ja ne znam što 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: Dakle, jednom kad sam gotov s tim, prijavite u. 59 00:02:59,950 --> 00:03:05,450 Sada, u osnovi, to je identičan Terminal prozor u mojoj Appliance. 60 00:03:05,450 --> 00:03:10,280 Tako sam prilično nikad zapravo radila iz same Appliance. 61 00:03:10,280 --> 00:03:12,550 Upravo sam oduvijek to radi u pozadini minimiziran 62 00:03:12,550 --> 00:03:15,890 i SSHed u nju. 63 00:03:15,890 --> 00:03:24,270 >> Problem s ovim je da se ne ide da bi mogli koristiti gedit lako 64 00:03:24,270 --> 00:03:25,600 izravno iz toga. 65 00:03:25,600 --> 00:03:31,500 No, ako želite biti pravi cool Haker, onda treba naviknuti na 66 00:03:31,500 --> 00:03:34,220 naredbenog retka tekst editor svejedno. 67 00:03:34,220 --> 00:03:39,620 Dakle Vim i Emacs i Nano, svi ovi su različite alternative. 68 00:03:39,620 --> 00:03:41,560 Nano ima tendenciju da se najlakše. 69 00:03:41,560 --> 00:03:45,006 I mislim da nema sintakse isticanje. 70 00:03:45,006 --> 00:03:47,620 Oh, ne, to je potpuno ne. 71 00:03:47,620 --> 00:03:49,870 Na taj način možete koristiti Nano, jer da je jedan je prilično jednostavan. 72 00:03:49,870 --> 00:03:52,000 >> Vidite sve ove naredbe na dnu. 73 00:03:52,000 --> 00:03:54,750 Ova mala mrkva simbol. 74 00:03:54,750 --> 00:03:57,620 Ako niste vidjeli prije, vi ćete Vjerojatno ga vidjeti puno sada. 75 00:03:57,620 --> 00:04:02,350 To obično znači kontrolni mrkvu, kao što je u donjem lijevom kutu tipkovnice 76 00:04:02,350 --> 00:04:04,130 upravljački znak. 77 00:04:04,130 --> 00:04:07,260 Dakle, ovdje mi govori ovdje - 78 00:04:07,260 --> 00:04:08,710 oh, to nije odsječen, ako sam povećavanje u. 79 00:04:08,710 --> 00:04:11,040 Dakle Kontrola, X je kako Idem za izlaz. 80 00:04:11,040 --> 00:04:14,710 I to govori da mogu pogoditi Y za Da, zbog štednje, N za broj 81 00:04:14,710 --> 00:04:17,190 Dakle, to je Nano. 82 00:04:17,190 --> 00:04:22,860 >> Vim i Emacs imaju tendenciju da se malo više komplicirana i neodoljiv. 83 00:04:22,860 --> 00:04:28,840 No, možete se naviknuti na njega, i onda ćete ga voljeti. 84 00:04:28,840 --> 00:04:30,590 Dakle, to je to. 85 00:04:30,590 --> 00:04:31,720 >> JOSEPH: Nema potrebe za to. 86 00:04:31,720 --> 00:04:31,840 >> ROB: Da. 87 00:04:31,840 --> 00:04:37,510 Vi ste slobodni koristiti gedit za Ostatak semestra. 88 00:04:37,510 --> 00:04:40,630 Dakle, bilo aparata povezanih pitanja? 89 00:04:40,630 --> 00:04:42,820 Ili imate bilo kakvih misli o tome što drugi treba se govori o oko 90 00:04:42,820 --> 00:04:43,610 aparata? 91 00:04:43,610 --> 00:04:43,996 Da. 92 00:04:43,996 --> 00:04:47,720 >> ZVUČNIK 1: Kada SSHed u svoju stvar, bio lozinkom Crimson? 93 00:04:47,720 --> 00:04:48,390 >> ROB: Da. 94 00:04:48,390 --> 00:04:50,170 Lozinka za prilično mnogo sve u Appliance ide 95 00:04:50,170 --> 00:04:52,473 biti Crimson. 96 00:04:52,473 --> 00:04:56,517 >> ZVUČNIK 2: Uvesti kao pravi IDE aparat, hoće li to raditi? 97 00:04:56,517 --> 00:04:59,200 98 00:04:59,200 --> 00:05:07,290 >> ROB: Zamišljam Eclipse ima Fedora verziju, u tom slučaju, da, 99 00:05:07,290 --> 00:05:08,420 možete to učiniti. 100 00:05:08,420 --> 00:05:10,875 To je vjerojatno nije stvarno isplati. 101 00:05:10,875 --> 00:05:11,742 >> Zvučnika 2: OK. 102 00:05:11,742 --> 00:05:15,924 Tako da je vjerojatno lakše ako sam htjela koristiti Eclipse, samo koristiti materinji i 103 00:05:15,924 --> 00:05:17,646 onda upload na - 104 00:05:17,646 --> 00:05:21,090 >> ROB: Oh, kako je i vjerojatno lakše. 105 00:05:21,090 --> 00:05:24,046 No, možete dobiti Internet rad u Appliance. 106 00:05:24,046 --> 00:05:27,740 >> JOSEPH: I za kameru, pitanje je, može li instalirati još jedan 107 00:05:27,740 --> 00:05:29,490 IDE unutrašnjost aparata? 108 00:05:29,490 --> 00:05:31,520 >> ROB: Pomrčina se Primjer IDE. 109 00:05:31,520 --> 00:05:34,800 110 00:05:34,800 --> 00:05:36,050 Bilo koja druga pitanja Appliance? 111 00:05:36,050 --> 00:05:38,250 112 00:05:38,250 --> 00:05:38,680 U redu. 113 00:05:38,680 --> 00:05:44,920 >> Dakle, sada ćemo prijeći na naredbenog retka sučelje vezane stvari, pa CLI. 114 00:05:44,920 --> 00:05:47,990 I opet, ja sam samo ide na posao u Ovdje, jer je identičan 115 00:05:47,990 --> 00:05:52,780 radeći unutar prozora terminala u Appliance. 116 00:05:52,780 --> 00:05:54,160 Kako je taj font izgleda? 117 00:05:54,160 --> 00:05:55,970 Je li to dovoljno velika? 118 00:05:55,970 --> 00:05:57,000 U redu. 119 00:05:57,000 --> 00:06:02,480 >> Dakle, postoji mnogo naredbi koje trebali dobiti prilično koristi za 120 00:06:02,480 --> 00:06:04,490 tijekom semestra. 121 00:06:04,490 --> 00:06:09,480 Velika dva za navigacije su ls, popis datoteke u ovaj direktorij, te 122 00:06:09,480 --> 00:06:11,380 cd, tako promijeniti mape. 123 00:06:11,380 --> 00:06:18,390 Dakle, ja mogu promijeniti radnu površinu, a zatim vrlo čest uzorak je cd da 124 00:06:18,390 --> 00:06:22,550 imenik i odmah ls ono što je u telefonskom imeniku. 125 00:06:22,550 --> 00:06:25,540 >> Ljudi ponekad ne shvaćaju da je završetak Tab je stvar. 126 00:06:25,540 --> 00:06:28,370 Dakle, kao što su cd, VH, a onda sam udario Tab. 127 00:06:28,370 --> 00:06:30,790 Ja gotovo nikad ne tip iz Cijela stvar. 128 00:06:30,790 --> 00:06:32,920 A onda, ako sam držati udarajući Tab opet, to će automatski 129 00:06:32,920 --> 00:06:33,670 početi popis za mene. 130 00:06:33,670 --> 00:06:37,000 Dakle, ja mogu cd vhosts, lokalni domaćin. 131 00:06:37,000 --> 00:06:39,880 I to samo ide na - 132 00:06:39,880 --> 00:06:43,380 u slučaju da niste čuli za pojam prije, katalog je samo druga riječ 133 00:06:43,380 --> 00:06:45,170 za mape. 134 00:06:45,170 --> 00:06:49,930 Pa sad, ako ste vidjeli - 135 00:06:49,930 --> 00:06:51,810 vratit ćemo da je na vrhu. 136 00:06:51,810 --> 00:06:55,380 >> Pa sad, ako vidite u zagradama, što vidi malo tilda, Slash, vhost, 137 00:06:55,380 --> 00:06:56,810 Slash, lokalni domaćin. 138 00:06:56,810 --> 00:07:00,040 Dakle tilde, koji se odnosi za polazni direktorij. 139 00:07:00,040 --> 00:07:03,090 To je katalog ste kad ste SSH u. 140 00:07:03,090 --> 00:07:05,660 To je katalog ste u kada li otvoriti terminal. 141 00:07:05,660 --> 00:07:08,650 To je mjesto gdje možete početi. 142 00:07:08,650 --> 00:07:13,110 I tako sam unutar moje kuće imenik, i ja sam unutar vhost 143 00:07:13,110 --> 00:07:14,475 katalog unutar moje kuće imenik. 144 00:07:14,475 --> 00:07:19,670 I onda sam unutar lokalne Imenik domaćina unutar toga. 145 00:07:19,670 --> 00:07:23,740 >> Dakle, neke druge korisne stvari s CD-om - 146 00:07:23,740 --> 00:07:29,220 ili dobro, općenito, tako dot uvijek odnosi se na trenutni direktorij. 147 00:07:29,220 --> 00:07:31,130 Cd, točka je prilično bezvrijedno naredbe. 148 00:07:31,130 --> 00:07:35,150 No, to se mijenja na tekući popis. 149 00:07:35,150 --> 00:07:38,230 Korisniji jedan u smislu cd je točka, točkica, što je 150 00:07:38,230 --> 00:07:40,220 samo ići gore jedan katalog. 151 00:07:40,220 --> 00:07:43,360 >> I imajte na umu da je to - 152 00:07:43,360 --> 00:07:48,610 Želim reći pseudonime, ali ovi Simboli, dot, i točka, točka, oni rade 153 00:07:48,610 --> 00:07:51,740 za prilično mnogo bilo zapovjedništvo si ti će biti razmišljanje trčanje. 154 00:07:51,740 --> 00:07:55,370 Dakle, kao što su cd je vjerojatno na mjestu gdje ćete biti korištenjem većina, ali to nisu 155 00:07:55,370 --> 00:07:56,780 stvari koje samo cd razumije. 156 00:07:56,780 --> 00:07:59,980 To je prilično puno nešto cijeli naredbenog retka razumije. 157 00:07:59,980 --> 00:08:01,932 Puno programa razumiju dot i dot, dot. 158 00:08:01,932 --> 00:08:04,830 159 00:08:04,830 --> 00:08:09,090 >> Tako su one druge korisne - cd, crtica. 160 00:08:09,090 --> 00:08:13,460 Tako da će me dovesti do Posljednja uputa da sam bio u. 161 00:08:13,460 --> 00:08:15,980 Dakle, ponekad ću napraviti nešto slično, oh, ja radim ovdje. 162 00:08:15,980 --> 00:08:21,110 I ne vidim neku pogrešku s nečim, a Ići ću to istražiti tako da odete na 163 00:08:21,110 --> 00:08:24,020 neki slučajni imenik negdje. 164 00:08:24,020 --> 00:08:25,260 I ne znam je li to ću pusti me unutra. 165 00:08:25,260 --> 00:08:25,720 To će. 166 00:08:25,720 --> 00:08:27,615 Pa onda sam učiniti sve što želim u ovom imeniku. 167 00:08:27,615 --> 00:08:28,950 Bla, bla, bla, bla, bla. 168 00:08:28,950 --> 00:08:31,770 I ja sam bio kao, u redu, želim da se vrati tamo gdje sam bio. 169 00:08:31,770 --> 00:08:34,490 cd, crtica, i to me dovodi vraćam. 170 00:08:34,490 --> 00:08:39,970 >> Tako da ću se baciti puno od ovih na vama danas. 171 00:08:39,970 --> 00:08:43,730 Ja ne očekujem da se pamtiti sve od njih. 172 00:08:43,730 --> 00:08:46,170 To je vrsta samo znam da oni postoje. 173 00:08:46,170 --> 00:08:48,690 A onda kasnije kad ste poput, hmm, želim se vratiti u 174 00:08:48,690 --> 00:08:51,870 imenik koji sam bio samo na, oh, čekaj, tako nešto postoji. 175 00:08:51,870 --> 00:08:53,980 Vi ne morate samo upisati Cijeli ponovno imenik. 176 00:08:53,980 --> 00:08:56,090 >> JOSEPH: I na kraju ćete samo koristiti ih iznova i iznova, i 177 00:08:56,090 --> 00:08:57,830 to će postati mišića memorije. 178 00:08:57,830 --> 00:09:00,090 >> ROB: Da. 179 00:09:00,090 --> 00:09:02,930 Pa kako sam već rekao, da je tilda je vaš dom imenik. 180 00:09:02,930 --> 00:09:04,820 Dakle, ja mogu CD, tilda. 181 00:09:04,820 --> 00:09:07,280 Ali ja ni ne moraju to učiniti, ako sam samo - 182 00:09:07,280 --> 00:09:09,760 Vratit ću se u telefonski imenik, tako to nije besmisleno primjer. 183 00:09:09,760 --> 00:09:14,560 Ali ako sam samo napraviti cd, to je također Isto kao što je, ide na moj home direktorij. 184 00:09:14,560 --> 00:09:18,380 185 00:09:18,380 --> 00:09:19,880 Ja zapovjedništvo, K. 186 00:09:19,880 --> 00:09:24,015 >> JOSEPH: Također možete upisati jasno, Riječ, i to bi trebalo razbistriti. 187 00:09:24,015 --> 00:09:28,650 >> ROB: A mislim i kontrole, L i to radi. 188 00:09:28,650 --> 00:09:29,690 Dakle, puno različitih načina. 189 00:09:29,690 --> 00:09:34,070 Mislim da postoje neke razlike, gdje jasno i kontrola, L će samo 190 00:09:34,070 --> 00:09:37,280 Stvarno ga gurnuti na vrh i Ja još uvijek mogu pomicati natrag. 191 00:09:37,280 --> 00:09:40,580 Command, K doslovno uništava sve, a vi 192 00:09:40,580 --> 00:09:42,960 ne mogu pomicati back up. 193 00:09:42,960 --> 00:09:45,530 U najmanju ruku, to je kako se to radi u iTerm2. 194 00:09:45,530 --> 00:09:48,690 Ja ne znam kako druge stvari - 195 00:09:48,690 --> 00:09:49,360 oh. 196 00:09:49,360 --> 00:09:55,450 >> S SSHing, pa ako ste na Windows, ti ćeš morati preuzeti kitom 197 00:09:55,450 --> 00:10:02,360 kako bi se ssh jer Windows ne imati kao izgrađen-in SSH alata. 198 00:10:02,360 --> 00:10:06,150 Od Macove, možete samo SSH izravno iz prozora 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 Pitanja? 202 00:10:11,840 --> 00:10:19,260 >> S ls, tako nešto bi se naviknuti na s većinom tih naredbi je - 203 00:10:19,260 --> 00:10:20,060 dobro, ja ću učiniti samo jedno. 204 00:10:20,060 --> 00:10:21,310 Ls, crtica, l. 205 00:10:21,310 --> 00:10:26,330 Dakle crtica, l je ono što ćemo pozvati zastavu za ls. 206 00:10:26,330 --> 00:10:30,770 I mnoge od tih naredbi su zastave da možete prijeći na njih. 207 00:10:30,770 --> 00:10:35,020 Dakle, u ovom slučaju, crtica, ja je zastava da to govori da će mi dati punu 208 00:10:35,020 --> 00:10:37,850 popis svih informacija ovih datoteka. 209 00:10:37,850 --> 00:10:44,790 >> Tako ovdje vidimo da je desktop izmijenjena je 30. srpnja u 00:54. 210 00:10:44,790 --> 00:10:47,160 Preuzimanja preinačen je 6. rujna. 211 00:10:47,160 --> 00:10:52,350 To su sadašnji broj i bajtova tih imenike. 212 00:10:52,350 --> 00:10:54,412 Vi ne morate razumjeti sve to. 213 00:10:54,412 --> 00:11:00,380 >> Ova stvar s lijeve strane, ove drwx-a, koja će postati mnogo važnija 214 00:11:00,380 --> 00:11:02,290 Kasnije, kada se morati baviti - 215 00:11:02,290 --> 00:11:05,900 što ima veze s tko ima dozvole pogledati ovih datoteka. 216 00:11:05,900 --> 00:11:09,880 I tako, ako niste bili jedini korisnik na ovo računalo, te će biti u mogućnosti 217 00:11:09,880 --> 00:11:13,345 recimo, u redu, ja bi trebao biti samo jedan dopustio da pogledate ovu datoteku ili sam 218 00:11:13,345 --> 00:11:14,870 će omogućiti svima da pogledate ovu sliku. 219 00:11:14,870 --> 00:11:17,710 Dakle, netko drugi na mom računalu možete pogledati na ovu sliku. 220 00:11:17,710 --> 00:11:22,190 221 00:11:22,190 --> 00:11:25,600 Ja ni ne znam što je to - što to učiniti? 222 00:11:25,600 --> 00:11:26,840 >> JOSEPH: Nisam sasvim siguran, zapravo. 223 00:11:26,840 --> 00:11:27,705 >> ROB: Nemam pojma. 224 00:11:27,705 --> 00:11:30,530 >> JOSEPH: Ali, ako ne znate, ne postoji korisne naredbe koje možete koristiti 225 00:11:30,530 --> 00:11:31,680 vam reći što znači izlaz. 226 00:11:31,680 --> 00:11:33,780 I ako upišete u čovjeku prije naredbe - 227 00:11:33,780 --> 00:11:35,000 tako M-A-N. ROB: Man. 228 00:11:35,000 --> 00:11:37,690 Dakle, čovjek je još jedan to je vrlo korisno. 229 00:11:37,690 --> 00:11:39,540 A čovjek, ls. 230 00:11:39,540 --> 00:11:47,320 Tako su man stranice, oni su oboje zapovijeda da idete da se pomoću 231 00:11:47,320 --> 00:11:50,330 na zapovjednoj liniji, i oni također imaju Funkcije koje će biti relevantne 232 00:11:50,330 --> 00:11:52,530 s C. Tako da čovjek može - 233 00:11:52,530 --> 00:11:53,720 i ja ignorirala 3. 234 00:11:53,720 --> 00:11:57,410 No, čovjek 3 printf će donijeti do C verziji printf. 235 00:11:57,410 --> 00:12:01,030 Ali ako sam samo učiniti čovjek printf, ovo je će dovesti do naredbu printf 236 00:12:01,030 --> 00:12:03,540 koja se događa na naredbenog retka. 237 00:12:03,540 --> 00:12:05,730 >> Tako je čovjek, ls. 238 00:12:05,730 --> 00:12:09,030 Man stranice može biti prilično neodoljiv. 239 00:12:09,030 --> 00:12:12,770 Ovdje, međutim, vidjet ćete ovu ponudu svih ovih zastavica koja li 240 00:12:12,770 --> 00:12:14,300 razumije. 241 00:12:14,300 --> 00:12:17,876 Dakle, ako ćemo ići na crtica, L, i - 242 00:12:17,876 --> 00:12:19,300 Samo ću baciti ovo na vas. 243 00:12:19,300 --> 00:12:23,050 No, kako bi pretraživanje, želite na prvi hit na pitanje 244 00:12:23,050 --> 00:12:24,780 Oznaka ili gumb udarac. 245 00:12:24,780 --> 00:12:26,040 Dakle srezati. 246 00:12:26,040 --> 00:12:29,000 >> I onda mogu pretraživati za sve što želim. 247 00:12:29,000 --> 00:12:33,780 Tako ću srezati za crtica, l. 248 00:12:33,780 --> 00:12:35,110 A tu je. 249 00:12:35,110 --> 00:12:37,450 Dakle, koristite dugo unos format. 250 00:12:37,450 --> 00:12:40,060 To ne pomaže mi shvatiti što da određeni stupac znači, ali ja 251 00:12:40,060 --> 00:12:44,480 Pretpostavljam negdje ovdje to bi objasnilo da. 252 00:12:44,480 --> 00:12:48,740 Dakle, koristite man stranice za bilo koje naredbe da ne se odmah razumijemo. 253 00:12:48,740 --> 00:12:51,080 >> Prilično sam siguran da može čak i čovjek, čovjek. 254 00:12:51,080 --> 00:12:53,070 Sučelje za on-line referentni priručnici. 255 00:12:53,070 --> 00:12:57,700 256 00:12:57,700 --> 00:13:03,570 Oh, jedan je posljednja koja je možda malo Relevantna je li, crtica,. 257 00:13:03,570 --> 00:13:08,490 Dakle, primijetite li sam samo učiniti LS, Ja se ovih pet datoteke. 258 00:13:08,490 --> 00:13:11,480 Ako mi je činiti LS, crtica, ja dobiti puno više datoteka. 259 00:13:11,480 --> 00:13:15,350 Dakle, stvar je zajedničko između svih tih nova slika je dot unaprijed. 260 00:13:15,350 --> 00:13:21,220 >> Tako je konvencija koja datoteka koja počinje dot skriven. 261 00:13:21,220 --> 00:13:25,300 Tako da ne žele vidjeti tu datoteku, što Ne želim ga imati nered s 262 00:13:25,300 --> 00:13:26,750 Vaš imeniku. 263 00:13:26,750 --> 00:13:30,020 To je samo kada se izričito pitati, sve u redu, ls, crtica,, pokaži mi. 264 00:13:30,020 --> 00:13:32,830 Stoji za sve datoteke, uključujući i one skrivene. 265 00:13:32,830 --> 00:13:37,260 266 00:13:37,260 --> 00:13:39,270 Dakle, neke druge naredbe. 267 00:13:39,270 --> 00:13:41,323 Oh, pitanja u tom trenutku? 268 00:13:41,323 --> 00:13:41,746 Da. 269 00:13:41,746 --> 00:13:45,914 >> Zvučnik 3: Kada to učinite ls, , što je točka, točkica? 270 00:13:45,914 --> 00:13:46,870 >> ROB: Oh. 271 00:13:46,870 --> 00:13:48,780 Dakle, to je ono što sam govorio. 272 00:13:48,780 --> 00:13:50,890 To je ista stvar, gdje Ja se kao CD, točka, točkica. 273 00:13:50,890 --> 00:13:56,790 Dakle, tehnički, točka i točka, točkica su datoteka koje postoje u svakom pojedinom 274 00:13:56,790 --> 00:14:03,620 imenik gdje dot datoteka odnosi do trenutnog imenika. 275 00:14:03,620 --> 00:14:06,930 Dakle, ako sam cd, dot, ja samo idem ostati u telefonskom imeniku. 276 00:14:06,930 --> 00:14:10,870 I točka, točkica uvijek odnosi na natrag katalog za jednu razinu prema gore. 277 00:14:10,870 --> 00:14:18,200 Dakle, ako sam ići u dnevnicima i LS, crtica, al, Vidjet ću točka, točkica. cd staviti točku, točka 278 00:14:18,200 --> 00:14:20,390 me dovodi na prethodnu imenik. 279 00:14:20,390 --> 00:14:24,530 280 00:14:24,530 --> 00:14:25,780 Da. 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 >> Tako je još jedan prilično važno naredba rm. 284 00:14:33,070 --> 00:14:35,650 Dakle, to je ono što ćemo koristiti za uklanjanje. 285 00:14:35,650 --> 00:14:38,100 I neka mi zapravo raditi drugo Naredba prvi. 286 00:14:38,100 --> 00:14:39,610 Dakle mkdir. 287 00:14:39,610 --> 00:14:42,770 Mkdir je kako možete izraditi imenike. 288 00:14:42,770 --> 00:14:47,530 I ja ću stvoriti privremeni direktorij i otići u taj privremeni katalog. 289 00:14:47,530 --> 00:14:49,590 I kao što se očekuje, to je prazna. 290 00:14:49,590 --> 00:14:53,680 Ali ako sam ls, crtica,, ja još uvijek imam točkicu i točka, točka, jer se odnosi na točku 291 00:14:53,680 --> 00:14:54,480 tekući popis. 292 00:14:54,480 --> 00:14:56,170 I točka, točka označava natrag imenik. 293 00:14:56,170 --> 00:14:58,700 A oni će uvijek postojati bez obzira katalog u kojem se nalazite 294 00:14:58,700 --> 00:15:01,910 295 00:15:01,910 --> 00:15:09,010 >> A to je potpuno nepotrebno naredbe, ali na dodir. 296 00:15:09,010 --> 00:15:11,880 Samo sam ga koriste, jer je jednostavan način za stvaranje datoteke. 297 00:15:11,880 --> 00:15:16,180 Dakle dirati, dirati b, c je samo dotaknuti će stvoriti tri datoteke nazvane, 298 00:15:16,180 --> 00:15:17,845 b, c i da su potpuno prazni. 299 00:15:17,845 --> 00:15:20,450 300 00:15:20,450 --> 00:15:24,980 Dakle točka mi stvara onih u Prvo mjesto je samo tako da je RM 301 00:15:24,980 --> 00:15:26,250 kako ih ukloniti. 302 00:15:26,250 --> 00:15:27,850 Dakle rm,. 303 00:15:27,850 --> 00:15:30,960 To će me pitati, izvadite redovito prazni file? 304 00:15:30,960 --> 00:15:33,170 I onda ću reći DA. 305 00:15:33,170 --> 00:15:39,090 >> Dakle, ako ja znam sigurno da želim izbriše tu datoteku, bez potrebe da se 306 00:15:39,090 --> 00:15:44,500 to zatraži, uklonite redovito praznu datoteku?, onda rm, crtica, f će biti 307 00:15:44,500 --> 00:15:48,230 zastavu na kojoj piše, prisiliti ukloniti bez čak me je navelo, oh, jeste li 308 00:15:48,230 --> 00:15:49,710 sigurni da želite obrisati datoteku? 309 00:15:49,710 --> 00:15:50,810 Da, siguran sam. 310 00:15:50,810 --> 00:15:56,050 Dakle rm, crtica, fb će samo to učiniti bez pitanja. 311 00:15:56,050 --> 00:15:57,950 >> Tako ćemo napraviti još neke imenike. 312 00:15:57,950 --> 00:16:03,670 mkdir, tmp2, cd, tmp2, dodir, dodir b.. 313 00:16:03,670 --> 00:16:04,300 OK. 314 00:16:04,300 --> 00:16:08,180 Dakle, sada želim ukloniti tmp2 kao katalog. 315 00:16:08,180 --> 00:16:10,316 Dakle rm tmp2. 316 00:16:10,316 --> 00:16:12,920 Ne možete ukloniti tmp2, to je katalog. 317 00:16:12,920 --> 00:16:21,370 Dakle, problem je u tome da RM ne odmah raditi na imenike. 318 00:16:21,370 --> 00:16:26,530 To je samo značilo za datoteke kao što su ne-katalog slika. 319 00:16:26,530 --> 00:16:30,800 >> I tako ono što možemo učiniti Ovdje je rm, crtica, r. 320 00:16:30,800 --> 00:16:35,160 To je kratica za rekurzivno, što bi moglo ne znači ništa za vas još. 321 00:16:35,160 --> 00:16:38,280 Ali kad dođeš do rekurzije, to će značiti više. 322 00:16:38,280 --> 00:16:43,540 Dakle rm, crtica, r, tmp2 će rekurzivno ići u tom direktoriju. 323 00:16:43,540 --> 00:16:45,540 Tako se spustiti u imeniku tmp2? 324 00:16:45,540 --> 00:16:47,330 Da, idemo u to. 325 00:16:47,330 --> 00:16:49,360 Želimo ukloniti tmp2 /? 326 00:16:49,360 --> 00:16:49,745 Da. 327 00:16:49,745 --> 00:16:51,830 Želimo ukloniti tmp2 / b? 328 00:16:51,830 --> 00:16:52,840 Da. 329 00:16:52,840 --> 00:16:55,170 Sada želimo ukloniti katalog tmp2? 330 00:16:55,170 --> 00:16:56,040 Da. 331 00:16:56,040 --> 00:16:58,410 I tako sada imenik i sve što je unutra 332 00:16:58,410 --> 00:16:59,660 o da je uklonjen. 333 00:16:59,660 --> 00:17:02,850 334 00:17:02,850 --> 00:17:07,250 >> Tu je tehnički naredba rmdir koje možete koristiti za uklanjanje 335 00:17:07,250 --> 00:17:11,670 imenici, ali to radi samo na praznim imenike svejedno. 336 00:17:11,670 --> 00:17:14,109 I da se vidi da, neka je samo učiniti mkdir, tmp2 opet. 337 00:17:14,109 --> 00:17:15,940 Tmp2, dodir. 338 00:17:15,940 --> 00:17:16,800 OK. 339 00:17:16,800 --> 00:17:22,770 Dakle, ako sam pokušati ukloniti dirtmp2, to ću kažu, direktorij nije prazan. 340 00:17:22,770 --> 00:17:29,540 Tako sam prilično nikada koristiti izvadite dir naredba svejedno, jer rm, crtica, 341 00:17:29,540 --> 00:17:35,140 r će raditi na praznim imenike i ne prazne imenike. 342 00:17:35,140 --> 00:17:37,760 >> A isto tako, ako ne želite imati na proći kroz taj cijeli proces 343 00:17:37,760 --> 00:17:40,720 spusta u imeniku i uklanjanjem svaku datoteku, RM, 344 00:17:40,720 --> 00:17:44,190 crtica, RF, tmp2. 345 00:17:44,190 --> 00:17:45,670 A sada je nestala. 346 00:17:45,670 --> 00:17:51,220 >> Nešto biti oprezni o je rm, crtica, RF. 347 00:17:51,220 --> 00:17:53,660 I to plaši me čak ga upisati, jer ako sam slučajno 348 00:17:53,660 --> 00:17:55,090 pogodak Ulaziti ili nešto. 349 00:17:55,090 --> 00:18:02,735 Dakle rm, crtica, RF, tilda bi, bez me navelo, f ne zatraži 350 00:18:02,735 --> 00:18:05,670 ja, on će automatski ukloniti cijeli moj dom imenik i 351 00:18:05,670 --> 00:18:06,780 sve u njemu. 352 00:18:06,780 --> 00:18:11,460 Dakle, možda ćete misliti da je glupa stvar za napraviti. 353 00:18:11,460 --> 00:18:12,830 A dobro, to je. 354 00:18:12,830 --> 00:18:18,600 >> Ali to se može dogoditi vrlo lako Nesreća, ako, recimo, ja sam htjela ukloniti 355 00:18:18,600 --> 00:18:21,640 moj udarac, vhost imenik. 356 00:18:21,640 --> 00:18:26,610 I samo u brzom tipkanja, Slučajno sam to učiniti. 357 00:18:26,610 --> 00:18:31,880 To će ukloniti rekurzivno i moj home direktorij i vhost imenik 358 00:18:31,880 --> 00:18:35,450 u ovom konkretnom katalog koji samo dogodi da ne postoji upravo sada. 359 00:18:35,450 --> 00:18:39,520 No, to bi još uvijek izvadite cijeli moj dom imenik. 360 00:18:39,520 --> 00:18:43,090 Barem tako što ne F, to bi me potaknuti na prvom mjestu. 361 00:18:43,090 --> 00:18:45,670 I ja bih se kao, oh, ne, ja Ne želim to učiniti. 362 00:18:45,670 --> 00:18:50,570 Ali ljudi, Slash, uključujući mi imaju tendenciju da se u 363 00:18:50,570 --> 00:18:53,090 naviku uvijek RF-ing. 364 00:18:53,090 --> 00:18:58,713 Čak i redovite datoteke koje ja samo mogu RM, c, ja imaju tendenciju da se samo rm, crtica, RF, c. 365 00:18:58,713 --> 00:19:01,330 Samo budite oprezni kada ste RF-ing. 366 00:19:01,330 --> 00:19:03,160 >> Zvučnik 4: Što učiniti C? 367 00:19:03,160 --> 00:19:11,570 >> ROB: C se Govorim o tom C datoteci u ovaj direktorij, koji rm, c. 368 00:19:11,570 --> 00:19:15,730 >> JOSEPH: I više opasno, ako koristite zvijezda, to se odnosi na sve, u 369 00:19:15,730 --> 00:19:16,450 katalog. 370 00:19:16,450 --> 00:19:20,040 Dakle, ono što sam često skloni učiniti je da hoću ide u imenik i želim 371 00:19:20,040 --> 00:19:21,510 uklonite sve datoteke u njemu. 372 00:19:21,510 --> 00:19:23,640 Dakle rm, crtica, RF, zvijezda. 373 00:19:23,640 --> 00:19:25,700 >> ROB: Da. 374 00:19:25,700 --> 00:19:26,780 Rm, crtica, RF, zvijezda. 375 00:19:26,780 --> 00:19:29,530 >> JOSEPH: A ako niste oprezni ono imenik ste u - 376 00:19:29,530 --> 00:19:33,340 Nisam bila u temp, ali bio sam slučajno u mom rodnom imeniku, 377 00:19:33,340 --> 00:19:35,450 onda ću ukloniti sve u mom rodnom imenik. 378 00:19:35,450 --> 00:19:39,095 I ja sam zapravo učinio da je prije, a Mislim da sam to učinio prije ili 379 00:19:39,095 --> 00:19:40,640 Jay je učinio prije. 380 00:19:40,640 --> 00:19:42,480 >> ROB: Ja sam slučajno uklonjen - 381 00:19:42,480 --> 00:19:44,480 tako ignorirati tu naredbu za malo. 382 00:19:44,480 --> 00:19:45,800 >> JOSEPH: Nije zabavno. 383 00:19:45,800 --> 00:19:52,650 >> ROB: Pa u slash bin direktorij je Gomila binarne datoteke tamo gdje ćete 384 00:19:52,650 --> 00:19:54,840 biti upoznat one poput Dong. 385 00:19:54,840 --> 00:20:00,740 Pa, zveket i, zapravo, sve to stvari koje sam trčanje na zapovijed 386 00:20:00,740 --> 00:20:02,060 linije su u ovoj slash bin direktorij. 387 00:20:02,060 --> 00:20:03,090 >> JOSEPH: Kao ls je ovdje. 388 00:20:03,090 --> 00:20:06,285 >> ROB: Pa dot, Slash, ls bi popis ovaj katalog. 389 00:20:06,285 --> 00:20:08,120 >> JOSEPH: Rim je također u ovom imeniku. 390 00:20:08,120 --> 00:20:12,770 >> ROB: Slučajno sam rm, RF-ed bin, koja uklanja bilo koju naredbu sam mogao 391 00:20:12,770 --> 00:20:14,380 možda ikada željeli. 392 00:20:14,380 --> 00:20:18,085 Koji onda sam samo reinstalirati novi aparati u tom trenutku. 393 00:20:18,085 --> 00:20:20,170 >> JOSEPH: Dakle, biti vrlo oprezni kada koristite ovu naredbu. 394 00:20:20,170 --> 00:20:21,120 >> PUBLIKA: [nečujan]? 395 00:20:21,120 --> 00:20:22,640 >> ROB: Da. 396 00:20:22,640 --> 00:20:24,135 To je također loša navika da se u. 397 00:20:24,135 --> 00:20:27,920 398 00:20:27,920 --> 00:20:30,170 Ako primijetite, ja sam sada - 399 00:20:30,170 --> 00:20:33,580 Pa, ne može primijetiti, ali moj zoom-u možda i može. 400 00:20:33,580 --> 00:20:35,360 Tako da sam sada root @ aparata. 401 00:20:35,360 --> 00:20:39,790 Dakle jharvard je korisnik želimo da se uvijek koristi. 402 00:20:39,790 --> 00:20:43,820 Korijen je korisnik koji ima dozvolu učiniti apsolutno ništa. 403 00:20:43,820 --> 00:20:50,260 >> Dakle primijetiti kad sam jharvard, ako sam pokušati cd - 404 00:20:50,260 --> 00:20:52,461 ono što je katalog koji? 405 00:20:52,461 --> 00:20:53,980 Oh, korijen je dobar primjer. 406 00:20:53,980 --> 00:20:54,950 Dakle, cd, korijen. 407 00:20:54,950 --> 00:20:56,030 Dopuštenje odbijen. 408 00:20:56,030 --> 00:21:00,060 Jer, ako ćemo gledati na ovaj unos - 409 00:21:00,060 --> 00:21:02,410 i opet, ne mora u potpunosti razumijem. 410 00:21:02,410 --> 00:21:09,210 No, ove tri crtice govore da ne dopusti bilo koji drugi 411 00:21:09,210 --> 00:21:11,120 Korisnik u ovaj katalog. 412 00:21:11,120 --> 00:21:14,540 I imenik događa s biti u vlasništvu korisnika korijena. 413 00:21:14,540 --> 00:21:20,310 >> Dakle, činjenica da sam jharvard i nema onaj tko nije korijen je dopušteno u 414 00:21:20,310 --> 00:21:23,490 tvrtki, to znači da sam će dobiti pristup odbijen kad sam 415 00:21:23,490 --> 00:21:25,160 pokušati cd u njega. 416 00:21:25,160 --> 00:21:31,370 Dakle, kada sam korijen, imam dozvolu za učiniti apsolutno ništa, uključujući 417 00:21:31,370 --> 00:21:34,660 brisanje bitne datoteke na aparatu i 418 00:21:34,660 --> 00:21:36,640 uništiti cijelu stvar. 419 00:21:36,640 --> 00:21:41,240 >> Dakle, to je loša navika da se u Samo lutanja oko vašeg 420 00:21:41,240 --> 00:21:43,650 operativni sustav kao root. 421 00:21:43,650 --> 00:21:46,520 I to svejedno. 422 00:21:46,520 --> 00:21:48,710 Pitanja? 423 00:21:48,710 --> 00:21:52,230 A ja ću izaći iz korijena, ostati kao jharvard. 424 00:21:52,230 --> 00:21:54,510 OK. 425 00:21:54,510 --> 00:21:55,820 >> Više relevantne naredbe. 426 00:21:55,820 --> 00:22:03,975 Dakle, ide natrag u našu temp, mv naredba stoji za potez. 427 00:22:03,975 --> 00:22:05,450 Možete premjestiti. 428 00:22:05,450 --> 00:22:07,610 Sada želimo ga zvati b, pa sad se to zove b. 429 00:22:07,610 --> 00:22:10,650 Ili možda želimo premjestiti b do jednog direktorija. 430 00:22:10,650 --> 00:22:12,730 Tako sada ovaj direktorij je prazna. 431 00:22:12,730 --> 00:22:15,410 Ja ću se vratiti u polazni direktorij, a vidimo da b je ovdje, jer 432 00:22:15,410 --> 00:22:19,230 home direktorij bio jedan katalog iz imenik koji b bio u. 433 00:22:19,230 --> 00:22:24,710 434 00:22:24,710 --> 00:22:26,580 >> Tu je također up. 435 00:22:26,580 --> 00:22:33,210 Dakle k.č. je kopiranje super dio, dot, tekst. 436 00:22:33,210 --> 00:22:35,750 Mogu ga nazvati je, dot, tekst. 437 00:22:35,750 --> 00:22:39,780 Sada imamo i super dio, dot, tekst, te je, dot, tekst. 438 00:22:39,780 --> 00:22:41,340 To također radi na imenike. 439 00:22:41,340 --> 00:22:44,040 440 00:22:44,040 --> 00:22:46,560 Ja RF-ED jednu datoteku. 441 00:22:46,560 --> 00:22:48,200 Dakle k.č. - 442 00:22:48,200 --> 00:22:51,710 dobro, prvi pokušajmo SP, tmp, tmp2. 443 00:22:51,710 --> 00:22:53,220 Dakle izostavljajući imenik tmp. 444 00:22:53,220 --> 00:22:57,440 Dakle, slično kao RM, zadano ponašanje je da se ne radi o imenike. 445 00:22:57,440 --> 00:23:01,570 >> I opet, slično kao RM, zadana ponašanje - dobro, sve je to na posao 446 00:23:01,570 --> 00:23:04,230 s imenicima, crtica-r daleko. 447 00:23:04,230 --> 00:23:09,240 Dakle kopirati rekurzivno temp imenik u tmp2. 448 00:23:09,240 --> 00:23:13,700 I tako sada imamo i tmp i tmp2, a to je da nije koristan jer tmp 449 00:23:13,700 --> 00:23:16,814 bila prazna na prvom mjestu. 450 00:23:16,814 --> 00:23:18,660 Tmp2. 451 00:23:18,660 --> 00:23:22,680 >> Sada ćemo kopirati tmp u tmp2. 452 00:23:22,680 --> 00:23:27,900 A vidimo da tmp2 također ima datoteku , jer je imenik i 453 00:23:27,900 --> 00:23:32,220 Sve unutar koje imenik je kopiran. 454 00:23:32,220 --> 00:23:36,000 I to može biti nešto korisno ako recimo radite 455 00:23:36,000 --> 00:23:38,860 Na problema postaviti jednu - 456 00:23:38,860 --> 00:23:41,320 ili zapravo, kasnije problema setovi su još važnije, jer postoji 457 00:23:41,320 --> 00:23:43,660 će biti cijela hrpa datoteka i stvari. 458 00:23:43,660 --> 00:23:47,010 >> Ali baš želite, za Split Drugo, ti si kao, u redu, ja sam 459 00:23:47,010 --> 00:23:50,210 Pokušat ću nešto drugo. 460 00:23:50,210 --> 00:23:57,860 Dopustite mi samo kopirati cijelo moje pset1 imenik u pset1 backup, tako da ako 461 00:23:57,860 --> 00:24:01,490 I na kraju uništava stvari, ja mogu vratiti u svoj backup imenika. 462 00:24:01,490 --> 00:24:07,340 Postoji više prikladni načini verzije backup svoj kod, ali 463 00:24:07,340 --> 00:24:10,610 to je uvijek brz način da se samo napraviti Sigurno imate kopiju nečeg 464 00:24:10,610 --> 00:24:11,860 da ste o modificirati. 465 00:24:11,860 --> 00:24:16,974 466 00:24:16,974 --> 00:24:27,090 >> Dakle echo je također jedan-off naredba koja vrsta sillily samo ispisati će se 467 00:24:27,090 --> 00:24:31,540 naredbenog retka upravo ono što ste htjeli jeka. 468 00:24:31,540 --> 00:24:32,680 Dakle jeka hi. 469 00:24:32,680 --> 00:24:35,420 Samo ćemo ispisati hi. 470 00:24:35,420 --> 00:24:38,030 Echo Pozdrav svijetu. 471 00:24:38,030 --> 00:24:39,800 Mi ćemo ispisati Pozdrav svijetu. 472 00:24:39,800 --> 00:24:44,350 To dolazi u uporabu kada početi kombinirajući naredbe. 473 00:24:44,350 --> 00:24:48,300 >> I opet, ne očekuju da u potpunosti Razumijem to, no to je 474 00:24:48,300 --> 00:24:49,910 što za vidjeti. 475 00:24:49,910 --> 00:24:52,470 A onda, ako ste Googling za primjere ili ste shvatili što želite učiniti 476 00:24:52,470 --> 00:24:55,030 nešto, što može biti od pomoći. 477 00:24:55,030 --> 00:24:59,020 Tako ćemo, kao, primjerice, pa ls, crtica, l. 478 00:24:59,020 --> 00:25:01,160 Dakle, ovdje vidim izlaz LS, crtica, l. 479 00:25:01,160 --> 00:25:06,560 A ja kažem, u redu, želim spremiti da u datoteku. 480 00:25:06,560 --> 00:25:11,620 Sve ove izlaz ovdje, želim staviti u zasebnu datoteku. 481 00:25:11,620 --> 00:25:16,080 >> Dakle, ovo malo veći od simbola je ono što ćemo zvati. 482 00:25:16,080 --> 00:25:18,570 Mi preusmjeravanje izlaz u datoteku. 483 00:25:18,570 --> 00:25:21,680 Nazovimo datotečni blah, jer to je ono što sam imaju tendenciju da ga uvijek nazvati. 484 00:25:21,680 --> 00:25:26,430 Dakle, sada smo vidjeli da imamo podnijeti blah ovdje. 485 00:25:26,430 --> 00:25:30,270 I ako sam ga otvoriti, vidjet ću to upravo izlazi iz naredbe 486 00:25:30,270 --> 00:25:31,990 da sam samo trčao. 487 00:25:31,990 --> 00:25:36,020 A isto tako, možete - 488 00:25:36,020 --> 00:25:41,260 ako je to bio izlaz u datoteku, ovaj se dobiti ulaz iz datoteke. 489 00:25:41,260 --> 00:25:45,790 490 00:25:45,790 --> 00:25:47,050 Što je naredba da sam - 491 00:25:47,050 --> 00:25:49,620 >> JOSEPH: Mislim da možete koristiti manje ili više, vjerojatno. 492 00:25:49,620 --> 00:25:53,031 >> ROB: Ali o tome samo manje bla? 493 00:25:53,031 --> 00:25:53,930 Ne znam. 494 00:25:53,930 --> 00:25:57,870 Ako ste došli u ovaj scenarij, kao što je postoji psets misle da je to korisno za. 495 00:25:57,870 --> 00:25:59,950 >> JOSEPH: Možete pipe ga u jeku. 496 00:25:59,950 --> 00:26:02,920 Pipe datoteku u jeku da ga vidi. 497 00:26:02,920 --> 00:26:04,060 >> ROB: To je cijev. 498 00:26:04,060 --> 00:26:04,860 >> JOSEPH: Žao mi je. 499 00:26:04,860 --> 00:26:06,190 >> ROB: U redu. 500 00:26:06,190 --> 00:26:12,720 Dakle, ovo je izlaz u datoteku. 501 00:26:12,720 --> 00:26:18,700 To je dobiti tekst iz spisa i predati ga na to programu. 502 00:26:18,700 --> 00:26:20,560 I vidjet ćete i ovaj tip. 503 00:26:20,560 --> 00:26:24,410 Dakle, ovo je neka vrsta radi oboje istovremeno. 504 00:26:24,410 --> 00:26:28,310 I zapravo, ja ću predstaviti dva nova naredbe samo da se iskoristi za to. 505 00:26:28,310 --> 00:26:33,060 >> Povijest je zgodan naredba koja je samo će se ispisati popis 506 00:26:33,060 --> 00:26:34,940 sve što sam ikada pokrenuti naredbenog retka. 507 00:26:34,940 --> 00:26:38,290 Dakle, ovdje vidimo sve što imam pokrenut cijelo ovo vrijeme. 508 00:26:38,290 --> 00:26:39,540 Puno ls-ih. 509 00:26:39,540 --> 00:26:41,570 510 00:26:41,570 --> 00:26:48,470 >> I još jedna korisna naredba grep da njegova svrha je da se traži više 511 00:26:48,470 --> 00:26:52,060 tekst u potrazi za obrascima, dobro, u potrazi za što 512 00:26:52,060 --> 00:26:53,310 želim to tražiti. 513 00:26:53,310 --> 00:26:59,770 I tako zgodan korištenje evo, recimo želimo da zgrabite povijest. 514 00:26:59,770 --> 00:27:03,860 I želim tražiti naredbe gdje sam - što je 515 00:27:03,860 --> 00:27:05,000 korisno jednom tražiti? 516 00:27:05,000 --> 00:27:06,898 >> JOSEPH: [nečujan]? 517 00:27:06,898 --> 00:27:09,710 >> ROB: Ili ćemo samo gledati za sve dotakne, iz bilo kojeg razloga. 518 00:27:09,710 --> 00:27:13,850 Dakle, to je ono što će izgledati. 519 00:27:13,850 --> 00:27:15,560 I ne morate se u potpunosti Razumijem to. 520 00:27:15,560 --> 00:27:20,570 No, ideja je ovdje, povijest je davanje Isto izlaz je napravio ovdje 521 00:27:20,570 --> 00:27:25,030 gdje je ispis iz cijelog Povijest na sve što sam ikada pokrenuti. 522 00:27:25,030 --> 00:27:27,030 Mi smo tada u prolazu da - 523 00:27:27,030 --> 00:27:30,230 pa umjesto da se ispisuje na zaslon, želimo da prođe da bi 524 00:27:30,230 --> 00:27:34,640 Naredba grep koja je u potrazi za sve instance riječi dodir. 525 00:27:34,640 --> 00:27:40,280 >> I tako koristeći ovu kombinaciju Alati za povijest i grep, ja mogu vidjeti, u redu, 526 00:27:40,280 --> 00:27:44,820 ovdje je sve naredbe koje sam ikada trčanje, i ovdje je nešto zajedničko jedno. 527 00:27:44,820 --> 00:27:45,510 Mi smo na dnu. 528 00:27:45,510 --> 00:27:47,930 I to je također što su mi dali naredbu Upravo sam to imao 529 00:27:47,930 --> 00:27:51,240 Riječ dodir u njoj. 530 00:27:51,240 --> 00:27:58,500 Ali cijev je prilično korisna stvar za kombiniranje više programa. 531 00:27:58,500 --> 00:28:04,670 I doista, to je prečac za LET mi izlaz povijest podnijeti bla, i 532 00:28:04,670 --> 00:28:10,190 neka mi Grep pomoću datotečnog blah što je ono što želim gledati preko. 533 00:28:10,190 --> 00:28:13,460 Tako cijevi je samo prečac za te dvije naredbe. 534 00:28:13,460 --> 00:28:13,950 Da. 535 00:28:13,950 --> 00:28:15,306 >> Zvučnik 4: [nečujno]? 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 Što je - 539 00:28:21,110 --> 00:28:21,858 Oh. 540 00:28:21,858 --> 00:28:24,820 Idemo testirati. 541 00:28:24,820 --> 00:28:29,170 Dakle, mačka, pas, riba. 542 00:28:29,170 --> 00:28:33,770 Dakle, želim Grep. 543 00:28:33,770 --> 00:28:37,680 Dash, r, opet, što će biti rekurzivno, tako da želim se spuštati niz 544 00:28:37,680 --> 00:28:38,870 sve direktorije. 545 00:28:38,870 --> 00:28:43,210 Želim rekurzivno Grep za sve - i neka mi privremeno dobiti 546 00:28:43,210 --> 00:28:44,460 to zabit. 547 00:28:44,460 --> 00:28:48,650 548 00:28:48,650 --> 00:28:50,740 Ignorirajte me. 549 00:28:50,740 --> 00:28:51,360 OK. 550 00:28:51,360 --> 00:28:56,740 >> Dakle, želim privremeno Grep za sve instance riječi ribe. 551 00:28:56,740 --> 00:29:00,510 I evo što radim je grepping rekurzivno za riječ ribe. 552 00:29:00,510 --> 00:29:05,410 A zvijezda znači više od svih tih Datoteke u ovaj direktorij. 553 00:29:05,410 --> 00:29:08,930 I tako mi je pristup odbijen, jer to nije dopušteno čitati da 554 00:29:08,930 --> 00:29:10,060 Posebno sliku. 555 00:29:10,060 --> 00:29:14,040 Ali to pronašao ribu u datoteci, testa. 556 00:29:14,040 --> 00:29:18,450 >> Također sam mogao reći, posebno, samo sam želite pogledati u datoteci bla, u 557 00:29:18,450 --> 00:29:19,580 kojem slučaju neće naći ništa. 558 00:29:19,580 --> 00:29:20,990 Ja samo želim gledati u datoteci, testa. 559 00:29:20,990 --> 00:29:22,240 Ona će se naći ribu. 560 00:29:22,240 --> 00:29:25,980 561 00:29:25,980 --> 00:29:29,260 To je prilično korisna naredba znati u cjelini. 562 00:29:29,260 --> 00:29:31,640 Postoje neke alternative Grep koji su trebali biti više 563 00:29:31,640 --> 00:29:36,780 programer prijateljski, ali ja imaju tendenciju da još uvijek pada na leđa grep. 564 00:29:36,780 --> 00:29:38,030 Pitanja? 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 >> Postoje li druge naredbe? 568 00:29:42,520 --> 00:29:45,270 Oh. 569 00:29:45,270 --> 00:29:48,370 Samo jedan-off onaj koji sam uvijek naći biti zabavno se obračunavati. 570 00:29:48,370 --> 00:29:55,610 Dakle primijetiti kada sam u ovu lijepu preko cijelog zaslona, ​​nemam poput vrh 571 00:29:55,610 --> 00:29:56,720 alatnoj traci ili ništa. 572 00:29:56,720 --> 00:29:59,530 Samo tako kal mi daje lijep mali kalendar koji je u pravu 573 00:29:59,530 --> 00:30:02,380 Sada odsječen, pretpostavljam. 574 00:30:02,380 --> 00:30:04,770 Ali lijepo malo naredba. 575 00:30:04,770 --> 00:30:06,540 >> JOSEPH: To je [nečujan]. 576 00:30:06,540 --> 00:30:09,170 Ostale naredbe koje ste mogli imati Vidjeli su Zveket i učiniti. 577 00:30:09,170 --> 00:30:11,180 Mi ćemo ići preko njih više detalja kasnije. 578 00:30:11,180 --> 00:30:13,400 Ali, ako ste radili na pset, što bi trebao biti 579 00:30:13,400 --> 00:30:15,160 upoznat s tim. 580 00:30:15,160 --> 00:30:16,640 >> ROB: U redu. 581 00:30:16,640 --> 00:30:18,520 Pitanja o naredbenog retka stvari? 582 00:30:18,520 --> 00:30:22,450 583 00:30:22,450 --> 00:30:23,260 U redu. 584 00:30:23,260 --> 00:30:27,416 Tako ćemo premjestiti na neki C-povezane stvari. 585 00:30:27,416 --> 00:30:28,666 Varijable matematike. 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 Dakle, baš kao što smo imali matematiku u nule, također možete koristiti matematiku u C. 589 00:30:45,230 --> 00:30:49,270 >> Prije nego što se na to u potpunosti, pa varijabli. 590 00:30:49,270 --> 00:30:53,920 Ne zaboravite da kad god proglasi promjenjiva poput int x ili float y, vama 591 00:30:53,920 --> 00:30:56,710 dati ga upisati prije ime varijable. 592 00:30:56,710 --> 00:31:03,020 Tako vrste koje smo vidjeli do sada su int, float, double, dugo dugo, što sam 593 00:31:03,020 --> 00:31:06,150 zapravo ne znam da li imamo vidljivo je da do sada. 594 00:31:06,150 --> 00:31:07,700 >> Postoje neke druge one. 595 00:31:07,700 --> 00:31:09,990 Mi smo vidjeli char. 596 00:31:09,990 --> 00:31:13,920 Tu je kratka, što je kao da je suprotno od dugo dugo, gdje je 597 00:31:13,920 --> 00:31:16,650 manji od integer. 598 00:31:16,650 --> 00:31:18,580 Također smo vidjeli niz. 599 00:31:18,580 --> 00:31:23,070 Dakle, ono što je posebno u nizu? 600 00:31:23,070 --> 00:31:25,350 Zašto bih se reći da je Ne sasvim poput int? 601 00:31:25,350 --> 00:31:27,030 >> Zvučnik 4: To zapravo ne postoji. 602 00:31:27,030 --> 00:31:27,990 >> ROB: Da. 603 00:31:27,990 --> 00:31:31,820 Dakle, jedini razlog zbog kojeg imamo niz je zato što kada to učinite 604 00:31:31,820 --> 00:31:33,215 mljeveno meso, uključuju cs50.h. 605 00:31:33,215 --> 00:31:36,530 606 00:31:36,530 --> 00:31:42,670 A vidjet ćemo primjere tome kasnije - Oh, da ne nositi baš dobro - 607 00:31:42,670 --> 00:31:46,160 gdje cs50.h radi nešto na tragu tipu 608 00:31:46,160 --> 00:31:49,230 def, char zvijezda, niz. 609 00:31:49,230 --> 00:31:53,280 >> I tako to govori da se čak ni Znam što je char zvijezda još. 610 00:31:53,280 --> 00:31:56,770 No, to govori želimo niz. 611 00:31:56,770 --> 00:32:00,250 Svako mjesto na koje ste koristili niz, vi mogli su pomoću char zvijezdu, 612 00:32:00,250 --> 00:32:04,670 koja je zapravo tip koji postoji u C jeziku. 613 00:32:04,670 --> 00:32:06,680 No, mi ćemo doći do toga. 614 00:32:06,680 --> 00:32:07,860 Oh, i to ide natrag. 615 00:32:07,860 --> 00:32:10,170 Uredan. 616 00:32:10,170 --> 00:32:15,370 >> Dakle, ista stvar s bool gdje je istinito i lažno. 617 00:32:15,370 --> 00:32:22,510 To zapravo i nije izgrađen-in tipa u C. Umjesto toga, to je samo, to ima 618 00:32:22,510 --> 00:32:23,740 vrijednost nula? 619 00:32:23,740 --> 00:32:26,200 Onda ćemo samo uzeti u obzir to da su lažne. 620 00:32:26,200 --> 00:32:27,350 Da li to ima vrijednost - 621 00:32:27,350 --> 00:32:30,530 dobro, to ima bilo vrijednost koja nije nula? 622 00:32:30,530 --> 00:32:32,200 Onda ćemo uzeti u obzir da bi bilo istinito. 623 00:32:32,200 --> 00:32:35,940 Dakle, jedan je istina, dva je istina, ništa nule je istina. 624 00:32:35,940 --> 00:32:38,710 625 00:32:38,710 --> 00:32:42,790 Dakle, to su oni. 626 00:32:42,790 --> 00:32:47,624 Pitanja o proglašenju varijabli i varijabilne vrste i sve to? 627 00:32:47,624 --> 00:32:48,100 Da. 628 00:32:48,100 --> 00:32:52,384 >> Zvučnik 4: Za dugo dugo, u knjizi, on je rekao da je morao biti dugo dugo int. 629 00:32:52,384 --> 00:32:54,288 No, samo će se dugo dugo raditi? 630 00:32:54,288 --> 00:32:58,210 631 00:32:58,210 --> 00:33:01,470 >> ROB: Pa ti tip za modifikaciju. 632 00:33:01,470 --> 00:33:04,170 Dakle int x. 633 00:33:04,170 --> 00:33:07,710 Dakle, možemo reći nepotpisan int x. 634 00:33:07,710 --> 00:33:09,640 Možemo reći short int x. 635 00:33:09,640 --> 00:33:12,570 Možemo reći long long int x. 636 00:33:12,570 --> 00:33:17,250 No, prilično mnogo bilo koje od tih stvari koje sam Samo je rekao, unsigned int, short int, 637 00:33:17,250 --> 00:33:21,480 long long int, možete se riješiti int i to će se samo pretpostavljati 638 00:33:21,480 --> 00:33:22,510 da li je značilo int. 639 00:33:22,510 --> 00:33:26,045 Dakle nepotpisani x, što samo znači - 640 00:33:26,045 --> 00:33:29,400 znate kako je normalno s int, možete reći x jednako negativan 3? 641 00:33:29,400 --> 00:33:31,636 Uz unsigned int, ne možete. 642 00:33:31,636 --> 00:33:34,480 >> JOSEPH: I opet, za kameru, Pitanje je, koja je razlika 643 00:33:34,480 --> 00:33:37,796 između dugo dugo int i baš dugo dugo? 644 00:33:37,796 --> 00:33:38,410 >> ROB: Da. 645 00:33:38,410 --> 00:33:42,850 Dakle, ja ću skoro nikada pisati dugo dugo int. 646 00:33:42,850 --> 00:33:44,100 Napisat ću dugo dugo. 647 00:33:44,100 --> 00:33:47,770 648 00:33:47,770 --> 00:33:50,636 >> JOSEPH: Ima li pitanja? 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 Dakle blesave podsjetnik da je kako izjavljujemo varijablu i započeti 652 00:34:02,390 --> 00:34:04,450 promjenjiva i proglasiti drugi promjenjiva i započeti 653 00:34:04,450 --> 00:34:05,870 sve to u jednom koraku. 654 00:34:05,870 --> 00:34:09,370 Dakle deklaracija varijable i Inicijalizacija varijable nemaju 655 00:34:09,370 --> 00:34:11,120 da, ali može biti na istoj liniji. 656 00:34:11,120 --> 00:34:15,409 657 00:34:15,409 --> 00:34:20,060 >> Dakle, imamo standardne matematičke operatore koje ste navikli - 658 00:34:20,060 --> 00:34:22,199 plus, minus, dijeljenje, puta. 659 00:34:22,199 --> 00:34:24,389 Tu je i po modulu, što ćemo vidjeti. 660 00:34:24,389 --> 00:34:29,060 Ne postoji, barem C, izgrađen-in power 661 00:34:29,060 --> 00:34:31,765 potenciranje znak za umetanje operatora. 662 00:34:31,765 --> 00:34:33,770 Pa, tu je znak za umetanje operator, ali to nije moć. 663 00:34:33,770 --> 00:34:34,239 >> JOSEPH: Ali to nije potenciranje, Da. 664 00:34:34,239 --> 00:34:36,210 >> ROB: Ne koristite znak za umetanje pretpostaviti da to znači 665 00:34:36,210 --> 00:34:39,980 kao kvadrat ili bilo što drugo. 666 00:34:39,980 --> 00:34:42,289 Dakle, neke stvari koje treba imati na pamet o podjeli. 667 00:34:42,289 --> 00:34:46,282 668 00:34:46,282 --> 00:34:48,880 Ja ću stati. 669 00:34:48,880 --> 00:34:51,315 Dakle proglasio Initialize odgovor. 670 00:34:51,315 --> 00:34:54,670 Dakle, govorimo float odgovor jednak 1 podijeljeno 10. 671 00:34:54,670 --> 00:34:57,500 Ispis odgovor na dvije decimale. 672 00:34:57,500 --> 00:35:02,180 >> I ovo je jedna od onih stvari koje sam bi čovjek printf shvatiti da 673 00:35:02,180 --> 00:35:05,110 Koji je kurac nema%, dot, 2f znači? 674 00:35:05,110 --> 00:35:07,930 A to samo znači da, dobro, ignorirajući 0.2. 675 00:35:07,930 --> 00:35:10,420 I%, f je ono što mi koristimo ispisati da plutaju. 676 00:35:10,420 --> 00:35:15,370 0,2 govori, print koji isplivaju na dvije decimale. 677 00:35:15,370 --> 00:35:19,600 Dakle, ovaj program ima bug, a možda Vidio to prije u nekim 678 00:35:19,600 --> 00:35:20,870 prije CS naravno. 679 00:35:20,870 --> 00:35:22,170 No, što je to bug? 680 00:35:22,170 --> 00:35:23,050 >> ZVUČNIK 5: Zero. 681 00:35:23,050 --> 00:35:24,130 >> ROB: Da. 682 00:35:24,130 --> 00:35:29,630 Dakle, kad kažemo, odgovor je jednaka 1 podijeljeno 10, želimo 683 00:35:29,630 --> 00:35:31,610 odgovor biti 0,1. 684 00:35:31,610 --> 00:35:37,450 No 1 podijeljeno 10, 1 je broj 10 je cijeli broj. 685 00:35:37,450 --> 00:35:41,060 I tako, kada mi se cijeli broj podijeljen cijeli broj, mi ćemo se vratiti 686 00:35:41,060 --> 00:35:42,190 cijeli broj. 687 00:35:42,190 --> 00:35:43,660 Dakle 1 podijeljeno 10 je 0,1. 688 00:35:43,660 --> 00:35:46,760 >> Budući da to treba da nam daju cijeli broj, to samo ide baciti da 689 00:35:46,760 --> 00:35:49,410 decimala i reći da Odgovor je 0. 690 00:35:49,410 --> 00:35:55,314 I tako, kada smo ispisali odgovoriti ovdje, to će ispisati 0.00. 691 00:35:55,314 --> 00:35:58,430 >> JOSEPH: I baš kao napomena, to je zapravo odbaci ono što je nakon 692 00:35:58,430 --> 00:35:59,390 decimalne točke. 693 00:35:59,390 --> 00:36:03,180 Dakle, ako umjesto toga imali 6 podijeljeno 10, možda mislite da će vam dati 694 00:36:03,180 --> 00:36:05,200 0.6, a onda će zaokružiti na 1. 695 00:36:05,200 --> 00:36:10,520 Ali, zapravo, ono što se događa kada je upisati zadataka je da padne, što je 696 00:36:10,520 --> 00:36:11,470 nakon decimalne točke. 697 00:36:11,470 --> 00:36:13,020 Dakle 0.6 ne postane 0. 698 00:36:13,020 --> 00:36:13,370 >> ROB: Da. 699 00:36:13,370 --> 00:36:15,160 I mi ćemo reći tupo za to. 700 00:36:15,160 --> 00:36:21,760 Dakle, kad god baci na int, decimalnim je odrezan. 701 00:36:21,760 --> 00:36:23,980 Dakle fix za to - nema zapravo dva. 702 00:36:23,980 --> 00:36:27,890 A ja ću učiniti da drugi, jer ovo je mnogo lakše popraviti. 703 00:36:27,890 --> 00:36:32,670 >> Dakle, jedan je popravak koristiti pluta u podjeli. 704 00:36:32,670 --> 00:36:34,720 I doista, imate samo bi jedan od njih float. 705 00:36:34,720 --> 00:36:37,400 No, to je nešto jasnija samo da bi obojica pluta. 706 00:36:37,400 --> 00:36:41,170 Dakle 1,0 podijeljena 10,0 je dijeljenjem dva pluta. 707 00:36:41,170 --> 00:36:43,970 Dakle, odgovor će završiti kao float, pa ćete 708 00:36:43,970 --> 00:36:48,050 pravilno ispisati 0,10 ovdje. 709 00:36:48,050 --> 00:36:52,220 >> Nešto što ne radi tako dobro o tome da je, dobro, sigurno, bilo je lako 710 00:36:52,220 --> 00:36:56,240 dovoljno da se pretvoriti 1 do plutaju tako što je 1,0. 711 00:36:56,240 --> 00:37:02,180 No, što ako umjesto toga smo imali po dva broja kao int x jednako 1 i int y 712 00:37:02,180 --> 00:37:05,660 iznosi 10, a onda smo htjeli da ne x podijeljena y? 713 00:37:05,660 --> 00:37:10,420 Dakle, to nije lako samo učiniti X.0 ili nešto. 714 00:37:10,420 --> 00:37:12,790 >> Dakle fix se da je casting. 715 00:37:12,790 --> 00:37:19,780 Dakle casting je put u C pretvoriti s jedne varijabilne vrste u drugu. 716 00:37:19,780 --> 00:37:22,320 Pa evo, 1 je cijeli broj. 717 00:37:22,320 --> 00:37:27,050 I stavljajući ovu plutaju ispred da, mi smo lijevanje jedan na plovak. 718 00:37:27,050 --> 00:37:30,350 I tako će to pretvoriti 1 do 1,0. 719 00:37:30,350 --> 00:37:33,380 A to će se pretvoriti 10 do 10,0. 720 00:37:33,380 --> 00:37:36,790 >> I tada su se stvari na sličan način ponašaju se Prethodna verzija smo upravo pokazali 721 00:37:36,790 --> 00:37:42,190 gdje je, kako se i očekivalo, dobili smo 0,10 i to će ispisati da. 722 00:37:42,190 --> 00:37:44,120 A to možemo učiniti s varijable, također. 723 00:37:44,120 --> 00:37:47,376 Dakle, možemo reći, float x podijeljena float y. 724 00:37:47,376 --> 00:37:48,626 >> JOSEPH: Ima li pitanja? 725 00:37:48,626 --> 00:37:54,182 726 00:37:54,182 --> 00:38:00,090 >> ROB: Dakle, baš kao u redovnoj matematici, imamo operator prednost. 727 00:38:00,090 --> 00:38:06,960 Dakle, na matematiku, ti si vjerojatno nazvati redoslijed operacija. 728 00:38:06,960 --> 00:38:09,890 Evo, službeni termin je prednost operatera. 729 00:38:09,890 --> 00:38:15,230 No, operator prednost, ili većina operateri, je kao što se i očekuje. 730 00:38:15,230 --> 00:38:22,660 >> Dakle, baš kao u matematici, 2 puta 10 je će se grupirati u većoj mjeri nego 731 00:38:22,660 --> 00:38:25,410 ovaj 10 podijeljeno sa 2, a zatim 2. 732 00:38:25,410 --> 00:38:29,745 Redoslijed operacija, to će učiniti 2 10 puta, 10 podijeljen 2, a zatim 733 00:38:29,745 --> 00:38:32,720 to će obaviti 20 plus pet plus dva. 734 00:38:32,720 --> 00:38:37,020 Dakle, to je u skladu s očekivanjima, a možete koristiti zagradi je da se u skupini izraza. 735 00:38:37,020 --> 00:38:41,063 Ne možete koristiti uglate zagrade grupnih izraza. 736 00:38:41,063 --> 00:38:41,544 Da? 737 00:38:41,544 --> 00:38:43,468 >> ZVUČNIK 5: Možete li zapravo samo vratiti jednu sekundu? 738 00:38:43,468 --> 00:38:47,316 Mogu ti cast int u string? 739 00:38:47,316 --> 00:38:53,330 >> ROB: Pa u C, što se baci ništa Želite li sve što želite. 740 00:38:53,330 --> 00:38:55,600 To ne znači da je Dobra stvar za napraviti. 741 00:38:55,600 --> 00:38:59,760 Pa kad ti cast int se string, to znači - 742 00:38:59,760 --> 00:39:03,240 a mi ćemo ući u to puno temeljitije - 743 00:39:03,240 --> 00:39:03,720 >> JOSEPH: Mnogo kasnije. 744 00:39:03,720 --> 00:39:06,840 >> ROB: Nisam htio reći mnogo kasnije, pa sam pokušao promijeniti svoju kaznu. 745 00:39:06,840 --> 00:39:13,370 Mi ćemo ući u njega puno temeljitije kasnije gdje stvarno kad imate 746 00:39:13,370 --> 00:39:14,810 string varijabla - 747 00:39:14,810 --> 00:39:17,160 pa niza može biti arbitrarno dugo, zar ne? 748 00:39:17,160 --> 00:39:21,850 I mi smo bili rekavši da je int četiri bajta i dugo dugo je osam 749 00:39:21,850 --> 00:39:23,620 bajta i plutaju četiri bajta. 750 00:39:23,620 --> 00:39:29,520 Dakle string, baš kao int, samo da ima određeni broj bajtova do njega. 751 00:39:29,520 --> 00:39:31,800 I to će biti četiri bajta. 752 00:39:31,800 --> 00:39:34,750 >> No, niz može biti prilično proizvoljno dugo, zar ne? 753 00:39:34,750 --> 00:39:40,190 Dakle Pozdrav svijetu već, ako je to 10 znakova ili što god, to je već 754 00:39:40,190 --> 00:39:42,670 će biti više od 4 bajta Ja mogu stati u nizu. 755 00:39:42,670 --> 00:39:51,140 I tako kako žice stvarno rade je da oni su u kojima je u sjećanju da je niz 756 00:39:51,140 --> 00:39:52,380 drži se. 757 00:39:52,380 --> 00:39:57,290 >> I tako je ovdje, kad kažem string x jednako Pozdrav svijetu, unutar x je 758 00:39:57,290 --> 00:40:01,840 Samo kažem, oh, hello world je pohranjena upravo na tom mjestu u memoriji. 759 00:40:01,840 --> 00:40:07,060 Dakle, ako ćemo pokušati baciti cijeli broj za string, a zatim mi pokušavamo interpretirati 760 00:40:07,060 --> 00:40:10,500 neki slučajni dio memorije kao niz. 761 00:40:10,500 --> 00:40:14,465 I to je gotovo uvijek razbija stvari. 762 00:40:14,465 --> 00:40:17,040 >> JOSEPH: Ali ako je to zbunjuje što ćemo se pokrivaju 763 00:40:17,040 --> 00:40:17,550 više u dubinu kasnije. 764 00:40:17,550 --> 00:40:17,850 >> ROB: Da. 765 00:40:17,850 --> 00:40:20,540 Ovo je mjesto gdje idete ući u pokazivače. 766 00:40:20,540 --> 00:40:25,485 I to je značajan komad od dva tjedna od ovog tečaja. 767 00:40:25,485 --> 00:40:28,275 >> ZVUČNIK 6: Da li to raditi kao objekata na drugim jezicima nije stvarno ili? 768 00:40:28,275 --> 00:40:34,050 >> ROB: Dakle, drugim jezicima, objekata će biti zastupljena pomoću pointera. 769 00:40:34,050 --> 00:40:37,070 770 00:40:37,070 --> 00:40:38,793 To nije ista stvar, ipak. 771 00:40:38,793 --> 00:40:42,110 772 00:40:42,110 --> 00:40:42,910 Bilo misli? 773 00:40:42,910 --> 00:40:43,760 >> JOSEPH: Ne. 774 00:40:43,760 --> 00:40:44,185 Nema 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: Dovoljno je ići s tim. 778 00:40:48,255 --> 00:40:48,670 U redu. 779 00:40:48,670 --> 00:40:51,120 Dakle modulu. 780 00:40:51,120 --> 00:40:53,900 Baš kao što mi imamo plus, minus, podijele i množite. 781 00:40:53,900 --> 00:40:56,720 Dakle, po modulu je ona koju svibanj nisam vidio prije. 782 00:40:56,720 --> 00:40:59,540 I to samo kaže, dati mi ostatak. 783 00:40:59,540 --> 00:41:02,850 Dakle, 55% 10. 784 00:41:02,850 --> 00:41:06,840 Ostatak radi 55 podijeljeno po 10. će biti 5. 785 00:41:06,840 --> 00:41:09,630 Dakle, 55% 10 je 5. 786 00:41:09,630 --> 00:41:12,260 I 3% 5 će biti 3. 787 00:41:12,260 --> 00:41:14,180 8% 8 će biti 0. 788 00:41:14,180 --> 00:41:15,903 16% 15 će biti 1. 789 00:41:15,903 --> 00:41:20,670 >> JOSEPH: Jedna stvar na umu s tim, također, to ne bi mogli raditi kao što se očekuje 790 00:41:20,670 --> 00:41:22,700 ako koristite negativan niz. 791 00:41:22,700 --> 00:41:26,215 Dakle, negativni 5% 4, neki ljudi Možda mislite da je - 792 00:41:26,215 --> 00:41:28,890 793 00:41:28,890 --> 00:41:33,808 što bi mislite negativna 5% 4 će biti? 794 00:41:33,808 --> 00:41:34,792 >> ZVUČNIK 5: Jedan. 795 00:41:34,792 --> 00:41:37,920 >> JOSEPH: Pa neki ljudi kažu jedno, neki ljudi kažu negativni. 796 00:41:37,920 --> 00:41:38,450 No, ono što - 797 00:41:38,450 --> 00:41:40,820 >> ROB: Ja čak ne bi , rekao je jedan od tih. 798 00:41:40,820 --> 00:41:42,370 >> JOSEPH: Dva, ispričavam se. 799 00:41:42,370 --> 00:41:43,240 Neki ljudi kažu - 800 00:41:43,240 --> 00:41:43,450 >> ROB: Tri. 801 00:41:43,450 --> 00:41:43,800 >> JOSEPH: Tri? 802 00:41:43,800 --> 00:41:44,890 >> ROB: Negativno - 803 00:41:44,890 --> 00:41:45,950 ono što je bio - negativan pet - 804 00:41:45,950 --> 00:41:47,100 >> JOSEPH: Tri, tri, tri. 805 00:41:47,100 --> 00:41:48,450 Oprostite. 806 00:41:48,450 --> 00:41:51,910 Zbog modulo, općenito, kad ste ga vidjeli negdje drugdje, to obično znači 807 00:41:51,910 --> 00:41:54,000 vratiti pozitivan niz, zar ne? 808 00:41:54,000 --> 00:42:01,160 >> ROB: Dakle, kada kažemo u matematici, 10%-a, oni imaju tendenciju da žele dati - 809 00:42:01,160 --> 00:42:05,980 ako mi mod za 10, onda očekujemo da dobiti broj između 0 i 9.. 810 00:42:05,980 --> 00:42:09,860 U ovdje, to nije slučaj da će se negativni brojevi vratio. 811 00:42:09,860 --> 00:42:15,898 >> JOSEPH: Dakle negativna 5% 4 će biti negativan 1. 812 00:42:15,898 --> 00:42:19,325 >> ROB: Ali to je rijetko da si mod-ing negativni brojevi za početak. 813 00:42:19,325 --> 00:42:25,490 814 00:42:25,490 --> 00:42:25,970 Preskoči to. 815 00:42:25,970 --> 00:42:27,314 >> JOSEPH: Da. 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 Dakle, jedna stvar je istaknuti o pluta je to opasno ponašanje, 819 00:42:36,400 --> 00:42:39,850 ali lebdi nisu točna zastupljenost. 820 00:42:39,850 --> 00:42:46,190 Dakle, ide natrag u bajtove opet, ne zaboravite da int uvijek četiri bajta i 821 00:42:46,190 --> 00:42:47,830 float je uvijek četiri bajta. 822 00:42:47,830 --> 00:42:51,340 Dakle, Lucas je primjer je prilično dobro. 823 00:42:51,340 --> 00:42:55,730 >> Dakle, mislim od 1 podijeljeno s tri. 824 00:42:55,730 --> 00:42:57,800 Dakle, 0,3333333. 825 00:42:57,800 --> 00:43:03,540 Ako imam samo 32 bita, kako mogu Ja pohraniti 0,33333 točno? 826 00:43:03,540 --> 00:43:07,250 A možda, iz bilo kojeg razloga, kažeš, dobro, dobro, neka je samo reći 827 00:43:07,250 --> 00:43:13,210 da je ovaj 1011001, neka je Samo kažem da treba biti 0,333333. 828 00:43:13,210 --> 00:43:16,960 Pa, imate samo ograničen broj ti bita, tako da je nemoguće 829 00:43:16,960 --> 00:43:22,550 predstavljaju svaki s pomičnim zarezom Vrijednost dao samo 32 bita. 830 00:43:22,550 --> 00:43:25,580 >> Pa, to je nemoguće da predstavljaju bilo Krajnja vrijednost daje beskonačan - 831 00:43:25,580 --> 00:43:28,480 dobro, s obzirom na bilo koji konačan broj bitova. 832 00:43:28,480 --> 00:43:38,265 Dakle, pitanje ovdje je, dobro, kad smo se ispisati na dvije decimale, 833 00:43:38,265 --> 00:43:42,000 nismo ispravno dobiti odgovor 0.10. 834 00:43:42,000 --> 00:43:47,510 No, ispod haube, to je stvarno pohranjuju kao bliski kao moguće 835 00:43:47,510 --> 00:43:51,790 0.10 kao one bitova može predstavljati. 836 00:43:51,790 --> 00:43:53,200 Je li to na sljedeći slajd? 837 00:43:53,200 --> 00:43:53,830 Ili zar ne? 838 00:43:53,830 --> 00:43:54,660 >> JOSEPH: Da, 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: Da, možete samo povući bilješke se malo. 841 00:43:57,760 --> 00:43:59,700 >> ROB: ja samo idem za uvećanje u na zadnji na to. 842 00:43:59,700 --> 00:44:00,950 O, moj Bože, to je [nečujan]. 843 00:44:00,950 --> 00:44:06,089 844 00:44:06,089 --> 00:44:08,300 Dakle, taj broj. 845 00:44:08,300 --> 00:44:12,300 To je ono što će se tiskati ako smo pokrenuti taj program. 846 00:44:12,300 --> 00:44:20,340 I primjetite da se zapravo nije velika stvar ako smo se samo brine o kao 847 00:44:20,340 --> 00:44:21,920 dva i pedeset osam decimalnih mjesta. 848 00:44:21,920 --> 00:44:26,700 Kao da smo se samo izvorno tiskana 0,10, i to je razlog zašto smo vidjeli ništa loše. 849 00:44:26,700 --> 00:44:31,380 No, nakon što smo počeli uzimajući u točno, točan broj koji je 850 00:44:31,380 --> 00:44:35,660 zastupanje, vidimo da to ne može točno predstavljaju 0,1. 851 00:44:35,660 --> 00:44:40,900 >> I dio problema ovdje je kao, U redu je, to je u redu, ali, dobro, 852 00:44:40,900 --> 00:44:46,120 Prvo, što ako smo pokušali učiniti, Odgovor jednaka jednaka 0.1? 853 00:44:46,120 --> 00:44:49,200 Hoće li to povratak istina ili laž? 854 00:44:49,200 --> 00:44:51,850 I tako da je teško reći. 855 00:44:51,850 --> 00:44:53,330 Mislim da je to zapravo mogao vratiti istina. 856 00:44:53,330 --> 00:44:55,265 Hoće li to prvi put - 857 00:44:55,265 --> 00:44:56,180 Ne znam. 858 00:44:56,180 --> 00:45:00,090 Odgovor je jednom počnete se bave s vrijednostima s pomičnim zarezom, što prilično 859 00:45:00,090 --> 00:45:05,150 više ne bi trebali biti pomoću jednakosti zbog ove nepreciznosti. 860 00:45:05,150 --> 00:45:09,470 >> A za sve što znam, to je stoti decimala da 861 00:45:09,470 --> 00:45:13,670 pomičnim zarezom nije bio u mogućnosti pravilno rukovanje. 862 00:45:13,670 --> 00:45:18,180 I tako jednakost samo će uspjeti čak iako je broj - ako je bilo 863 00:45:18,180 --> 00:45:24,450 pomoću točne brojeve, brojevi trebali su isti. 864 00:45:24,450 --> 00:45:27,790 Ona je tijekom 50 godina kao izračuni ove plutajuće 865 00:45:27,790 --> 00:45:30,270 točka vrijednosti, pogreška može graditi gore i gore i gore, a 866 00:45:30,270 --> 00:45:31,125 stvari samo dobiti krivu. 867 00:45:31,125 --> 00:45:33,870 >> JOSEPH: I bilo je jako poznati primjeri da se to dogodi. 868 00:45:33,870 --> 00:45:37,190 Kao i NASA-ini inženjeri su dobivši taj pogrešne, uzrokujući rakete eksplodirati u 869 00:45:37,190 --> 00:45:38,665 zrak nakon što ste bili pokrenut. 870 00:45:38,665 --> 00:45:41,490 I puno pitanja kao što je to. 871 00:45:41,490 --> 00:45:41,956 Pa da. 872 00:45:41,956 --> 00:45:45,218 >> ZVUČNIK 6: Kad kažete 0,3 f, to izrežite ostatak? 873 00:45:45,218 --> 00:45:46,468 Ili se to naviše ili naniže? 874 00:45:46,468 --> 00:45:48,800 875 00:45:48,800 --> 00:45:50,200 >> ROB: Hoće printf oko njega? 876 00:45:50,200 --> 00:45:52,180 >> JOSEPH: Mislim printf skraćene. 877 00:45:52,180 --> 00:45:52,640 >> ROB: OK. 878 00:45:52,640 --> 00:45:59,890 Tako smo na sličan način mogu ići u suprotnom Smjer ovo gdje, u ovom slučaju, 879 00:45:59,890 --> 00:46:03,320 Najbliže što bi moglo predstavljati 0,1 je s ovim brojem. 880 00:46:03,320 --> 00:46:06,820 Najbliže što bi moglo biti u mogućnosti predstavljaju 0,2 je u suprotno 881 00:46:06,820 --> 00:46:11,420 smjer, 0,199999996356 ili tako nešto. 882 00:46:11,420 --> 00:46:17,480 Dakle, ako smo otišli u tom smjeru stvari, onda printf 0,3 f će se vratiti 883 00:46:17,480 --> 00:46:20,866 1,99 umjesto 2,00. 884 00:46:20,866 --> 00:46:22,960 >> JOSEPH: I nisam baš posve sigurni o tome. 885 00:46:22,960 --> 00:46:25,430 Možda želite napisati mali, mali Program samo da to provjeri. 886 00:46:25,430 --> 00:46:29,370 >> ROB: Iako, ono što smo sigurni je da Ako ste pokušali da se baci 887 00:46:29,370 --> 00:46:33,660 int, i lijevanje na int će uzrokovati da se skratiti decimale, ako 888 00:46:33,660 --> 00:46:38,140 pokušate baci 1.9999999 na int, vi ćete dobiti jedan. 889 00:46:38,140 --> 00:46:41,440 I tako bi trebali uglavnom koriste okrugli funkcija u matematici knjižnici. 890 00:46:41,440 --> 00:46:44,190 891 00:46:44,190 --> 00:46:45,440 Pitanja? 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: Pa što se kreće na uvjete i Boolean izraza. 895 00:46:54,000 --> 00:46:58,120 Pa vidjeli ste to i prije. 896 00:46:58,120 --> 00:47:07,420 I zapravo, neka mi to da moja Računalo je u pravom formatu ovdje. 897 00:47:07,420 --> 00:47:08,670 Space. 898 00:47:08,670 --> 00:47:10,630 899 00:47:10,630 --> 00:47:13,870 Žao nam je, mi ćemo se morati nositi malo s prekidom na rubovima. 900 00:47:13,870 --> 00:47:15,830 >> Ali, da, ti dečki su vidjeli to prije nego što je u nule. 901 00:47:15,830 --> 00:47:19,930 Dakle, ovo ovdje je izraz koji se koristi u 902 00:47:19,930 --> 00:47:21,250 uvjetna naredba. 903 00:47:21,250 --> 00:47:23,930 Dakle, odgovor veći od nule volje reci ti istina ili laž. 904 00:47:23,930 --> 00:47:26,530 I to su stvarno važno, jer oni omogućuju nam da se predstavimo 905 00:47:26,530 --> 00:47:28,670 Logika u naš kod. 906 00:47:28,670 --> 00:47:32,820 >> Tako na primjer, to je program zapisano u nule koji pita korisnika 907 00:47:32,820 --> 00:47:36,980 za cijeli broj i govori im bilo broj koji su vam je dao bilo 908 00:47:36,980 --> 00:47:38,690 pozitivni ili negativni broj. 909 00:47:38,690 --> 00:47:42,980 A pretvorbe ovamo vidjeti je prvo ispisati izjavu, 910 00:47:42,980 --> 00:47:43,870 daj mi cijeli broj. 911 00:47:43,870 --> 00:47:45,980 I onda ih pitati za cijeli broj. 912 00:47:45,980 --> 00:47:49,870 >> I onda koristiti uvjetno logike više Ovdje se provjeriti je li taj broj 913 00:47:49,870 --> 00:47:52,030 zapravo veći od nule ili ne. 914 00:47:52,030 --> 00:47:58,960 Dakle, ovdje imamo Boolean izraz unutar uvjetna Ako priopćenju. 915 00:47:58,960 --> 00:48:00,660 Ima li pitanja? 916 00:48:00,660 --> 00:48:03,030 Ima li kakvih pitanja u vezi toga? 917 00:48:03,030 --> 00:48:03,950 OK. 918 00:48:03,950 --> 00:48:06,140 >> Dakle, tu je više nego samo veći od, naravno. 919 00:48:06,140 --> 00:48:10,385 Možete izgraditi Boolean izraza korištenjem većina svašta što 920 00:48:10,385 --> 00:48:11,150 će misliti u matematici. 921 00:48:11,150 --> 00:48:12,370 Dakle, veći od. 922 00:48:12,370 --> 00:48:13,740 To bi trebao biti manji od. 923 00:48:13,740 --> 00:48:14,990 Oprostite. 924 00:48:14,990 --> 00:48:18,520 925 00:48:18,520 --> 00:48:19,760 I razmak. 926 00:48:19,760 --> 00:48:22,971 >> ROB: Ne daj Bože da ga napuste. 927 00:48:22,971 --> 00:48:23,620 >> JOSEPH: U redu. 928 00:48:23,620 --> 00:48:25,950 Tako veći od, manje od, veći od, ili jednak, manje 929 00:48:25,950 --> 00:48:27,070 od, ili jednak. 930 00:48:27,070 --> 00:48:31,980 Mi koristimo dvostruke iznosi provjerite jednakost, jer jedan jednako sredstva 931 00:48:31,980 --> 00:48:32,810 zadatak, zar ne? 932 00:48:32,810 --> 00:48:33,140 Da. 933 00:48:33,140 --> 00:48:37,130 A onda možemo i ne jednako tako pomoću uskličnik, jednako. 934 00:48:37,130 --> 00:48:41,530 >> I ovaj uskličnik simbol može također biti proširena, tako da ako želite 935 00:48:41,530 --> 00:48:44,050 obrnuti bilo kakve Boolean izraz, možete to učiniti. 936 00:48:44,050 --> 00:48:48,530 Dakle, to će procijeniti da vrijedi Samo ako je odgovor manje 937 00:48:48,530 --> 00:48:51,240 od ili jednak nuli. 938 00:48:51,240 --> 00:48:53,950 Sva pitanja o tome? 939 00:48:53,950 --> 00:48:55,180 OK. 940 00:48:55,180 --> 00:48:58,840 >> Tako možete iskombiniramo izrazi koji koriste logičke A i 941 00:48:58,840 --> 00:48:59,790 Ili logično. 942 00:48:59,790 --> 00:49:03,530 Dakle, ovo je samo I simbol, koja bi trebala biti Shift, 7. 943 00:49:03,530 --> 00:49:07,720 A to je simbol cijevi, što je Nije mala slova L. To je jedan 944 00:49:07,720 --> 00:49:09,440 to je pravo iznad Enter. 945 00:49:09,440 --> 00:49:12,870 Dakle, koristite dvije ove simbolizirati Logično I logično Ili. 946 00:49:12,870 --> 00:49:18,180 >> Dakle, to će se samo vratiti true ako je odgovor jedan, dva, tri, ili četiri. 947 00:49:18,180 --> 00:49:23,030 I to će se samo vratiti true ako odgovor je iza toga na obje strane. 948 00:49:23,030 --> 00:49:26,190 Dakle, to nije jedan, dva, tri, ili četiri. 949 00:49:26,190 --> 00:49:28,385 I način na koji će koristiti da je u izrazu - 950 00:49:28,385 --> 00:49:29,990 >> ROB: Ili nula ili pet. 951 00:49:29,990 --> 00:49:32,200 >> JOSEPH: Nula ili pet. 952 00:49:32,200 --> 00:49:32,380 Oprostite. 953 00:49:32,380 --> 00:49:33,320 Da, da, da. 954 00:49:33,320 --> 00:49:34,180 OK. 955 00:49:34,180 --> 00:49:38,980 A ovdje sada, isti ti put će koristiti taj izraz, manja 956 00:49:38,980 --> 00:49:42,000 Izraz strana Ako uvjetna gubitka, što bi također ga koristiti 957 00:49:42,000 --> 00:49:47,800 isti način po samo stavljajući ga unutar zagrade IF izjavu. 958 00:49:47,800 --> 00:49:54,020 Dakle, ovo printf će samo dobiti otkaz ako odgovor jedan, dva, tri, ili četiri. 959 00:49:54,020 --> 00:49:56,002 Sva pitanja o kombiniranju izrazi? 960 00:49:56,002 --> 00:50:00,450 961 00:50:00,450 --> 00:50:04,240 >> Dakle, postoji još jedna uvjetna Konstmirani zovemo Ako / Else. 962 00:50:04,240 --> 00:50:08,120 Tako je u osnovi, to sada znači, u redu, ako nešto htjela sam provjeriti nije bilo 963 00:50:08,120 --> 00:50:11,600 istina, onda idite na drugo i obavljati tu drugu radnju. 964 00:50:11,600 --> 00:50:15,570 Dakle, u ovom konkretnom slučaju, pitao sam Korisnik za cijeli broj. 965 00:50:15,570 --> 00:50:17,790 Je li broj veći od nule? 966 00:50:17,790 --> 00:50:18,310 Da? 967 00:50:18,310 --> 00:50:20,100 Pa, onda oni pokupili pozitivan broj. 968 00:50:20,100 --> 00:50:22,320 Ako ne, onda to mora imati bio negativan ili nula. 969 00:50:22,320 --> 00:50:27,530 Tako ste odabrali negativan niz ili nula u ovom slučaju. 970 00:50:27,530 --> 00:50:29,235 Da. 971 00:50:29,235 --> 00:50:30,485 Ili nula. 972 00:50:30,485 --> 00:50:36,320 973 00:50:36,320 --> 00:50:39,300 >> A onda imamo i ako / Else, Ako i drugi. 974 00:50:39,300 --> 00:50:45,640 Dakle, to nam omogućuje izvršiti niz od stvari samo ako prvima uspjeti. 975 00:50:45,640 --> 00:50:49,540 Dakle, u ovom slučaju, sada radimo posljednja Vas nulu. 976 00:50:49,540 --> 00:50:53,080 Dakle, ako se ni pokupila pozitivne ni negativna, tada oni moraju 977 00:50:53,080 --> 00:50:53,640 su pokupili nulu. 978 00:50:53,640 --> 00:50:56,720 Tako to ide samo prema dolje lanac ovako. 979 00:50:56,720 --> 00:50:59,960 >> Dakle primjer kako Ako je drugačije od - 980 00:50:59,960 --> 00:51:02,590 Ako / Inače se razlikuje od samo slijed IFS. 981 00:51:02,590 --> 00:51:07,680 A to je uobičajeno pitanje koje ljudi pitaju se, dobro, ako se kao 982 00:51:07,680 --> 00:51:11,265 95 u CS50, što će to Program vam reći? 983 00:51:11,265 --> 00:51:12,600 >> ZVUČNIK 5: Imaš peticu 984 00:51:12,600 --> 00:51:13,490 >> JOSEPH: Da. 985 00:51:13,490 --> 00:51:14,960 Imaš svaki jedan od onih u pravu. 986 00:51:14,960 --> 00:51:17,130 Imaš peticu, imaš B, što dobio C i D, zar ne? 987 00:51:17,130 --> 00:51:19,770 Dakle, sve to se ocjenjuje radi. 988 00:51:19,770 --> 00:51:23,570 Dakle, dok 95 je veći od 90, što je i veći od 80, što je također 989 00:51:23,570 --> 00:51:25,790 veći od 70, a to je i više od 60 godina. 990 00:51:25,790 --> 00:51:27,620 Dakle, imaš sve te ocjene. 991 00:51:27,620 --> 00:51:31,630 I pretpostavljam da bi Samo želim A. 992 00:51:31,630 --> 00:51:34,060 >> Način da se popraviti da je zamijeniti one s Else / Ako je. 993 00:51:34,060 --> 00:51:37,540 Dakle, u ovom scenariju, vidi da je 95 veći od 90, a zatim se radi 994 00:51:37,540 --> 00:51:38,885 Ne ocjenjuju ostatak od izjava. 995 00:51:38,885 --> 00:51:41,900 996 00:51:41,900 --> 00:51:43,150 Sva pitanja o tome? 997 00:51:43,150 --> 00:51:48,580 998 00:51:48,580 --> 00:51:52,470 >> Dakle, postoji još jedna uvjetna vrsta Struktura da ovdje imamo što smo 999 00:51:52,470 --> 00:51:53,390 nazvati izjavu prekidač. 1000 00:51:53,390 --> 00:51:57,390 Dakle, ovo vam zapravo provjeriti što je vrijednost niza ste stavili 1001 00:51:57,390 --> 00:51:59,000 u izjavi switch je. 1002 00:51:59,000 --> 00:52:03,200 Dakle, u ovom scenariju, mi smo prebacivanje na n, a mi tvrdimo, oh, ako je n 1003 00:52:03,200 --> 00:52:04,710 jedan, a zatim ispisati tu izjavu. 1004 00:52:04,710 --> 00:52:07,910 A onda razbiti, što znači izlaz iz izjave prekidača. 1005 00:52:07,910 --> 00:52:12,670 >> Ako to nije bio jedan, a zatim, dobro, samo na kraju provjeriti sve te slučajeve. 1006 00:52:12,670 --> 00:52:16,280 I tako se provjerava je li to jedan ili dva ili tri, i to ispisuje u skladu s tim. 1007 00:52:16,280 --> 00:52:19,780 A što ovdje to zadana ključna dolje znači da je, ako se ne ulaze bilo 1008 00:52:19,780 --> 00:52:21,690 od onih, onda kažu Invalid. 1009 00:52:21,690 --> 00:52:25,910 Pa recimo da sam pitati za n a Korisnik daje mi četiri. 1010 00:52:25,910 --> 00:52:29,470 Pa, on odgovara da nitko od tih slučajeva, tako da će ispisati ono što je u 1011 00:52:29,470 --> 00:52:30,540 Zadana poglavlje. 1012 00:52:30,540 --> 00:52:31,180 Da, pitanje? 1013 00:52:31,180 --> 00:52:32,614 >> ZVUČNIK 5: Mogu li koristiti Boolean izrazi umjesto 1014 00:52:32,614 --> 00:52:33,570 jedan, dva ili tri? 1015 00:52:33,570 --> 00:52:36,940 >> JOSEPH: Dakle, pitanje je može li koristiti Boolean izraza umjesto jednog, 1016 00:52:36,940 --> 00:52:37,940 dva, tri? 1017 00:52:37,940 --> 00:52:40,520 A u C, ja ti vjerujem Ne mogu to napraviti. 1018 00:52:40,520 --> 00:52:44,320 No, u drugim jezicima, što možda naići na kraju 1019 00:52:44,320 --> 00:52:46,460 semestar kao JavaScript, možete. 1020 00:52:46,460 --> 00:52:50,050 Pa, što će morati izračunati prvi da je vrijednost, a zatim ga koristiti u 1021 00:52:50,050 --> 00:52:50,650 prebaciti izjavu. 1022 00:52:50,650 --> 00:52:50,930 Da? 1023 00:52:50,930 --> 00:52:54,760 >> ROB: Dakle dio korist prekidača izvještaji se sjetiti ako je to učinio 1024 00:52:54,760 --> 00:52:58,680 što ako / Else, tako kao što je, ako je n = jednaka jedan ili bilo što drugo. 1025 00:52:58,680 --> 00:53:00,300 Else / Ako je n = jednako dva, što god. 1026 00:53:00,300 --> 00:53:01,960 Else / Ako je n = jednako je tri. 1027 00:53:01,960 --> 00:53:05,930 Dakle, način na programu će se izvoditi je će postupno ići dolje tom popisu 1028 00:53:05,930 --> 00:53:07,500 i provjeriti, je N jedan? 1029 00:53:07,500 --> 00:53:08,040 Nope. 1030 00:53:08,040 --> 00:53:09,070 Je n dvojica? 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 Da. 1034 00:53:11,710 --> 00:53:12,610 Učinite to. 1035 00:53:12,610 --> 00:53:15,270 >> Dok s prekidačem izjavama, to je zapravo mogli sastaviti da bude 1036 00:53:15,270 --> 00:53:16,360 jako brzo. 1037 00:53:16,360 --> 00:53:19,550 I čim se kaže switch, to kaže, u redu, nje dva, ja sam 1038 00:53:19,550 --> 00:53:23,060 odmah će skočiti na kojem Ja sam trebala početi izvršenja. 1039 00:53:23,060 --> 00:53:26,080 Neću da se prvo provjeriti, n je jedan, n je dva? 1040 00:53:26,080 --> 00:53:28,860 Može se odmah početi raditi ono što je trebao učiniti. 1041 00:53:28,860 --> 00:53:33,830 >> I zbog toga, to se ne može potrajati logičke uvjete. 1042 00:53:33,830 --> 00:53:36,480 Inače to će morati učiniti sekvencijalni, kao, u redu, je n 1043 00:53:36,480 --> 00:53:37,820 veći od nule? 1044 00:53:37,820 --> 00:53:41,140 Inače je n veći od 10 ili bilo što drugo. 1045 00:53:41,140 --> 00:53:44,780 >> JOSEPH: U tom slučaju, ako se koristi Ako / Inače, ako je, onda bi prekidač 1046 00:53:44,780 --> 00:53:47,792 trčanje oko tri puta brže nego ako / drugo, ako. 1047 00:53:47,792 --> 00:53:53,060 1048 00:53:53,060 --> 00:53:56,040 Možemo organizirati prekidač u takva Način na koji mi ne razbiti 1049 00:53:56,040 --> 00:53:57,520 Nakon svakog predmeta. 1050 00:53:57,520 --> 00:54:00,960 Dakle, u ovom slučaju, ja sam particioniranje brojevi koje smo izabrali u jedan i 1051 00:54:00,960 --> 00:54:04,250 dva su ne visoki brojevi i tri su visok broj. 1052 00:54:04,250 --> 00:54:08,290 >> Dakle, u tom slučaju, ako je n jednak jedan ili dva, to će pogoditi slučaj i onda će 1053 00:54:08,290 --> 00:54:10,640 propadnu, jer nema prekida. 1054 00:54:10,640 --> 00:54:11,610 I to će završiti ovdje. 1055 00:54:11,610 --> 00:54:15,360 Dakle, ako ćemo odabrati jedan, to će učiniti printf a onda razbiti tako da nitko od 1056 00:54:15,360 --> 00:54:17,610 ovo je pogubljen. 1057 00:54:17,610 --> 00:54:21,870 I naravno, ukoliko uđu u tri ili nešto drugo, onda će preskočiti 1058 00:54:21,870 --> 00:54:25,320 oni i ne idu tamo, i to obavljat će umjesto 1059 00:54:25,320 --> 00:54:27,490 odgovara liniju. 1060 00:54:27,490 --> 00:54:29,390 Ima li kakvih pitanja u vezi toga? 1061 00:54:29,390 --> 00:54:29,780 Da? 1062 00:54:29,780 --> 00:54:32,642 >> Zvučnik 4: Biste li se pogreška ako vam imala pauzu nakon slučaja jedne, ali to 1063 00:54:32,642 --> 00:54:34,550 nisu imali nešto za što učiniti? 1064 00:54:34,550 --> 00:54:37,820 >> JOSEPH: Dakle, pitanje je bi li se pogreška ako imate pauzu nakon 1065 00:54:37,820 --> 00:54:39,730 jednom slučaju, ali ne postoji ništa učiniti? 1066 00:54:39,730 --> 00:54:41,520 A odgovor je ne. 1067 00:54:41,520 --> 00:54:43,172 Vi zapravo neće doći na pogrešku. 1068 00:54:43,172 --> 00:54:44,590 Da, mm hmm. 1069 00:54:44,590 --> 00:54:54,540 >> Dakle, što je neka vrsta malo promjene ovdje, Ja ću staviti printf ovdje. 1070 00:54:54,540 --> 00:54:55,790 Ups. 1071 00:54:55,790 --> 00:55:00,994 1072 00:55:00,994 --> 00:55:04,880 Pa što bi to ispisati ako Stavio sam jednu u kao ulaz? 1073 00:55:04,880 --> 00:55:07,530 1074 00:55:07,530 --> 00:55:07,770 Da. 1075 00:55:07,770 --> 00:55:10,360 To će vam reći da nije trebalo Veliki broj dva puta, zar ne? 1076 00:55:10,360 --> 00:55:13,500 Zato što bi pogodio da je prvi slučaj, to ne bi razbiti, a to će pasti 1077 00:55:13,500 --> 00:55:15,730 do drugog slučaja. 1078 00:55:15,730 --> 00:55:16,950 Sva pitanja o tome? 1079 00:55:16,950 --> 00:55:18,280 >> ROB: Jeste li još jedno pitanje? 1080 00:55:18,280 --> 00:55:20,840 >> JOSEPH: OK, ohladi. 1081 00:55:20,840 --> 00:55:22,400 U redu. 1082 00:55:22,400 --> 00:55:25,780 Dakle, postoji nešto drugo što mi zovemo ternarna operater koji je u osnovi 1083 00:55:25,780 --> 00:55:29,010 Alternativni sintakse radi Ako i nakon toga još. 1084 00:55:29,010 --> 00:55:30,470 I to vam omogućuje da to sve na jednoj liniji. 1085 00:55:30,470 --> 00:55:34,110 Dakle, u ovom konkretnom programu, Ja sam za to traži za n. 1086 00:55:34,110 --> 00:55:37,190 I ako je n veći od 100, sam reći njih su pokupili velik broj. 1087 00:55:37,190 --> 00:55:39,560 Inače sam im reći da Odabrala je mali broj. 1088 00:55:39,560 --> 00:55:43,030 >> Tako možemo koristiti ovaj stvarno dugo sintakse, string, S, a zatim provjerite je li n 1089 00:55:43,030 --> 00:55:45,260 veći od 100 i dodijeliti je u skladu s tim. 1090 00:55:45,260 --> 00:55:49,450 Ali možemo napraviti više je sažeto pomoću ovog ternarnih sintaksu operatera 1091 00:55:49,450 --> 00:55:52,090 koji uključuje i pitanje Mark i debelog crijeva. 1092 00:55:52,090 --> 00:55:55,070 Dakle, upitnik je u biti molba pitanje, zar ne? 1093 00:55:55,070 --> 00:55:56,625 >> ROB: Možda uvećanje na to. 1094 00:55:56,625 --> 00:55:57,372 >> JOSEPH: Da. 1095 00:55:57,372 --> 00:56:00,210 Dobro pitanje. 1096 00:56:00,210 --> 00:56:02,550 Dakle, ovo je trodjelna operatera. 1097 00:56:02,550 --> 00:56:06,100 Prvi put sam postaviti pitanje, n je veći od 100? 1098 00:56:06,100 --> 00:56:09,770 Ako je, onda sam izvršiti prvi dio prije debelog crijeva. 1099 00:56:09,770 --> 00:56:13,360 Ako nije, onda sam izvršiti Drugi dio nakon dvotočke. 1100 00:56:13,360 --> 00:56:16,640 Tako da, ako je n veći od 100, onda preuzima visoka i stavlja 1101 00:56:16,640 --> 00:56:18,360 da se u string s. 1102 00:56:18,360 --> 00:56:22,170 Ako je n manji od 100, da pokupi niska a zatim stavlja da je u string s.. 1103 00:56:22,170 --> 00:56:30,186 Tako da će se kondenzirati ovaj veliki komad dolje u samo toj jednoj liniji. 1104 00:56:30,186 --> 00:56:32,010 >> ZVUČNIK 5: Je li popularna? 1105 00:56:32,010 --> 00:56:36,070 >> JOSEPH: Da, to je vrlo popularan za stvari u kojoj osnovi želite 1106 00:56:36,070 --> 00:56:38,700 Ne dodjela na temelju neka vrsta stanja. 1107 00:56:38,700 --> 00:56:43,110 I u ovom slučaju, bili smo pokušava dodijeliti vrijednost niza s.. 1108 00:56:43,110 --> 00:56:44,840 To nije tako - 1109 00:56:44,840 --> 00:56:47,670 Mislim da stvarno ne vole to se u drugim slučajevima. 1110 00:56:47,670 --> 00:56:49,390 No, to je osobito korisno za ovaj zadatak. 1111 00:56:49,390 --> 00:56:54,490 >> ROB: To je prilično čest uzorak gdje imate neku varijablu koja 1112 00:56:54,490 --> 00:56:58,200 što ćeš reći, ako je nešto, postavite ova varijabla na jednu vrijednost, drugo, postaviti 1113 00:56:58,200 --> 00:56:59,810 ova varijabla drugoj vrijednosti. 1114 00:56:59,810 --> 00:57:03,360 I to je scenarij gdje se koristiti trodjelna. 1115 00:57:03,360 --> 00:57:05,220 >> JOSEPH: I ti spašavaš puno linija, zar ne? 1116 00:57:05,220 --> 00:57:08,090 I to samo čini šifru nedvojbeno malo više čitati. 1117 00:57:08,090 --> 00:57:08,635 Da, pitanje? 1118 00:57:08,635 --> 00:57:12,384 >> ZVUČNIK 6: Za trodjelna, mogao idete, String s jednaki s, upitnik? 1119 00:57:12,384 --> 00:57:15,280 I onda bi mogao imati, recimo, pet različitih opcija. 1120 00:57:15,280 --> 00:57:18,310 I ovisno o tome što je broj n je, bi li odabrati jedan od onih? 1121 00:57:18,310 --> 00:57:22,210 >> JOSEPH: Dakle, pitanje je, je li vrsta sintakse, gdje možete učiniti niz 1122 00:57:22,210 --> 00:57:25,910 s jednako n, a zatim su više od dva Opcije nakon toga upitnikom? 1123 00:57:25,910 --> 00:57:29,740 I Jednostavan odgovor je ne, ne postoji stvarno dobar način za to, osim ako 1124 00:57:29,740 --> 00:57:33,850 Želite li gnijezdo multiple ternarnih operatori unutar svake druge. 1125 00:57:33,850 --> 00:57:38,050 >> Moglo bi se učiniti kao da je n veći od 100, upitnik, a zatim još jedan 1126 00:57:38,050 --> 00:57:41,850 ternarna operator, n veći od 50, upitnik, i nest ga na taj način. 1127 00:57:41,850 --> 00:57:45,240 No, u tom scenariju, vaš broj je uzimajući vrsta nečitak i neuredan, 1128 00:57:45,240 --> 00:57:47,920 i to bi moglo biti bolje samo otići u Ako / else iskaz u tom trenutku. 1129 00:57:47,920 --> 00:57:54,530 >> ROB: I također, kao strani bilješku, PHP pogrešno primjenjuje ternarna 1130 00:57:54,530 --> 00:57:58,053 operator takav da ugniježđeni ternaries uopće ne rade onako kako bi trebali. 1131 00:57:58,053 --> 00:57:58,840 >> JOSEPH: Da. 1132 00:57:58,840 --> 00:58:01,170 Tako se dobiva malo zbunjujuće, pogotovo kad idete 1133 00:58:01,170 --> 00:58:02,145 na različitim jezicima. 1134 00:58:02,145 --> 00:58:04,810 >> ROB: To je zbunjujuće dovoljno da jezici su u krivu o tome. 1135 00:58:04,810 --> 00:58:08,030 1136 00:58:08,030 --> 00:58:11,510 >> JOSEPH: Pa zapravo, samo da pojasnimo, ne svi znate što to 1137 00:58:11,510 --> 00:58:13,900 % S radi ovdje? 1138 00:58:13,900 --> 00:58:15,650 Sva pitanja o tome? 1139 00:58:15,650 --> 00:58:19,760 Valjda za kameru,% s osnovi omogućuje nam staviti rezervirano 1140 00:58:19,760 --> 00:58:20,790 za niz. 1141 00:58:20,790 --> 00:58:23,920 I onda na kraju, možemo navesti da promjenjiva želimo staviti u ovo 1142 00:58:23,920 --> 00:58:25,500 Nositelj mjesto je s. 1143 00:58:25,500 --> 00:58:27,730 Tako da je u osnovi vodi s. i to ga stavlja ovdje. 1144 00:58:27,730 --> 00:58:32,130 I onda će se ispisati, izabrao si visoka ili vi odabrali mali broj. 1145 00:58:32,130 --> 00:58:33,770 OK. 1146 00:58:33,770 --> 00:58:36,970 >> Dakle petlje omogućiti da obavlja stvari kružnim pokretima, zar ne? 1147 00:58:36,970 --> 00:58:40,300 Možda ste naišli na ovo Nule u obliku petlje zauvijek 1148 00:58:40,300 --> 00:58:45,650 ili ponovite sve dok ili Ponovi posebice broj puta. 1149 00:58:45,650 --> 00:58:47,540 Pa zašto je to dobro za nas? 1150 00:58:47,540 --> 00:58:51,500 Pa, u C, recimo imamo ovo Pjesma provodi u nule da 1151 00:58:51,500 --> 00:58:53,450 pjeva, to je pjesma koji nikada ne prestaje. 1152 00:58:53,450 --> 00:58:55,710 To samo ide na i na i zauvijek i zauvijek. 1153 00:58:55,710 --> 00:58:59,395 Pa, stvarno ne mogu napraviti program koji ima beskonačan broj printf 1154 00:58:59,395 --> 00:59:00,850 izjave u tome, zar ne? 1155 00:59:00,850 --> 00:59:04,900 >> Dakle, u ovom konkretnom slučaju, jedan od načina da bi mogao napraviti ovo djelo i 1156 00:59:04,900 --> 00:59:09,330 da bi ga ispisati zauvijek je Umjesto toga koristite while petlja. 1157 00:59:09,330 --> 00:59:13,640 Dakle, dok petlja će izvršavati ono što je na tijelu dviju proteza koje 1158 00:59:13,640 --> 00:59:17,250 pripada njemu na temelju onoga što stanje. 1159 00:59:17,250 --> 00:59:21,170 Dakle, u ovom konkretnom primjeru prije, ako želimo ispisati zauvijek, što 1160 00:59:21,170 --> 00:59:23,590 Možda nam je činiti? 1161 00:59:23,590 --> 00:59:25,190 Pa, je li, zar ne? 1162 00:59:25,190 --> 00:59:32,290 >> Dakle, ova vrsta kombinira ideju nekog Boolean izraza 1163 00:59:32,290 --> 00:59:33,610 zajedno s petljom. 1164 00:59:33,610 --> 00:59:35,780 I mi smo naučili o Boolean izrazi ranije. 1165 00:59:35,780 --> 00:59:39,650 Dakle, kad god je stanje unutar da, dok ostaje istina, ova petlja 1166 00:59:39,650 --> 00:59:41,480 će se izvršiti na i na i na. 1167 00:59:41,480 --> 00:59:44,640 I u ovom slučaju, ako mi samo ga dostaviti s istina, to uzrokuje beskonačno 1168 00:59:44,640 --> 00:59:49,310 petlja koja ispisuje pjesmu na i na i kao što smo prije želji bez 1169 00:59:49,310 --> 00:59:52,410 ima program koji ima beskonačan broj printf izjava, koja je 1170 00:59:52,410 --> 00:59:55,220 nije moguće. 1171 00:59:55,220 --> 00:59:57,810 >> Dakle, više uvjerljivo, iako je, možete koristiti s 1172 00:59:57,810 --> 00:59:59,710 promjenjiva i stanje. 1173 00:59:59,710 --> 01:00:04,420 Pa recimo da želimo ponoviti fraza, potpuno pun krivina, 10 puta. 1174 01:00:04,420 --> 01:00:08,380 Dakle, što možete učiniti s while petlja je prvo se inicijalizirati brojač 1175 01:00:08,380 --> 01:00:10,860 varijabla izvan Dok petlje do 10.. 1176 01:00:10,860 --> 01:00:14,360 A onda je u osnovi, svaki put kad idete kroz while petlje, što ispisati 1177 01:00:14,360 --> 01:00:19,090 izjavu, a onda smanjite brojač varijabla sve dok na kraju, 1178 01:00:19,090 --> 01:00:23,020 u nekom trenutku, nakon što oduzmemo sam dovoljno puta, jednom s sam dovoljno vremena - 1179 01:00:23,020 --> 01:00:27,290 i samo da pojasnimo, I minus minus znači da je jednaka I minus 1. 1180 01:00:27,290 --> 01:00:31,280 >> To će zapravo donijeti sam do točka u kojoj jednom sam pogodio nulu, to 1181 01:00:31,280 --> 01:00:35,260 stanje više nije istina i tako da izlazi iz petlje. 1182 01:00:35,260 --> 01:00:37,045 Dakle, potpuno loopy samo ispisuje 10 puta. 1183 01:00:37,045 --> 01:00:39,550 1184 01:00:39,550 --> 01:00:41,080 Sva pitanja oko while petlja? 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 >> Dakle, ne postoji način na koji možemo učiniti ono što smo upravo učinio u više jezgrovit način s 1188 01:00:50,550 --> 01:00:51,715 ono što mi zovemo Za petlju. 1189 01:00:51,715 --> 01:00:55,750 Dakle, za petlje se sastoji od inicijalizacije, stanje i 1190 01:00:55,750 --> 01:00:58,950 ažuriranje, baš kao što smo imali prije u ovoj while petlja. 1191 01:00:58,950 --> 01:00:59,890 Tako ćemo pogledati. 1192 01:00:59,890 --> 01:01:02,900 U ovoj while petlja, imali smo inicijalizacije, onda smo imali 1193 01:01:02,900 --> 01:01:04,260 uvjetom da smo provjeriti. 1194 01:01:04,260 --> 01:01:06,450 I onda smo imali ažuriranje korak na vrhu. 1195 01:01:06,450 --> 01:01:10,060 >> Uz for petlje, to zapravo traje ove tri stvari i to kondenzira 1196 01:01:10,060 --> 01:01:11,370 dolje u jednoj liniji. 1197 01:01:11,370 --> 01:01:15,130 Dakle, prva stvar koja se radi u Za petlje je pokrenuo. 1198 01:01:15,130 --> 01:01:19,090 I onda napraviti-zarez, a zatim ti stanje, koje je sam 1199 01:01:19,090 --> 01:01:22,200 veći od nule ide tamo, a zatim ažurirati korak. 1200 01:01:22,200 --> 01:01:26,470 Dakle, ovo dobiva nastupili na Vrlo kraju petlje tijela. 1201 01:01:26,470 --> 01:01:28,790 Dakle, ova dva programa su u biti ekvivalent. 1202 01:01:28,790 --> 01:01:31,960 1203 01:01:31,960 --> 01:01:33,870 >> Ima li pitanja? 1204 01:01:33,870 --> 01:01:37,000 Dakle, što je jedna razlika između ta dva? 1205 01:01:37,000 --> 01:01:38,000 Može li itko na to ukazati? 1206 01:01:38,000 --> 01:01:40,480 To bi moglo biti malo suptilniji. 1207 01:01:40,480 --> 01:01:41,930 To je samo vrlo mala razlika. 1208 01:01:41,930 --> 01:01:42,330 Da? 1209 01:01:42,330 --> 01:01:49,008 >> ZVUČNIK 5: Vi ne bi mogli koristiti promjenjiva sam izvan for petlje 1210 01:01:49,008 --> 01:01:49,962 [Nečujan]? 1211 01:01:49,962 --> 01:01:50,900 >> JOSEPH: Točno. 1212 01:01:50,900 --> 01:01:53,550 Dakle, to je nešto što ćemo doći do kasnije nazvao varijabla opseg. 1213 01:01:53,550 --> 01:01:56,610 Ali u biti, to int i živote izvan ovog while petlja. 1214 01:01:56,610 --> 01:01:59,800 Dakle, kada se to Dok petlje je učinio izvršenja, ja ću biti u mogućnosti da sam koristiti kasnije 1215 01:01:59,800 --> 01:02:00,880 na u programu. 1216 01:02:00,880 --> 01:02:05,430 >> Dok s ovim za petlje, ovo int sam je scoped unutar toga za petlju. 1217 01:02:05,430 --> 01:02:10,240 I zato što je unutar tog dijela od for petlje, koja počinje 1218 01:02:10,240 --> 01:02:13,200 u zagradama, a završava s kovrčava braće tamo. 1219 01:02:13,200 --> 01:02:16,120 Sve što je proglašen unutar Ovdje se ne može koristiti izvan. 1220 01:02:16,120 --> 01:02:20,420 Dakle, ako sam pokušati Koristim izvana, to ću reci mi, neprijavljeni simbol. 1221 01:02:20,420 --> 01:02:22,420 A u biti, ne bih biti u mogućnosti koristiti ga. 1222 01:02:22,420 --> 01:02:28,460 >> ROB: A dobro, prije 10 godina, u Doslovno svi slučajevi, vitičastim zagradama su 1223 01:02:28,460 --> 01:02:31,140 ono što se koristi kako bi se utvrdilo opseg varijable. 1224 01:02:31,140 --> 01:02:37,240 Dakle tamo, int sam jednako 10 je proglašen unutar toga 1225 01:02:37,240 --> 01:02:38,520 set vitičastim zagradama. 1226 01:02:38,520 --> 01:02:42,530 I tako onda koliko god pokušati iskoristiti I Prije ove kovrčave vitice, to je u redu. 1227 01:02:42,530 --> 01:02:47,090 1228 01:02:47,090 --> 01:02:51,460 Možda ćete vidjeti kada upišete napraviti, te vidi crtica, crtica, std, jednako c99. 1229 01:02:51,460 --> 01:02:57,100 >> Tako da je kasnije verzija C koji GCC je implementiran koji također daje 1230 01:02:57,100 --> 01:02:58,740 ovaj prečac. 1231 01:02:58,740 --> 01:03:03,505 Dakle, ovo se koristi da neće biti dopušteno u C. A možete vidjeti zašto, jer to int 1232 01:03:03,505 --> 01:03:07,600 I je izvan ove kovrčave vitice, ali to je još uvijek smatra da se u 1233 01:03:07,600 --> 01:03:09,750 Opseg tih vitičastim zagradama. 1234 01:03:09,750 --> 01:03:14,120 No, to je vrlo povoljno stvar, pa to je dobra proširenje. 1235 01:03:14,120 --> 01:03:15,370 >> JOSEPH: Ima li pitanja? 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 Dakle, što je više koristan je da ponekad Želite vrsta dinamizma u 1239 01:03:22,820 --> 01:03:23,410 Vaš petlje, zar ne? 1240 01:03:23,410 --> 01:03:26,350 Vi ne želite da se samo nužno ispis potpuno loopy cijelo vrijeme, što 1241 01:03:26,350 --> 01:03:28,650 želite odbrojavati od 10 ili tako nešto. 1242 01:03:28,650 --> 01:03:32,010 I tako možete koristiti varijablu suprotnom unutar te petlje i. 1243 01:03:32,010 --> 01:03:35,530 I u ovom slučaju, ovaj program jednostavno odbrojava od 10. do kraja. 1244 01:03:35,530 --> 01:03:39,260 A što to nisu ispisali? 1245 01:03:39,260 --> 01:03:42,790 To ne ispisuje nulu, pravo, jer kad - 1246 01:03:42,790 --> 01:03:45,460 Da, to također ne ispisuje 11. 1247 01:03:45,460 --> 01:03:49,200 >> Tako da ne ispisuje nulu, jer kada I je nula, zapamtite, ocjenjuje 1248 01:03:49,200 --> 01:03:52,170 stanje prije nego se ide na izvršavanje petlje tijelo. 1249 01:03:52,170 --> 01:03:56,820 A kad sam je nula, to je lažna, pa ne ispisuje iz odbrojavanje 1250 01:03:56,820 --> 01:04:00,200 nula, to samo isprinta brojanje pao za 10 pa sve do jednog. 1251 01:04:00,200 --> 01:04:03,420 Ako mi zapravo htjeli to ispisati nulu, onda bi stavio znak jednakosti 1252 01:04:03,420 --> 01:04:04,750 nakon toga već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 >> Tako je jedan način da to učinite za unos valjanosti, koji je kada pitati korisnik za napraviti 1256 01:04:16,410 --> 01:04:18,620 nešto, što želite da biste bili sigurni da slijediti vaše upute, koristiti 1257 01:04:18,620 --> 01:04:19,400 Dok petlje, zar ne? 1258 01:04:19,400 --> 01:04:22,990 Dakle, u ovom konkretnom slučaju, ja tražim za pozitivan broj, a onda sam 1259 01:04:22,990 --> 01:04:23,810 čekajući ulaz. 1260 01:04:23,810 --> 01:04:28,210 >> A onda sam provjerio Dok ulaz manje od nule, držati ih pita. 1261 01:04:28,210 --> 01:04:32,100 Dakle, dokle god su mi dati broj to nije pozitivno, stalno postavljaju, 1262 01:04:32,100 --> 01:04:33,600 držati molba, stalno postavljaju. 1263 01:04:33,600 --> 01:04:35,860 No, ono što je vrsta čudno o tome? 1264 01:04:35,860 --> 01:04:38,570 Ili ono što ne čini optimalna o ova struktura ovdje? 1265 01:04:38,570 --> 01:04:44,282 1266 01:04:44,282 --> 01:04:44,758 Svatko? 1267 01:04:44,758 --> 01:04:45,234 Da? 1268 01:04:45,234 --> 01:04:47,614 >> ZVUČNIK 6: Vi ste ponavlja upute za dva puta. 1269 01:04:47,614 --> 01:04:48,100 >> JOSEPH: Točno. 1270 01:04:48,100 --> 01:04:50,090 Dakle, imamo dva printf izjave ovdje, zar ne? 1271 01:04:50,090 --> 01:04:53,440 Dakle, ne postoji način na koji smo mogli dobiti to samo sve do jednog koji bi naše 1272 01:04:53,440 --> 01:04:57,170 Kod lakše čitati i malo više čisto. 1273 01:04:57,170 --> 01:05:00,180 I onda mi ne bi trebala su dobili u dva puta, kao dobro. 1274 01:05:00,180 --> 01:05:03,740 A jedan od načina na koje možete učiniti je pomoću do-while petlje. 1275 01:05:03,740 --> 01:05:07,670 >> I Do-while petlje je u osnovi drugi oblik while petlja gdje 1276 01:05:07,670 --> 01:05:11,460 sve što se nalazi unutar vitičastih zagrada dobiva izvršiti barem jednom. 1277 01:05:11,460 --> 01:05:14,840 Dakle, ovdje izjavljujem, int ulaz, izvan prve. 1278 01:05:14,840 --> 01:05:18,100 I onda sam samo reći, učiniti upute dok je ulaz 1279 01:05:18,100 --> 01:05:19,140 manje od nule. 1280 01:05:19,140 --> 01:05:20,530 Tako ga pogodi učiniti prvi. 1281 01:05:20,530 --> 01:05:24,190 To će uvijek izvršiti to najmanje jednom, tako da će se uvijek pitati korisnik 1282 01:05:24,190 --> 01:05:25,960 za ulaz barem jednom. 1283 01:05:25,960 --> 01:05:29,390 I onda se procjenjuje da je ulaz, i to se događa u krug. 1284 01:05:29,390 --> 01:05:30,135 Da, pitanje? 1285 01:05:30,135 --> 01:05:32,602 >> ZVUČNIK 6: Da li postoji način da to učinite [Nečujan] vrste, kao i ako ti kažeš, 1286 01:05:32,602 --> 01:05:34,268 GetString, a netko [nečujan] 1287 01:05:34,268 --> 01:05:35,220 postoji li način da se [nečujan] 1288 01:05:35,220 --> 01:05:40,060 >> JOSEPH: Dakle, pitanje je, je li način da to učinite za unos valjanosti ako korisnik 1289 01:05:40,060 --> 01:05:41,850 ne stavi u pravu tip varijable? 1290 01:05:41,850 --> 01:05:44,460 Dakle, ako ćemo tražiti int i oni daju nam niz umjesto. 1291 01:05:44,460 --> 01:05:49,110 I u funkcijama koje provode za vas, GetInt, GetString u svim 1292 01:05:49,110 --> 01:05:52,680 one funkcije, oni su zapravo već napraviti takvu vrstu osnovnog tipa ulaz 1293 01:05:52,680 --> 01:05:54,120 valjanosti ispod haube. 1294 01:05:54,120 --> 01:05:57,390 Dakle, ako ste koristeći funkcije koje smo dao ti, ti stvarno ne moraju. 1295 01:05:57,390 --> 01:06:01,380 >> No, ako želite pogledati više u tome što zapravo može učiniti, možete pogledati 1296 01:06:01,380 --> 01:06:03,360 ispod haube na datoteku I/O-- 1297 01:06:03,360 --> 01:06:07,990 Ne podnijeti, standardni I / O funkcije kao što je čitanje iz standardnog ulaza i 1298 01:06:07,990 --> 01:06:08,580 standardni izlaz. 1299 01:06:08,580 --> 01:06:10,630 A možete dobiti bolji osjećaj kako se može učiniti. 1300 01:06:10,630 --> 01:06:13,670 >> ROB: Jedno pitanje, iako je posebno uz primjer što 1301 01:06:13,670 --> 01:06:17,070 , rekao je, što očekujete String i ja ući int. 1302 01:06:17,070 --> 01:06:20,110 Kako bi vam reći razliku između namjerno žele 1303 01:06:20,110 --> 01:06:23,130 Niz 123 naspram žele int 123? 1304 01:06:23,130 --> 01:06:29,230 Tako niz, to je prilično puno ne postoji valjanosti, to je samo ono što oni 1305 01:06:29,230 --> 01:06:31,600 ušao ćete tumače kao niz. 1306 01:06:31,600 --> 01:06:35,790 >> Interesi je lakše, jer bez obzira Ulaz se uzme od korisnika, što su 1307 01:06:35,790 --> 01:06:37,470 uvijek vodeći niz. 1308 01:06:37,470 --> 01:06:40,650 I tako da string onda možete ček, su svi ovi 1309 01:06:40,650 --> 01:06:44,218 zapravo znamenkama? 1310 01:06:44,218 --> 01:06:45,170 >> JOSEPH: OK. 1311 01:06:45,170 --> 01:06:46,420 Sva pitanja o Do-while petlja? 1312 01:06:46,420 --> 01:06:49,170 >> ROB: Oh, i to je također - 1313 01:06:49,170 --> 01:06:55,130 ide natrag u opsegu, nešto zajedničko pogreška pokušava koristiti neki lokalni 1314 01:06:55,130 --> 01:06:59,540 varijabilni unutar ovog Do-while petlji unutar tog stanja. 1315 01:06:59,540 --> 01:07:02,850 A zapravo, ako ćemo baš dobio osloboditi od to i rekao, int ulaz jednaka 1316 01:07:02,850 --> 01:07:06,990 GetInt, zatim prevodilac će vikati na nama, jer je ulaz ne postoji 1317 01:07:06,990 --> 01:07:08,900 izvan opsega ove vitičastim zagradama. 1318 01:07:08,900 --> 01:07:10,792 >> JOSEPH: I to je razlog zašto smo treba ovaj lineup ovdje. 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 Tako i vi možete izaći iz loop rano, ako želite. 1322 01:07:17,530 --> 01:07:21,240 Dakle, ovo je drugačiji način provedbi onoga što smo upravo provodi. 1323 01:07:21,240 --> 01:07:24,340 I umjesto da koristi stanje unutar zagrade, koristimo 1324 01:07:24,340 --> 01:07:26,920 Ako izjavu unutar tijela o Do-while petlje. 1325 01:07:26,920 --> 01:07:30,000 >> A u osnovi, kada je ulaz napokon veći od nule, što će 1326 01:07:30,000 --> 01:07:31,000 izaći iz petlje. 1327 01:07:31,000 --> 01:07:33,420 I tako ćemo ići sve put ovdje dolje. 1328 01:07:33,420 --> 01:07:37,920 A možete vidjeti da bi to Vjerojatno se preferira u ovu 1329 01:07:37,920 --> 01:07:39,870 scenarij, jer je malo malo čišći i malo 1330 01:07:39,870 --> 01:07:41,380 malo lakše čitati. 1331 01:07:41,380 --> 01:07:45,210 Dok je ovaj, svojevrsni imaju dodatne linije u njemu. 1332 01:07:45,210 --> 01:07:47,890 To je samo malo ružnija, Mislim, u izvjesnom smislu. 1333 01:07:47,890 --> 01:07:48,530 Da, pitanje? 1334 01:07:48,530 --> 01:07:52,178 >> Zvučnik 4: Hoće razbiti samo dobiti što je iz jednog skupa aparatić? 1335 01:07:52,178 --> 01:07:53,080 >> JOSEPH: Točno. 1336 01:07:53,080 --> 01:07:58,100 Dakle, pitanje je hoće slomiti samo dobili ste iz jedne petlje? 1337 01:07:58,100 --> 01:07:59,280 A odgovor je potvrdan. 1338 01:07:59,280 --> 01:08:04,290 Dakle, ako ste se ugnijezdio Za petlje, za Na primjer, ako imam za int i jednaka je 0 1339 01:08:04,290 --> 01:08:09,040 do 10 i onda za INT J jednaka je 0 do 10., ako sam pobjeći iz unutarnjeg 1340 01:08:09,040 --> 01:08:12,310 loop, ja ću i dalje ići na vanjskoj petlji. 1341 01:08:12,310 --> 01:08:15,760 Tako da ću držati obavljanje radovi na vanjskoj strani. 1342 01:08:15,760 --> 01:08:17,640 Sva pitanja o tome? 1343 01:08:17,640 --> 01:08:18,000 Da? 1344 01:08:18,000 --> 01:08:21,760 >> ZVUČNIK 5: Ali razbiti samo funkcije za vitičastim zagradama, a ne za druge 1345 01:08:21,760 --> 01:08:22,230 izjave? 1346 01:08:22,230 --> 01:08:22,700 [Nečujan] 1347 01:08:22,700 --> 01:08:27,620 >> JOSEPH: Dakle, pitanje je hoće slomiti Funkcija samo za petlje za razliku 1348 01:08:27,620 --> 01:08:29,014 druge izjave poput ako? 1349 01:08:29,014 --> 01:08:32,950 I da, to je tako, jer gubiš iz petlje, zar ne, 1350 01:08:32,950 --> 01:08:33,630 u smislu. 1351 01:08:33,630 --> 01:08:37,215 >> ROB: U velikoj većini slučajeva, to je to je vrsta ako se nešto, 1352 01:08:37,215 --> 01:08:37,660 onda razbiti. 1353 01:08:37,660 --> 01:08:41,580 Dakle, ne morate razbiti primjenjivati ​​na Ako to se omotava oko nje. 1354 01:08:41,580 --> 01:08:45,250 I također, to nije mnogo petlji, ali sjetite se da su i prekidači 1355 01:08:45,250 --> 01:08:46,340 izbila po pauze. 1356 01:08:46,340 --> 01:08:48,390 Vidjeli smo pauze koristi s prekidačima prije. 1357 01:08:48,390 --> 01:08:52,189 >> JOSEPH: I vi možete također koristiti ih Dok se u petlji i za petlje. 1358 01:08:52,189 --> 01:08:54,560 Ima li pitanja? 1359 01:08:54,560 --> 01:08:55,830 OK. 1360 01:08:55,830 --> 01:08:57,779 Dakle, pored gore je funkcija. 1361 01:08:57,779 --> 01:09:01,500 Dakle, možda ćete imati koristi jedan od tih BYOB blokovi u vašem Scratch projekt. 1362 01:09:01,500 --> 01:09:04,569 I to u osnovi omogućuje da se definira set 1363 01:09:04,569 --> 01:09:05,680 upute kojih se treba pridržavati. 1364 01:09:05,680 --> 01:09:09,569 >> I ono što mislim da je razmislimo natrag na matematici, zar ne, algebra. 1365 01:09:09,569 --> 01:09:13,370 Imate ono što mi zovemo funkcija x, neke varijable, a recimo ova 1366 01:09:13,370 --> 01:09:16,080 funkcija f od x jednako x plus 5. 1367 01:09:16,080 --> 01:09:20,410 Tako se možete sjetiti f xi jer to black kutija koja traje 15 godina i onda 1368 01:09:20,410 --> 01:09:22,590 proizvodi 20. 1369 01:09:22,590 --> 01:09:26,630 >> Tako da općenito, funkcija nešto što traje oko ulaza i 1370 01:09:26,630 --> 01:09:27,880 onda stvara neke izlaze. 1371 01:09:27,880 --> 01:09:31,920 1372 01:09:31,920 --> 01:09:32,960 I zašto su funkcije dobri? 1373 01:09:32,960 --> 01:09:35,189 Oni su dobri za niz razloga. 1374 01:09:35,189 --> 01:09:40,470 Tako se netko želi uzeti ubod na što organizacija znači? 1375 01:09:40,470 --> 01:09:42,630 U smislu zašto funkcije su korisne? 1376 01:09:42,630 --> 01:09:43,090 Da? 1377 01:09:43,090 --> 01:09:44,735 >> Zvučnik 4: To čini vaš Kod više čitati. 1378 01:09:44,735 --> 01:09:45,399 >> JOSEPH: Točno. 1379 01:09:45,399 --> 01:09:47,670 Dakle, jedna od stvari koje se čini kod koji se može čitati, zar ne? 1380 01:09:47,670 --> 01:09:53,710 Umjesto da kao int x jednaka x. puta x puta x, ja mogu imati kocku x, 1381 01:09:53,710 --> 01:09:57,190 što je više čitati i više razumljivo da se na čitač. 1382 01:09:57,190 --> 01:10:01,150 >> Organizacija je također u smislu Podijelit svoj kod u rukovanje 1383 01:10:01,150 --> 01:10:05,610 dijelova, tako da umjesto da pokušavate implementirati to sve u jednom dugom dijelu 1384 01:10:05,610 --> 01:10:09,070 u glavnom, što nekako može ga podijeliti u kao, u redu, idemo napisati funkciju 1385 01:10:09,070 --> 01:10:11,910 na kocke nešto, neka je pisati funkcionirati na trgu nešto. 1386 01:10:11,910 --> 01:10:15,950 Na taj način možete ga podijeliti u maleni, mali dijelovi koje može uhvatiti u koštac 1387 01:10:15,950 --> 01:10:18,944 za razliku od pokušaja da se pozabave Veliki problem sve odjednom. 1388 01:10:18,944 --> 01:10:21,806 >> ROB: Ili oni sitni, mali dijelovi koji vi i partner možete uhvatiti u koštac. 1389 01:10:21,806 --> 01:10:22,283 >> JOSEPH: Da. 1390 01:10:22,283 --> 01:10:23,855 >> ROB: Dakle, umjesto da obojica pokušavate usaditi jedan 1391 01:10:23,855 --> 01:10:27,170 djelovati u isto vrijeme. 1392 01:10:27,170 --> 01:10:28,800 >> JOSEPH: pojednostavljenje. 1393 01:10:28,800 --> 01:10:30,050 Svatko želi uzeti pogodak? 1394 01:10:30,050 --> 01:10:33,080 1395 01:10:33,080 --> 01:10:33,410 Da? 1396 01:10:33,410 --> 01:10:34,675 >> ZVUČNIK 5: Više ponavljanje. 1397 01:10:34,675 --> 01:10:35,260 >> JOSEPH: Točno. 1398 01:10:35,260 --> 01:10:39,210 Dakle, jedna stvar koju možete učiniti s pojednostavljenje je da je to na neki način na 1399 01:10:39,210 --> 01:10:42,520 na isti način kao ponovnu upotrebljivost je da Jednom sam napisati funkciju kocka, ja mogu 1400 01:10:42,520 --> 01:10:45,410 samo koristiti da se iznova i iznova i iznova Ponovno u mom programu umjesto tipkanja 1401 01:10:45,410 --> 01:10:49,610 x puta x puta x više i iznova i iznova. 1402 01:10:49,610 --> 01:10:52,980 I pojednostavljenje i ovdje samo znači da ima svoj kod vrsta 1403 01:10:52,980 --> 01:10:55,900 lakše ispravljanje nakon što podijeliti ovo gore na funkcijama. 1404 01:10:55,900 --> 01:10:58,250 Jer tada možete lokalizirati koju gdje Vaši problemi kakve su. 1405 01:10:58,250 --> 01:11:00,910 1406 01:11:00,910 --> 01:11:02,160 Ima li pitanja? 1407 01:11:02,160 --> 01:11:04,200 1408 01:11:04,200 --> 01:11:06,540 >> Dakle, još jedna ideja je apstrakcija, zar ne? 1409 01:11:06,540 --> 01:11:07,390 Ova crna kutija. 1410 01:11:07,390 --> 01:11:11,360 Kao i znate li što GetInt radi da prima ulazni signal od korisnika? 1411 01:11:11,360 --> 01:11:12,510 Mi smo zapravo i nije ti rekao, zar ne? 1412 01:11:12,510 --> 01:11:15,670 Sve što sam ti rekao je GetInt radi točno ono što kaže da radi. 1413 01:11:15,670 --> 01:11:18,440 Dakle, čak i ako mi ne možete reći kako to radi, još uvijek zna. 1414 01:11:18,440 --> 01:11:21,670 >> Dakle, u ovom konkretnom slučaju, to je četverostruko funkcija koja radi 1415 01:11:21,670 --> 01:11:24,520 različite stvari na ulazni da se dobije izlazni. 1416 01:11:24,520 --> 01:11:28,050 A možete učetverostručiti broj tako da se pomnoži sa četiri. 1417 01:11:28,050 --> 01:11:30,790 Ili možete ono što mi zovemo malo ga pomaknuti za dva. 1418 01:11:30,790 --> 01:11:32,960 I mi ćemo pokriti to Malo kasnije. 1419 01:11:32,960 --> 01:11:36,570 I nema potrebe da znaju kako je to funkcija zapravo radi dok njega 1420 01:11:36,570 --> 01:11:37,640 radi kao što je navedeno. 1421 01:11:37,640 --> 01:11:40,740 >> Dakle, ispod haube, mogao sam biti kao, vratiti ulazne puta 1422 01:11:40,740 --> 01:11:41,690 osam podijeljeno s dva. 1423 01:11:41,690 --> 01:11:42,510 A vi ne bi znali, zar ne? 1424 01:11:42,510 --> 01:11:44,970 Sve što trebate znati je čini ono što kaže. 1425 01:11:44,970 --> 01:11:48,070 Dakle, to je korisna stvar o apstrakcije. 1426 01:11:48,070 --> 01:11:52,910 >> I još jedna stvar je vrsta ova ideja lokalizaciju svoj kod jednog 1427 01:11:52,910 --> 01:11:54,280 Posebno poglavlje. 1428 01:11:54,280 --> 01:11:57,450 Dakle, ako imate problem, ne znaš morati ići u cijelom kodu pokušava 1429 01:11:57,450 --> 01:11:58,730 popraviti, gdje je problem. 1430 01:11:58,730 --> 01:12:00,990 Dakle, u ovom slučaju, ja provodi kocke u krivu. 1431 01:12:00,990 --> 01:12:02,820 Mislio sam da je kocka množenjem s tri. 1432 01:12:02,820 --> 01:12:05,760 >> Dakle, u ovom slučaju, to je jedan program da je upravo pomnoži sa tri 1433 01:12:05,760 --> 01:12:06,750 posvuda. 1434 01:12:06,750 --> 01:12:10,910 A tu je još jedan program koji ima factoring kocka van u funkciji. 1435 01:12:10,910 --> 01:12:14,040 I sad ako želim popraviti moje pogreške ovdje, moram popraviti svaku liniju 1436 01:12:14,040 --> 01:12:15,620 koda u ovom programu. 1437 01:12:15,620 --> 01:12:19,190 Dok s druge strane, ako koristite funkcija, samo moram promijeniti 1438 01:12:19,190 --> 01:12:20,650 što je krivo na jednom mjestu. 1439 01:12:20,650 --> 01:12:25,330 1440 01:12:25,330 --> 01:12:28,730 >> Tako je u računalnoj znanosti, mi nazvati ulaza i izlaza. 1441 01:12:28,730 --> 01:12:31,640 Ulazi se nazivaju parametri ili argumente, a izlazi su pozvani 1442 01:12:31,640 --> 01:12:32,950 povratak vrijednosti. 1443 01:12:32,950 --> 01:12:39,000 A vidjet ćemo kako nam to pomaže vrsta od definirati funkciju u sekundi. 1444 01:12:39,000 --> 01:12:41,430 Dakle, ovo je definicija funkcija za rotacije. 1445 01:12:41,430 --> 01:12:45,110 Tako to traje ulaz, a zatim vraća taj broj puta 1446 01:12:45,110 --> 01:12:47,020 Sama tri puta. 1447 01:12:47,020 --> 01:12:48,020 Tako ćemo razbiti ovaj dolje. 1448 01:12:48,020 --> 01:12:53,090 >> Tako imamo funkciju zaglavlje, koje u osnovi se sastoji od tri stvari. 1449 01:12:53,090 --> 01:12:56,050 Dakle, imamo parametre, koji su, kao što sam rekao prije, 1450 01:12:56,050 --> 01:12:57,680 ulazi u ovu funkciju. 1451 01:12:57,680 --> 01:12:59,300 I onda mi daju funkciji ime. 1452 01:12:59,300 --> 01:13:00,740 U ovom slučaju, to se zove kocka. 1453 01:13:00,740 --> 01:13:03,860 A onda ćemo odrediti što je tip od povratka vrijednost. 1454 01:13:03,860 --> 01:13:06,760 >> Dakle, u ovom slučaju, moja je funkcija kocka se na cijeli broj i to također 1455 01:13:06,760 --> 01:13:07,890 vraća cijeli broj. 1456 01:13:07,890 --> 01:13:11,510 Dakle, ako sam prošla u dva, dva je cijeli broj, vraća osam do mene, koji 1457 01:13:11,510 --> 01:13:13,250 je cijeli broj. 1458 01:13:13,250 --> 01:13:15,420 Dakle, povratak imena tipa parametara. 1459 01:13:15,420 --> 01:13:16,670 Pitanja o tome? 1460 01:13:16,670 --> 01:13:19,440 1461 01:13:19,440 --> 01:13:24,230 >> I onda povratna vrijednost je zapravo naveden na kraju rekavši povratak 1462 01:13:24,230 --> 01:13:27,540 , a zatim se vraćaju god sadrži povratnu vrijednost. 1463 01:13:27,540 --> 01:13:30,940 Dakle, u ovom slučaju, ako bismo to sve stavili zajedno, funkciju preuzima u 1464 01:13:30,940 --> 01:13:35,100 parametri, to se zove nešto, a vraća nešto što je tip 1465 01:13:35,100 --> 01:13:36,350 da mi kažu da će to biti. 1466 01:13:36,350 --> 01:13:39,830 1467 01:13:39,830 --> 01:13:41,080 Ima li pitanja? 1468 01:13:41,080 --> 01:13:43,710 1469 01:13:43,710 --> 01:13:45,080 >> Pa kako ćemo koristiti funkciju? 1470 01:13:45,080 --> 01:13:49,230 Pa, možemo napisati funkciju, a zatim možemo ga koristiti u našem programu, zar ne? 1471 01:13:49,230 --> 01:13:51,565 Pa sam nazvao ga kocka, a onda ja mogu koristiti kocku. 1472 01:13:51,565 --> 01:13:54,200 >> No, ono što je važno imati na umu je to bitno reda. 1473 01:13:54,200 --> 01:13:58,100 Ako imam kocku ispod glavni, to je će se izvoditi u kocke. 1474 01:13:58,100 --> 01:14:00,360 I u ovom trenutku, nema ništa zove kocka u programu, a to je 1475 01:14:00,360 --> 01:14:02,550 Samo želim biti poput, moram nema pojma što je kocka. 1476 01:14:02,550 --> 01:14:05,060 >> Dakle, to će vam reći, implicitno Izjava o funkciji. 1477 01:14:05,060 --> 01:14:06,690 To je pogreška koja se pojavljuje. 1478 01:14:06,690 --> 01:14:10,230 I tako, u ovom slučaju, kocka je u nastavku Glavni, pa ne ide 1479 01:14:10,230 --> 01:14:12,006 znati o tome. 1480 01:14:12,006 --> 01:14:14,724 >> ZVUČNIK 5: Dakle glavno je obično posljednja funkcija definirana? 1481 01:14:14,724 --> 01:14:17,290 >> JOSEPH: Dakle, pitanje je, Glavni je obično posljednja 1482 01:14:17,290 --> 01:14:18,170 stvar koju bih definirati? 1483 01:14:18,170 --> 01:14:19,730 I nema. 1484 01:14:19,730 --> 01:14:22,280 To je zato što mi obično vole glavna biti na vrhu, zar ne? 1485 01:14:22,280 --> 01:14:24,640 Budući da je prva stvar koju Želite otvaranja programer 1486 01:14:24,640 --> 01:14:25,640 Program za vidjeti. 1487 01:14:25,640 --> 01:14:29,950 I tako, kako ćemo riješiti ovaj problem i mi Želite glavna biti na vrhu, ali 1488 01:14:29,950 --> 01:14:33,750 Funkcije koje želimo, mi ih želimo da se u nastavku još glavni moći koristiti 1489 01:14:33,750 --> 01:14:34,930 ih unutar glavna? 1490 01:14:34,930 --> 01:14:36,870 >> Pa, mi koristimo ono što mi zovemo Funkcija prototip. 1491 01:14:36,870 --> 01:14:40,830 Dakle, ono što je funkcija prototip suštini je je to prvi uzima ono što 1492 01:14:40,830 --> 01:14:45,060 potpis ili funkcija header od onoga što želimo provesti niz 1493 01:14:45,060 --> 01:14:47,420 ovdje, i stavio mi u vrhu programa. 1494 01:14:47,420 --> 01:14:51,400 >> Dakle, u ovom slučaju, možemo reći da, dobro, kasnije u našem programu, idemo 1495 01:14:51,400 --> 01:14:55,010 da bi obećanje za provedbu ovog funkcija zove int kocka koja traje 1496 01:14:55,010 --> 01:14:56,260 cijeli ulaz. 1497 01:14:56,260 --> 01:15:00,870 Tako sada, jer to je iznad glavna, Glavni, to će reći, oh, dobro, 1498 01:15:00,870 --> 01:15:03,910 kasnije u programu, koji će biti tamo, tako da mogu odnositi na njega, pa ću 1499 01:15:03,910 --> 01:15:05,230 samo neka to ide kroz za sada. 1500 01:15:05,230 --> 01:15:07,660 >> A onda je na dnu, implementiramo kocku. 1501 01:15:07,660 --> 01:15:11,180 A onda je glavna bit samo reći, dobro, to će sortirati linka 1502 01:15:11,180 --> 01:15:12,250 ta dva simbola zajedno. 1503 01:15:12,250 --> 01:15:14,320 I mi ćemo pokriti ono koje znači kasnije. 1504 01:15:14,320 --> 01:15:17,090 I tako ćete znati da je ovo Kocka je funkcija da bi trebalo koristiti. 1505 01:15:17,090 --> 01:15:19,630 1506 01:15:19,630 --> 01:15:23,383 >> ROB: [nečujno] o nedostatku Glavni na dnu ili 1507 01:15:23,383 --> 01:15:24,880 top, vidio sam kako. 1508 01:15:24,880 --> 01:15:28,630 Postoje stvari koje baš kao i Glavni staviti na dno. 1509 01:15:28,630 --> 01:15:32,520 No, nakon što je projekt dobiva posebno velika, obično glavna je u 1510 01:15:32,520 --> 01:15:34,290 uložiti sve svoje vlastite. 1511 01:15:34,290 --> 01:15:38,170 I u tom trenutku, kao što su int kocka linija bi - 1512 01:15:38,170 --> 01:15:42,460 unutar stdio.h su hrpa linija samo tako int 1513 01:15:42,460 --> 01:15:44,010 Kocka int ulaz linije. 1514 01:15:44,010 --> 01:15:50,170 >> I tako ti prototipovi su stvari koje imaju tendenciju da se stavi u zaglavlje datoteke, na 1515 01:15:50,170 --> 01:15:52,140 kojem trenutku, to ne smeta. 1516 01:15:52,140 --> 01:15:54,700 Pa, to ne smeta. 1517 01:15:54,700 --> 01:15:56,070 Oni idu uvijek na vrhu. 1518 01:15:56,070 --> 01:15:59,490 A ako glavni ne sliku sve svoje vlastite, ne morate brinuti o stavljanju 1519 01:15:59,490 --> 01:16:02,360 pojedinačne funkcije prototipovi u spisu. 1520 01:16:02,360 --> 01:16:05,370 >> JOSEPH: A mi ćemo govoriti malo Malo kasnije, kada je Rob počne govoriti 1521 01:16:05,370 --> 01:16:06,380 o sastavljanju. 1522 01:16:06,380 --> 01:16:09,480 I tako tu je i razlika između parametra i argumenta. 1523 01:16:09,480 --> 01:16:12,500 I parametar je upravo ono što Mi ih zovemo ulaza kada 1524 01:16:12,500 --> 01:16:13,820 definiramo funkciju. 1525 01:16:13,820 --> 01:16:16,950 I mi to zovemo argument kada smo zapravo ga proći u funkciji. 1526 01:16:16,950 --> 01:16:19,600 >> Dakle, u ovom slučaju, to je parametar, Kao što smo rekli prije. 1527 01:16:19,600 --> 01:16:24,130 A kada smo ga zapravo koristiti tamo, kocka x, onda x sama je 1528 01:16:24,130 --> 01:16:25,910 ono što mi zovemo argument na funkcije kocke. 1529 01:16:25,910 --> 01:16:28,150 >> ROB: Dakle argumenti parametra su - 1530 01:16:28,150 --> 01:16:33,270 tu je ta razlika, vrlo zbunjen naizmjenično. 1531 01:16:33,270 --> 01:16:37,090 U ovom trenutku, za mene, to je kao jedan od one riječi koje kad ga vidim u 1532 01:16:37,090 --> 01:16:41,190 divlja, ja ne mogu pomoći, ali odmah pitanje je da li su ga koristite u 1533 01:16:41,190 --> 01:16:44,120 točna kontekstu, zato Razlika je dovoljno suptilna da samo 1534 01:16:44,120 --> 01:16:45,500 svatko teži - 1535 01:16:45,500 --> 01:16:48,530 I gotovo uvijek kažu argument bez obzira na to što mislim. 1536 01:16:48,530 --> 01:16:51,230 1537 01:16:51,230 --> 01:16:54,630 >> Josipa i funkcije su također koristan za ono što zovemo nuspojave. 1538 01:16:54,630 --> 01:16:59,230 Dakle funkcija može potrajati ne ulazi, a ona također može proizvesti nema izlaza. 1539 01:16:59,230 --> 01:17:03,280 Dakle, u ovom konkretnom slučaju, ja sam definiranja potprogram koji nema 1540 01:17:03,280 --> 01:17:03,970 vratiti vrijednost. 1541 01:17:03,970 --> 01:17:07,730 A kako bi se odredili da, koristimo ono što mi zovemo prazninu ovamo. 1542 01:17:07,730 --> 01:17:10,890 Pa nuspojava ovog funkcije je da je to samo ispisuje stvari 1543 01:17:10,890 --> 01:17:11,920 van na stranici. 1544 01:17:11,920 --> 01:17:13,840 To zapravo ne poduzeti bilo ulaza, i to ne 1545 01:17:13,840 --> 01:17:15,360 zapravo proizvesti bilo izlaza. 1546 01:17:15,360 --> 01:17:18,230 >> Međutim, to može biti korisna u smislu Ako želite, na primjer, debug 1547 01:17:18,230 --> 01:17:21,530 nešto u svom programu, ako želite pisati malo potprogram koji 1548 01:17:21,530 --> 01:17:25,160 ispisuje, recimo, sadržaj memorije ili nešto. 1549 01:17:25,160 --> 01:17:29,800 I tako ove nuspojave su ponekad korisni izvan konteksta 1550 01:17:29,800 --> 01:17:33,010 samo mi se ulaza i izlaza. 1551 01:17:33,010 --> 01:17:34,260 Ima li pitanja? 1552 01:17:34,260 --> 01:17:37,270 1553 01:17:37,270 --> 01:17:44,240 >> I za kraj ovaj segment, što ovaj program učiniti? 1554 01:17:44,240 --> 01:17:47,420 Dat ću ti dečki par sekundi da ga pročitajte. 1555 01:17:47,420 --> 01:17:52,720 1556 01:17:52,720 --> 01:17:56,880 Na vrlo osnovnoj razini, ono što želimo rekao je da je to swaps xiy, zar ne? 1557 01:17:56,880 --> 01:18:00,090 >> Dakle, koliko vas zapravo misle to će zamijeniti xiy? 1558 01:18:00,090 --> 01:18:02,160 Podignite ruku. 1559 01:18:02,160 --> 01:18:02,760 Nitko. 1560 01:18:02,760 --> 01:18:03,070 OK. 1561 01:18:03,070 --> 01:18:06,720 Tko misli da će se Ne mijenjati xiy? 1562 01:18:06,720 --> 01:18:09,120 I suma koja je Ne cijelu sobu. 1563 01:18:09,120 --> 01:18:10,440 Dakle, neki ljudi nisu sigurni. 1564 01:18:10,440 --> 01:18:10,920 OK. 1565 01:18:10,920 --> 01:18:11,630 To je razumna. 1566 01:18:11,630 --> 01:18:16,450 >> Dakle, idemo kroz ono što se događa kada što zapravo poziv funkcije prvi u 1567 01:18:16,450 --> 01:18:18,320 Kako bi odgovorili na to pitanje. 1568 01:18:18,320 --> 01:18:21,430 Dakle, to je ono memorije nekako izgleda. 1569 01:18:21,430 --> 01:18:23,860 To je nešto kao pojednostavljeni model onoga memorije izgleda kad 1570 01:18:23,860 --> 01:18:24,800 pokrenete program. 1571 01:18:24,800 --> 01:18:27,270 Dakle, postoji nešto što se zove stog ovdje dolje i 1572 01:18:27,270 --> 01:18:28,330 nešto što se zove gomila. 1573 01:18:28,330 --> 01:18:30,950 I to raste prema Srednji memorije. 1574 01:18:30,950 --> 01:18:33,860 >> Dakle, u ovom konkretnom slučaju, kad je nazovete funkciju, to 1575 01:18:33,860 --> 01:18:35,680 dobiva staviti na stog. 1576 01:18:35,680 --> 01:18:38,900 I onda ono što je sadržano u tome Funkcija ostaje u ono što mi zovemo 1577 01:18:38,900 --> 01:18:40,550 funkciji je stack frame. 1578 01:18:40,550 --> 01:18:44,500 I tako bi dobili lijep vizualizaciju to, let's - primjerice, imali smo 1579 01:18:44,500 --> 01:18:45,960 Program Glavni ranije. 1580 01:18:45,960 --> 01:18:47,820 A unutar glavna, nazvali smo kocku. 1581 01:18:47,820 --> 01:18:50,650 Dakle, glavna prvi će ići na dimnjak uokviriti, jer je to prva uloga 1582 01:18:50,650 --> 01:18:51,640 to se zove. 1583 01:18:51,640 --> 01:18:55,740 >> A onda, kada kocka zove unutar Glavni, ona dobiva staviti na vrhu glavna 1584 01:18:55,740 --> 01:18:57,790 unutar memorije. 1585 01:18:57,790 --> 01:19:02,090 Dakle, što ćete primijetiti je da kocka ima svoje parametre i njegovih 1586 01:19:02,090 --> 01:19:02,950 vlastiti mještani. 1587 01:19:02,950 --> 01:19:06,720 Dakle, kada ste zapravo prođe nešto funkcija, parametri koji se 1588 01:19:06,720 --> 01:19:09,910 dobiva se kopije onoga što je donesen iz glavna. 1589 01:19:09,910 --> 01:19:14,140 >> I to nekako objasniti, neka je prošetati kroz program. 1590 01:19:14,140 --> 01:19:16,960 Dakle, imamo hrpu, a to je samo stog dio. 1591 01:19:16,960 --> 01:19:21,240 A što mi radimo je prvo započeti X i Y se jedan i dva. 1592 01:19:21,240 --> 01:19:22,400 Dakle, imamo te male kutije. 1593 01:19:22,400 --> 01:19:25,310 Oni sjede u glavnom je stog okvir na stog. 1594 01:19:25,310 --> 01:19:26,580 Oni sadrže jedan i dva. 1595 01:19:26,580 --> 01:19:28,820 >> Sada smo zvati zamjenu. 1596 01:19:28,820 --> 01:19:33,940 Ono što se događa je da prođe xiy u swap, i swap stvara svoje kopije 1597 01:19:33,940 --> 01:19:36,520 od one varijable za korištenje unutar svoje stog okvira. 1598 01:19:36,520 --> 01:19:39,920 Tako sada tamo imamo, što sadrži vrijednost koja je imala x i b, 1599 01:19:39,920 --> 01:19:41,620 koji sadrži vrijednost koja godina imao. 1600 01:19:41,620 --> 01:19:42,670 Dakle, jedan, dva. 1601 01:19:42,670 --> 01:19:47,130 >> A vi ćete primijetiti da je to zasebna iz xiy unutrašnjost glavna. 1602 01:19:47,130 --> 01:19:51,390 Tako smo sada stvoriti privremena promjenjiva sadržavati. 1603 01:19:51,390 --> 01:19:56,100 Mi smo postavili jednak B, pa je Promjene od jednog do dva. 1604 01:19:56,100 --> 01:19:59,340 I onda smo postavili b jednak na temperaturu, koja je jedan. 1605 01:19:59,340 --> 01:20:01,640 >> I onda sada smo izašli van ove funkcije. 1606 01:20:01,640 --> 01:20:04,310 1607 01:20:04,310 --> 01:20:07,410 Kada izađete iz funkcije, stack frame dobiva popped off snop. 1608 01:20:07,410 --> 01:20:08,270 Zovemo ga gurati. 1609 01:20:08,270 --> 01:20:12,750 Možete gurnuti hrpu okvir na stog a ti, ako pop off dimnjaku. 1610 01:20:12,750 --> 01:20:16,080 I tako ono što se događa je sve ono što bio je u toj stack frame kakve samo 1611 01:20:16,080 --> 01:20:17,280 ide gore u plamenu. 1612 01:20:17,280 --> 01:20:19,180 I, tako da više ne postoji. 1613 01:20:19,180 --> 01:20:20,470 >> Ali što ćemo primijetiti? 1614 01:20:20,470 --> 01:20:23,690 Mi zapravo nikada nije promijenila Vrijednosti xiy, zar ne? 1615 01:20:23,690 --> 01:20:26,530 Dakle, oni ostao lokalne do glavne. 1616 01:20:26,530 --> 01:20:29,900 I tako prolaze stvari u zamjeni, mi zapravo nikad nije promijenio te vrijednosti. 1617 01:20:29,900 --> 01:20:31,260 A što ćemo ovo nazvati? 1618 01:20:31,260 --> 01:20:33,040 Mi to nazivamo prolazu vrijednosti. 1619 01:20:33,040 --> 01:20:36,860 >> Tako je u C, kad prođe stvari u funkcije, to im prolazi po vrijednosti i 1620 01:20:36,860 --> 01:20:40,160 čini kopiju njima Funkcija za korištenje. 1621 01:20:40,160 --> 01:20:43,980 I mi ćemo učiti o nečemu što se naziva u prolazu kasniju referencu, ali to je 1622 01:20:43,980 --> 01:20:45,390 način možete riješiti ovaj problem. 1623 01:20:45,390 --> 01:20:47,080 Ali nećemo brinuti o da je tek kasnije. 1624 01:20:47,080 --> 01:20:52,200 >> ROB: A zapravo, taj pojam, u prolazu pozivanjem, pa C nema ni 1625 01:20:52,200 --> 01:20:54,270 u prolazu pozivom. 1626 01:20:54,270 --> 01:20:56,760 C isključivo je u prolazu vrijednosti. 1627 01:20:56,760 --> 01:20:59,630 Bez obzira na to što radite, vi ste uvijek prolazi kopiju nečega. 1628 01:20:59,630 --> 01:21:03,395 To je samo da je, kao što sam spomenuo vrsta da je prije s pokazivače 1629 01:21:03,395 --> 01:21:07,690 i da niz je zapravo samo četiri bajtova koji upućuju na neko mjesto u memoriji. 1630 01:21:07,690 --> 01:21:11,890 >> Pa, ako imam ovaj niz i to je mi govori da je mjesto gdje string - 1631 01:21:11,890 --> 01:21:15,470 Pa, ako imam tu pointer na to mjesto u memoriji, onda ja mogu proći 1632 01:21:15,470 --> 01:21:19,160 Kopiju tog pokazivač na funkciju, a da je funkcija još ne zna gdje se u 1633 01:21:19,160 --> 01:21:19,780 Memorija je. 1634 01:21:19,780 --> 01:21:22,950 Dakle, obje ove naputke ukazuju na istom mjestu u memoriji, i 1635 01:21:22,950 --> 01:21:26,460 to je kako ćemo biti u stanju mijenjati stvari šire 1636 01:21:26,460 --> 01:21:29,852 Trenutna okvir stack. 1637 01:21:29,852 --> 01:21:31,040 >> JOSEPH: Želite li napraviti sastavljanja? 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 Bilo je 05:30. 1641 01:21:35,040 --> 01:21:35,360 OK. 1642 01:21:35,360 --> 01:21:39,280 Dakle, mi ćemo pokriti prikupljanjem valjda u Sljedeći dio, ili vaš poglavlje 1643 01:21:39,280 --> 01:21:42,795 Lider će u tom trenutku. 1644 01:21:42,795 --> 01:21:43,272 I - 1645 01:21:43,272 --> 01:21:44,630 >> ROB: Ima li pitanja? 1646 01:21:44,630 --> 01:21:46,760 >> JOSEPH: Ima li pitanja? 1647 01:21:46,760 --> 01:21:47,150 Da? 1648 01:21:47,150 --> 01:21:52,469 >> ZVUČNIK 5: Korištenje konce CS50, bilo Funkcije koje želimo koristiti za 1649 01:21:52,469 --> 01:21:53,880 onima, koji će biti poput C funkcija. 1650 01:21:53,880 --> 01:21:59,050 CS50 nije otišao u i napravili sve dodatne. 1651 01:21:59,050 --> 01:22:01,850 >> ROB: Točno. 1652 01:22:01,850 --> 01:22:08,155 Svaka od C kao [nečujan], što će koristiti onima na našim žice. 1653 01:22:08,155 --> 01:22:12,400 >> JOSEPH: I jedna posljednja stvar koju želim spomenuti je da imamo stil vodič 1654 01:22:12,400 --> 01:22:13,130 za ovaj razred. 1655 01:22:13,130 --> 01:22:13,360 >> ROB: Oh, da. 1656 01:22:13,360 --> 01:22:15,270 >> JOSEPH: Dakle, ako ste došli iz programiranje pozadinu prije, 1657 01:22:15,270 --> 01:22:17,750 možda imaju određene konvencije kada pišeš koda poput stavljanja 1658 01:22:17,750 --> 01:22:20,950 aparatić na istoj liniji ili posebno načini uvlačenje 1659 01:22:20,950 --> 01:22:22,240 ili imenovanje varijabli. 1660 01:22:22,240 --> 01:22:26,870 U ovoj klasi, želimo slijediti specifičan vodič stil samo zato, 1661 01:22:26,870 --> 01:22:31,100 dobro, ako idete van i raditi u industrija, ti ćeš se očekivati 1662 01:22:31,100 --> 01:22:34,780 slijediti stil vodič za Tvrtka kod koje idete. 1663 01:22:34,780 --> 01:22:38,040 >> Kao na primjer, Facebook mislim ima određenu vrstu imenovanja 1664 01:22:38,040 --> 01:22:38,760 konvencija. 1665 01:22:38,760 --> 01:22:42,570 I tu je razlika između deva kućište varijable i kao 1666 01:22:42,570 --> 01:22:44,610 odvajajući ih podvlakama. 1667 01:22:44,610 --> 01:22:52,170 A isto tako, mislim da je najvažnije, kao što su primjerice, udubljenje, zar ne? 1668 01:22:52,170 --> 01:22:56,440 >> Mi ne kovrčava aparatić početak, gdje Uvjet je, i oni 1669 01:22:56,440 --> 01:22:57,730 se u sljedećem retku. 1670 01:22:57,730 --> 01:23:01,230 I mi također staviti u vitičastim zagradama čak i ako je samo jedan redak. 1671 01:23:01,230 --> 01:23:06,100 I mnogo puta, postoje načini kako to učiniti ona u kojoj možete ostaviti ove aparatić 1672 01:23:06,100 --> 01:23:08,380 off i ako je samo jedan redak pod IF. 1673 01:23:08,380 --> 01:23:12,070 No, u ovoj klasi, želimo slijediti specifičan vodič stil samo tako da se 1674 01:23:12,070 --> 01:23:13,550 koristi za takve stvari. 1675 01:23:13,550 --> 01:23:16,410 >> ROB: Da, i Stil 50 će se provesti ovaj stil vodič, a mi smo 1676 01:23:16,410 --> 01:23:18,080 će koristiti Style 50 do stupnja kodu. 1677 01:23:18,080 --> 01:23:25,150 Tako se čini stvari lakše za nas i nadamo se ne bi trebalo napraviti stvari koje 1678 01:23:25,150 --> 01:23:30,120 puno gore za vas s obzirom standardizirani stil ne mora biti da je 1679 01:23:30,120 --> 01:23:31,460 nerealno. 1680 01:23:31,460 --> 01:23:36,000 >> JOSEPH: I na kraju, kako biste pronašli stil vodič, idite na manual.cs50.net/style. 1681 01:23:36,000 --> 01:23:37,725 I da. 1682 01:23:37,725 --> 01:23:40,575 >> Zvučnik 4: Hoćete li provoditi bilo znakova po redu? 1683 01:23:40,575 --> 01:23:42,480 >> ROB: Da. 1684 01:23:42,480 --> 01:23:45,405 >> JOSEPH: Žao mi je, momci. 1685 01:23:45,405 --> 01:23:47,680 >> ROB: To je kao jedan od samo one. 1686 01:23:47,680 --> 01:23:50,420 U ovom trenutku, ja sam u redu s 120 osoba. 1687 01:23:50,420 --> 01:23:52,460 Ja sam u redu s rekavši 120 znakova po redu. 1688 01:23:52,460 --> 01:23:53,830 Ja razumijem da se neki limit. 1689 01:23:53,830 --> 01:23:57,130 Mislim da 80 je tako mali, ali mi smo ga provedbu. 1690 01:23:57,130 --> 01:24:00,260 >> JOSEPH: Osobno, mislim da s C, 80 znakova je više OK. 1691 01:24:00,260 --> 01:24:04,160 Jednom kada počnete dobivanje na druge jezika kao što su JavaScript i PHP, a ne 1692 01:24:04,160 --> 01:24:08,860 tako razumno samo ograničiti je do 80 znakova. 1693 01:24:08,860 --> 01:24:09,260 OK. 1694 01:24:09,260 --> 01:24:12,780 Pa, to je bilo super poglavlje. 1695 01:24:12,780 --> 01:24:14,750 Zar itko želi slatkiše? 1696 01:24:14,750 --> 01:24:16,000 >> Zvučnik 4: Da. 1697 01:24:16,000 --> 01:24:18,667