1 00:00:00,000 --> 00:00:12,510 2 00:00:12,510 --> 00:00:13,870 >> ROB: Alle reg. 3 00:00:13,870 --> 00:00:16,770 Welkom by die eerste artikel. 4 00:00:16,770 --> 00:00:17,480 Ek is Rob. 5 00:00:17,480 --> 00:00:18,806 >> JOSEPH: Ek is Josef. 6 00:00:18,806 --> 00:00:21,540 >> ROB: So ons sal reg in 'n duik 7 00:00:21,540 --> 00:00:23,420 Eerste ding om te praat oor is die toestel. 8 00:00:23,420 --> 00:00:27,150 So hopelik die meeste van julle het reeds afgelaai. 9 00:00:27,150 --> 00:00:37,180 Maar jy kan sien die instruksies by cs50.net/appliance. 10 00:00:37,180 --> 00:00:38,430 O God, nou is ek selfbewus. 11 00:00:38,430 --> 00:00:44,590 12 00:00:44,590 --> 00:00:45,430 Ek hoor dit nog steeds. 13 00:00:45,430 --> 00:00:47,232 >> Josef Sjoe, dit klink soos dit is war. 14 00:00:47,232 --> 00:00:52,460 >> ROB: So 'n paar mense is wat probleme met dit, so moenie wag totdat 15 00:00:52,460 --> 00:00:54,940 die laaste minuut van die probleem gestel probeer om die toestel op te los en 16 00:00:54,940 --> 00:00:56,320 om uit te vind dat dit nie werk nie. 17 00:00:56,320 --> 00:00:59,010 >> Josef, en as iets nie werk nie en jy hulp nodig het, kan jy gaan na 18 00:00:59,010 --> 00:01:03,390 cs50.net/discussion waar ons 'n forum waar jy 19 00:01:03,390 --> 00:01:04,110 jou vrae kan plaas. 20 00:01:04,110 --> 00:01:06,655 En ons sal kry om hulle uiteindelik. 21 00:01:06,655 --> 00:01:07,490 >> ROB: Alle reg. 22 00:01:07,490 --> 00:01:12,180 So dit is wat die toestel lyk. 23 00:01:12,180 --> 00:01:15,480 Weereens, dit is net 'n heeltemal aparte bedryfstelsel loop binne 24 00:01:15,480 --> 00:01:19,440 watter bedryfstelsel jy loop op jou laptop. 25 00:01:19,440 --> 00:01:24,450 En die belangrikste dinge wat jy word met behulp is gedit. 26 00:01:24,450 --> 00:01:28,050 So hopelik reeds 'n bekende terrein. 27 00:01:28,050 --> 00:01:29,470 Die terminale. 28 00:01:29,470 --> 00:01:31,890 >> En jy kan ook hardloop Chrome binne die toestel. 29 00:01:31,890 --> 00:01:33,860 Daar is 'n paar van die mense wat berig het die internet 30 00:01:33,860 --> 00:01:35,390 nie in die toestel werk. 31 00:01:35,390 --> 00:01:38,090 En sommige van hulle het net aanvaar dat daar is nie veronderstel om te wees 32 00:01:38,090 --> 00:01:39,190 internet in die toestel. 33 00:01:39,190 --> 00:01:40,750 Maar ja, daar is veronderstel internet te wees. 34 00:01:40,750 --> 00:01:44,000 35 00:01:44,000 --> 00:01:46,410 >> Ek sal sê dit nou, maar dit beteken nie werklik beteken nie. 36 00:01:46,410 --> 00:01:50,680 As die internet nie werk nie, dit is wat jy is geneig om te moet 37 00:01:50,680 --> 00:01:52,180 hardloop dit op te los. 38 00:01:52,180 --> 00:01:55,602 As jy met internet kwessies, dit nie doen nie onthou dit, post dit op 39 00:01:55,602 --> 00:01:57,560 Bespreek, en ons sal sê, hardloop nie. 40 00:01:57,560 --> 00:02:00,420 Maar die internet moet werk. 41 00:02:00,420 --> 00:02:06,650 >> Dus is die enigste ander ding - ja, niks anders is regtig relevant. 42 00:02:06,650 --> 00:02:08,979 Maar ek wou net om uit te wys dat - 43 00:02:08,979 --> 00:02:13,290 sien in hierdie reg onder. 44 00:02:13,290 --> 00:02:16,530 So elkeen van jou toestel kan 'n IP-adres. 45 00:02:16,530 --> 00:02:22,350 En later in die semester, is hierdie IP adres sal meer betrokke raak wanneer 46 00:02:22,350 --> 00:02:27,230 jy werk op die web p-stel, want jy sal in staat wees om die om toegang te verkry 47 00:02:27,230 --> 00:02:32,310 webwerf jy werk op uit jou plaaslike Chrome deur die gebruik van hierdie IP-adres. 48 00:02:32,310 --> 00:02:35,400 >> Maar wat ek graag die IP-adres te gebruik vir - en jy hoef nie dit te doen, het ek 49 00:02:35,400 --> 00:02:37,460 wil net dit uit te wys - 50 00:02:37,460 --> 00:02:39,540 is hier. 51 00:02:39,540 --> 00:02:42,910 So, dit is 'n terminale venster op my Mac, dit is nie in die 52 00:02:42,910 --> 00:02:44,580 Toestel nie. 53 00:02:44,580 --> 00:02:47,190 En jy kan kyk wat hierdie bevel nie. 54 00:02:47,190 --> 00:02:51,855 Maar ek gaan SSH direk om my toestel. 55 00:02:51,855 --> 00:02:53,410 Ek weet nie wat die IP is. 56 00:02:53,410 --> 00:02:54,300 >> Josef 168 - 57 00:02:54,300 --> 00:02:56,080 >> 168.224.1.0. 58 00:02:56,080 --> 00:02:59,950 >> ROB: So een keer ek gedoen Met hierdie, inteken 59 00:02:59,950 --> 00:03:05,450 Nou, basies, dit is identies aan 'n terminale venster binne-in my toestel. 60 00:03:05,450 --> 00:03:10,280 So ek pretty much nooit gewerk binne die toestel self. 61 00:03:10,280 --> 00:03:12,550 Ek het net altyd dit loop in die agtergrond tot die minimum beperk 62 00:03:12,550 --> 00:03:15,890 en SSHed in dit. 63 00:03:15,890 --> 00:03:24,270 >> Die probleem met hierdie is dat jy nie gaan staat te wees om gedit te maklik gebruik 64 00:03:24,270 --> 00:03:25,600 direk uit hierdie. 65 00:03:25,600 --> 00:03:31,500 Maar as jy wil 'n ware koel te wees hacker, dan moet jy gebruik om 'n 66 00:03:31,500 --> 00:03:34,220 command line teks editor in elk geval. 67 00:03:34,220 --> 00:03:39,620 So Vim en Emacs en Nano, al hierdie verskillende alternatiewe. 68 00:03:39,620 --> 00:03:41,560 Nano is geneig om die maklikste om te wees. 69 00:03:41,560 --> 00:03:45,006 En ek dink dit het geen accentuering. 70 00:03:45,006 --> 00:03:47,620 O, nee, dit heeltemal nie. 71 00:03:47,620 --> 00:03:49,870 So jy kan gebruik Nano, want dat 'n mens is redelik maklik. 72 00:03:49,870 --> 00:03:52,000 >> Jy sien al hierdie gebooie aan die onderkant. 73 00:03:52,000 --> 00:03:54,750 Hierdie klein wortel simbool. 74 00:03:54,750 --> 00:03:57,620 As jy nog nie voorheen gesien het, sal jy waarskynlik sien dat dit 'n baie nou. 75 00:03:57,620 --> 00:04:02,350 Dit beteken gewoonlik die beheer wortel, soos die onderste linkerkant van jou sleutelbord 76 00:04:02,350 --> 00:04:04,130 beheer karakter. 77 00:04:04,130 --> 00:04:07,260 So hier is dit vir my hier - 78 00:04:07,260 --> 00:04:08,710 O, dit is nie afgesny as ek zoom in 79 00:04:08,710 --> 00:04:11,040 So beheer, X is hoe Ek gaan om te stop. 80 00:04:11,040 --> 00:04:14,710 En dit sê ek kan getref Y vir Ja, vir die besparing, N vir No 81 00:04:14,710 --> 00:04:17,190 So dit is Nano. 82 00:04:17,190 --> 00:04:22,860 >> Vim en Emacs geneig effens meer te wees ingewikkeld en oorweldigend. 83 00:04:22,860 --> 00:04:28,840 Maar jy kan kry gebruik om dit, en dan sal jy mal daaroor. 84 00:04:28,840 --> 00:04:30,590 So dit is dit. 85 00:04:30,590 --> 00:04:31,720 >> Josef Geen behoefte om dit te doen. 86 00:04:31,720 --> 00:04:31,840 >> ROB: Ja. 87 00:04:31,840 --> 00:04:37,510 Jy is vry gedit te gebruik vir die res van die semester. 88 00:04:37,510 --> 00:04:40,630 So 'n toestel-verwante vrae? 89 00:04:40,630 --> 00:04:42,820 Of het jy enige gedagtes oor wat anders moet oor gepraat word 90 00:04:42,820 --> 00:04:43,610 die toestel? 91 00:04:43,610 --> 00:04:43,996 Ja. 92 00:04:43,996 --> 00:04:47,720 >> Spreker 1: Wanneer jy in jou SSHed ding, was die wagwoord Crimson? 93 00:04:47,720 --> 00:04:48,390 >> ROB: Ja. 94 00:04:48,390 --> 00:04:50,170 Die wagwoord vir pretty much alles in die toestel gaan 95 00:04:50,170 --> 00:04:52,473 wees Crimson. 96 00:04:52,473 --> 00:04:56,517 >> Spreker 2: installeer soos 'n ware IDE op die toestel, sal dit werk? 97 00:04:56,517 --> 00:04:59,200 98 00:04:59,200 --> 00:05:07,290 >> ROB: Ek dink Eclipse het wel 'n Fedora weergawe, in welke geval, ja, 99 00:05:07,290 --> 00:05:08,420 jy kan dit doen. 100 00:05:08,420 --> 00:05:10,875 Dit is waarskynlik nie regtig die moeite werd. 101 00:05:10,875 --> 00:05:11,742 >> Spreker 2: OK. 102 00:05:11,742 --> 00:05:15,924 So is dit waarskynlik makliker as ek wou gebruik Eclipse, net gebruik maak van die inheemse en 103 00:05:15,924 --> 00:05:17,646 dan oplaai na - 104 00:05:17,646 --> 00:05:21,090 >> ROB: O, dit is waarskynlik ook makliker. 105 00:05:21,090 --> 00:05:24,046 Maar jy kan dit werk binne die toestel. 106 00:05:24,046 --> 00:05:27,740 >> Josef, en vir die kamera, is die vraag was, kan jy 'n ander installeer 107 00:05:27,740 --> 00:05:29,490 IDE binnekant van die toestel? 108 00:05:29,490 --> 00:05:31,520 >> ROB: Eclipse, synde 'n voorbeeld van 'n IDE. 109 00:05:31,520 --> 00:05:34,800 110 00:05:34,800 --> 00:05:36,050 Enige ander toestel vrae? 111 00:05:36,050 --> 00:05:38,250 112 00:05:38,250 --> 00:05:38,680 Alle regte. 113 00:05:38,680 --> 00:05:44,920 >> So sal ons nou oor na command line koppelvlak-verwante dinge, so CLI. 114 00:05:44,920 --> 00:05:47,990 En weer, ek is net gaan om te werk in hier, want dit is identies aan 115 00:05:47,990 --> 00:05:52,780 werk binne 'n terminaal venster binne die toestel. 116 00:05:52,780 --> 00:05:54,160 Hoe is dit font soek? 117 00:05:54,160 --> 00:05:55,970 Is dat 'n groot genoeg? 118 00:05:55,970 --> 00:05:57,000 Alle regte. 119 00:05:57,000 --> 00:06:02,480 >> So is daar 'n klomp opdragte wat Jy moet kry mooi gebruik te 120 00:06:02,480 --> 00:06:04,490 regdeur die semester. 121 00:06:04,490 --> 00:06:09,480 Die groot twee vir die opgevolg is LS, lys die lêers in hierdie gids; en 122 00:06:09,480 --> 00:06:11,380 CD, so verander die gids. 123 00:06:11,380 --> 00:06:18,390 So ek kan verander na die lessenaar en dan 'n baie algemene patroon is CD aan 'n 124 00:06:18,390 --> 00:06:22,550 gids en onmiddellik LS Wat is in die gids. 125 00:06:22,550 --> 00:06:25,540 >> Mense het ook soms nie besef nie dat Tab voltooiing is 'n ding. 126 00:06:25,540 --> 00:06:28,370 Dus, net soos CD, vh, en dan het ek getref Tab. 127 00:06:28,370 --> 00:06:30,790 Ek tik byna nooit uit die hele ding. 128 00:06:30,790 --> 00:06:32,920 En dan as ek hou slaan Tab weer, dit sal outomaties 129 00:06:32,920 --> 00:06:33,670 begin notering vir my. 130 00:06:33,670 --> 00:06:37,000 So kan ek cd vhosts, plaaslike gasheer. 131 00:06:37,000 --> 00:06:39,880 En dit is net gaan - 132 00:06:39,880 --> 00:06:43,380 in die geval dat jy nie gehoor het nie die term voor, gids is net 'n ander woord 133 00:06:43,380 --> 00:06:45,170 vir die gids. 134 00:06:45,170 --> 00:06:49,930 So nou as jy sien - 135 00:06:49,930 --> 00:06:51,810 Kom ons bring wat aan die bokant. 136 00:06:51,810 --> 00:06:55,380 >> So nou as jy sien in hakies, jy sien die klein tilde, streep, vhost, 137 00:06:55,380 --> 00:06:56,810 streep, plaaslike gasheer. 138 00:06:56,810 --> 00:07:00,040 So het die tilde, wat verwys na my huis gids. 139 00:07:00,040 --> 00:07:03,090 Dit is 'n gids jy wanneer jy ssh in 140 00:07:03,090 --> 00:07:05,660 Dit is die gids wat jy in wanneer jy maak 'n terminale. 141 00:07:05,660 --> 00:07:08,650 Dit is waar jy begin. 142 00:07:08,650 --> 00:07:13,110 En so ek is binne-in my huis gids, en ek is binnekant van die vhost 143 00:07:13,110 --> 00:07:14,475 Gids binnekant van my tuisgids. 144 00:07:14,475 --> 00:07:19,670 En dan is ek binnekant van die plaaslike gasheer Gids binnekant van dit. 145 00:07:19,670 --> 00:07:23,740 >> So 'n paar ander nuttige dinge met CD - 146 00:07:23,740 --> 00:07:29,220 of wel, in die algemeen, so dot altyd verwys na die huidige gids. 147 00:07:29,220 --> 00:07:31,130 CD, dot is 'n mooi waardeloos opdrag. 148 00:07:31,130 --> 00:07:35,150 Maar dit is die verandering van die huidige gids. 149 00:07:35,150 --> 00:07:38,230 'N meer bruikbare een in terme van CD is dot, dot, wat 150 00:07:38,230 --> 00:07:40,220 gaan net op een gids. 151 00:07:40,220 --> 00:07:43,360 >> En daarop dat hierdie - 152 00:07:43,360 --> 00:07:48,610 Ek wil aliasse te sê, maar hierdie simbole, dot, en dot, dot, die werk 153 00:07:48,610 --> 00:07:51,740 vir pretty much enige opdrag wat jy gaan om te dink van die bestuur van. 154 00:07:51,740 --> 00:07:55,370 Dus, net soos CD is waarskynlik waar jy gebruik van die meeste, maar dit is nie 155 00:07:55,370 --> 00:07:56,780 dinge wat net cd verstaan. 156 00:07:56,780 --> 00:07:59,980 Dit is pretty much iets jou hele command line verstaan. 157 00:07:59,980 --> 00:08:01,932 Baie van die programme te verstaan dot dot en Dot. 158 00:08:01,932 --> 00:08:04,830 159 00:08:04,830 --> 00:08:09,090 >> So het die ander nuttige kinders - CD, stamp. 160 00:08:09,090 --> 00:08:13,460 So wat gaan om my te bring aan die laaste gids wat ek was in 161 00:08:13,460 --> 00:08:15,980 So soms ek sal iets te doen soos, O ja, ek werk hier. 162 00:08:15,980 --> 00:08:21,110 En ek sien 'n paar fout met iets, en Ek gaan ondersoek dit deur te gaan na 163 00:08:21,110 --> 00:08:24,020 'n paar random Gids iewers. 164 00:08:24,020 --> 00:08:25,260 En ek weet nie of dit sal laat my daar. 165 00:08:25,260 --> 00:08:25,720 Dit sal. 166 00:08:25,720 --> 00:08:27,615 So ek doen wat ek wil in hierdie gids. 167 00:08:27,615 --> 00:08:28,950 Blah, blah, blah, blah, blah. 168 00:08:28,950 --> 00:08:31,770 En ek was soos, alles reg, ek wil terug na waar ek was gaan. 169 00:08:31,770 --> 00:08:34,490 CD, stamp nie, en dit bring my terug. 170 00:08:34,490 --> 00:08:39,970 >> So ek gaan 'n baie om te gooi van hierdie op jou vandag. 171 00:08:39,970 --> 00:08:43,730 Ek verwag nie dat jy om te onthou almal van hulle. 172 00:08:43,730 --> 00:08:46,170 Dit is soort van net weet dat hulle bestaan. 173 00:08:46,170 --> 00:08:48,690 En dan later wanneer jy wil, hmm, ek wil terug te gaan na die 174 00:08:48,690 --> 00:08:51,870 gids wat ek was net op, O, wag, iets soos wat bestaan. 175 00:08:51,870 --> 00:08:53,980 Jy hoef nie te tik net in die hele gids weer. 176 00:08:53,980 --> 00:08:56,090 >> Josef, en uiteindelik sal jy net gebruik om hulle oor en oor weer, en 177 00:08:56,090 --> 00:08:57,830 dit sal die spier-geheue word. 178 00:08:57,830 --> 00:09:00,090 >> ROB: Ja. 179 00:09:00,090 --> 00:09:02,930 So hoe ek gesê het, dat tilde is om jou huis gids. 180 00:09:02,930 --> 00:09:04,820 So kan ek cd, tilde. 181 00:09:04,820 --> 00:09:07,280 Maar ek het nie eens te doen dat as ek net - 182 00:09:07,280 --> 00:09:09,760 Ek sal terug te gaan na die gids sodat dit is nie 'n sin voorbeeld. 183 00:09:09,760 --> 00:09:14,560 Maar as ek net doen CD, dit is ook die dieselfde as, gaan na my huis gids. 184 00:09:14,560 --> 00:09:18,380 185 00:09:18,380 --> 00:09:19,880 Ek doen Command, K. 186 00:09:19,880 --> 00:09:24,015 >> Josef Jy kan ook tik duidelik, die woord, en dit moet duidelik nie. 187 00:09:24,015 --> 00:09:28,650 >> ROB: En ek dink ook beheer, L doen dit ook. 188 00:09:28,650 --> 00:09:29,690 So baie verskillende maniere. 189 00:09:29,690 --> 00:09:34,070 Ek dink daar is 'n paar verskille waar duidelike en beheer, L net 190 00:09:34,070 --> 00:09:37,280 regtig stoot dit aan die bokant en Ek kan nog steeds blaai terug. 191 00:09:37,280 --> 00:09:40,580 Opdrag, K letterlik vernietig alles, en jy 192 00:09:40,580 --> 00:09:42,960 kan nie terug te blaai. 193 00:09:42,960 --> 00:09:45,530 Op die heel minste, dis hoe dit werk in iTerm2. 194 00:09:45,530 --> 00:09:48,690 Ek weet nie hoe ander dinge - 195 00:09:48,690 --> 00:09:49,360 O. 196 00:09:49,360 --> 00:09:55,450 >> Met SSHing, so as jy op Windows, jy gaan te hê PuTTY te laai 197 00:09:55,450 --> 00:10:02,360 ten einde te ssh sedert Windows nie het soos 'n ingeboude SSH hulpmiddel. 198 00:10:02,360 --> 00:10:06,150 Van Macs, kan jy net SSH direk van 'n terminale venster. 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 Vrae? 202 00:10:11,840 --> 00:10:19,260 >> Met LS, so iets te kry wat gebruik word om met die meeste van hierdie opdragte is - 203 00:10:19,260 --> 00:10:20,060 Wel, ek sal net doen een. 204 00:10:20,060 --> 00:10:21,310 LS, stamp nie, l. 205 00:10:21,310 --> 00:10:26,330 So bietjie, l is wat ons gaan 'n vlag te roep om LS. 206 00:10:26,330 --> 00:10:30,770 En 'n groot deel van hierdie bevele het vlae wat jy kan hulle laat oorgaan. 207 00:10:30,770 --> 00:10:35,020 So in hierdie geval, stamp nie, l is 'n vlag wat vertel dit vir my 'n volle 208 00:10:35,020 --> 00:10:37,850 lys van al die inligting van hierdie lêers. 209 00:10:37,850 --> 00:10:44,790 >> So hier sien ons dat die lessenaar was verander op 30 Julie om 12:54. 210 00:10:44,790 --> 00:10:47,160 Afgelaai is aangepas by September 6. 211 00:10:47,160 --> 00:10:52,350 Dit is die huidige grootte en grepe van hierdie dopgehou. 212 00:10:52,350 --> 00:10:54,412 Jy hoef nie te verstaan al hierdie dinge. 213 00:10:54,412 --> 00:11:00,380 >> Hierdie dinge aan die linkerkant van hierdie drwx se, wat baie meer betrokke raak 214 00:11:00,380 --> 00:11:02,290 later wanneer jy te doen het met - 215 00:11:02,290 --> 00:11:05,900 wat te doen het met wat regte het om te kyk na hierdie lêers. 216 00:11:05,900 --> 00:11:09,880 En so, as jy nie die enigste gebruiker hierdie rekenaar, sal jy in staat wees om te 217 00:11:09,880 --> 00:11:13,345 sê, OK, ek moet die enigste een wees toegelaat word om te kyk na hierdie lêer of ek 218 00:11:13,345 --> 00:11:14,870 gaan toelaat dat almal om te kyk na hierdie lêer. 219 00:11:14,870 --> 00:11:17,710 So iemand anders op my rekenaar kan kyk na hierdie lêer. 220 00:11:17,710 --> 00:11:22,190 221 00:11:22,190 --> 00:11:25,600 Ek weet nie eens wat dit - wat beteken dit doen? 222 00:11:25,600 --> 00:11:26,840 >> JOSEPH: Ek is nie heeltemal seker nie, eintlik. 223 00:11:26,840 --> 00:11:27,705 >> ROB: geen idee nie. 224 00:11:27,705 --> 00:11:30,530 >> Josef Maar as jy nie weet nie, is daar 'n nuttige opdrag wat jy kan gebruik 225 00:11:30,530 --> 00:11:31,680 om jou te vertel wat die uitset beteken. 226 00:11:31,680 --> 00:11:33,780 En as jy tik in die mens voor die opdrag - 227 00:11:33,780 --> 00:11:35,000 so M-A-N. ROB: Man. 228 00:11:35,000 --> 00:11:37,690 So man is 'n ander een dit is baie nuttig. 229 00:11:37,690 --> 00:11:39,540 En man, LS. 230 00:11:39,540 --> 00:11:47,320 So het die man bladsye, het hulle albei beveel dat jy gaan word met behulp 231 00:11:47,320 --> 00:11:50,330 op die opdrag lyn, en hulle het ook ' funksies wat betrokke sal wees 232 00:11:50,330 --> 00:11:52,530 met C. So jy kan 'n mens - 233 00:11:52,530 --> 00:11:53,720 en ek geïgnoreer 3. 234 00:11:53,720 --> 00:11:57,410 Maar man 3 printf gaan bring die C-weergawe van printf. 235 00:11:57,410 --> 00:12:01,030 Maar as ek net doen man printf, dit is gegaan om die opdrag printf 236 00:12:01,030 --> 00:12:03,540 wat gebeur by die opdrag lyn. 237 00:12:03,540 --> 00:12:05,730 >> So man, LS. 238 00:12:05,730 --> 00:12:09,030 Die man bladsye kan mooi wees oorweldigend. 239 00:12:09,030 --> 00:12:12,770 Hier, al is, sal jy hierdie lys te sien van al hierdie vlae wat LS 240 00:12:12,770 --> 00:12:14,300 verstaan. 241 00:12:14,300 --> 00:12:17,876 So as ons gaan te stamp nie, l, en - 242 00:12:17,876 --> 00:12:19,300 Ek gaan net hierdie op jou te gooi. 243 00:12:19,300 --> 00:12:23,050 Maar om te soek, wil jy eerste druk op die vraag 244 00:12:23,050 --> 00:12:24,780 merk of streep knoppie. 245 00:12:24,780 --> 00:12:26,040 So streep. 246 00:12:26,040 --> 00:12:29,000 >> En dan kan ek soek vir alles wat ek wil hê. 247 00:12:29,000 --> 00:12:33,780 So ek gaan streep vir stamp, l. 248 00:12:33,780 --> 00:12:35,110 En daar was dit. 249 00:12:35,110 --> 00:12:37,450 So gebruik 'n lang lys formaat. 250 00:12:37,450 --> 00:12:40,060 Dit help nie om my uit te vind wat daardie spesifieke kolom bedoel, maar ek 251 00:12:40,060 --> 00:12:44,480 aanvaar iewers in hier dit sou verduidelik dat. 252 00:12:44,480 --> 00:12:48,740 So gebruik die man bladsye vir enige opdrag dat jy nie dadelik verstaan. 253 00:12:48,740 --> 00:12:51,080 >> Ek is redelik seker dat jy kan selfs 'n mens, man. 254 00:12:51,080 --> 00:12:53,070 'N koppelvlak tot die online verwysing handleidings. 255 00:12:53,070 --> 00:12:57,700 256 00:12:57,700 --> 00:13:03,570 O ja, een laaste een wat dalk effens relevant is, is LS, stamp nie, a. 257 00:13:03,570 --> 00:13:08,490 So sien as ek net doen LS, Ek kry hierdie vyf lêers. 258 00:13:08,490 --> 00:13:11,480 As ek dit doen LS, stamp nie, 'n, ek 'n baie meer lêers. 259 00:13:11,480 --> 00:13:15,350 So die ding in gemeen tussen al hierdie nuwe lêers is die dot vooraf. 260 00:13:15,350 --> 00:13:21,220 >> So het die konvensie is dat 'n lêer wat begin met 'n dot weggesteek. 261 00:13:21,220 --> 00:13:25,300 So jy wil nie die lêer te sien, moet jy nie wil om dit te hê mors met 262 00:13:25,300 --> 00:13:26,750 jou gids aanbieding. 263 00:13:26,750 --> 00:13:30,020 Dit is eers wanneer jy uitdruklik vra, Alle reg, LS, stamp nie, 'n, wys my. 264 00:13:30,020 --> 00:13:32,830 Die A staan ​​vir al die lêers, insluitend verborgenes. 265 00:13:32,830 --> 00:13:37,260 266 00:13:37,260 --> 00:13:39,270 So 'n paar ander opdragte. 267 00:13:39,270 --> 00:13:41,323 O, vrae op daardie stadium? 268 00:13:41,323 --> 00:13:41,746 Ja. 269 00:13:41,746 --> 00:13:45,914 >> SPREKER 3: As jy dit doen LS, a, wat is die dot, dot? 270 00:13:45,914 --> 00:13:46,870 >> ROB: Oh. 271 00:13:46,870 --> 00:13:48,780 So dit is wat ek praat. 272 00:13:48,780 --> 00:13:50,890 Dit is dieselfde ding waar Ek kan hou cd, dot, dot. 273 00:13:50,890 --> 00:13:56,790 So tegnies, dot dot en, dot is lêers wat in elke enkele bestaan 274 00:13:56,790 --> 00:14:03,620 gids waar die dot lêer verwys om die huidige gids. 275 00:14:03,620 --> 00:14:06,930 So as ek CD, dot, is ek net gaan om te bly in die gids. 276 00:14:06,930 --> 00:14:10,870 En dot, dot, verwys altyd na die vorige Gids een vlak. 277 00:14:10,870 --> 00:14:18,200 So as ek gaan in hout en LS, stamp nie, al, Ek sal sien dot, dot. CD dot, dot 278 00:14:18,200 --> 00:14:20,390 bring my by die vorige gids nie. 279 00:14:20,390 --> 00:14:24,530 280 00:14:24,530 --> 00:14:25,780 Ja. 281 00:14:25,780 --> 00:14:27,160 282 00:14:27,160 --> 00:14:28,110 OK. 283 00:14:28,110 --> 00:14:33,070 >> So 'n ander baie belangrike opdrag is RM. 284 00:14:33,070 --> 00:14:35,650 So dit is wat ons gaan te gebruik om te verwyder. 285 00:14:35,650 --> 00:14:38,100 En laat my eintlik 'n ander doen opdrag eerste. 286 00:14:38,100 --> 00:14:39,610 So mkdir. 287 00:14:39,610 --> 00:14:42,770 Mkdir is hoe jy kan skep dopgehou. 288 00:14:42,770 --> 00:14:47,530 En Ek sal 'n tydelike gids skep en gaan in daardie tydelike gids. 289 00:14:47,530 --> 00:14:49,590 En soos verwag, dit is leeg. 290 00:14:49,590 --> 00:14:53,680 Maar as ek LS, stamp nie, 'n, ek het nog 'n punt en dot, dot, want dot verwys na 291 00:14:53,680 --> 00:14:54,480 die huidige gids. 292 00:14:54,480 --> 00:14:56,170 En dot, dot verwys na die vorige gids nie. 293 00:14:56,170 --> 00:14:58,700 En dié sal altyd bestaan ​​nie saak die gids jy is in 294 00:14:58,700 --> 00:15:01,910 295 00:15:01,910 --> 00:15:09,010 >> En dit is 'n heeltemal onnodig opdrag, maar raak. 296 00:15:09,010 --> 00:15:11,880 Ek is net dit te gebruik, want dit is 'n maklike manier om lêers te skep. 297 00:15:11,880 --> 00:15:16,180 So raak 'n, raak b, c raak net gaan drie lêers genoem te skep, 298 00:15:16,180 --> 00:15:17,845 b, en c wat heeltemal leeg. 299 00:15:17,845 --> 00:15:20,450 300 00:15:20,450 --> 00:15:24,980 So het die punt van my skep wat in die eerste plek is net so dat RM 301 00:15:24,980 --> 00:15:26,250 hoe ons dit kan verwyder. 302 00:15:26,250 --> 00:15:27,850 So RM, a. 303 00:15:27,850 --> 00:15:30,960 Dit gaan my te vra, te verwyder gereelde leë lêer 'n? 304 00:15:30,960 --> 00:15:33,170 En dan sal ek sê ja. 305 00:15:33,170 --> 00:15:39,090 >> So as ek vir seker weet dat ek wil vee die lêer sonder om te wees 306 00:15:39,090 --> 00:15:44,500 gevra, verwyder gereelde leë lêer?, dan RM, stamp nie, f gaan wees om die 307 00:15:44,500 --> 00:15:48,230 vlag wat sê, dwing die verwyder sonder selfs waarna my, o, is jy 308 00:15:48,230 --> 00:15:49,710 seker jy wil die lêer te verwyder? 309 00:15:49,710 --> 00:15:50,810 Ja, ek is seker. 310 00:15:50,810 --> 00:15:56,050 So RM, stamp nie, fb net doen dit sonder om te vra. 311 00:15:56,050 --> 00:15:57,950 >> So kom ons maak 'n paar meer dopgehou. 312 00:15:57,950 --> 00:16:03,670 mkdir, tmp2, CD, tmp2, raak 'n, kontak b. 313 00:16:03,670 --> 00:16:04,300 OK. 314 00:16:04,300 --> 00:16:08,180 So nou is ek wil verwyder tmp2 as 'n gids. 315 00:16:08,180 --> 00:16:10,316 So RM tmp2. 316 00:16:10,316 --> 00:16:12,920 Jy kan nie tmp2 verwyder, dit is 'n gids. 317 00:16:12,920 --> 00:16:21,370 So die probleem hier is dat RM nie onmiddellik werk dopgehou. 318 00:16:21,370 --> 00:16:26,530 Dit is net bedoel vir lêers soos nie-gids lêers. 319 00:16:26,530 --> 00:16:30,800 >> En ja, wat ons kan doen hier is RM, stamp nie, r. 320 00:16:30,800 --> 00:16:35,160 Dit staan ​​vir rekursief, wat dalk nie vir jou iets beteken nie. 321 00:16:35,160 --> 00:16:38,280 Maar wanneer jy na rekursie, dit sal beteken dat meer. 322 00:16:38,280 --> 00:16:43,540 So RM, stamp nie, r, tmp2 gaan rekursief gaan in daardie gids. 323 00:16:43,540 --> 00:16:45,540 So aftrek in die gids tmp2? 324 00:16:45,540 --> 00:16:47,330 Ja, laat ons gaan in daardie. 325 00:16:47,330 --> 00:16:49,360 Wil ons tmp2 te verwyder / a? 326 00:16:49,360 --> 00:16:49,745 Ja. 327 00:16:49,745 --> 00:16:51,830 Het ons wil verwyder tmp2 / b? 328 00:16:51,830 --> 00:16:52,840 Ja. 329 00:16:52,840 --> 00:16:55,170 Nou wil ons verwyder die gids tmp2? 330 00:16:55,170 --> 00:16:56,040 Ja. 331 00:16:56,040 --> 00:16:58,410 En so nou die gids en alles wat binne 332 00:16:58,410 --> 00:16:59,660 dit is verwyder. 333 00:16:59,660 --> 00:17:02,850 334 00:17:02,850 --> 00:17:07,250 >> Daar is tegnies 'n bevel rmdir wat jy kan gebruik om te verwyder 335 00:17:07,250 --> 00:17:11,670 dopgehou, maar dit werk net op 'n leë dopgehou in elk geval. 336 00:17:11,670 --> 00:17:14,109 En om dit te sien nie, laat ons net doen mkdir, tmp2 weer. 337 00:17:14,109 --> 00:17:15,940 Tmp2, raak 'n. 338 00:17:15,940 --> 00:17:16,800 OK. 339 00:17:16,800 --> 00:17:22,770 So as ek probeer dirtmp2 te verwyder, sal dit sê Gids nie leeg. 340 00:17:22,770 --> 00:17:29,540 So ek pretty much nooit gebruik die verwyder rig opdrag in elk geval, want RM, stamp nie, 341 00:17:29,540 --> 00:17:35,140 r sal werk op 'n leë dopgehou en nie-leë dopgehou. 342 00:17:35,140 --> 00:17:37,760 >> En ook, as ek nie wil hê gaan deur die hele proses van 343 00:17:37,760 --> 00:17:40,720 neerdaal in die gids en die verwydering van elke individuele lêer, RM, 344 00:17:40,720 --> 00:17:44,190 stamp nie, rf, tmp2. 345 00:17:44,190 --> 00:17:45,670 En nou is dit weg. 346 00:17:45,670 --> 00:17:51,220 >> Iets om versigtig te wees oor is RM, stamp nie, rf. 347 00:17:51,220 --> 00:17:53,660 En dit maak my bang om selfs tik dit, want as ek per ongeluk 348 00:17:53,660 --> 00:17:55,090 druk Enter of iets. 349 00:17:55,090 --> 00:18:02,735 So RM, stamp nie, rf, tilde sou sonder waarna my, die f nie gevra 350 00:18:02,735 --> 00:18:05,670 my, dit sal outomaties verwyder my hele huis gids en 351 00:18:05,670 --> 00:18:06,780 alles wat daarin is. 352 00:18:06,780 --> 00:18:11,460 Sodat jy kan dink dit is 'n dom ding om te doen. 353 00:18:11,460 --> 00:18:12,830 En goed, dit is. 354 00:18:12,830 --> 00:18:18,600 >> Maar dit kan baie maklik gebeur deur ongeluk as, sê, ek wou verwyder 355 00:18:18,600 --> 00:18:21,640 my streep, vhost gids. 356 00:18:21,640 --> 00:18:26,610 En net in die vinnige tik, Ek het per ongeluk doen. 357 00:18:26,610 --> 00:18:31,880 Dit sal rekursief beide my verwyder tuisgids en die vhost gids 358 00:18:31,880 --> 00:18:35,450 in hierdie spesifieke gids wat net gebeur nie nou bestaan ​​nie. 359 00:18:35,450 --> 00:18:39,520 Maar dit sou nog steeds verwyder my hele huis gids. 360 00:18:39,520 --> 00:18:43,090 Ten minste deur nie met 'n F, dit het my eerste sal gevra word. 361 00:18:43,090 --> 00:18:45,670 En ek wil wees, o, nee, ek wil nie om dit te doen. 362 00:18:45,670 --> 00:18:50,570 Maar mense, streep, insluitend my geneig om te kry in die 363 00:18:50,570 --> 00:18:53,090 gewoonte altyd rf-ing. 364 00:18:53,090 --> 00:18:58,713 Selfs gereelde lêers wat ek kan net RM, c, ek is geneig om net RM, stamp nie, rf, c. 365 00:18:58,713 --> 00:19:01,330 Net versigtig wees wanneer jy rf-ing. 366 00:19:01,330 --> 00:19:03,160 >> SPREKER 4: Wat beteken C doen? 367 00:19:03,160 --> 00:19:11,570 >> ROB: C is ek praat oor wat C lêer in hierdie gids, wat RM, c. 368 00:19:11,570 --> 00:19:15,730 >> Josef, en meer gevaarlik, as jy gebruik 'n ster, verwys dit na alles in 369 00:19:15,730 --> 00:19:16,450 die gids. 370 00:19:16,450 --> 00:19:20,040 So, wat ek gewoonlik geneig is om te doen, is ek sal gaan in 'n gids en ek wil 371 00:19:20,040 --> 00:19:21,510 verwyder al die lêers daar in. 372 00:19:21,510 --> 00:19:23,640 So RM, stamp nie, rf, ster. 373 00:19:23,640 --> 00:19:25,700 >> ROB: Ja. 374 00:19:25,700 --> 00:19:26,780 RM, stamp nie, rf, ster. 375 00:19:26,780 --> 00:19:29,530 >> Josef, en as jy nie versigtig is nie watter gids jy in - 376 00:19:29,530 --> 00:19:33,340 Ek was nie in tydelike, maar ek was per ongeluk in my huis gids, 377 00:19:33,340 --> 00:19:35,450 dan sal ek alles verwyder in my huis gids. 378 00:19:35,450 --> 00:19:39,095 En ek het eintlik wat voor gedoen het, en Ek dink jy dit gedoen het voor of 379 00:19:39,095 --> 00:19:40,640 Jay het dat gedoen het nie. 380 00:19:40,640 --> 00:19:42,480 >> ROB: Ek het per ongeluk verwyder - 381 00:19:42,480 --> 00:19:44,480 so ignoreer dat opdrag vir 'n bietjie. 382 00:19:44,480 --> 00:19:45,800 >> Josef nie pret. 383 00:19:45,800 --> 00:19:52,650 >> ROB: So in die streep bin gids is 'n n klomp van die binêre lêers waar daar sal 384 00:19:52,650 --> 00:19:54,840 vertroud te wees kinders soos klang. 385 00:19:54,840 --> 00:20:00,740 Wel, kletteren en basies al hierdie dinge wat ek hardloop op die bevel 386 00:20:00,740 --> 00:20:02,060 lyn is in hierdie streep bin gids. 387 00:20:02,060 --> 00:20:03,090 >> Josef Like LS is hier. 388 00:20:03,090 --> 00:20:06,285 >> ROB: So dot, streep, LS sou lys van hierdie gids. 389 00:20:06,285 --> 00:20:08,120 >> Josef Rm is ook in hierdie gids. 390 00:20:08,120 --> 00:20:12,770 >> ROB: Ek het per ongeluk RM, rf-ed bin, wat enige opdrag wat ek kon verwyder 391 00:20:12,770 --> 00:20:14,380 moontlik ooit wil. 392 00:20:14,380 --> 00:20:18,085 Wat dan het ek net weer 'n nuwe toestel op daardie tydstip. 393 00:20:18,085 --> 00:20:20,170 >> Josef So wees baie versigtig wanneer jy gebruik om hierdie opdrag. 394 00:20:20,170 --> 00:20:21,120 >> Publiek: [onhoorbaar]? 395 00:20:21,120 --> 00:20:22,640 >> ROB: Ja. 396 00:20:22,640 --> 00:20:24,135 Dit is ook 'n slegte gewoonte te kry in. 397 00:20:24,135 --> 00:20:27,920 398 00:20:27,920 --> 00:20:30,170 As jy sien, ek is nou - 399 00:20:30,170 --> 00:20:33,580 Wel, jy kan nie sien nie, maar my zoom-in miskien kan. 400 00:20:33,580 --> 00:20:35,360 So ek is nou root @ toestel. 401 00:20:35,360 --> 00:20:39,790 So jharvard is die gebruiker wil ons julle altyd gebruik word. 402 00:20:39,790 --> 00:20:43,820 Wortel is die gebruiker wat toestemming absoluut niks doen nie. 403 00:20:43,820 --> 00:20:50,260 >> So sien wanneer ek jharvard, As ek probeer om CD - 404 00:20:50,260 --> 00:20:52,461 Wat is 'n gids wat? 405 00:20:52,461 --> 00:20:53,980 O, wortel is 'n goeie voorbeeld. 406 00:20:53,980 --> 00:20:54,950 So CD, wortel. 407 00:20:54,950 --> 00:20:56,030 Toestemming geweier. 408 00:20:56,030 --> 00:21:00,060 Want as ons kyk na hierdie lys - 409 00:21:00,060 --> 00:21:02,410 en weer, het jy nie hoef te heeltemal verstaan. 410 00:21:02,410 --> 00:21:09,210 Maar hierdie drie koppeltekens sê wat nie enige ander laat 411 00:21:09,210 --> 00:21:11,120 gebruikers in hierdie gids. 412 00:21:11,120 --> 00:21:14,540 En die gids gebeur word besit deur gebruiker wortel. 413 00:21:14,540 --> 00:21:20,310 >> So die feit dat ek jharvard en geen een wat nie wortel word toegelaat in 414 00:21:20,310 --> 00:21:23,490 hierdie gids, wat beteken dat ek gaan toestemming geweier raak wanneer ek 415 00:21:23,490 --> 00:21:25,160 probeer om CD in dit. 416 00:21:25,160 --> 00:21:31,370 So wanneer ek wortel, ek het toestemming om te doen absoluut niks, insluitend 417 00:21:31,370 --> 00:21:34,660 essential lêers na die toestel en 418 00:21:34,660 --> 00:21:36,640 vernietig die hele ding. 419 00:21:36,640 --> 00:21:41,240 >> So dit is 'n slegte gewoonte te kry in net rond te loop jou 420 00:21:41,240 --> 00:21:43,650 bedryfstelsel as wortel. 421 00:21:43,650 --> 00:21:46,520 Ek doen dit in elk geval. 422 00:21:46,520 --> 00:21:48,710 Vrae? 423 00:21:48,710 --> 00:21:52,230 En ek sal verlaat wortel, bly soos jharvard. 424 00:21:52,230 --> 00:21:54,510 OK. 425 00:21:54,510 --> 00:21:55,820 >> Meer relevante opdragte. 426 00:21:55,820 --> 00:22:03,975 So gaan terug in ons tydelike, die MV opdrag staan ​​vir beweeg. 427 00:22:03,975 --> 00:22:05,450 Jy kan skuif na 'n. 428 00:22:05,450 --> 00:22:07,610 Nou wil ons dit te noem b, Dus is dit nou genoem b. 429 00:22:07,610 --> 00:22:10,650 Of miskien ons wil om te beweeg b een gids. 430 00:22:10,650 --> 00:22:12,730 So nou hierdie gids se leeg. 431 00:22:12,730 --> 00:22:15,410 Ek kom terug na my huis gids te gaan, en sien ons dat b is hier, want die 432 00:22:15,410 --> 00:22:19,230 tuisgids was een gids uit die gids wat b was in 433 00:22:19,230 --> 00:22:24,710 434 00:22:24,710 --> 00:22:26,580 >> Daar is ook CP. 435 00:22:26,580 --> 00:22:33,210 So CP is kopieer super artikel, dot, teks. 436 00:22:33,210 --> 00:22:35,750 Ek kan noem dit is, dot, teks. 437 00:22:35,750 --> 00:22:39,780 Nou het ons albei die super artikel, dot, teks, en s, dot, teks. 438 00:22:39,780 --> 00:22:41,340 Dit werk ook op dopgehou. 439 00:22:41,340 --> 00:22:44,040 440 00:22:44,040 --> 00:22:46,560 Ek RF-ed 'n enkele lêer. 441 00:22:46,560 --> 00:22:48,200 So CP - 442 00:22:48,200 --> 00:22:51,710 Wel, die eerste kom ons probeer CP, tmp, tmp2. 443 00:22:51,710 --> 00:22:53,220 So laat Gids tmp. 444 00:22:53,220 --> 00:22:57,440 So soortgelyk aan RM, die standaard gedrag is om nie op dopgehou werk. 445 00:22:57,440 --> 00:23:01,570 >> En weer, soortgelyk aan RM, die standaard gedrag - goed, om dit uit te werk 446 00:23:01,570 --> 00:23:04,230 met dopgehou is 'n, bietjie-r weg. 447 00:23:04,230 --> 00:23:09,240 So het die temp rekursief kopieer Gids tot tmp2. 448 00:23:09,240 --> 00:23:13,700 En so nou het ons albei die tmp en tmp2, en dit is nie wat nuttig sedert tmp 449 00:23:13,700 --> 00:23:16,814 was leeg in die eerste plek. 450 00:23:16,814 --> 00:23:18,660 Tmp2. 451 00:23:18,660 --> 00:23:22,680 >> Nou laat kopieer tmp in tmp2. 452 00:23:22,680 --> 00:23:27,900 En ons sien dat tmp2 het ook die lêer a, omdat die gids en 453 00:23:27,900 --> 00:23:32,220 om alles binnekant van die gids is kopieer. 454 00:23:32,220 --> 00:23:36,000 En dit kan 'n bietjie hulp As sê jy werk 455 00:23:36,000 --> 00:23:38,860 op die probleem stel een - 456 00:23:38,860 --> 00:23:41,320 of eintlik, later probleem stelle is nog meer belangrik, want daar 457 00:23:41,320 --> 00:23:43,660 sal 'n hele klomp wees lêers en dinge. 458 00:23:43,660 --> 00:23:47,010 >> Maar jy net wil, vir 'n split Tweedens, jy wil, alles reg, ek is 459 00:23:47,010 --> 00:23:50,210 gaan om iets anders te probeer. 460 00:23:50,210 --> 00:23:57,860 Laat my net my hele pset1 kopieer Gids tot pset1 Friends sodat as 461 00:23:57,860 --> 00:24:01,490 Ek beland skroefwerk dinge, ek kan terug te gaan na my Friends gids. 462 00:24:01,490 --> 00:24:07,340 Daar is meer gepaste maniere van weergawes back-up jou kode, maar 463 00:24:07,340 --> 00:24:10,610 dit is altyd 'n vinnige manier om net te maak seker dat jy het 'n afskrif van iets 464 00:24:10,610 --> 00:24:11,860 dat jy oor om te verander. 465 00:24:11,860 --> 00:24:16,974 466 00:24:16,974 --> 00:24:27,090 >> So eggo is ook 'n eenmalige opdrag dat soort sillily sal net druk op die 467 00:24:27,090 --> 00:24:31,540 command line presies wat jy wou eggo. 468 00:24:31,540 --> 00:24:32,680 So eggo hi. 469 00:24:32,680 --> 00:24:35,420 Ons sal net druk hi. 470 00:24:35,420 --> 00:24:38,030 Echo hallo wêreld. 471 00:24:38,030 --> 00:24:39,800 Ons sal druk hallo wêreld. 472 00:24:39,800 --> 00:24:44,350 Dit kom in gebruik wanneer jy begin die kombinasie van opdragte. 473 00:24:44,350 --> 00:24:48,300 >> En weer, nie verwag dat jy heeltemal nog verstaan ​​dit, maar dit is 474 00:24:48,300 --> 00:24:49,910 iets om te aanskou. 475 00:24:49,910 --> 00:24:52,470 En dan as jy Googlen vir voorbeelde of jy besef jy wil doen 476 00:24:52,470 --> 00:24:55,030 iets is, kan dit nuttig wees. 477 00:24:55,030 --> 00:24:59,020 So laat ons, as 'n voorbeeld, so LS, stamp nie, l. 478 00:24:59,020 --> 00:25:01,160 So hier sien ek die uitset van LS, stamp nie, l. 479 00:25:01,160 --> 00:25:06,560 En ek sê OK, ek wil winkel wat in 'n lêer. 480 00:25:06,560 --> 00:25:11,620 Al hierdie uitset hier, Ek wil in 'n aparte lêer te sit. 481 00:25:11,620 --> 00:25:16,080 >> So hierdie klein groter as simbool is wat ons gaan om te bel. 482 00:25:16,080 --> 00:25:18,570 Ons is redirecting die uitset in 'n lêer. 483 00:25:18,570 --> 00:25:21,680 Kom ons noem die lêer blah, want dit is wat ek is geneig om altyd dit noem. 484 00:25:21,680 --> 00:25:26,430 So nou sien ons het ons 'n lêer blah reg hier. 485 00:25:26,430 --> 00:25:30,270 En as ek dit oopmaak het, sal ek sien dit is presies die uitvoer van die opdrag 486 00:25:30,270 --> 00:25:31,990 dat ek net gehardloop. 487 00:25:31,990 --> 00:25:36,020 En so, kan jy - 488 00:25:36,020 --> 00:25:41,260 As dit was uitset na 'n lêer, die is insette van 'n lêer. 489 00:25:41,260 --> 00:25:45,790 490 00:25:45,790 --> 00:25:47,050 Wat is 'n opdrag dat ek - 491 00:25:47,050 --> 00:25:49,620 >> JOSEPH: Ek dink jy kan gebruik meer of minder waarskynlik. 492 00:25:49,620 --> 00:25:53,031 >> ROB: Maar hoe oor net minder blah? 493 00:25:53,031 --> 00:25:53,930 Ek weet nie. 494 00:25:53,930 --> 00:25:57,870 As jy in hierdie scenario kom, soos daar is psets dat dit nuttig vir. 495 00:25:57,870 --> 00:25:59,950 >> JOSEPH: Jy kan dit in die pyp eggo. 496 00:25:59,950 --> 00:26:02,920 Pyp die lêer in eggo dit te sien. 497 00:26:02,920 --> 00:26:04,060 >> ROB: Dit is die pyp. 498 00:26:04,060 --> 00:26:04,860 >> Josef Jammer. 499 00:26:04,860 --> 00:26:06,190 >> ROB: Alle reg. 500 00:26:06,190 --> 00:26:12,720 So is dit uitset na 'n lêer. 501 00:26:12,720 --> 00:26:18,700 Dit is kry die teks van die lêer en oorhandig dit aan die program. 502 00:26:18,700 --> 00:26:20,560 En jy sal ook sien hierdie man. 503 00:26:20,560 --> 00:26:24,410 So dit is 'n soort van doen albei gelyktydig. 504 00:26:24,410 --> 00:26:28,310 En eintlik, ek sal stel twee nuwe beveel net gebruik te maak van dit. 505 00:26:28,310 --> 00:26:33,060 >> Geskiedenis is 'n handige opdrag wat net gaan uit te druk 'n lys van 506 00:26:33,060 --> 00:26:34,940 enigiets wat ek nog ooit hardloop 'n opdrag lyn. 507 00:26:34,940 --> 00:26:38,290 So hier sien ons alles wat ek het bestuur die hele tyd. 508 00:26:38,290 --> 00:26:39,540 Baie van die LS se. 509 00:26:39,540 --> 00:26:41,570 510 00:26:41,570 --> 00:26:48,470 >> En nog 'n nuttige opdrag is grep wat die doel is om te soek oor 511 00:26:48,470 --> 00:26:52,060 teks soek na patrone, goed, soek vir alles wat jy 512 00:26:52,060 --> 00:26:53,310 wil om te kyk vir. 513 00:26:53,310 --> 00:26:59,770 En so 'n handige gebruik hier is, sê Ons wil die geskiedenis aan te gryp. 514 00:26:59,770 --> 00:27:03,860 En ek wil om te kyk vir die instruksies waar ek - wat is 'n 515 00:27:03,860 --> 00:27:05,000 nuttige een om te kyk vir? 516 00:27:05,000 --> 00:27:06,898 >> Josef [onhoorbaar]? 517 00:27:06,898 --> 00:27:09,710 >> ROB: Of laat ons kyk net vir almal raak, vir watter rede ookal. 518 00:27:09,710 --> 00:27:13,850 So dit is hoe dit sal lyk. 519 00:27:13,850 --> 00:27:15,560 En jy nie heeltemal hoef te verstaan ​​dat. 520 00:27:15,560 --> 00:27:20,570 Maar die idee is hier, is die geskiedenis gee dieselfde uitset dit hier gedoen het, 521 00:27:20,570 --> 00:27:25,030 waar dit uit te druk om die hele geskiedenis van alles wat ek ooit hardloop. 522 00:27:25,030 --> 00:27:27,030 Ons is dan verby dat - 523 00:27:27,030 --> 00:27:30,230 So in plaas van om dit te druk op die skerm, ons wil om dit te slaag om die 524 00:27:30,230 --> 00:27:34,640 opdrag grep wat op soek is na alle gevalle van die woord te vat. 525 00:27:34,640 --> 00:27:40,280 >> En so die gebruik van hierdie kombinasie van die gereedskap geskiedenis en grep, ek kan sien, OK, 526 00:27:40,280 --> 00:27:44,820 hier is al die bevele wat ek ooit hardloop, en hier is 'n bietjie algemene een. 527 00:27:44,820 --> 00:27:45,510 Ons is aan die onderkant. 528 00:27:45,510 --> 00:27:47,930 En dit is ook aan my die opdrag Ek het net gehardloop wat moes 529 00:27:47,930 --> 00:27:51,240 woord touch in dit. 530 00:27:51,240 --> 00:27:58,500 Maar die pyp is 'n mooi nuttige ding vir die kombinasie van verskeie programme. 531 00:27:58,500 --> 00:28:04,670 En eintlik is dit 'n kortpad vir die laat my uitset geskiedenis blah in te dien, en 532 00:28:04,670 --> 00:28:10,190 laat my Grep die gebruik van die lêer blah as wat ek wil om te kyk oor. 533 00:28:10,190 --> 00:28:13,460 So die pyp is net 'n kortpad vir die twee opdragte. 534 00:28:13,460 --> 00:28:13,950 Ja. 535 00:28:13,950 --> 00:28:15,306 >> SPREKER 4: [onhoorbaar]? 536 00:28:15,306 --> 00:28:16,556 >> ROB: Ja. 537 00:28:16,556 --> 00:28:20,142 538 00:28:20,142 --> 00:28:21,110 Wat is - 539 00:28:21,110 --> 00:28:21,858 Oh. 540 00:28:21,858 --> 00:28:24,820 Kom ons toets. 541 00:28:24,820 --> 00:28:29,170 So kat, hond, vis. 542 00:28:29,170 --> 00:28:33,770 So ek wil grep. 543 00:28:33,770 --> 00:28:37,680 Dash, r, weer, gaan wees rekursief, so ek wil om af te daal 544 00:28:37,680 --> 00:28:38,870 al dopgehou. 545 00:28:38,870 --> 00:28:43,210 Ek wil rekursief grep vir almal - en laat my tydelik te kry 546 00:28:43,210 --> 00:28:44,460 dit uit die weg geruim. 547 00:28:44,460 --> 00:28:48,650 548 00:28:48,650 --> 00:28:50,740 Ignoreer my. 549 00:28:50,740 --> 00:28:51,360 OK. 550 00:28:51,360 --> 00:28:56,740 >> So ek wil om tydelik grep vir alle gevalle van die woord vis. 551 00:28:56,740 --> 00:29:00,510 En so hier wat ek doen is grepping rekursief vir die woord vis. 552 00:29:00,510 --> 00:29:05,410 En ster beteken oor al hierdie lêers in hierdie gids. 553 00:29:05,410 --> 00:29:08,930 En so is dit vir my 'n Toegang geweier want dit is nie toegelaat om te lees 554 00:29:08,930 --> 00:29:10,060 spesifieke lêer. 555 00:29:10,060 --> 00:29:14,040 Maar dit gevind vis in die lêer, toets. 556 00:29:14,040 --> 00:29:18,450 >> Ek kan ook sê, spesifiek, het ek net wil om te kyk in die lêer blah, in 557 00:29:18,450 --> 00:29:19,580 welke geval dit nie sal vind nie. 558 00:29:19,580 --> 00:29:20,990 Ek wil net om te kyk in die lêer, toets. 559 00:29:20,990 --> 00:29:22,240 Dit sal om vis te kry. 560 00:29:22,240 --> 00:29:25,980 561 00:29:25,980 --> 00:29:29,260 Dit is 'n baie handig opdrag om te weet in die algemeen. 562 00:29:29,260 --> 00:29:31,640 Daar is 'n paar alternatiewe vir Grep wat veronderstel is om meer te wees 563 00:29:31,640 --> 00:29:36,780 programmeerder vriendelik, maar ek is geneig nog steeds terug te val op grep. 564 00:29:36,780 --> 00:29:38,030 Vrae? 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 >> Is daar ander opdragte? 568 00:29:42,520 --> 00:29:45,270 Oh. 569 00:29:45,270 --> 00:29:48,370 Net 'n eenmalige een wat ek altyd vind om pret is biologies. 570 00:29:48,370 --> 00:29:55,610 So sien wanneer ek in hierdie pragtige full-screen af, ek het geen soos top 571 00:29:55,610 --> 00:29:56,720 toolbar of iets nie. 572 00:29:56,720 --> 00:29:59,530 So Cal gee my net 'n mooi klein kalender wat is reg 573 00:29:59,530 --> 00:30:02,380 nou afgesny, Ek neem. 574 00:30:02,380 --> 00:30:04,770 Maar mooi klein opdrag. 575 00:30:04,770 --> 00:30:06,540 >> JOSEPH: Dit is [onhoorbaar]. 576 00:30:06,540 --> 00:30:09,170 Ander opdragte wat jy mag hê gesien sluit klang en maak. 577 00:30:09,170 --> 00:30:11,180 Ons gaan oor hulle in meer besonderhede later. 578 00:30:11,180 --> 00:30:13,400 Maar as jy het gewerk die PSET, moet jy 579 00:30:13,400 --> 00:30:15,160 vertroud met hulle. 580 00:30:15,160 --> 00:30:16,640 >> ROB: Alle reg. 581 00:30:16,640 --> 00:30:18,520 Vrae oor command line dinge? 582 00:30:18,520 --> 00:30:22,450 583 00:30:22,450 --> 00:30:23,260 Alle regte. 584 00:30:23,260 --> 00:30:27,416 So laat ons beweeg na 'n paar C-verwante dinge. 585 00:30:27,416 --> 00:30:28,666 Veranderlikes wiskunde. 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 So, net soos wat ons gehad het wiskunde in nuuts af, jy kan ook gebruik wiskunde in C. 589 00:30:45,230 --> 00:30:49,270 >> Voor ons by die geheel, so veranderlikes. 590 00:30:49,270 --> 00:30:53,920 Onthou dat wanneer jy vertel 'n veranderlike soos int x of y float, jy 591 00:30:53,920 --> 00:30:56,710 te gee voordat tik die veranderlike naam. 592 00:30:56,710 --> 00:31:03,020 So tipes ons tot dusver gesien is int, vlot, dubbel, lang lang, wat ek 593 00:31:03,020 --> 00:31:06,150 weet nie eintlik as ons gesien dat so ver. 594 00:31:06,150 --> 00:31:07,700 >> Daar is 'n paar ander mense. 595 00:31:07,700 --> 00:31:09,990 Ons het sien kar. 596 00:31:09,990 --> 00:31:13,920 Daar is kort, wat is soos dit is die teenoorgestelde van lang lang waar dit 597 00:31:13,920 --> 00:31:16,650 kleiner as 'n heelgetal. 598 00:31:16,650 --> 00:31:18,580 Ons het ook gesien string. 599 00:31:18,580 --> 00:31:23,070 So, wat is spesiaal string? 600 00:31:23,070 --> 00:31:25,350 Hoekom sou ek sê dit is nie hou int? 601 00:31:25,350 --> 00:31:27,030 >> SPREKER 4: Dit maak nie regtig bestaan ​​nie. 602 00:31:27,030 --> 00:31:27,990 >> ROB: Ja. 603 00:31:27,990 --> 00:31:31,820 Dus is die enigste rede waarom ons het string is omdat wanneer jy dit doen 604 00:31:31,820 --> 00:31:33,215 hash, sluit cs50.h. 605 00:31:33,215 --> 00:31:36,530 606 00:31:36,530 --> 00:31:42,670 En ons sal sien voorbeelde van hierdie later - O, wat nie so goed hanteer nie - 607 00:31:42,670 --> 00:31:46,160 waar cs50.h is om iets te doen langs die lyne van die tipe 608 00:31:46,160 --> 00:31:49,230 def, kar ster, string. 609 00:31:49,230 --> 00:31:53,280 >> En so dit is om te sê dat ons nie eens weet wat 'n kar ster is nie. 610 00:31:53,280 --> 00:31:56,770 Maar dit sê ons wil string. 611 00:31:56,770 --> 00:32:00,250 Enige plek waar jy het al met behulp string, jy kon gewees het met behulp kar ster, 612 00:32:00,250 --> 00:32:04,670 wat eintlik 'n tipe wat bestaan ​​in die C-taal. 613 00:32:04,670 --> 00:32:06,680 Maar ons sal kry om dit. 614 00:32:06,680 --> 00:32:07,860 O ja, en dit gaan terug. 615 00:32:07,860 --> 00:32:10,170 Netjies. 616 00:32:10,170 --> 00:32:15,370 >> So dieselfde ding met Bool waar ware en valse. 617 00:32:15,370 --> 00:32:22,510 Dit is nie regtig 'n ingeboude tipe in C. Inteendeel, dit is net, het dit 618 00:32:22,510 --> 00:32:23,740 die waarde nul? 619 00:32:23,740 --> 00:32:26,200 Dan sal ons net oorweeg dit vals is. 620 00:32:26,200 --> 00:32:27,350 Het dit die waarde - 621 00:32:27,350 --> 00:32:30,530 Wel, beteken dit nie 'n waarde wat nie nul is nie? 622 00:32:30,530 --> 00:32:32,200 Dan sal ons dit oorweeg om waar te wees. 623 00:32:32,200 --> 00:32:35,940 So een is waar, twee is waar, enigiets nul is waar. 624 00:32:35,940 --> 00:32:38,710 625 00:32:38,710 --> 00:32:42,790 So dit is die. 626 00:32:42,790 --> 00:32:47,624 Vrae oor verklaar veranderlikes en veranderlike tipes en alles wat? 627 00:32:47,624 --> 00:32:48,100 Ja. 628 00:32:48,100 --> 00:32:52,384 >> SPREKER 4: Vir n lang lang, in die boek, dit het gesê dit het 'n lang lang int te wees. 629 00:32:52,384 --> 00:32:54,288 Maar net lang lang werk? 630 00:32:54,288 --> 00:32:58,210 631 00:32:58,210 --> 00:33:01,470 >> ROB: So het hierdie tipe wysigers. 632 00:33:01,470 --> 00:33:04,170 So int x. 633 00:33:04,170 --> 00:33:07,710 So kan ons ook sê unsigned int x. 634 00:33:07,710 --> 00:33:09,640 Ons kan sê kort int x. 635 00:33:09,640 --> 00:33:12,570 Ons kan lang lang sê int x. 636 00:33:12,570 --> 00:33:17,250 Maar pretty much enige van daardie dinge wat ek het net gesê, unsigned int, kort int, 637 00:33:17,250 --> 00:33:21,480 lang lang int, kan jy ontslae te raak van die int en dit net sal aanvaar 638 00:33:21,480 --> 00:33:22,510 wat jy bedoel int. 639 00:33:22,510 --> 00:33:26,045 So unsigned x, wat net beteken - 640 00:33:26,045 --> 00:33:29,400 jy weet hoe om normaalweg met 'n int, jy kan sê x is gelyk aan die negatiewe 3? 641 00:33:29,400 --> 00:33:31,636 Met 'n unsigned int, jy kan nie. 642 00:33:31,636 --> 00:33:34,480 >> Josef, en weer vir die kamera, die vraag was, wat is die verskil 643 00:33:34,480 --> 00:33:37,796 tussen lang lang int en net lank lank? 644 00:33:37,796 --> 00:33:38,410 >> ROB: Ja. 645 00:33:38,410 --> 00:33:42,850 So ek sal byna nooit skryf lang lang int. 646 00:33:42,850 --> 00:33:44,100 Ek sal 'n lang lang skryf. 647 00:33:44,100 --> 00:33:47,770 648 00:33:47,770 --> 00:33:50,636 >> Josef Enige vrae? 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 So simpel herinnering van dit is hoe Ons verklaar 'n veranderlike en inisialiseer 652 00:34:02,390 --> 00:34:04,450 die veranderlike en verklaar 'n ander veranderlike en inisialiseer 653 00:34:04,450 --> 00:34:05,870 dit alles in een stap. 654 00:34:05,870 --> 00:34:09,370 So het die verklaring van die veranderlike en die inisialisering veranderlike het nie 655 00:34:09,370 --> 00:34:11,120 om maar kan wees op dieselfde lyn. 656 00:34:11,120 --> 00:34:15,409 657 00:34:15,409 --> 00:34:20,060 >> So het ons die standaard wiskunde operateurs wat jy gebruik om - 658 00:34:20,060 --> 00:34:22,199 plus, minus, verdeling, tye. 659 00:34:22,199 --> 00:34:24,389 Daar is ook modulo, wat ons sal sien. 660 00:34:24,389 --> 00:34:29,060 Daar is nie, ten minste in C, 'n ingeboude in die krag 661 00:34:29,060 --> 00:34:31,765 magsverheffing kappie operateur. 662 00:34:31,765 --> 00:34:33,770 Wel, daar is 'n kappie-operateur, maar dit is nie mag nie. 663 00:34:33,770 --> 00:34:34,239 >> Josef Maar dit is nie magsverheffing, ja. 664 00:34:34,239 --> 00:34:36,210 >> ROB: Moenie die kappie gebruik om te aanvaar dat dit beteken 665 00:34:36,210 --> 00:34:39,980 soos kwadraat of wat ook al. 666 00:34:39,980 --> 00:34:42,289 So 'n paar dinge in te hou omgee oor afdeling. 667 00:34:42,289 --> 00:34:46,282 668 00:34:46,282 --> 00:34:48,880 Ek sal staan. 669 00:34:48,880 --> 00:34:51,315 So verklaar inisialiseer antwoord. 670 00:34:51,315 --> 00:34:54,670 So ons float antwoord sê gelyk aan 1 gedeel deur 10. 671 00:34:54,670 --> 00:34:57,500 Druk antwoord tot twee desimale plekke. 672 00:34:57,500 --> 00:35:02,180 >> En dit is die soort van ding wat ek sou 'n mens printf om uit te vind wat 673 00:35:02,180 --> 00:35:05,110 wat die heck is%, dot, 2f beteken? 674 00:35:05,110 --> 00:35:07,930 En dit net beteken, goed, ignoreer die 0.2. 675 00:35:07,930 --> 00:35:10,420 En%, f is wat ons gebruik te druk om te dryf. 676 00:35:10,420 --> 00:35:15,370 Die 0.2 sê, druk wat dryf tot twee desimale plekke. 677 00:35:15,370 --> 00:35:19,600 So hierdie program het 'n fout, en jy kan hierdie gesien voor in 'n paar 678 00:35:19,600 --> 00:35:20,870 voor CS kursus. 679 00:35:20,870 --> 00:35:22,170 Maar wat is dat die fout? 680 00:35:22,170 --> 00:35:23,050 >> SPREKER 5: Zero. 681 00:35:23,050 --> 00:35:24,130 >> ROB: Ja. 682 00:35:24,130 --> 00:35:29,630 So wanneer ons sê, antwoord gelyk 1 gedeel deur 10, ons wil die 683 00:35:29,630 --> 00:35:31,610 beantwoord word 0.1. 684 00:35:31,610 --> 00:35:37,450 Maar 1 gedeel deur 10, 1 is 'n integer, 10 'n heelgetal is. 685 00:35:37,450 --> 00:35:41,060 En so wanneer ons 'n heelgetal gedeel deur 'n heelgetal, ons gaan om terug te kry 686 00:35:41,060 --> 00:35:42,190 'n heelgetal. 687 00:35:42,190 --> 00:35:43,660 So 1 gedeel deur 10 is 0.1. 688 00:35:43,660 --> 00:35:46,760 >> Aangesien dit nodig om te gee ons 'n heelgetal, dit is net gaan om weg te gooi wat 689 00:35:46,760 --> 00:35:49,410 desimale plek en sê dat die antwoord is 0. 690 00:35:49,410 --> 00:35:55,314 En so wanneer ons druk antwoord hier, dit gaan druk 0,00. 691 00:35:55,314 --> 00:35:58,430 >> Josef, en net so 'n aantekening, is dit eintlik gooi weg wat is na die 692 00:35:58,430 --> 00:35:59,390 desimale punt. 693 00:35:59,390 --> 00:36:03,180 So as jy in plaas gehad het 6 gedeel deur 10, jy dalk dink dat dit sou gee jy 694 00:36:03,180 --> 00:36:05,200 0.6 en dan sal jy rond tot 1. 695 00:36:05,200 --> 00:36:10,520 Maar eintlik, wat gebeur wanneer dit tik take dit is dat dit druppels wat 696 00:36:10,520 --> 00:36:11,470 na die desimale punt. 697 00:36:11,470 --> 00:36:13,020 So 0,6 beteken geword 0. 698 00:36:13,020 --> 00:36:13,370 >> ROB: Ja. 699 00:36:13,370 --> 00:36:15,160 En ons sal sê afkappen vir daardie. 700 00:36:15,160 --> 00:36:21,760 So wanneer jy gooi 'n int, die desimale kapt. 701 00:36:21,760 --> 00:36:23,980 So die oplossing vir daardie - daar is eintlik twee. 702 00:36:23,980 --> 00:36:27,890 En ek gaan die tweede te doen, want hierdie een is 'n baie makliker fix. 703 00:36:27,890 --> 00:36:32,670 >> So 'n oplossing is gebruik dryf in die afdeling. 704 00:36:32,670 --> 00:36:34,720 En regtig, jy het net te maak een van hulle 'n float. 705 00:36:34,720 --> 00:36:37,400 Maar dit is 'n bietjie duideliker net beide van hulle dryf om te maak. 706 00:36:37,400 --> 00:36:41,170 So 1,0 gedeel deur 10,0 is verdeel twee dryf. 707 00:36:41,170 --> 00:36:43,970 So die antwoord sal uiteindelik 'n 'n vlot, en so sal jy 708 00:36:43,970 --> 00:36:48,050 korrek druk 0,10 hier. 709 00:36:48,050 --> 00:36:52,220 >> Iets wat nie so goed werk oor wat is goed, seker nie, was dit maklik 710 00:36:52,220 --> 00:36:56,240 genoeg om te skakel na 'n 1 dryf deur dit 1,0. 711 00:36:56,240 --> 00:37:02,180 Maar wat as plaas moes ons twee heelgetalle soos int x is gelyk aan 1 en int y 712 00:37:02,180 --> 00:37:05,660 gelyk aan 10, en dan het ons wou om te doen x gedeel deur y? 713 00:37:05,660 --> 00:37:10,420 So dit is nie maklik om net doen X.0 of iets. 714 00:37:10,420 --> 00:37:12,790 >> So het die fix te wat beslissende. 715 00:37:12,790 --> 00:37:19,780 So gooi is 'n manier om te skakel C van die een veranderlike tipe na 'n ander. 716 00:37:19,780 --> 00:37:22,320 So hier, 1 'n heelgetal is. 717 00:37:22,320 --> 00:37:27,050 En deur om hierdie float in die voorkant van dit is ons beslissende 1 na 'n float. 718 00:37:27,050 --> 00:37:30,350 En so sal dit omskep die 1 na 'n 1.0. 719 00:37:30,350 --> 00:37:33,380 En dit sal omskep die 10 tot 'n 10.0. 720 00:37:33,380 --> 00:37:36,790 >> En dan dinge optree soortgelyk aan die vorige weergawe het ons net gewys 721 00:37:36,790 --> 00:37:42,190 waar, soos verwag, kry ons 0,10 en dit sal druk nie. 722 00:37:42,190 --> 00:37:44,120 En ons kan dit doen met veranderlikes, ook. 723 00:37:44,120 --> 00:37:47,376 Dus kan ons sê, float x gedeel deur float y. 724 00:37:47,376 --> 00:37:48,626 >> Josef Enige vrae? 725 00:37:48,626 --> 00:37:54,182 726 00:37:54,182 --> 00:38:00,090 >> ROB: So, net soos in 'n gereelde wiskunde, ons het operateur voorrang. 727 00:38:00,090 --> 00:38:06,960 So in wiskunde klas, is jy meer geneig om dit te noem volgorde van bedrywighede. 728 00:38:06,960 --> 00:38:09,890 Hier is die amptelike term is operateur voorrang. 729 00:38:09,890 --> 00:38:15,230 Maar die operateur voorrang geniet, of die meeste operateurs, is as jy sou verwag. 730 00:38:15,230 --> 00:38:22,660 >> So, net soos in wiskunde, 2 keer 10 is gaan word nouer as gegroepeer 731 00:38:22,660 --> 00:38:25,410 hierdie 10 gedeel deur 2 en dan 2. 732 00:38:25,410 --> 00:38:29,745 Die volgorde van bedrywighede, sal dit doen 2 tye 10, 10, gedeel deur 2, en dan 733 00:38:29,745 --> 00:38:32,720 dit sal nie 20 plus 5 plus 2. 734 00:38:32,720 --> 00:38:37,020 So dit is as wat verwag is, en jy kan gebruik hakies aan te groep uitdrukkings. 735 00:38:37,020 --> 00:38:41,063 Jy kan nie vierkantige hakies gebruik tot die groep se uitdrukkings. 736 00:38:41,063 --> 00:38:41,544 Ja? 737 00:38:41,544 --> 00:38:43,468 >> SPREKER 5: Kan jy werklik net terug te gaan 'n sekonde? 738 00:38:43,468 --> 00:38:47,316 Kan jy gooi 'n int na 'n string? 739 00:38:47,316 --> 00:38:53,330 >> ROB: So in C, kan jy enigiets gooi jy wil enigiets wat jy wil. 740 00:38:53,330 --> 00:38:55,600 Dit beteken nie dat dit 'n goeie ding om te doen. 741 00:38:55,600 --> 00:38:59,760 So wanneer jy gooi 'n int te 'n string, wat beteken - 742 00:38:59,760 --> 00:39:03,240 en ons sal kry in hierdie baie meer deeglik - 743 00:39:03,240 --> 00:39:03,720 >> Josef Heelwat later. 744 00:39:03,720 --> 00:39:06,840 >> ROB: Ek wou nie veel later sê so ek probeer om my sin te verander. 745 00:39:06,840 --> 00:39:13,370 Ons kry in dit baie meer deeglik later waar regtig wanneer jy 'n 746 00:39:13,370 --> 00:39:14,810 string veranderlike - 747 00:39:14,810 --> 00:39:17,160 so 'n string kan arbitrêr wees lank, reg? 748 00:39:17,160 --> 00:39:21,850 En ons het gesê dat 'n int is vier grepe en lang lang agt 749 00:39:21,850 --> 00:39:23,620 grepe en 'n float is vier grepe. 750 00:39:23,620 --> 00:39:29,520 So 'n string, net soos 'n int, het slegs 'n sekere aantal grepe om dit te. 751 00:39:29,520 --> 00:39:31,800 En dit sal vier grepe. 752 00:39:31,800 --> 00:39:34,750 >> Maar 'n string kan mooi wees arbitrêr lang, reg? 753 00:39:34,750 --> 00:39:40,190 So hallo wêreld reeds, as dit is 10 karakters of wat ook al, wat reeds 754 00:39:40,190 --> 00:39:42,670 gaan wees oor die 4 grepe Ek kan inpas in 'n string. 755 00:39:42,670 --> 00:39:51,140 En so hoe snare regtig werk, is dat hulle is waar in die geheue dat string 756 00:39:51,140 --> 00:39:52,380 word gehou. 757 00:39:52,380 --> 00:39:57,290 >> En so hier, as ek sê string x gelyk Hello World, binnekant van x is 758 00:39:57,290 --> 00:40:01,840 net sê, o, Hello World gestoor op hierdie spesifieke plek in die geheue. 759 00:40:01,840 --> 00:40:07,060 So as ons probeer om 'n heelgetal te gooi nie 'n string, dan het ons probeer om te interpreteer 760 00:40:07,060 --> 00:40:10,500 'n paar random deel van die geheue as 'n string. 761 00:40:10,500 --> 00:40:14,465 En dit byna altyd breek dinge. 762 00:40:14,465 --> 00:40:17,040 >> Josef Maar as wat verwar jy, sal ons wees wat dit 763 00:40:17,040 --> 00:40:17,550 meer in diepte later. 764 00:40:17,550 --> 00:40:17,850 >> ROB: Ja. 765 00:40:17,850 --> 00:40:20,540 Dit is waar jy gaan te kry in wysers. 766 00:40:20,540 --> 00:40:25,485 En dit is 'n belangrike stuk twee weke van hierdie kursus. 767 00:40:25,485 --> 00:40:28,275 >> SPREKER 6: Werk dit soos voorwerpe in ander tale of nie regtig? 768 00:40:28,275 --> 00:40:34,050 >> ROB: So in ander tale, voorwerpe verteenwoordig sal word met behulp van wysers. 769 00:40:34,050 --> 00:40:37,070 770 00:40:37,070 --> 00:40:38,793 Dit is nie dieselfde ding nie, al is. 771 00:40:38,793 --> 00:40:42,110 772 00:40:42,110 --> 00:40:42,910 Enige gedagtes? 773 00:40:42,910 --> 00:40:43,760 >> Josef No 774 00:40:43,760 --> 00:40:44,185 Geen gedagtes. 775 00:40:44,185 --> 00:40:44,980 >> ROB: OK. 776 00:40:44,980 --> 00:40:46,994 >> Josef Volgende. 777 00:40:46,994 --> 00:40:48,255 >> ROB: Net gaan met dit. 778 00:40:48,255 --> 00:40:48,670 Alle regte. 779 00:40:48,670 --> 00:40:51,120 So modulo. 780 00:40:51,120 --> 00:40:53,900 Net soos ons het plus, minus, verdeel en vermeerder. 781 00:40:53,900 --> 00:40:56,720 So modulo is een wat jy kan nie gesien het nie. 782 00:40:56,720 --> 00:40:59,540 En dit is net sê, gee vir my die res van. 783 00:40:59,540 --> 00:41:02,850 So 55% 10. 784 00:41:02,850 --> 00:41:06,840 Die res van doen 55 verdeel 10 sou wees 5. 785 00:41:06,840 --> 00:41:09,630 So 55% 10 is 5. 786 00:41:09,630 --> 00:41:12,260 En 3% 5 sou wees 3. 787 00:41:12,260 --> 00:41:14,180 8% 8 sal wees 0. 788 00:41:14,180 --> 00:41:15,903 16% 15 sal wees 1. 789 00:41:15,903 --> 00:41:20,670 >> Josef Een ding om daarop te let met hierdie, Ook is dit dalk nie werk soos verwag 790 00:41:20,670 --> 00:41:22,700 as jy 'n negatiewe getal. 791 00:41:22,700 --> 00:41:26,215 So negatiewe 5% 4, sommige mense dalk dink dit is - 792 00:41:26,215 --> 00:41:28,890 793 00:41:28,890 --> 00:41:33,808 wat sou jy dink negatiewe 5% 4 sou wees? 794 00:41:33,808 --> 00:41:34,792 >> SPREKER 5: One. 795 00:41:34,792 --> 00:41:37,920 >> Josef So sommige mense sê een, sommige mense sê negatiewe een. 796 00:41:37,920 --> 00:41:38,450 Maar wat - 797 00:41:38,450 --> 00:41:40,820 >> ROB: Ek sou nie eens sê een van hulle. 798 00:41:40,820 --> 00:41:42,370 >> Josef Twee, jammer. 799 00:41:42,370 --> 00:41:43,240 Sommige mense sê - 800 00:41:43,240 --> 00:41:43,450 >> ROB: Drie. 801 00:41:43,450 --> 00:41:43,800 >> Josef Drie? 802 00:41:43,800 --> 00:41:44,890 >> ROB: Negatief - 803 00:41:44,890 --> 00:41:45,950 wat was die - negatiewe vyf - 804 00:41:45,950 --> 00:41:47,100 >> Josef Drie, drie, drie. 805 00:41:47,100 --> 00:41:48,450 Jammer. 806 00:41:48,450 --> 00:41:51,910 Omdat modulo, oor die algemeen, wanneer jy elders gesien het, het dit gewoonlik beteken 807 00:41:51,910 --> 00:41:54,000 terug 'n positiewe getal, reg? 808 00:41:54,000 --> 00:42:01,160 >> ROB: So wanneer ons sê in wiskunde,% 10's, hulle is geneig om te wil hê jy moet gee - 809 00:42:01,160 --> 00:42:05,980 As ons mod deur 10, dan verwag ons te 'n getal tussen 0 en 9. 810 00:42:05,980 --> 00:42:09,860 In hier, dit is nie die geval dat jy kry negatiewe getalle teruggekeer. 811 00:42:09,860 --> 00:42:15,898 >> Josef so negatief 5% 4 sal negatiewe 1 wees. 812 00:42:15,898 --> 00:42:19,325 >> ROB: Maar dit is selde dat jy mod-ing negatiewe getalle te begin. 813 00:42:19,325 --> 00:42:25,490 814 00:42:25,490 --> 00:42:25,970 Slaan hierdie. 815 00:42:25,970 --> 00:42:27,314 >> Josef Ja. 816 00:42:27,314 --> 00:42:29,420 >> ROB: Meh. 817 00:42:29,420 --> 00:42:29,990 OK. 818 00:42:29,990 --> 00:42:36,400 So 'n laaste ding om te wys oor dryf is dit is 'n gevaarlike gedrag, 819 00:42:36,400 --> 00:42:39,850 maar dryf is nie 'n presiese verteenwoordiging. 820 00:42:39,850 --> 00:42:46,190 So terug na grepe gaan weer, onthou dat 'n int is altyd vier grepe en 'n 821 00:42:46,190 --> 00:42:47,830 float is altyd vier grepe. 822 00:42:47,830 --> 00:42:51,340 So Lucas se voorbeeld is redelik goed. 823 00:42:51,340 --> 00:42:55,730 >> So dink 1 gedeel deur 3. 824 00:42:55,730 --> 00:42:57,800 So 0,3333333. 825 00:42:57,800 --> 00:43:03,540 As ek net 32 ​​stukkies, hoe kan Ek slaan 0,33333 presies? 826 00:43:03,540 --> 00:43:07,250 En dalk, vir watter rede ookal, sê jy, Alle reg, goed, laat ons net sê 827 00:43:07,250 --> 00:43:13,210 dat hierdie spesifieke 1011001, laat net sê dat moet 0,333333. 828 00:43:13,210 --> 00:43:16,960 Wel, jy het slegs 'n beperkte aantal daardie stukkies, so dit is onmoontlik om te 829 00:43:16,960 --> 00:43:22,550 stel elke enkele Wisseltrofee punt waarde gegee net 32 ​​stukkies. 830 00:43:22,550 --> 00:43:25,580 >> Wel, dit is onmoontlik om enige te verteenwoordig swaai punt waarde gegee oneindige - 831 00:43:25,580 --> 00:43:28,480 Wel, gegewe 'n beperkte aantal stukkies. 832 00:43:28,480 --> 00:43:38,265 So die probleem hier is, wel, toe ons gebruik te druk tot twee desimale plekke, 833 00:43:38,265 --> 00:43:42,000 ons het korrek die antwoord kry 0,10. 834 00:43:42,000 --> 00:43:47,510 Maar onder die enjinkap, dit is regtig gestoor word so na as moontlik aan 835 00:43:47,510 --> 00:43:51,790 0.10 as daardie stukkies kan verteenwoordig. 836 00:43:51,790 --> 00:43:53,200 Is dit op die volgende skuif? 837 00:43:53,200 --> 00:43:53,830 Of is dit nie? 838 00:43:53,830 --> 00:43:54,660 >> Josef Ja, dit is wat. 839 00:43:54,660 --> 00:43:55,750 >> ROB: Blegh, blegh. 840 00:43:55,750 --> 00:43:57,760 >> Josef Ja, jy kan net trek die notas van 'n bietjie. 841 00:43:57,760 --> 00:43:59,700 >> ROB: Ek gaan net om te vergroot op die laaste op daardie. 842 00:43:59,700 --> 00:44:00,950 Oh my gosh, dit is [onhoorbaar]. 843 00:44:00,950 --> 00:44:06,089 844 00:44:06,089 --> 00:44:08,300 So dat die getal. 845 00:44:08,300 --> 00:44:12,300 Dit is wat gedruk sal word as ons hardloop die program. 846 00:44:12,300 --> 00:44:20,340 En sien dit is nie regtig 'n groot deal As ons net omgee oor soos 847 00:44:20,340 --> 00:44:21,920 02:58 desimale plekke. 848 00:44:21,920 --> 00:44:26,700 Soos ons net oorspronklik gedruk 0.10, en dit is hoekom ons het niks verkeerd nie. 849 00:44:26,700 --> 00:44:31,380 Maar wanneer ons begin om in die presiese, presiese aantal wat dit is 850 00:44:31,380 --> 00:44:35,660 verteenwoordig, sien ons dat dit nie kan presies verteenwoordig 0,1. 851 00:44:35,660 --> 00:44:40,900 >> En 'n deel van die probleem hier is soos, Alle reg, dit is goed, maar, wel, 852 00:44:40,900 --> 00:44:46,120 eerste, wat as ons probeer om te doen, antwoord gelyk aan 0,1 gelyk? 853 00:44:46,120 --> 00:44:49,200 Is dit gaan om terug te keer waar of vals? 854 00:44:49,200 --> 00:44:51,850 En so dit is moeilik om te sê. 855 00:44:51,850 --> 00:44:53,330 Ek dink dit eintlik kan terugkeer waar. 856 00:44:53,330 --> 00:44:55,265 Sal dit die eerste keer - 857 00:44:55,265 --> 00:44:56,180 Ek weet nie. 858 00:44:56,180 --> 00:45:00,090 Die antwoord is wanneer jy begin handel met drywende punt waardes, jy mooi 859 00:45:00,090 --> 00:45:05,150 veel moet nie gebruik word om gelykheid As gevolg van hierdie onakkuraatheid. 860 00:45:05,150 --> 00:45:09,470 >> En vir al wat jy weet, is dit die honderdste desimale plek wat die 861 00:45:09,470 --> 00:45:13,670 swaai punt was nie in staat korrek te hanteer. 862 00:45:13,670 --> 00:45:18,180 En so gelykheid sal net nie, selfs Al is die getal - as jy was 863 00:45:18,180 --> 00:45:24,450 met presiese syfers, die getalle moet het juis dieselfde. 864 00:45:24,450 --> 00:45:27,790 Dit is oor die verloop van soos 50 berekeninge met behulp van hierdie swaai 865 00:45:27,790 --> 00:45:30,270 punt waardes, kan die fout bou op en op en op, en 866 00:45:30,270 --> 00:45:31,125 Dinge word net verkeerd. 867 00:45:31,125 --> 00:45:33,870 >> Josef, en daar het regtig bekende voorbeelde van hierdie gebeurtenis. 868 00:45:33,870 --> 00:45:37,190 Soos NASA ingenieurs gekry het hierdie verkeerd is, wat veroorsaak dat vuurpyle te ontplof in 869 00:45:37,190 --> 00:45:38,665 die lug nadat hulle is van stapel gestuur. 870 00:45:38,665 --> 00:45:41,490 En baie van die kwessies soos dit. 871 00:45:41,490 --> 00:45:41,956 So ja. 872 00:45:41,956 --> 00:45:45,218 >> SPREKER 6: Wanneer jy sê 0,3 f, beteken dit kortknip die res? 873 00:45:45,218 --> 00:45:46,468 Of is dit rond op of af? 874 00:45:46,468 --> 00:45:48,800 875 00:45:48,800 --> 00:45:50,200 >> ROB: Sal printf rondom? 876 00:45:50,200 --> 00:45:52,180 >> JOSEPH: Ek dink printf kapt. 877 00:45:52,180 --> 00:45:52,640 >> ROB: OK. 878 00:45:52,640 --> 00:45:59,890 So kan ons insgelyks gaan in die teenoorgestelde rigting van hierdie waar, in hierdie geval, 879 00:45:59,890 --> 00:46:03,320 die naaste kan dit stel 0.1 was met hierdie nommer. 880 00:46:03,320 --> 00:46:06,820 Die naaste is dit dalk in staat wees om verteenwoordig 0.2 in die teenoorgestelde 881 00:46:06,820 --> 00:46:11,420 rigting, ,199999996356 of iets. 882 00:46:11,420 --> 00:46:17,480 So as ons gaan in die rigting van die dinge, dan printf 0,3 f sou terugkeer 883 00:46:17,480 --> 00:46:20,866 1,99 in plaas van 2,00. 884 00:46:20,866 --> 00:46:22,960 >> Josef, en ek is nie heeltemal seker op daardie. 885 00:46:22,960 --> 00:46:25,430 Jy wil dalk 'n klein, min te skryf program om net seker te maak dat. 886 00:46:25,430 --> 00:46:29,370 >> ROB: Al wat ons is seker is, is dat as jy probeer om dit te gooi nie 'n 887 00:46:29,370 --> 00:46:33,660 int, en gooi 'n int gaan veroorsaak dat dit die desimale geselekteer, indien 888 00:46:33,660 --> 00:46:38,140 jy probeer om te gooi 1.9999999 na 'n int, kry jy 1. 889 00:46:38,140 --> 00:46:41,440 En so moet jy oor die algemeen gebruik om die round funksie in die wiskunde biblioteek. 890 00:46:41,440 --> 00:46:44,190 891 00:46:44,190 --> 00:46:45,440 Vrae? 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 >> Josef So beweeg op aan voorwaardes en Boolse uitdrukkings. 895 00:46:54,000 --> 00:46:58,120 So jy het hierdie gesien het nie. 896 00:46:58,120 --> 00:47:07,420 En eintlik, laat my maak seker my rekenaar in die regte formaat hier. 897 00:47:07,420 --> 00:47:08,670 Ruimte. 898 00:47:08,670 --> 00:47:10,630 899 00:47:10,630 --> 00:47:13,870 Jammer, ons gaan hê om te gaan 'n bietjie met donker aan die kante. 900 00:47:13,870 --> 00:47:15,830 >> Maar ja, julle het gesien dit voor in krap. 901 00:47:15,830 --> 00:47:19,930 So hierdie reg hier is 'n uitdrukking wat gebruik word in 902 00:47:19,930 --> 00:47:21,250 'n voorwaardelike verklaring. 903 00:47:21,250 --> 00:47:23,930 So beantwoord groter as nul vertel waar of vals is. 904 00:47:23,930 --> 00:47:26,530 En dit is werklik belangrik, want hulle toelaat om ons te voer 905 00:47:26,530 --> 00:47:28,670 logika in ons kode. 906 00:47:28,670 --> 00:47:32,820 >> So byvoorbeeld, is dit 'n program geskryf in Scratch dat die gebruiker vra 907 00:47:32,820 --> 00:47:36,980 vir 'n heelgetal en vertel hulle of Die heelgetal dat hulle vir jou gegee het, was 'n 908 00:47:36,980 --> 00:47:38,690 positiewe of negatiewe getal. 909 00:47:38,690 --> 00:47:42,980 En die sukses hier te sien is jy die eerste druk van die verklaring, 910 00:47:42,980 --> 00:47:43,870 gee my 'n heelgetal. 911 00:47:43,870 --> 00:47:45,980 En dan vra jy hulle vir 'n heelgetal. 912 00:47:45,980 --> 00:47:49,870 >> En dan moet jy gebruik voorwaardelike logika oor hier om te kyk of dat die getal 913 00:47:49,870 --> 00:47:52,030 was eintlik groter as nul is of nie. 914 00:47:52,030 --> 00:47:58,960 So hier het ons 'n Boole-uitdrukking binnekant van 'n voorwaardelike As verklaring. 915 00:47:58,960 --> 00:48:00,660 Is daar enige vrae? 916 00:48:00,660 --> 00:48:03,030 Is daar enige vrae oor wat? 917 00:48:03,030 --> 00:48:03,950 OK. 918 00:48:03,950 --> 00:48:06,140 >> So is daar meer as net groter as, natuurlik. 919 00:48:06,140 --> 00:48:10,385 Jy kan bou Boolse uitdrukkings Met die meeste van die soort van dinge wat jy 920 00:48:10,385 --> 00:48:11,150 sou dink in wiskunde. 921 00:48:11,150 --> 00:48:12,370 So groter as. 922 00:48:12,370 --> 00:48:13,740 Dit moet 'n minder as. 923 00:48:13,740 --> 00:48:14,990 Jammer. 924 00:48:14,990 --> 00:48:18,520 925 00:48:18,520 --> 00:48:19,760 En die spasiëring. 926 00:48:19,760 --> 00:48:22,971 >> ROB: God verbied jy laat dit. 927 00:48:22,971 --> 00:48:23,620 >> JOSEPH: Alle reg. 928 00:48:23,620 --> 00:48:25,950 So groter as, minder as, groter as, of gelyk aan, minder 929 00:48:25,950 --> 00:48:27,070 as, of gelyk aan. 930 00:48:27,070 --> 00:48:31,980 Ons gebruik dubbel gelykes om te kyk vir gelykheid, omdat enkele gelyk middel 931 00:48:31,980 --> 00:48:32,810 opdrag, reg? 932 00:48:32,810 --> 00:48:33,140 Ja. 933 00:48:33,140 --> 00:48:37,130 En dan kan ons ook nie gelyk nie deur gebruik uitroepteken, gelyk. 934 00:48:37,130 --> 00:48:41,530 >> En dit uitroepteken simbool kan ook uitgebrei word sodat as jy wil 935 00:48:41,530 --> 00:48:44,050 enige soort van Boole te Keer uitdrukking, kan jy dit doen. 936 00:48:44,050 --> 00:48:48,530 So dit sal evalueer om waar te slegs indien die antwoord is minder 937 00:48:48,530 --> 00:48:51,240 as of gelyk aan nul. 938 00:48:51,240 --> 00:48:53,950 Enige vrae oor wat? 939 00:48:53,950 --> 00:48:55,180 OK. 940 00:48:55,180 --> 00:48:58,840 >> So kan jy ook kombineer hierdie uitdrukkings gebruik logiese en en 941 00:48:58,840 --> 00:48:59,790 logies. 942 00:48:59,790 --> 00:49:03,530 So dit is net die En simbool, wat moet skuif, 7 wees. 943 00:49:03,530 --> 00:49:07,720 En dit is die pyp simbool, wat nie 'n laer geval L. Dit is die een 944 00:49:07,720 --> 00:49:09,440 dit is reg bo jou Tik sleutel. 945 00:49:09,440 --> 00:49:12,870 So gebruik jy twee van hierdie te simboliseer logiese en die logiese Or. 946 00:49:12,870 --> 00:49:18,180 >> So dit sal slegs terugkeer waar as antwoord is een, twee, drie, of vier. 947 00:49:18,180 --> 00:49:23,030 En dit sal net terug waar as antwoord is verder as dit aan weerskante. 948 00:49:23,030 --> 00:49:26,190 So dit is nie een, twee, drie, of vier. 949 00:49:26,190 --> 00:49:28,385 En die manier waarop jy wil gebruik wat in 'n uitdrukking - 950 00:49:28,385 --> 00:49:29,990 >> ROB: Of 'n nul of 'n vyf. 951 00:49:29,990 --> 00:49:32,200 >> Josef Zero of 'n vyf. 952 00:49:32,200 --> 00:49:32,380 Jammer. 953 00:49:32,380 --> 00:49:33,320 Ja, ja, ja. 954 00:49:33,320 --> 00:49:34,180 OK. 955 00:49:34,180 --> 00:49:38,980 En nou verby hier, op dieselfde manier wat jy sou daardie uitdrukking gebruik, 'n kleiner 956 00:49:38,980 --> 00:49:42,000 uitdrukking kant van 'n As voorwaardelike verklaring, sal jy dit ook gebruik om die 957 00:49:42,000 --> 00:49:47,800 dieselfde manier deur net om dit binne die hakies van die As verklaring. 958 00:49:47,800 --> 00:49:54,020 So hierdie printf sal slegs brand indien antwoord is een, twee, drie, of vier. 959 00:49:54,020 --> 00:49:56,002 Enige vrae oor die kombinasie uitdrukkings? 960 00:49:56,002 --> 00:50:00,450 961 00:50:00,450 --> 00:50:04,240 >> So is daar 'n ander voorwaardelike Konstrueer ons noem 'n As / Else. 962 00:50:04,240 --> 00:50:08,120 So basies, dit nou beteken, OK, as iets wat ek wou kyk nie 963 00:50:08,120 --> 00:50:11,600 waar is, dan gaan na die Else en verrig wat ander aksie. 964 00:50:11,600 --> 00:50:15,570 So in hierdie geval, het ek gevra die gebruiker vir 'n heelgetal. 965 00:50:15,570 --> 00:50:17,790 Is die heelgetal groter as nul? 966 00:50:17,790 --> 00:50:18,310 Ja? 967 00:50:18,310 --> 00:50:20,100 Wel, dan is hulle opgetel 'n positiewe getal. 968 00:50:20,100 --> 00:50:22,320 Indien nie, dan moet dit negatief of 'n nul. 969 00:50:22,320 --> 00:50:27,530 So jy pluk 'n negatiewe getal of 'n nul in hierdie geval. 970 00:50:27,530 --> 00:50:29,235 Ja. 971 00:50:29,235 --> 00:50:30,485 Of 'n nul. 972 00:50:30,485 --> 00:50:36,320 973 00:50:36,320 --> 00:50:39,300 >> En dan het ons ook Indien / Else, As en anders. 974 00:50:39,300 --> 00:50:45,640 So dit laat ons voer 'n reeks van dinge net as die eerste mense faal. 975 00:50:45,640 --> 00:50:49,540 So in hierdie geval, nou is ons die maak van die laaste een wat jy kies nul. 976 00:50:49,540 --> 00:50:53,080 So as hulle nie opgetel 'n positiewe of 'n negatiewe getal is, dan moet hulle 977 00:50:53,080 --> 00:50:53,640 opgetel nul. 978 00:50:53,640 --> 00:50:56,720 So dit gaan net af in die ketting soos hierdie. 979 00:50:56,720 --> 00:50:59,960 >> So 'n voorbeeld van hoe 'n As verskil van - 980 00:50:59,960 --> 00:51:02,590 'n As / Else is anders net 'n reeks van Ifs. 981 00:51:02,590 --> 00:51:07,680 En dit is 'n algemene vraag wat mense vra is, goed, as jy soos 'n 982 00:51:07,680 --> 00:51:11,265 95 in CS50, wat sal hierdie program vertel nie? 983 00:51:11,265 --> 00:51:12,600 >> SPREKER 5: Jy het 'n A. 984 00:51:12,600 --> 00:51:13,490 >> Josef Ja. 985 00:51:13,490 --> 00:51:14,960 Jy het elke enkele een van daardie reg. 986 00:51:14,960 --> 00:51:17,130 Jy het 'n A, jy het 'n B, jy 'n C en 'n D, reg? 987 00:51:17,130 --> 00:51:19,770 So al hierdie geëvalueer kry in orde is. 988 00:51:19,770 --> 00:51:23,570 Dus, terwyl 'n 95 is groter as 90 is, is dit ook groter as 80 is, is dit ook 989 00:51:23,570 --> 00:51:25,790 groter as 70, en dit is ook groter as 60. 990 00:51:25,790 --> 00:51:27,620 So jy het al van daardie grade. 991 00:51:27,620 --> 00:51:31,630 En ek neem aan jy sou wil net die A. 992 00:51:31,630 --> 00:51:34,060 >> Die manier om dit te los, is om te vervang dié met Else / As 's. 993 00:51:34,060 --> 00:51:37,540 So in hierdie scenario, sien dat 95 is groter as 90, en dan is dit 994 00:51:37,540 --> 00:51:38,885 nie die res evalueer van die state. 995 00:51:38,885 --> 00:51:41,900 996 00:51:41,900 --> 00:51:43,150 Enige vrae oor wat? 997 00:51:43,150 --> 00:51:48,580 998 00:51:48,580 --> 00:51:52,470 >> So is daar 'n ander soort van voorwaardelike struktuur wat ons hier het wat ons 999 00:51:52,470 --> 00:51:53,390 roep 'n skakelaar verklaring. 1000 00:51:53,390 --> 00:51:57,390 So dit kan jy basies kyk wat die waarde van 'n nommer wat jy sit 1001 00:51:57,390 --> 00:51:59,000 in die skakelaar stelling is. 1002 00:51:59,000 --> 00:52:03,200 So in hierdie scenario, ons skakel op n, en ons sê, o, as n 1003 00:52:03,200 --> 00:52:04,710 een, dan druk die verklaring. 1004 00:52:04,710 --> 00:52:07,910 En dan breek, wat beteken uitgang uit die skakelaar verklaring. 1005 00:52:07,910 --> 00:52:12,670 >> As dit nie was nie een nie, dan, wel, net uiteindelik seker al daardie gevalle. 1006 00:52:12,670 --> 00:52:16,280 En so is dit kontroleer of dit een of twee of drie, en dit druk dienooreenkomstig. 1007 00:52:16,280 --> 00:52:19,780 En wat van hierdie standaard navraag hier middel is as hulle nie 'n tree 1008 00:52:19,780 --> 00:52:21,690 van daardie, dan sê ongeldig. 1009 00:52:21,690 --> 00:52:25,910 So kom ons sê ek vra vir 'n en die gebruiker gee my vier. 1010 00:52:25,910 --> 00:52:29,470 Wel, dit ooreenstem met een van daardie gevalle so dit sal druk uit wat in die 1011 00:52:29,470 --> 00:52:30,540 standaard afdeling. 1012 00:52:30,540 --> 00:52:31,180 Ja, bevraagteken? 1013 00:52:31,180 --> 00:52:32,614 >> SPREKER 5: Kan jy Boole gebruik uitdrukkings in plaas van 1014 00:52:32,614 --> 00:52:33,570 een, twee, of drie? 1015 00:52:33,570 --> 00:52:36,940 >> Josef Dus die vraag is wat jy kan gebruik Boolse uitdrukkings in plaas van een, 1016 00:52:36,940 --> 00:52:37,940 twee en drie? 1017 00:52:37,940 --> 00:52:40,520 En in C, ek glo jy kan dit nie doen nie. 1018 00:52:40,520 --> 00:52:44,320 Maar in ander tale, wat jy dalk ontmoeting aan die einde van die 1019 00:52:44,320 --> 00:52:46,460 semester soos JavaScript, jy kan. 1020 00:52:46,460 --> 00:52:50,050 Wel, sou jy eers bereken dat die waarde en dan gebruik dit in die 1021 00:52:50,050 --> 00:52:50,650 skakel verklaring. 1022 00:52:50,650 --> 00:52:50,930 Ja? 1023 00:52:50,930 --> 00:52:54,760 >> ROB: So deel van die voordeel van skakelaar state is dink as jy dit gedoen het 1024 00:52:54,760 --> 00:52:58,680 as 'n As / Else, so asof n gelyk gelyk aan een of wat ook al. 1025 00:52:58,680 --> 00:53:00,300 Else / As n gelyk is gelyk aan twee, wat ook al. 1026 00:53:00,300 --> 00:53:01,960 Else / As n gelyk is gelyk aan drie. 1027 00:53:01,960 --> 00:53:05,930 So die manier waarop die program sou loop, is dit sou agtermekaar gaan af die lys 1028 00:53:05,930 --> 00:53:07,500 en kyk, is N een? 1029 00:53:07,500 --> 00:53:08,040 Nee. 1030 00:53:08,040 --> 00:53:09,070 Is n twee? 1031 00:53:09,070 --> 00:53:09,490 Nee. 1032 00:53:09,490 --> 00:53:10,940 Is n drie? 1033 00:53:10,940 --> 00:53:11,710 Ja. 1034 00:53:11,710 --> 00:53:12,610 Doen dit. 1035 00:53:12,610 --> 00:53:15,270 >> Terwyl met skakelaar state, is dit eintlik in staat te stel om dit te wees 1036 00:53:15,270 --> 00:53:16,360 baie vinnig. 1037 00:53:16,360 --> 00:53:19,550 En so gou as wat dit sê skakelaar, dit sê, alles reg, n is twee, ek is 1038 00:53:19,550 --> 00:53:23,060 onmiddellik gaan om te spring na die plek waar Ek is veronderstel om te gaan uitvoer. 1039 00:53:23,060 --> 00:53:26,080 Ek gaan nie eers te kontroleer, is n mens, is N twee? 1040 00:53:26,080 --> 00:53:28,860 Dit kan onmiddellik begin doen wat dit veronderstel is om te doen. 1041 00:53:28,860 --> 00:53:33,830 >> En as gevolg van dat, dit kan nie neem Boole voorwaardes. 1042 00:53:33,830 --> 00:53:36,480 Of anders dit sal moet doen om die volgorde, soos al die regte, is n 1043 00:53:36,480 --> 00:53:37,820 groter as nul? 1044 00:53:37,820 --> 00:53:41,140 Anders is n groter as 10 of wat ook al. 1045 00:53:41,140 --> 00:53:44,780 >> Josef In hierdie geval, as jy gebruik As / Else, As, dan die oorskakeling 1046 00:53:44,780 --> 00:53:47,792 hardloop ongeveer drie keer vinniger as die As / Else, As. 1047 00:53:47,792 --> 00:53:53,060 1048 00:53:53,060 --> 00:53:56,040 Ons kan die skakelaar te organiseer in sulke 'n manier wat ons nie breek nie 1049 00:53:56,040 --> 00:53:57,520 na elk van die gevalle. 1050 00:53:57,520 --> 00:54:00,960 So in hierdie geval, ek skeiding die getalle wat ons kies in een en 1051 00:54:00,960 --> 00:54:04,250 twee is nie groot getalle en drie wat 'n hoë getal. 1052 00:54:04,250 --> 00:54:08,290 >> So in hierdie geval, as n een of twee, is dit sal die geval getref en dan sal dit 1053 00:54:08,290 --> 00:54:10,640 val deur, want Daar is geen breek. 1054 00:54:10,640 --> 00:54:11,610 En dit sal eindig hier. 1055 00:54:11,610 --> 00:54:15,360 So as ons kies een, sal dit die printf doen en dan so breek dat nie een van 1056 00:54:15,360 --> 00:54:17,610 dit uitgevoer word. 1057 00:54:17,610 --> 00:54:21,870 En natuurlik, as hulle kom in drie of iets anders, dan sal dit slaan 1058 00:54:21,870 --> 00:54:25,320 diegene en nie daarheen te gaan, en dit plaas sal voer die 1059 00:54:25,320 --> 00:54:27,490 ooreenstemmende lyn. 1060 00:54:27,490 --> 00:54:29,390 Is daar enige vrae oor wat? 1061 00:54:29,390 --> 00:54:29,780 Ja? 1062 00:54:29,780 --> 00:54:32,642 >> SPREKER 4: Wil jy 'n fout as jy het 'n pouse na die geval een, maar dit 1063 00:54:32,642 --> 00:54:34,550 nie iets het om dit te doen? 1064 00:54:34,550 --> 00:54:37,820 >> Josef So die vraag is sal jy 'n fout as jy 'n pouse na 1065 00:54:37,820 --> 00:54:39,730 geval ', maar daar is niks om te doen? 1066 00:54:39,730 --> 00:54:41,520 En die antwoord is nee. 1067 00:54:41,520 --> 00:54:43,172 Jy sal nie eintlik 'n fout. 1068 00:54:43,172 --> 00:54:44,590 Ja, mm hmm. 1069 00:54:44,590 --> 00:54:54,540 >> So as 'n soort van 'n klein verandering hier, Ek gaan 'n printf hier te plaas. 1070 00:54:54,540 --> 00:54:55,790 Oeps. 1071 00:54:55,790 --> 00:55:00,994 1072 00:55:00,994 --> 00:55:04,880 So, wat sou hierdie druk as Ek sit een in as insette? 1073 00:55:04,880 --> 00:55:07,530 1074 00:55:07,530 --> 00:55:07,770 Ja. 1075 00:55:07,770 --> 00:55:10,360 Dit sal jou vertel dit het nie 'n groot aantal keer, reg? 1076 00:55:10,360 --> 00:55:13,500 Want dit sou getref dat die eerste geval, dit sal nie breek nie, en dit sou val 1077 00:55:13,500 --> 00:55:15,730 deur na die tweede geval. 1078 00:55:15,730 --> 00:55:16,950 Enige vrae oor wat? 1079 00:55:16,950 --> 00:55:18,280 >> ROB: Het jy 'n ander vraag? 1080 00:55:18,280 --> 00:55:20,840 >> Josef OK, afkoel. 1081 00:55:20,840 --> 00:55:22,400 Alle regte. 1082 00:55:22,400 --> 00:55:25,780 So daar is iets anders wat ons noem 'n drieledige operateur wat is basies 'n 1083 00:55:25,780 --> 00:55:29,010 alternatiewe sintaksis te doen As en dan anders. 1084 00:55:29,010 --> 00:55:30,470 En dit kan jy doen dit alles op een lyn. 1085 00:55:30,470 --> 00:55:34,110 So in hierdie spesifieke program, Ek vra die gebruiker vir n. 1086 00:55:34,110 --> 00:55:37,190 En as n groter as 100, sê ek vir hulle het hulle opgetel 'n groot aantal. 1087 00:55:37,190 --> 00:55:39,560 Else ek sê hulle pluk 'n lae nommer. 1088 00:55:39,560 --> 00:55:43,030 >> So kan ons hierdie baie lang sintaksis te gebruik, string, S, en dan kyk as n 1089 00:55:43,030 --> 00:55:45,260 groter as 100 en ken dit dienooreenkomstig. 1090 00:55:45,260 --> 00:55:49,450 Maar ons kan nog baie meer bondige maak hierdie deur die gebruik van hierdie drieledige operateur sintaksis 1091 00:55:49,450 --> 00:55:52,090 Dit behels 'n vraag merk en 'n kolon. 1092 00:55:52,090 --> 00:55:55,070 So het die vraagteken in wese is vra 'n vraag, reg? 1093 00:55:55,070 --> 00:55:56,625 >> ROB: Miskien zoom in op wat. 1094 00:55:56,625 --> 00:55:57,372 >> Josef Ja. 1095 00:55:57,372 --> 00:56:00,210 Goeie punt. 1096 00:56:00,210 --> 00:56:02,550 So dit is die drieledige operateur. 1097 00:56:02,550 --> 00:56:06,100 Ek het eers die vraag vra, is n groter as 100? 1098 00:56:06,100 --> 00:56:09,770 As dit is, dan sal ek voer die eerste deel voor die kolon. 1099 00:56:09,770 --> 00:56:13,360 As dit is nie, dan het ek voer die tweede deel na die kolon. 1100 00:56:13,360 --> 00:56:16,640 So as n groter as 100, dan is dit optel hoë en sit 1101 00:56:16,640 --> 00:56:18,360 wat in string s. 1102 00:56:18,360 --> 00:56:22,170 As n is minder as 100, is dit optel lae en dan sit wat in string s. 1103 00:56:22,170 --> 00:56:30,186 So wat hierdie groot stuk verkort af in net dat een lyn. 1104 00:56:30,186 --> 00:56:32,010 >> SPREKER 5: Is dit gewild? 1105 00:56:32,010 --> 00:56:36,070 >> JOSEPH: Ja, dit is baie gewild vir dinge waar in wese wat jy wil 1106 00:56:36,070 --> 00:56:38,700 nie 'n opdrag wat gebaseer is op 'n soort van toestand. 1107 00:56:38,700 --> 00:56:43,110 En in hierdie geval, is ons probeer 'n waarde string s te wys. 1108 00:56:43,110 --> 00:56:44,840 Dit is nie so nie - 1109 00:56:44,840 --> 00:56:47,670 Ek dink ek regtig verkies nie dit in ander gevalle. 1110 00:56:47,670 --> 00:56:49,390 Maar dit is veral nuttig vir hierdie opdrag. 1111 00:56:49,390 --> 00:56:54,490 >> ROB: Dit is 'n redelik algemene patroon waar jy 'n paar veranderlike wat 1112 00:56:54,490 --> 00:56:58,200 jy gaan om te sê, as iets, stel hierdie veranderlike een waarde, anders, stel 1113 00:56:58,200 --> 00:56:59,810 hierdie veranderlike na 'n ander waarde. 1114 00:56:59,810 --> 00:57:03,360 En dit is die scenario waar gebruik om 'n drieledige. 1115 00:57:03,360 --> 00:57:05,220 >> Josef, en jy spaar baie van die lyne, reg? 1116 00:57:05,220 --> 00:57:08,090 En dit maak net jou kode waarskynlik 'n bietjie meer leesbare. 1117 00:57:08,090 --> 00:57:08,635 Ja, bevraagteken? 1118 00:57:08,635 --> 00:57:12,384 >> SPREKER 6: Vir 'n drieledige, kan jy gaan, string s gelykes s, vraagteken? 1119 00:57:12,384 --> 00:57:15,280 En dan kan jy, sê, vyf verskillende opsies. 1120 00:57:15,280 --> 00:57:18,310 En afhangende van wat die aantal N is, sal jy een van daardie te kies? 1121 00:57:18,310 --> 00:57:22,210 >> Josef So die vraag is, is daar 'n soort van sintaksis waar jy kan string doen 1122 00:57:22,210 --> 00:57:25,910 s is gelyk aan n, en dan meer as twee opsies nadat vraagteken? 1123 00:57:25,910 --> 00:57:29,740 En 'n eenvoudige antwoord is nee, daar is nie regtig 'n goeie manier om dit te doen nie, tensy 1124 00:57:29,740 --> 00:57:33,850 jy wil nes verskeie drieledige operateurs binnekant van mekaar. 1125 00:57:33,850 --> 00:57:38,050 >> Jy kan dit doen soos n groter as 100, vraagteken, en dan nog 'n 1126 00:57:38,050 --> 00:57:41,850 drieledige operateur, n groter as 50, vraagteken, en nes dit so. 1127 00:57:41,850 --> 00:57:45,240 Maar in daardie scenario, jou kode is kry soort deurmekaar en slordig, 1128 00:57:45,240 --> 00:57:47,920 en dit dalk beter wees om net te gaan na 'n As / Else verklaring op daardie tydstip. 1129 00:57:47,920 --> 00:57:54,530 >> ROB: En ook, as 'n kant nota, PHP verkeerd implemente die drieledige 1130 00:57:54,530 --> 00:57:58,053 operateur sodanig dat geneste ternaries nie eens werk soos hulle moet nie. 1131 00:57:58,053 --> 00:57:58,840 >> Josef Ja. 1132 00:57:58,840 --> 00:58:01,170 So raak dit 'n bietjie verwarrend, veral wanneer jy gaan 1133 00:58:01,170 --> 00:58:02,145 verskillende tale. 1134 00:58:02,145 --> 00:58:04,810 >> ROB: Dit is verwarrend genoeg dat tale is verkeerd nie. 1135 00:58:04,810 --> 00:58:08,030 1136 00:58:08,030 --> 00:58:11,510 >> Josef So eintlik, net om te verduidelik, nie almal weet wat dit 1137 00:58:11,510 --> 00:58:13,900 % S nie hier? 1138 00:58:13,900 --> 00:58:15,650 Enige vrae oor wat? 1139 00:58:15,650 --> 00:58:19,760 Ek dink net vir die kamera, die% s basies laat ons het 'n plekhouer 1140 00:58:19,760 --> 00:58:20,790 vir 'n string. 1141 00:58:20,790 --> 00:58:23,920 En dan aan die einde, het ons bepaal dat die veranderlike wil ons in hierdie te sit 1142 00:58:23,920 --> 00:58:25,500 plekhouer is s. 1143 00:58:25,500 --> 00:58:27,730 Sodat basies s en dit plaas dit hier. 1144 00:58:27,730 --> 00:58:32,130 En dan sal dit uit te druk, het jy opgetel 'n hoë of jy opgetel 'n lae nommer. 1145 00:58:32,130 --> 00:58:33,770 OK. 1146 00:58:33,770 --> 00:58:36,970 >> So loops toelaat om dinge uit te voer in sirkel bewegings, reg? 1147 00:58:36,970 --> 00:58:40,300 Jy kan teëgekom het dit in Nuuts af in die vorm van Forever lusse 1148 00:58:40,300 --> 00:58:45,650 of herhaal totdat of Herhaal 'n spesifieke aantal kere. 1149 00:58:45,650 --> 00:58:47,540 So hoekom is dit goed vir ons? 1150 00:58:47,540 --> 00:58:51,500 Wel, in C, kom ons sê ons het hierdie lied geïmplementeer in Scratch wat 1151 00:58:51,500 --> 00:58:53,450 sing, is dit die lied wat nooit eindig. 1152 00:58:53,450 --> 00:58:55,710 Dit gaan net aan en aan en vir ewig en ewig. 1153 00:58:55,710 --> 00:58:59,395 Wel, jy kan nie regtig 'n program wat 'n oneindige aantal van die printf 1154 00:58:59,395 --> 00:59:00,850 state in dit, reg? 1155 00:59:00,850 --> 00:59:04,900 >> So in hierdie spesifieke scenario, een manier wat jy kan doen om hierdie werk en 1156 00:59:04,900 --> 00:59:09,330 te maak dit vir ewig te druk is om te plaas gebruik 'n lus. 1157 00:59:09,330 --> 00:59:13,640 So 'n rukkie lus sal voer wat is in die liggaam van die twee stutte wat 1158 00:59:13,640 --> 00:59:17,250 behoort dit op grond van wat die toestand is. 1159 00:59:17,250 --> 00:59:21,170 So in hierdie spesifieke voorbeeld voor, indien Ons wil dit vir ewig te druk, wat 1160 00:59:21,170 --> 00:59:23,590 kan ons doen? 1161 00:59:23,590 --> 00:59:25,190 Wel, seker nie, reg? 1162 00:59:25,190 --> 00:59:32,290 >> So hierdie soort van 'n kombinasie van die idee van 'n paar Boole-uitdrukking 1163 00:59:32,290 --> 00:59:33,610 saam met 'n lus. 1164 00:59:33,610 --> 00:59:35,780 En ons geleer het oor Boolese uitdrukkings vroeër. 1165 00:59:35,780 --> 00:59:39,650 So wanneer die toestand binne dat terwyl bly getrou, hierdie lus 1166 00:59:39,650 --> 00:59:41,480 sal voer op en op en op. 1167 00:59:41,480 --> 00:59:44,640 En in hierdie geval, as ons net verskaf dit ware, dit veroorsaak 'n oneindige 1168 00:59:44,640 --> 00:59:49,310 lus wat druk die lied oor en oor en as ons voor sonder gewenste 1169 00:59:49,310 --> 00:59:52,410 met 'n program wat 'n oneindige aantal printf state, wat 1170 00:59:52,410 --> 00:59:55,220 nie moontlik nie. 1171 00:59:55,220 --> 00:59:57,810 >> So meer dwingend, al is, jy kan gebruik om dit met 'n 1172 00:59:57,810 --> 00:59:59,710 veranderlike en 'n toestand. 1173 00:59:59,710 --> 01:00:04,420 So kom ons sê ons wil herhaal die frase, heeltemal getroubleerd, 10 keer. 1174 01:00:04,420 --> 01:00:08,380 So, wat jy kan doen met 'n lus is kan jy die eerste keer inisialiseer 'n toonbank 1175 01:00:08,380 --> 01:00:10,860 veranderlike buite die Terwyl lus tot 10. 1176 01:00:10,860 --> 01:00:14,360 En dan basies, elke keer as jy gaan deur die lus, jy druk 1177 01:00:14,360 --> 01:00:19,090 die verklaring en dan kan jy verminder die counter veranderlike tot aan die einde, 1178 01:00:19,090 --> 01:00:23,020 op 'n sekere punt, wanneer ons trek ek genoeg keer, 1 uit ek genoeg keer - 1179 01:00:23,020 --> 01:00:27,290 en net ek minus minus te verduidelik beteken dat ek gelyk het ek minus 1. 1180 01:00:27,290 --> 01:00:31,280 >> Dit sal basies bring ek af na die punt waar een keer het ek 'n nul, hierdie 1181 01:00:31,280 --> 01:00:35,260 toestand is nie meer waar en sodat dit uitgaan uit van die lus. 1182 01:00:35,260 --> 01:00:37,045 So totaal getroubleerd druk slegs 10 keer. 1183 01:00:37,045 --> 01:00:39,550 1184 01:00:39,550 --> 01:00:41,080 Enige vrae oor 'n rukkie lus? 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 >> So is daar 'n manier waarop ons kan doen wat ons net het in 'n meer bondige wyse met 1188 01:00:50,550 --> 01:00:51,715 wat ons noem 'n For-lus. 1189 01:00:51,715 --> 01:00:55,750 So 'n For-lus bestaan ​​uit 'n inisialisering, 'n toestand, en 'n 1190 01:00:55,750 --> 01:00:58,950 werk, net soos wat ons gehad het voor in hierdie Terwyl lus. 1191 01:00:58,950 --> 01:00:59,890 So kom ons neem 'n blik. 1192 01:00:59,890 --> 01:01:02,900 In hierdie Terwyl lus, ons het 'n inisialisering, dan het ons 'n 1193 01:01:02,900 --> 01:01:04,260 voorwaarde dat ons nagegaan. 1194 01:01:04,260 --> 01:01:06,450 En dan het ons 'n update stap op die top. 1195 01:01:06,450 --> 01:01:10,060 >> Met 'n For-lus, hierdie basies neem hierdie drie dinge en kondenseer dit 1196 01:01:10,060 --> 01:01:11,370 af in een lyn. 1197 01:01:11,370 --> 01:01:15,130 Dus is die eerste ding wat dit nie in die Vir lus is die inisialisering. 1198 01:01:15,130 --> 01:01:19,090 En dan doen jy 'n kommapunt, en dan jy doen om die toestand, wat ek 1199 01:01:19,090 --> 01:01:22,200 groter as nul gaan daar, en dan sal die update stap. 1200 01:01:22,200 --> 01:01:26,470 So dit kry uitgevoer op die einde van die lus liggaam. 1201 01:01:26,470 --> 01:01:28,790 So het hierdie twee programme is wese ekwivalent. 1202 01:01:28,790 --> 01:01:31,960 1203 01:01:31,960 --> 01:01:33,870 >> Enige vrae? 1204 01:01:33,870 --> 01:01:37,000 So, wat is een verskil tussen die twee? 1205 01:01:37,000 --> 01:01:38,000 Kan iemand wys dit uit? 1206 01:01:38,000 --> 01:01:40,480 Dit mag dalk 'n bietjie subtiel. 1207 01:01:40,480 --> 01:01:41,930 Dit is net 'n baie klein verskil. 1208 01:01:41,930 --> 01:01:42,330 Ja? 1209 01:01:42,330 --> 01:01:49,008 >> SPREKER 5: Jy sal nie in staat wees om te gebruik die ek veranderlike buitekant van die For-lus 1210 01:01:49,008 --> 01:01:49,962 [Onhoorbaar]? 1211 01:01:49,962 --> 01:01:50,900 >> Josef Presies. 1212 01:01:50,900 --> 01:01:53,550 So dit is iets wat ons sal kry om later genoem veranderlike omvang. 1213 01:01:53,550 --> 01:01:56,610 Maar in wese, hierdie int Ek lewens buite hierdie Terwyl lus. 1214 01:01:56,610 --> 01:01:59,800 So een keer hierdie Terwyl lus is gedoen uitvoering, sal ek in staat wees om later het ek om te gebruik 1215 01:01:59,800 --> 01:02:00,880 in die program. 1216 01:02:00,880 --> 01:02:05,430 >> Terwyl met die For-lus, die int ek is scoped binnekant van die For-lus. 1217 01:02:05,430 --> 01:02:10,240 En omdat dit is die binnekant van hierdie gedeelte van die For-lus, wat begin 1218 01:02:10,240 --> 01:02:13,200 by die hakies en eindig met die krullerige stut daar. 1219 01:02:13,200 --> 01:02:16,120 Enigiets wat verklaar is binne hier kan nie buite gebruik word. 1220 01:02:16,120 --> 01:02:20,420 So as ek probeer ek om buite te gebruik, sal dit sê vir my, swart simbool. 1221 01:02:20,420 --> 01:02:22,420 En wese, sou ek nie in staat wees om dit te gebruik. 1222 01:02:22,420 --> 01:02:28,460 >> Beroof en wel, 10 jaar gelede, in letterlik alle gevalle, krulhakies is 1223 01:02:28,460 --> 01:02:31,140 wat jy gebruik om te bepaal die omvang van 'n veranderlike. 1224 01:02:31,140 --> 01:02:37,240 So is daar, int Ek is gelyk aan 10 is die binnekant van die verklaarde 1225 01:02:37,240 --> 01:02:38,520 stel krullerige draadjies. 1226 01:02:38,520 --> 01:02:42,530 En so is daar dan so lank as wat jy probeer ek om te gebruik voor hierdie krullerige stut, dit is goed. 1227 01:02:42,530 --> 01:02:47,090 1228 01:02:47,090 --> 01:02:51,460 Jy kan sien wanneer jy tik maak, moet jy sien stamp nie, stamp nie, st, gelykes, C99. 1229 01:02:51,460 --> 01:02:57,100 >> So dit is 'n nuwer weergawe van C wat GCC geïmplementeer het, wat ook ' 1230 01:02:57,100 --> 01:02:58,740 hierdie kortpad. 1231 01:02:58,740 --> 01:03:03,505 So dit gebruik om nie in C. toegelaat en jy kan sien waarom, want dit int 1232 01:03:03,505 --> 01:03:07,600 Ek is buite hierdie krullerige stut, maar dit is nog steeds beskou as in die 1233 01:03:07,600 --> 01:03:09,750 omvang van hierdie krullerige draadjies. 1234 01:03:09,750 --> 01:03:14,120 Maar dit is 'n baie maklike ding, en daarom is dit 'n goeie uitbreiding. 1235 01:03:14,120 --> 01:03:15,370 >> Josef Enige vrae? 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 So, wat is meer nuttig is dat dit soms jy soort van dinamika in 1239 01:03:22,820 --> 01:03:23,410 jou lus, reg? 1240 01:03:23,410 --> 01:03:26,350 Jy wil nie net noodwendig druk heeltemal getroubleerd al die tyd, jy 1241 01:03:26,350 --> 01:03:28,650 wil aftel van 10 of iets. 1242 01:03:28,650 --> 01:03:32,010 En so kan jy die toonbank veranderlike gebruik binnekant van die loop as well. 1243 01:03:32,010 --> 01:03:35,530 En in hierdie geval, is hierdie program net aftel van 10 al die pad af. 1244 01:03:35,530 --> 01:03:39,260 En wat beteken dit nie druk? 1245 01:03:39,260 --> 01:03:42,790 Dit maak nie druk nul, reg, want as - 1246 01:03:42,790 --> 01:03:45,460 Ja, dit is ook nie druk 11. 1247 01:03:45,460 --> 01:03:49,200 >> Daarom is dit nie druk nul, want toe Ek is nul, onthou, dit evalueer 1248 01:03:49,200 --> 01:03:52,170 die toestand voor dit gaan oor die lus liggaam uit te voer. 1249 01:03:52,170 --> 01:03:56,820 En toe ek is nul, dit is vals, so dit nie uit te druk aftel 1250 01:03:56,820 --> 01:04:00,200 nul, is dit net druk uit te tel af 10 al die pad af tot 1. 1251 01:04:00,200 --> 01:04:03,420 As ons werklik wil om dit te druk nul, dan sou ons 'n gelykaanteken sit 1252 01:04:03,420 --> 01:04:04,750 na hierdie groter as teken. 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 >> So 'n manier om insette validering te doen, wat is wanneer jy vra die gebruiker om te doen 1256 01:04:16,410 --> 01:04:18,620 iets wat jy wil om seker te maak hulle volg jou instruksies, is om te gebruik 1257 01:04:18,620 --> 01:04:19,400 Terwyl die lus, reg? 1258 01:04:19,400 --> 01:04:22,990 So in hierdie geval, ek vra vir 'n positiewe getal en dan is ek 1259 01:04:22,990 --> 01:04:23,810 wag vir insette. 1260 01:04:23,810 --> 01:04:28,210 >> En dan het ek nagegaan Terwyl die insette is minder as nul is, bly vra hulle. 1261 01:04:28,210 --> 01:04:32,100 So lank as wat hulle gee my 'n aantal wat nie positief is nie, bly vra, 1262 01:04:32,100 --> 01:04:33,600 bly vra, bly vra. 1263 01:04:33,600 --> 01:04:35,860 Maar wat is 'n soort van vreemde oor hierdie? 1264 01:04:35,860 --> 01:04:38,570 Of wat nie optimale oor lyk hierdie struktuur reg hier? 1265 01:04:38,570 --> 01:04:44,282 1266 01:04:44,282 --> 01:04:44,758 Enigiemand? 1267 01:04:44,758 --> 01:04:45,234 Ja? 1268 01:04:45,234 --> 01:04:47,614 >> SPREKER 6: Jy herhaal die opdrag twee keer. 1269 01:04:47,614 --> 01:04:48,100 >> JOSEPH: Right. 1270 01:04:48,100 --> 01:04:50,090 So het ons twee printf state hier, reg? 1271 01:04:50,090 --> 01:04:53,440 So is daar 'n manier waarop ons kan dit net kry tot een wat sal maak dat ons 1272 01:04:53,440 --> 01:04:57,170 kode makliker om te lees en 'n bietjie meer skoon. 1273 01:04:57,170 --> 01:05:00,180 En dan sou ons nie hoef te het kry in twee keer so goed. 1274 01:05:00,180 --> 01:05:03,740 En een manier waarop jy dit kan doen, is om deur die gebruik van 'n do-while lus. 1275 01:05:03,740 --> 01:05:07,670 >> En 'n do-while lus is basies 'n ander vorm van 'n lus waar 1276 01:05:07,670 --> 01:05:11,460 alles wat binne die krulhakies kry ten minste een keer uitgevoer word. 1277 01:05:11,460 --> 01:05:14,840 So hier, verklaar ek, int insette, buite eerste. 1278 01:05:14,840 --> 01:05:18,100 En dan het ek net sê, doen dit opdrag terwyl insette 1279 01:05:18,100 --> 01:05:19,140 is minder as nul. 1280 01:05:19,140 --> 01:05:20,530 So dit treffers die Do eerste. 1281 01:05:20,530 --> 01:05:24,190 Dit sal altyd voer dit ten minste een keer, so dit sal altyd vra die gebruiker 1282 01:05:24,190 --> 01:05:25,960 vir insette ten minste een keer. 1283 01:05:25,960 --> 01:05:29,390 En dan is dit evalueer wat insette, en dit gaan oor in 'n sirkel. 1284 01:05:29,390 --> 01:05:30,135 Ja, bevraagteken? 1285 01:05:30,135 --> 01:05:32,602 >> SPREKER 6: Is daar 'n manier om dit te doen [Onhoorbaar] tipes, soos as jy sê, 1286 01:05:32,602 --> 01:05:34,268 GetString, en iemand [onhoorbaar] 1287 01:05:34,268 --> 01:05:35,220 is daar 'n manier om te [onhoorbaar] 1288 01:05:35,220 --> 01:05:40,060 >> Josef So die vraag is, is daar 'n manier insette validering te doen as die gebruiker 1289 01:05:40,060 --> 01:05:41,850 nie in die regte tipe veranderlike? 1290 01:05:41,850 --> 01:05:44,460 So as ons vra vir 'n int en hulle gee ons 'n string plaas. 1291 01:05:44,460 --> 01:05:49,110 En in die funksies wat ons implementeer Vir jou, getint, GetString in al 1292 01:05:49,110 --> 01:05:52,680 daardie funksies, wat hulle eintlik reeds doen dat die soort van basiese tipe insette 1293 01:05:52,680 --> 01:05:54,120 validering onder die enjinkap. 1294 01:05:54,120 --> 01:05:57,390 So as jy die gebruik van die funksies wat ons jou gegee het, jy het nie regtig om. 1295 01:05:57,390 --> 01:06:01,380 >> Maar as jy wil meer te kyk na hoe jy eintlik kan doen, kan jy kyk 1296 01:06:01,380 --> 01:06:03,360 onder die enjinkap by die lêer I/O-- 1297 01:06:03,360 --> 01:06:07,990 nie lêer, die standaard I / O funksies soos 'n lees van die standaard insette en 1298 01:06:07,990 --> 01:06:08,580 standaard produksie. 1299 01:06:08,580 --> 01:06:10,630 En jy kan 'n beter begrip te kry van hoe jy dit doen. 1300 01:06:10,630 --> 01:06:13,670 >> ROB: Een probleem, al is, is spesifiek met die voorbeeld wat jy 1301 01:06:13,670 --> 01:06:17,070 gesê, jy verwag 'n string en ek in 'n int. 1302 01:06:17,070 --> 01:06:20,110 Hoe sou jy die verskil tussen doelbewus wil die 1303 01:06:20,110 --> 01:06:23,130 string 123 versus wil die int 123? 1304 01:06:23,130 --> 01:06:29,230 So string, dit is redelik baie daar is geen goedgekeur is, is dit net wat hulle 1305 01:06:29,230 --> 01:06:31,600 aangegaan sal jy interpreteer as 'n string. 1306 01:06:31,600 --> 01:06:35,790 >> Int is makliker, want maak nie saak die insette wat jy neem uit die gebruiker, jy is 1307 01:06:35,790 --> 01:06:37,470 altyd die neem van 'n string. 1308 01:06:37,470 --> 01:06:40,650 En sodat string Jy kan dan kyk, is al hierdie 1309 01:06:40,650 --> 01:06:44,218 eintlik numeriese syfers? 1310 01:06:44,218 --> 01:06:45,170 >> Josef OK. 1311 01:06:45,170 --> 01:06:46,420 Enige vrae oor 'n do-while lus? 1312 01:06:46,420 --> 01:06:49,170 >> ROB: O ja, en dit is ook - 1313 01:06:49,170 --> 01:06:55,130 terug te gaan na die omvang, 'n ietwat gemeen fout probeer om 'n plaaslike te gebruik 1314 01:06:55,130 --> 01:06:59,540 veranderlike vanuit hierdie do-while lus binnekant van hierdie toestand. 1315 01:06:59,540 --> 01:07:02,850 En eintlik, as ons net ontslae geraak het van hierdie en gesê int insette gelyk 1316 01:07:02,850 --> 01:07:06,990 Getint, dan is die samesteller sal skree ons, want insette bestaan ​​nie 1317 01:07:06,990 --> 01:07:08,900 buite die omvang van die hierdie krullerige draadjies. 1318 01:07:08,900 --> 01:07:10,792 >> Josef, en dit is hoekom ons moet hierdie besetting hier. 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 So kan jy ook weg te breek van 'n lus vroeg as jy wil. 1322 01:07:17,530 --> 01:07:21,240 So dit is 'n ander manier van die uitvoering van wat ons het net geïmplementeer word. 1323 01:07:21,240 --> 01:07:24,340 En in plaas van die gebruik van die toestand binne die hakies gebruik ons ​​'n 1324 01:07:24,340 --> 01:07:26,920 Indien verklaring binnekant van die liggaam van die do-while lus. 1325 01:07:26,920 --> 01:07:30,000 >> En basies, wanneer die insette is uiteindelik groter as nul is, sal ons 1326 01:07:30,000 --> 01:07:31,000 breek uit van die lus. 1327 01:07:31,000 --> 01:07:33,420 En so sal ons almal gaan die pad af hier. 1328 01:07:33,420 --> 01:07:37,920 En jy kan sien dat dit waarskynlik in hierdie verkies word 1329 01:07:37,920 --> 01:07:39,870 scenario, want dit is 'n bietjie bietjie skoner en 'n bietjie 1330 01:07:39,870 --> 01:07:41,380 bietjie makliker om te lees. 1331 01:07:41,380 --> 01:07:45,210 Dat dit, jy soort van ekstra lyne in dit. 1332 01:07:45,210 --> 01:07:47,890 Dit is net 'n bietjie minder mooi, Ek dink, in 'n sin. 1333 01:07:47,890 --> 01:07:48,530 Ja, bevraagteken? 1334 01:07:48,530 --> 01:07:52,178 >> SPREKER 4: sal breek net julle uit 'n stel van draadjies? 1335 01:07:52,178 --> 01:07:53,080 >> JOSEPH: Right. 1336 01:07:53,080 --> 01:07:58,100 So die vraag is net breek kry jy uit een lus? 1337 01:07:58,100 --> 01:07:59,280 En die antwoord is ja. 1338 01:07:59,280 --> 01:08:04,290 So as jy geneste Vir loops, vir Byvoorbeeld, as ek vir int Ek is gelyk aan 0 1339 01:08:04,290 --> 01:08:09,040 tot en met 10 en dan vir int J gelyk aan 0 tot en met 10, as ek breek uit die innerlike 1340 01:08:09,040 --> 01:08:12,310 lus, ek sal nog steeds gaan na die buitenste lus. 1341 01:08:12,310 --> 01:08:15,760 So dit sal hou die verrigting van die bedrywighede op die buitekant. 1342 01:08:15,760 --> 01:08:17,640 Enige vrae oor wat? 1343 01:08:17,640 --> 01:08:18,000 Ja? 1344 01:08:18,000 --> 01:08:21,760 >> SPREKER 5: Maar breek net funksies vir krullerige draadjies, nie vir ander 1345 01:08:21,760 --> 01:08:22,230 stellings? 1346 01:08:22,230 --> 01:08:22,700 [Onhoorbaar] 1347 01:08:22,700 --> 01:08:27,620 >> Josef So die vraag is sal breek enigste funksie vir sirkelroetes in teenstelling met 1348 01:08:27,620 --> 01:08:29,014 ander state soos As? 1349 01:08:29,014 --> 01:08:32,950 En ja, dit is die geval nie, want jy breek uit 'n lus, regs, 1350 01:08:32,950 --> 01:08:33,630 in 'n sin. 1351 01:08:33,630 --> 01:08:37,215 >> ROB: In die oorgrote meerderheid van gevalle, is dit dit is die soort van As iets, 1352 01:08:37,215 --> 01:08:37,660 dan breek. 1353 01:08:37,660 --> 01:08:41,580 So jy hoef nie te breek om aansoek te doen om die As wat wikkel rondom dit. 1354 01:08:41,580 --> 01:08:45,250 En ook, dit is nie veel van 'n lus, maar onthou dat skakelaars is ook 1355 01:08:45,250 --> 01:08:46,340 gebreek uit deur breek. 1356 01:08:46,340 --> 01:08:48,390 Ons het gesien breek gebruik met skakelaars voor. 1357 01:08:48,390 --> 01:08:52,189 >> Josef, en jy kan ook gebruik om hulle Terwyl in sirkelroetes en Vir loops. 1358 01:08:52,189 --> 01:08:54,560 Enige vrae? 1359 01:08:54,560 --> 01:08:55,830 OK. 1360 01:08:55,830 --> 01:08:57,779 So Volgende is funksies. 1361 01:08:57,779 --> 01:09:01,500 So jy kan een van hierdie BYOB gebruik het blokke in jou Scratch projek. 1362 01:09:01,500 --> 01:09:04,569 En dit basies kan jy 'n stel van te definieer 1363 01:09:04,569 --> 01:09:05,680 instruksies gevolg moet word. 1364 01:09:05,680 --> 01:09:09,569 >> En wat ek bedoel met dit is laat dink Terug na wiskunde, regs, algebra. 1365 01:09:09,569 --> 01:09:13,370 Jy het wat ons noem 'n funksie van x, sommige veranderlike, en laat ons sê hierdie 1366 01:09:13,370 --> 01:09:16,080 funksie is f van x is gelyk aan x plus 5. 1367 01:09:16,080 --> 01:09:20,410 So jy kan dink f van x as hierdie swart boks wat neem 15 in en dan 1368 01:09:20,410 --> 01:09:22,590 produseer 20. 1369 01:09:22,590 --> 01:09:26,630 >> Sodat meer algemeen, 'n funksie iets wat neem 'n paar insette en 1370 01:09:26,630 --> 01:09:27,880 produseer dan 'n paar uitgange. 1371 01:09:27,880 --> 01:09:31,920 1372 01:09:31,920 --> 01:09:32,960 En hoekom is funksies goed? 1373 01:09:32,960 --> 01:09:35,189 Hulle is goed vir 'n aantal redes. 1374 01:09:35,189 --> 01:09:40,470 So het iemand wil 'n steek te neem teen watter organisasie beteken? 1375 01:09:40,470 --> 01:09:42,630 In terme van die rede waarom funksies is nuttig? 1376 01:09:42,630 --> 01:09:43,090 Ja? 1377 01:09:43,090 --> 01:09:44,735 >> SPREKER 4: Dit maak jou kode meer leesbare. 1378 01:09:44,735 --> 01:09:45,399 >> JOSEPH: Right. 1379 01:09:45,399 --> 01:09:47,670 So een van die dinge is dit maak jou kode meer leesbare, reg? 1380 01:09:47,670 --> 01:09:53,710 In plaas van om soos int x is gelyk aan x keer x maal x, kan ek kubus van x, 1381 01:09:53,710 --> 01:09:57,190 Dit is meer leesbaar en meer verstaanbaar vir 'n leser. 1382 01:09:57,190 --> 01:10:01,150 >> Organisasie is ook in terme van verdeel jou kode in hanteerbare 1383 01:10:01,150 --> 01:10:05,610 gedeeltes, sodat in plaas van om te implementeer dit alles in 'n lang artikel 1384 01:10:05,610 --> 01:10:09,070 in die belangrikste, kan jy soort van verdeel dit in soos, OK, kom ons skryf 'n funksie 1385 01:10:09,070 --> 01:10:11,910 iets te kubus, laat ons skryf 'n funksioneer om iets te vierkant. 1386 01:10:11,910 --> 01:10:15,950 Die manier wat jy kan verdeel dit in klein, bietjie dele wat jy kan pak 1387 01:10:15,950 --> 01:10:18,944 in teenstelling met die probeer om te pak 'n groot probleem in 'n keer. 1388 01:10:18,944 --> 01:10:21,806 >> ROB: Of selfs klein ou dele wat jy en 'n maat kan pak. 1389 01:10:21,806 --> 01:10:22,283 >> Josef Ja. 1390 01:10:22,283 --> 01:10:23,855 >> ROB: So in plaas van albei jy probeer om een ​​te plant 1391 01:10:23,855 --> 01:10:27,170 funksioneer op dieselfde tyd. 1392 01:10:27,170 --> 01:10:28,800 >> Josef vereenvoudiging. 1393 01:10:28,800 --> 01:10:30,050 Iemand wil 'n raaiskoot te neem? 1394 01:10:30,050 --> 01:10:33,080 1395 01:10:33,080 --> 01:10:33,410 Ja? 1396 01:10:33,410 --> 01:10:34,675 >> SPREKER 5: Meer herhaling. 1397 01:10:34,675 --> 01:10:35,260 >> JOSEPH: Right. 1398 01:10:35,260 --> 01:10:39,210 So een ding wat jy kan doen met vereenvoudiging is dat dit soort van op 1399 01:10:39,210 --> 01:10:42,520 dieselfde lyne as herbruikbaarheid is dat een keer skryf ek 'n kubus funksie, dan kan ek 1400 01:10:42,520 --> 01:10:45,410 net gebruik wat oor en oor en oor weer in my program in plaas van tik 1401 01:10:45,410 --> 01:10:49,610 x maal x maal x oor en oor en oor weer. 1402 01:10:49,610 --> 01:10:52,980 En vereenvoudiging hier ook net beteken dit maak jou kode soort 1403 01:10:52,980 --> 01:10:55,900 makliker om te ontfout sodra jy verdeel hierdie up in funksies. 1404 01:10:55,900 --> 01:10:58,250 Want dan kan jy lokaliseer waar jou probleme soort is. 1405 01:10:58,250 --> 01:11:00,910 1406 01:11:00,910 --> 01:11:02,160 Enige vrae? 1407 01:11:02,160 --> 01:11:04,200 1408 01:11:04,200 --> 01:11:06,540 >> So 'n idee is om onttrekking, reg? 1409 01:11:06,540 --> 01:11:07,390 Hierdie swart boks. 1410 01:11:07,390 --> 01:11:11,360 Soos jy weet wat getint doen toevoer van die gebruiker te ontvang? 1411 01:11:11,360 --> 01:11:12,510 Ons het nie regtig vir jou gesê het, reg? 1412 01:11:12,510 --> 01:11:15,670 Al wat ons het vir jou gesê is getint doen presies wat dit sê dit nie. 1413 01:11:15,670 --> 01:11:18,440 So selfs as ons jou nie vertel hoe dit werk, jy weet nog steeds. 1414 01:11:18,440 --> 01:11:21,670 >> So in hierdie geval, is dit 'n quadruple funksie wat nie 1415 01:11:21,670 --> 01:11:24,520 verskillende dinge tot 'n toevoer 'n uitset te produseer. 1416 01:11:24,520 --> 01:11:28,050 En jy kan 'n aantal quadruple deur dit te vermenigvuldig met vier. 1417 01:11:28,050 --> 01:11:30,790 Of jy kan dit wat ons noem bietjie skuif dit deur twee. 1418 01:11:30,790 --> 01:11:32,960 En ons sal dek hierdie 'n bietjie later. 1419 01:11:32,960 --> 01:11:36,570 En daar is geen behoefte om te weet hoe om hierdie funksie werk eintlik so lank as wat dit 1420 01:11:36,570 --> 01:11:37,640 werk soos aangedui. 1421 01:11:37,640 --> 01:11:40,740 >> So onder die enjinkap, kan ek soos, terugkeer insette keer 1422 01:11:40,740 --> 01:11:41,690 agt gedeel deur twee. 1423 01:11:41,690 --> 01:11:42,510 En jy sal nie weet nie, reg? 1424 01:11:42,510 --> 01:11:44,970 Al wat jy hoef te weet, is dit doen wat dit sê. 1425 01:11:44,970 --> 01:11:48,070 So wat is die nuttige ding oor die onttrekking. 1426 01:11:48,070 --> 01:11:52,910 >> En nog 'n ding is 'n soort van hierdie idee van die spoor van die kode na een 1427 01:11:52,910 --> 01:11:54,280 spesifieke afdeling. 1428 01:11:54,280 --> 01:11:57,450 So as jy 'n probleem het, moet jy dit nie doen nie het om te gaan oor jou kode probeer 1429 01:11:57,450 --> 01:11:58,730 om vas te stel waar die probleem was. 1430 01:11:58,730 --> 01:12:00,990 So in hierdie geval, ek geïmplementeer kubus verkeerd. 1431 01:12:00,990 --> 01:12:02,820 Ek het gedink kubus is vermenigvuldig deur drie. 1432 01:12:02,820 --> 01:12:05,760 >> So in hierdie geval, dit is 'n program dat net het vermenigvuldig deur drie 1433 01:12:05,760 --> 01:12:06,750 oral. 1434 01:12:06,750 --> 01:12:10,910 En daar is nog 'n program wat gekraakte kubus uit in 'n funksie. 1435 01:12:10,910 --> 01:12:14,040 En so nou as ek wil my fout reg te stel hier, ek het elke enkele lyn te los 1436 01:12:14,040 --> 01:12:15,620 van die kode in die program. 1437 01:12:15,620 --> 01:12:19,190 Terwyl aan die ander kant, as ek die funksie, ek moet net om te verander 1438 01:12:19,190 --> 01:12:20,650 wat verkeerd was in een plek. 1439 01:12:20,650 --> 01:12:25,330 1440 01:12:25,330 --> 01:12:28,730 >> So in Rekenaarwetenskap, ons bel en uitgange. 1441 01:12:28,730 --> 01:12:31,640 Insette parameters genoem of argumente en uitgange genoem 1442 01:12:31,640 --> 01:12:32,950 terugkeer waardes. 1443 01:12:32,950 --> 01:12:39,000 En ons sal sien hoe dit help ons soort van definieer 'n funksie in 'n tweede. 1444 01:12:39,000 --> 01:12:41,430 So, dit is 'n funksie definisie vir cubing. 1445 01:12:41,430 --> 01:12:45,110 So dit neem 'n inset, en dan dit gee dat die getal tye 1446 01:12:45,110 --> 01:12:47,020 homself drie keer. 1447 01:12:47,020 --> 01:12:48,020 So laat breek dit neer. 1448 01:12:48,020 --> 01:12:53,090 >> So het ons 'n funksie kop, wat basies bestaan ​​uit drie dinge. 1449 01:12:53,090 --> 01:12:56,050 So het ons die parameters, wat is, soos ek gesê het, die 1450 01:12:56,050 --> 01:12:57,680 insette in hierdie funksie. 1451 01:12:57,680 --> 01:12:59,300 En dan gee ons die funksie 'n naam. 1452 01:12:59,300 --> 01:13:00,740 In hierdie geval, is dit genoem kubus. 1453 01:13:00,740 --> 01:13:03,860 En dan het ons presies weet wat die tipe van die terugkeer waarde is. 1454 01:13:03,860 --> 01:13:06,760 >> So in hierdie geval, my kubus funksie neem in 'n heelgetal en dit het ook 1455 01:13:06,760 --> 01:13:07,890 stuur heelgetal. 1456 01:13:07,890 --> 01:13:11,510 So as ek slaag in twee, twee is 'n heelgetal is, dit gee agt vir my, wat 1457 01:13:11,510 --> 01:13:13,250 'n heelgetal is. 1458 01:13:13,250 --> 01:13:15,420 So terug tik naam parameters. 1459 01:13:15,420 --> 01:13:16,670 Vrae oor wat? 1460 01:13:16,670 --> 01:13:19,440 1461 01:13:19,440 --> 01:13:24,230 >> En dan is die terugkeer waarde is eintlik gespesifiseerde aan die einde deur te sê terugkeer 1462 01:13:24,230 --> 01:13:27,540 en dan weer terug alles bevat die terugkeer waarde. 1463 01:13:27,540 --> 01:13:30,940 So in hierdie geval, as ons dit alles saam 'n funksie neem in 1464 01:13:30,940 --> 01:13:35,100 parameters, is dit genoem iets, en dit gee iets wat die tipe 1465 01:13:35,100 --> 01:13:36,350 dat ons sê dit gaan wees. 1466 01:13:36,350 --> 01:13:39,830 1467 01:13:39,830 --> 01:13:41,080 Enige vrae? 1468 01:13:41,080 --> 01:13:43,710 1469 01:13:43,710 --> 01:13:45,080 >> So hoe kan ons gebruik om 'n funksie? 1470 01:13:45,080 --> 01:13:49,230 Wel, ons skryf 'n funksie en dan Ons gebruik dit in ons program, reg? 1471 01:13:49,230 --> 01:13:51,565 So ek het dit kubus, en dan kan ek gebruik kubus. 1472 01:13:51,565 --> 01:13:54,200 >> Maar wat belangrik is om daarop te let is dat om sake. 1473 01:13:54,200 --> 01:13:58,100 As ek 'n kubus hieronder hoof, is dit gaan loop in kubus. 1474 01:13:58,100 --> 01:14:00,360 En op hierdie punt, daar is niks genoem kubus in die program, en dit is 1475 01:14:00,360 --> 01:14:02,550 net gaan om te wees, ek het geen idee wat kubus is. 1476 01:14:02,550 --> 01:14:05,060 >> So sal dit vir jou, implisiete verklaring van funksie. 1477 01:14:05,060 --> 01:14:06,690 Dit is die fout wat wys. 1478 01:14:06,690 --> 01:14:10,230 En so in hierdie geval, kubus is onder hoof, sodat dit nie gaan 1479 01:14:10,230 --> 01:14:12,006 om te weet oor dit. 1480 01:14:12,006 --> 01:14:14,724 >> SPREKER 5: So belangrikste is gewoonlik die laaste funksie gedefinieer? 1481 01:14:14,724 --> 01:14:17,290 >> Josef So die vraag is, is die hoof gewoonlik die laaste 1482 01:14:17,290 --> 01:14:18,170 ding wat jy wil definieer? 1483 01:14:18,170 --> 01:14:19,730 En nee. 1484 01:14:19,730 --> 01:14:22,280 Dit is omdat ons gewoonlik graag hoof te wees by die top, reg? 1485 01:14:22,280 --> 01:14:24,640 Want dit is die eerste ding wat jy wil hê dat die programmeerder die opening van die 1486 01:14:24,640 --> 01:14:25,640 program te sien. 1487 01:14:25,640 --> 01:14:29,950 En so hoe kan ons los hierdie uitgawe van ons wil hoof te wees by die top, maar die 1488 01:14:29,950 --> 01:14:33,750 funksies wat ons wil hê, ons wil hê dat hulle te wees onder belangrikste nog in staat wees om te gebruik 1489 01:14:33,750 --> 01:14:34,930 hulle binne-in van die belangrikste? 1490 01:14:34,930 --> 01:14:36,870 >> Wel, ons gebruik wat ons noem 'n funksie prototipe. 1491 01:14:36,870 --> 01:14:40,830 So, wat 'n funksie prototipe wese is, is dit die eerste keer neem wat 1492 01:14:40,830 --> 01:14:45,060 die handtekening of die funksie kop van wat ons wil uit te voer af 1493 01:14:45,060 --> 01:14:47,420 hier, en ons het dit op die top van 'n program. 1494 01:14:47,420 --> 01:14:51,400 >> So in hierdie geval, sê ons dat, wel, later in ons program, ons gaan 1495 01:14:51,400 --> 01:14:55,010 'n belofte om dit te implementeer te maak funksie genoem int kubus, wat neem 1496 01:14:55,010 --> 01:14:56,260 'n heelgetal insette. 1497 01:14:56,260 --> 01:15:00,870 So nou, want dit is bo hoof, hoof, dit gaan om te sê, O, goed, 1498 01:15:00,870 --> 01:15:03,910 later in die program, wat gaan wees daar sodat ek kan verwys na dit, so ek sal 1499 01:15:03,910 --> 01:15:05,230 laat dit net gaan deur vir nou. 1500 01:15:05,230 --> 01:15:07,660 >> En dan aan die onderkant, Ons implementeer kubus. 1501 01:15:07,660 --> 01:15:11,180 En dan sal hoof net sê, Wel, sal dit soort van skakel 1502 01:15:11,180 --> 01:15:12,250 hierdie twee simbole saam. 1503 01:15:12,250 --> 01:15:14,320 En ons sal dek wat dit beteken later. 1504 01:15:14,320 --> 01:15:17,090 En so het dit sal weet dat dit die kubus funksie wat dit moet gebruik. 1505 01:15:17,090 --> 01:15:19,630 1506 01:15:19,630 --> 01:15:23,383 >> ROB: Die [onhoorbaar] oor wil hoof aan die onderkant of 1507 01:15:23,383 --> 01:15:24,880 top, ek het albei gesien. 1508 01:15:24,880 --> 01:15:28,630 Daar is dinge wat net soos hoof aan die onderkant te sit. 1509 01:15:28,630 --> 01:15:32,520 Maar een keer 'n projek kry veral groot, gewoonlik hoof is in 'n 1510 01:15:32,520 --> 01:15:34,290 dien al sy eie. 1511 01:15:34,290 --> 01:15:38,170 En op daardie punt, soos die int kubus lyn sal - 1512 01:15:38,170 --> 01:15:42,460 binnekant van stdio.h n klomp lyne, net soos wat int 1513 01:15:42,460 --> 01:15:44,010 kubus int insette lyn. 1514 01:15:44,010 --> 01:15:50,170 >> En so die voorlopers is dinge wat jy geneig is om te sit in kop-lêers, op 1515 01:15:50,170 --> 01:15:52,140 watter punt, beteken dit nie saak nie. 1516 01:15:52,140 --> 01:15:54,700 Wel, dit maak nie saak nie. 1517 01:15:54,700 --> 01:15:56,070 Diegene altyd aan die bokant. 1518 01:15:56,070 --> 01:15:59,490 En as hoof is nie 'n lêer van al sy eie, jy hoef nie te bekommer oor om 1519 01:15:59,490 --> 01:16:02,360 individuele funksie prototipes in die lêer. 1520 01:16:02,360 --> 01:16:05,370 >> Josef, en ons sal kry om 'n bietjie bietjie later, toe Rob begin praat 1521 01:16:05,370 --> 01:16:06,380 oor die samestelling. 1522 01:16:06,380 --> 01:16:09,480 En so is daar ook 'n verskil tussen parameter en argument. 1523 01:16:09,480 --> 01:16:12,500 En parameter is net wat Ons noem hierdie insette wanneer 1524 01:16:12,500 --> 01:16:13,820 Ons definieer die funksie. 1525 01:16:13,820 --> 01:16:16,950 En ons noem dit 'n argument wanneer ons eintlik slaag dit in die funksie. 1526 01:16:16,950 --> 01:16:19,600 >> So in hierdie geval, dit is 'n parameter, Soos ons vantevore gesê. 1527 01:16:19,600 --> 01:16:24,130 En wanneer ons dit werklik te gebruik daar, kubus van x, dan is x self is 1528 01:16:24,130 --> 01:16:25,910 wat ons noem 'n argument om die funksie kubus. 1529 01:16:25,910 --> 01:16:28,150 >> ROB: So parameter se argumente is - 1530 01:16:28,150 --> 01:16:33,270 daar is hierdie onderskeid, baie verwar verwissel. 1531 01:16:33,270 --> 01:16:37,090 Op hierdie punt, vir my, is dit soos een van die woorde wat toe ek sien dit in 1532 01:16:37,090 --> 01:16:41,190 die wild, ek kan nie help nie, maar onmiddellik vraag of hulle gebruik dit in 1533 01:16:41,190 --> 01:16:44,120 die korrekte konteks, omdat die verskil is subtiel genoeg dat net 1534 01:16:44,120 --> 01:16:45,500 almal is geneig om - 1535 01:16:45,500 --> 01:16:48,530 Ek sê byna altyd argument ongeag van wat ek bedoel. 1536 01:16:48,530 --> 01:16:51,230 1537 01:16:51,230 --> 01:16:54,630 >> Josef, en funksies is ook nuttig vir wat ons noem die newe-effekte. 1538 01:16:54,630 --> 01:16:59,230 So 'n funksie kan geen insette, en Dit kan ook produseer geen uitgange. 1539 01:16:59,230 --> 01:17:03,280 So in hierdie geval, is ek definisie van 'n subroutine wat geen 1540 01:17:03,280 --> 01:17:03,970 terugkeer waarde. 1541 01:17:03,970 --> 01:17:07,730 En om dit te spesifiseer, gebruik ons wat ons noem 'n leemte hier. 1542 01:17:07,730 --> 01:17:10,890 En so het die newe-effek van hierdie funksie is dat dit net druk dinge 1543 01:17:10,890 --> 01:17:11,920 uit na die bladsy. 1544 01:17:11,920 --> 01:17:13,840 Dit maak nie eintlik neem enige insette, en dit nie 1545 01:17:13,840 --> 01:17:15,360 eintlik produseer enige uitgange. 1546 01:17:15,360 --> 01:17:18,230 >> Maar dit kan in die sin nuttig wees As jy wil, byvoorbeeld, debug 1547 01:17:18,230 --> 01:17:21,530 iets in jou program, as jy wil 'n bietjie subroutine te skryf wat 1548 01:17:21,530 --> 01:17:25,160 druk uit, kom ons sê, die inhoud geheue of iets. 1549 01:17:25,160 --> 01:17:29,800 En so hierdie newe-effekte is soms nuttige buite die konteks 1550 01:17:29,800 --> 01:17:33,010 van net graag insette en uitsette. 1551 01:17:33,010 --> 01:17:34,260 Enige vrae? 1552 01:17:34,260 --> 01:17:37,270 1553 01:17:37,270 --> 01:17:44,240 >> En hierdie spesifieke segment te beëindig, Wat beteken hierdie program doen? 1554 01:17:44,240 --> 01:17:47,420 Ek gee julle 'n paar sekondes deur dit te lees. 1555 01:17:47,420 --> 01:17:52,720 1556 01:17:52,720 --> 01:17:56,880 Op 'n baie basiese vlak, wat ons wil sê, is dat dit swaps x en y, reg? 1557 01:17:56,880 --> 01:18:00,090 >> So hoeveel van julle het eintlik dink dit sal x en y ruil? 1558 01:18:00,090 --> 01:18:02,160 Lig jou hand. 1559 01:18:02,160 --> 01:18:02,760 Niemand. 1560 01:18:02,760 --> 01:18:03,070 OK. 1561 01:18:03,070 --> 01:18:06,720 Wie dink dat dit sal nie x en y ruil? 1562 01:18:06,720 --> 01:18:09,120 En die bedrag van wat nie die hele kamer. 1563 01:18:09,120 --> 01:18:10,440 So 'n paar mense is nie seker nie. 1564 01:18:10,440 --> 01:18:10,920 OK. 1565 01:18:10,920 --> 01:18:11,630 Dit is redelik. 1566 01:18:11,630 --> 01:18:16,450 >> So laat ons gaan deur wat gebeur wanneer jy funksies eintlik eerste oproep in 1567 01:18:16,450 --> 01:18:18,320 Om hierdie vraag te beantwoord. 1568 01:18:18,320 --> 01:18:21,430 So dit is wat die geheue soort lyk. 1569 01:18:21,430 --> 01:18:23,860 Dit is soort van soos 'n vereenvoudigde model van wat die geheue lyk soos wanneer 1570 01:18:23,860 --> 01:18:24,800 jy 'n program. 1571 01:18:24,800 --> 01:18:27,270 So daar is iets genoem die stapel hier en 1572 01:18:27,270 --> 01:18:28,330 iets genoem die hoop. 1573 01:18:28,330 --> 01:18:30,950 En dit groei na die middel van die geheue. 1574 01:18:30,950 --> 01:18:33,860 >> So in hierdie geval, wanneer jy noem 'n funksie is, is dit 1575 01:18:33,860 --> 01:18:35,680 kry op die stapel. 1576 01:18:35,680 --> 01:18:38,900 En dan ook al is vervat in daardie funksie bly in wat ons noem dat 1577 01:18:38,900 --> 01:18:40,550 funksie se stapel raam. 1578 01:18:40,550 --> 01:18:44,500 En so 'n mooi visualisering te kry hierdie, let's - byvoorbeeld, het ons die 1579 01:18:44,500 --> 01:18:45,960 program hoof vroeër. 1580 01:18:45,960 --> 01:18:47,820 En binne-in van die belangrikste, ons noem kubus. 1581 01:18:47,820 --> 01:18:50,650 So hoof sal eerste gaan op die stapel raam, want dit is die eerste funksie 1582 01:18:50,650 --> 01:18:51,640 Dit is genoem. 1583 01:18:51,640 --> 01:18:55,740 >> En dan wanneer kubus binnekant van die naam hoof, word dit op die top van die belangrikste 1584 01:18:55,740 --> 01:18:57,790 binnekant van die geheue. 1585 01:18:57,790 --> 01:19:02,090 So, wat jy hier sien is dat kubus het sy eie parameters en sy 1586 01:19:02,090 --> 01:19:02,950 eie plaaslike inwoners. 1587 01:19:02,950 --> 01:19:06,720 So wanneer jy eintlik iets slaag om 'n funksie, die parameters dat dit 1588 01:19:06,720 --> 01:19:09,910 kry afskrifte van wat was geslaag in uit die hoof. 1589 01:19:09,910 --> 01:19:14,140 >> En soort van verduidelik, laat loop deur 'n program. 1590 01:19:14,140 --> 01:19:16,960 So het ons die stapel; dit is net die stapel gedeelte. 1591 01:19:16,960 --> 01:19:21,240 En wat ons doen, is ons eerste inisialiseer x en y aan die een en twee. 1592 01:19:21,240 --> 01:19:22,400 So ons het hierdie klein bokse. 1593 01:19:22,400 --> 01:19:25,310 Hulle is in die belangrikste se stapel sit raam op die stapel. 1594 01:19:25,310 --> 01:19:26,580 Hulle bevat een en twee. 1595 01:19:26,580 --> 01:19:28,820 >> Nou noem ons ruil. 1596 01:19:28,820 --> 01:19:33,940 Wat gebeur is dat ons slaag x en y in ruil, en ruil skep sy eie kopieë 1597 01:19:33,940 --> 01:19:36,520 van daardie veranderlikes binne gebruik van sy stapel raam. 1598 01:19:36,520 --> 01:19:39,920 So nou daar, ons het 'n, wat bevat die waarde wat x het, en b, 1599 01:19:39,920 --> 01:19:41,620 wat bevat die waarde wat y het. 1600 01:19:41,620 --> 01:19:42,670 So een, twee. 1601 01:19:42,670 --> 01:19:47,130 >> En jy sal sien dat dit 'n afsonderlike van x en y binnekant van hoof. 1602 01:19:47,130 --> 01:19:51,390 So het ons nou 'n tydelike veranderlike 'n te bevat. 1603 01:19:51,390 --> 01:19:56,100 Ons het 'n gelyk aan B, dus is dit veranderinge vanaf een na twee. 1604 01:19:56,100 --> 01:19:59,340 En dan sit ons b gelyke te temp, wat een. 1605 01:19:59,340 --> 01:20:01,640 >> En dan nou stop uit ons van hierdie funksie. 1606 01:20:01,640 --> 01:20:04,310 1607 01:20:04,310 --> 01:20:07,410 Wanneer jy die uitgang van die funksie, die stapel raam kry inloer die stapel. 1608 01:20:07,410 --> 01:20:08,270 Ons noem dit stoot. 1609 01:20:08,270 --> 01:20:12,750 Jy stoot 'n stapel raam op die stapel en jy pop as uit die stapel. 1610 01:20:12,750 --> 01:20:16,080 En so wat gebeur, is alles wat was in daardie stapel raam soort van net 1611 01:20:16,080 --> 01:20:17,280 gaan in vlamme op. 1612 01:20:17,280 --> 01:20:19,180 En sodat nie meer bestaan ​​nie. 1613 01:20:19,180 --> 01:20:20,470 >> Maar wat sien ons? 1614 01:20:20,470 --> 01:20:23,690 Ons het nog nooit werklik verander die waardes van x en y, reg? 1615 01:20:23,690 --> 01:20:26,530 So diegene gebly plaaslike na. 1616 01:20:26,530 --> 01:20:29,900 En deur 'dinge in ruil, ons eintlik nooit daardie waardes verander. 1617 01:20:29,900 --> 01:20:31,260 En wat noem ons dit? 1618 01:20:31,260 --> 01:20:33,040 Ons noem hierdie verbygaande waarde. 1619 01:20:33,040 --> 01:20:36,860 >> So in C, wanneer jy dinge in funksies, is dit verby hulle deur waarde en 1620 01:20:36,860 --> 01:20:40,160 maak 'n afskrif van hulle vir die funksie te gebruik. 1621 01:20:40,160 --> 01:20:43,980 En ons sal leer oor iets genoem verby verwysing later, maar dit is 1622 01:20:43,980 --> 01:20:45,390 'n manier wat jy kan hierdie probleem op te los. 1623 01:20:45,390 --> 01:20:47,080 Maar ons sal nie bekommerd wees oor wat tot later. 1624 01:20:47,080 --> 01:20:52,200 >> ROB: En eintlik, die term, verby deur verwysing nie so C nie eens 1625 01:20:52,200 --> 01:20:54,270 verby verwysing. 1626 01:20:54,270 --> 01:20:56,760 C uitsluitlik het verby waarde. 1627 01:20:56,760 --> 01:20:59,630 Maak nie saak wat jy doen, jy is altyd verby 'n afskrif van iets. 1628 01:20:59,630 --> 01:21:03,395 Dit is net dat, soos ek soort van genoemde wat voor met wysers 1629 01:21:03,395 --> 01:21:07,690 en dat 'n string is regtig net vier grepe wys na iewers in die geheue. 1630 01:21:07,690 --> 01:21:11,890 >> Wel, as ek hierdie string en dit is vertel my dit is waar die string - 1631 01:21:11,890 --> 01:21:15,470 Wel, as ek dit wyser om hierdie plaas in die geheue, dan kan ek verby 'n 1632 01:21:15,470 --> 01:21:19,160 afskrif van daardie wyser na 'n funksie, en daardie funksie nog steeds weet waar in 1633 01:21:19,160 --> 01:21:19,780 geheue is. 1634 01:21:19,780 --> 01:21:22,950 So beide van hierdie wysers wys na dieselfde plek in die geheue, en 1635 01:21:22,950 --> 01:21:26,460 dit is hoe ons gaan in staat wees om dinge wat buite die te verander 1636 01:21:26,460 --> 01:21:29,852 huidige stapel. 1637 01:21:29,852 --> 01:21:31,040 >> Josef Wil jy om te doen die opstel? 1638 01:21:31,040 --> 01:21:31,820 >> ROB: Nee, dis 05:30. 1639 01:21:31,820 --> 01:21:32,910 >> Josef OK. 1640 01:21:32,910 --> 01:21:35,040 Dit is 05:30. 1641 01:21:35,040 --> 01:21:35,360 OK. 1642 01:21:35,360 --> 01:21:39,280 So sal ons dek die opstel Ek dink in die volgende artikel, of jou artikel 1643 01:21:39,280 --> 01:21:42,795 leier op daardie tydstip. 1644 01:21:42,795 --> 01:21:43,272 En - 1645 01:21:43,272 --> 01:21:44,630 >> ROB: Enige vrae? 1646 01:21:44,630 --> 01:21:46,760 >> Josef Enige vrae? 1647 01:21:46,760 --> 01:21:47,150 Ja? 1648 01:21:47,150 --> 01:21:52,469 >> SPREKER 5: Gebruik snare van CS50, enige funksies wat ons wil gebruik vir 1649 01:21:52,469 --> 01:21:53,880 diegene, sal dit wees soos C funksies. 1650 01:21:53,880 --> 01:21:59,050 CS50 het nie in en gegaan gemaak om enige bykomende. 1651 01:21:59,050 --> 01:22:01,850 >> ROB: Korrekte. 1652 01:22:01,850 --> 01:22:08,155 Enige van die C soos [onhoorbaar], het jy sou gebruik wat op ons snare. 1653 01:22:08,155 --> 01:22:12,400 >> Josef, en een laaste ding wat ek wil noem, is dat ons 'n styl gids 1654 01:22:12,400 --> 01:22:13,130 vir hierdie klas. 1655 01:22:13,130 --> 01:22:13,360 >> ROB: O, ja. 1656 01:22:13,360 --> 01:22:15,270 >> Josef So as jy kom uit 'n programmering agtergrond voordat jy 1657 01:22:15,270 --> 01:22:17,750 dalk sekere konvensies wanneer jy kode skryf soos om 1658 01:22:17,750 --> 01:22:20,950 draadjies op dieselfde lyn of bepaalde maniere van insp 1659 01:22:20,950 --> 01:22:22,240 of die name van jou veranderlikes. 1660 01:22:22,240 --> 01:22:26,870 In hierdie klas, ons wil om te volg 'n spesifieke styl gids net omdat, 1661 01:22:26,870 --> 01:22:31,100 Wel, as jy gaan uit en werk in bedryf, is jy verwag gaan 1662 01:22:31,100 --> 01:22:34,780 die styl gids van die te volg maatskappy waar jy gaan. 1663 01:22:34,780 --> 01:22:38,040 >> Soos byvoorbeeld Facebook Ek dink het 'n besondere soort van noem 1664 01:22:38,040 --> 01:22:38,760 konvensie. 1665 01:22:38,760 --> 01:22:42,570 En daar is verskille tussen die kameel omhulsel veranderlikes en net soos 1666 01:22:42,570 --> 01:22:44,610 skei hulle met karakters. 1667 01:22:44,610 --> 01:22:52,170 En ook, ek dink die belangrikste, soos byvoorbeeld, inkeping, reg? 1668 01:22:52,170 --> 01:22:56,440 >> Ons krulhakies begin waar die toestand is, en hulle 1669 01:22:56,440 --> 01:22:57,730 is op die volgende reël. 1670 01:22:57,730 --> 01:23:01,230 En ons sit ook krulhakies in selfs al is dit net een lyn. 1671 01:23:01,230 --> 01:23:06,100 En 'n baie tye, is daar maniere om te doen dit waar jy die draadjies kan laat 1672 01:23:06,100 --> 01:23:08,380 af is dit net een reël onder die As verklaring. 1673 01:23:08,380 --> 01:23:12,070 Maar in hierdie klas, ons wil om te volg 'n spesifieke styl gids net so jy 1674 01:23:12,070 --> 01:23:13,550 gebruik om daardie soort van ding. 1675 01:23:13,550 --> 01:23:16,410 >> ROB: Ja, en die styl 50 gaan dwing hierdie styl gids, en ons is 1676 01:23:16,410 --> 01:23:18,080 gaan Style 50 te gebruik tot graad jou kode. 1677 01:23:18,080 --> 01:23:25,150 So dit maak dinge makliker vir ons en hopelik nie moet maak dinge wat 1678 01:23:25,150 --> 01:23:30,120 veel erger vir jou gegee gestandaardiseerde styl moet nie wees dat 1679 01:23:30,120 --> 01:23:31,460 onrealisties. 1680 01:23:31,460 --> 01:23:36,000 >> Josef, en uiteindelik, om die styl te vind gids, gaan na manual.cs50.net/style. 1681 01:23:36,000 --> 01:23:37,725 En ja. 1682 01:23:37,725 --> 01:23:40,575 >> SPREKER 4: Is jy gaan af te dwing enige karakters per lyn? 1683 01:23:40,575 --> 01:23:42,480 >> ROB: Ja. 1684 01:23:42,480 --> 01:23:45,405 >> Josef Jammer, ouens. 1685 01:23:45,405 --> 01:23:47,680 >> ROB: Dit is soos een van die enigstes. 1686 01:23:47,680 --> 01:23:50,420 Op hierdie punt, ek is OK met 120. 1687 01:23:50,420 --> 01:23:52,460 Ek is OK met gesê 120 karakters per lyn. 1688 01:23:52,460 --> 01:23:53,830 Ek verstaan ​​dat daar 'n paar limiet. 1689 01:23:53,830 --> 01:23:57,130 Ek dink 80 is so klein, maar ons af te dwing. 1690 01:23:57,130 --> 01:24:00,260 >> Josef Persoonlik dink ek met C, 80 karakters is meer OK. 1691 01:24:00,260 --> 01:24:04,160 Sodra jy begin om na ander tale soos JavaScript en PHP, nie 1692 01:24:04,160 --> 01:24:08,860 so redelike net beperk dit tot 80 karakters. 1693 01:24:08,860 --> 01:24:09,260 OK. 1694 01:24:09,260 --> 01:24:12,780 Wel, dit was die super-afdeling. 1695 01:24:12,780 --> 01:24:14,750 Is daar iemand wat wil lekkergoed? 1696 01:24:14,750 --> 01:24:16,000 >> SPREKER 4: Ja. 1697 01:24:16,000 --> 01:24:18,667