1 00:00:00,000 --> 00:00:03,290 >> [Musik spiller] 2 00:00:03,290 --> 00:00:04,989 3 00:00:04,989 --> 00:00:06,280 JASON Hirschhorn: OK, alle. 4 00:00:06,280 --> 00:00:07,460 Velkommen til afdeling. 5 00:00:07,460 --> 00:00:10,840 Dette er CS50, vores meget første super sektion. 6 00:00:10,840 --> 00:00:13,700 Som I alle ved, næste uge regelmæssige afsnit vil starte, 7 00:00:13,700 --> 00:00:15,580 men i denne uge er vi alle sammen. 8 00:00:15,580 --> 00:00:17,730 >> Der er mig selv. 9 00:00:17,730 --> 00:00:18,840 Mit navn er Jason. 10 00:00:18,840 --> 00:00:20,630 Jeg er lektor i datalogi. 11 00:00:20,630 --> 00:00:23,910 Vi har Andi, hvem der er leder TA af CS50. 12 00:00:23,910 --> 00:00:27,630 Og SCAZ, professor Brian Scassellati, han er en professor i datalogi. 13 00:00:27,630 --> 00:00:30,970 >> Vi er de CS50 hoveder på Yale. 14 00:00:30,970 --> 00:00:34,992 Du kan altid maile os heads@cs50.yale.edu. 15 00:00:34,992 --> 00:00:35,950 Vi vil være på foredrag. 16 00:00:35,950 --> 00:00:37,547 Vi vil være på kontortid. 17 00:00:37,547 --> 00:00:40,130 Hvis der er nogensinde noget, vi kan gøre for dig, alt hvad du har brug for, 18 00:00:40,130 --> 00:00:42,610 velkommen til at nå ud til os. 19 00:00:42,610 --> 00:00:44,140 >> Så hvad skal vi gøre i dag? 20 00:00:44,140 --> 00:00:47,790 Eller inden da, hvad er kommer op i denne uge? 21 00:00:47,790 --> 00:00:52,620 Så kontortid er mandag, tirsdag, Onsdag og torsdag, fra 8:00 til 11:00. 22 00:00:52,620 --> 00:00:54,770 Der er en tidsplan på hjemmesiden. 23 00:00:54,770 --> 00:00:57,830 >> Sektioner, som jeg nævnte, starter i næste uge. 24 00:00:57,830 --> 00:01:01,390 Og du vil finde ud denne uge, hvad tid dit sektion er, hvad dag det er, 25 00:01:01,390 --> 00:01:03,350 og hvem din TA er. 26 00:01:03,350 --> 00:01:08,610 >> Problem Set 1 skyldes på torsdag middag, fredag ​​ved middagstid med en sen dag. 27 00:01:08,610 --> 00:01:10,817 Ja, har du ni sene dage. 28 00:01:10,817 --> 00:01:12,150 Og der er ni problem sæt. 29 00:01:12,150 --> 00:01:14,320 Og kan kun bruge én sen dag pr problemer sæt. 30 00:01:14,320 --> 00:01:17,930 Ja, i kraft, alt problem sæt forfalder fredag ​​middag. 31 00:01:17,930 --> 00:01:18,550 Det er alt. 32 00:01:18,550 --> 00:01:20,400 Alt, detaljer er på pensum. 33 00:01:20,400 --> 00:01:22,360 >> Hver fredag ​​har vi frokoster. 34 00:01:22,360 --> 00:01:25,230 Vi kan godt lide at gøre denne store selvfølgelig føle sig en smule mindre. 35 00:01:25,230 --> 00:01:26,580 Så du er velkommen til at RSVP. 36 00:01:26,580 --> 00:01:30,050 Gratis frokost med kolleger klassekammerater og personale. 37 00:01:30,050 --> 00:01:34,120 cs50.yale.edu/rsvp. 38 00:01:34,120 --> 00:01:36,940 >> Alle disse ting, Jeg har på skærmen, 39 00:01:36,940 --> 00:01:43,330 og mere, kan du finde cs50.yale.edu eller cs50.harvard.edu, hvis du går til Harvard 40 00:01:43,330 --> 00:01:46,800 og ser dette online. 41 00:01:46,800 --> 00:01:50,240 >> Også på disse websteder, der er et væld af ressourcer for dig. 42 00:01:50,240 --> 00:01:54,610 Hver forelæsning har ikke kun videoen af foredraget, men også bemærker. 43 00:01:54,610 --> 00:01:58,184 Nogen vil se foredrag og tage noter for dig. 44 00:01:58,184 --> 00:02:00,100 Så du kan bare betale opmærksomhed under foredrag, 45 00:02:00,100 --> 00:02:03,970 eller du kan bruge deres noter / vores bemærker at supplere dine egne noter. 46 00:02:03,970 --> 00:02:04,987 >> Der er dias online. 47 00:02:04,987 --> 00:02:07,320 Kilden code-- alt David går hen i foredrag, 48 00:02:07,320 --> 00:02:09,979 eller SCAZ går over foredrag, der kildekoden er tilgængelig online 49 00:02:09,979 --> 00:02:11,750 så godt, som ligesom jeg, nævnte videoer. 50 00:02:11,750 --> 00:02:14,257 >> Sektioner, ligeledes vil alle blive filmet. 51 00:02:14,257 --> 00:02:15,840 Alle disse slides vil være tilgængelige. 52 00:02:15,840 --> 00:02:18,190 Alt dette kodeks vil være til rådighed for dig. 53 00:02:18,190 --> 00:02:22,440 Der er shorts på den hjemmeside, hvor CS50 medarbejdere tilbringer fem til 10 54 00:02:22,440 --> 00:02:24,130 minutter gennemgår emner for dig. 55 00:02:24,130 --> 00:02:26,750 Nogle af dem, du har allerede stødt på i problemområder sæt. 56 00:02:26,750 --> 00:02:30,430 >> Kontortid, som jeg nævnte, mandage gennem torsdage, 8:00 til 11:00. 57 00:02:30,430 --> 00:02:32,600 CS50 Study er en fantastisk ressource. 58 00:02:32,600 --> 00:02:37,100 Der er praksis problemer, prøve dias, kendte fejl 59 00:02:37,100 --> 00:02:40,920 at de studerende kan lide at løbe ind i, for væsentlige hvert emne, vi 60 00:02:40,920 --> 00:02:42,650 vil dække i dette kursus. 61 00:02:42,650 --> 00:02:46,350 >> Og endelig, om dette dias mindst, Reference50 62 00:02:46,350 --> 00:02:49,690 som giver dig information på alle de C-funktioner 63 00:02:49,690 --> 00:02:53,160 du nogensinde kunne muligvis håbe at bruge og mange, mange flere. 64 00:02:53,160 --> 00:02:55,690 >> Igen, der dot dot dot på bunden af ​​skærmen 65 00:02:55,690 --> 00:02:59,990 er at vise, at der er endda flere ressourcer på disse to hjemmesider: 66 00:02:59,990 --> 00:03:04,270 cs50.yale.edu, cs50.harvard.edu. 67 00:03:04,270 --> 00:03:05,840 >> Så hvad gør vi i dag? 68 00:03:05,840 --> 00:03:08,970 Nå, først vil jeg give man ser på ressourcerne. 69 00:03:08,970 --> 00:03:10,010 Allerede gjorde at en. 70 00:03:10,010 --> 00:03:11,590 Se på os. 71 00:03:11,590 --> 00:03:16,430 >> Nu, vi kommer til at gå over datatyper og operatører i C. 72 00:03:16,430 --> 00:03:19,990 Så Andi vil komme herop og gå over biblioteker i C, printf (), 73 00:03:19,990 --> 00:03:24,570 en funktion, som du allerede kender eller vil hurtigt blive meget 74 00:03:24,570 --> 00:03:25,530 velkendt. 75 00:03:25,530 --> 00:03:27,810 Og du vil også gå over betingede og loops. 76 00:03:27,810 --> 00:03:30,900 >> Og så til sidst, SCAZ vil gå over CS50-id. 77 00:03:30,900 --> 00:03:34,250 Hvis du ikke har dove i allerede i Problem Set 1, 78 00:03:34,250 --> 00:03:37,060 samt hvordan man bruger terminal og nyttige kommandoer 79 00:03:37,060 --> 00:03:42,280 og derefter give dig nogle demoer og praksis kodning i CS50-id. 80 00:03:42,280 --> 00:03:45,130 >> Før jeg hopper ind på dette indholdet på denne side, 81 00:03:45,130 --> 00:03:46,770 Er der nogen har nogen spørgsmål indtil nu? 82 00:03:46,770 --> 00:03:53,190 83 00:03:53,190 --> 00:03:54,030 Great. 84 00:03:54,030 --> 00:03:54,950 OK. 85 00:03:54,950 --> 00:03:55,810 Skifte gear. 86 00:03:55,810 --> 00:03:58,760 >> [Skifte gear] 87 00:03:58,760 --> 00:04:03,070 >> Det var mig skiftende gear i en manuel bil. 88 00:04:03,070 --> 00:04:10,920 Så datatyper i C, kan du ikke bare have en variabel x og har det være på linje 10, 89 00:04:10,920 --> 00:04:17,170 et helt tal, måske nummer 1, på linie 20, et decimaltal 10.5, 90 00:04:17,170 --> 00:04:20,500 og derefter en par linjer senere en streng, jeg elsker CS50. 91 00:04:20,500 --> 00:04:25,052 >> I C, kan variabler kun én ting, og kun én ting. 92 00:04:25,052 --> 00:04:26,510 Og så er du nødt til at give dem typer. 93 00:04:26,510 --> 00:04:28,780 Og på dette board, vi har en liste over typer. 94 00:04:28,780 --> 00:04:32,000 Der er tegn, som står for tegn. 95 00:04:32,000 --> 00:04:36,850 Så det er et bogstav A, B, C, D. Det kan også være et rum, 96 00:04:36,850 --> 00:04:40,290 eller der kan også være en ny linje karakter. 97 00:04:40,290 --> 00:04:45,030 >> Der er hele tal, der er lige tal, hele numbers-- eller heltal 98 00:04:45,030 --> 00:04:47,130 rather-- men ingen decimaler. 99 00:04:47,130 --> 00:04:49,790 >> For decimaler, vi har floating point tal. 100 00:04:49,790 --> 00:04:53,200 Floating point tal er tal med decimaler. 101 00:04:53,200 --> 00:04:58,160 >> Så er der længes, som er væsentlige længere heltal. 102 00:04:58,160 --> 00:05:01,160 Du vil opdage, at en lang er 8 hvorimod en int er 4. 103 00:05:01,160 --> 00:05:02,640 Jeg kommer til det i en anden. 104 00:05:02,640 --> 00:05:07,390 Det er fordi længes kan gemme selv flere heltal end en int kan lagre. 105 00:05:07,390 --> 00:05:10,100 Dobbelt er en lang flyde. 106 00:05:10,100 --> 00:05:12,460 >> Og endelig har vi streng, som er en type 107 00:05:12,460 --> 00:05:14,430 at du sikkert har brugt før. 108 00:05:14,430 --> 00:05:21,100 Hvis du inkluderer hashtag # includeCS50.h i din kildefil, 109 00:05:21,100 --> 00:05:23,170 så kan du bruge en snor type. 110 00:05:23,170 --> 00:05:25,560 Det er faktisk ikke bygget ind i C. 111 00:05:25,560 --> 00:05:27,760 >> Der er et par andre typer samt. 112 00:05:27,760 --> 00:05:32,900 Men disse er de vigtigste dem med som du vil bruge, og støder på. 113 00:05:32,900 --> 00:05:36,210 C som igen nævnte jeg, hver variable-- det 114 00:05:36,210 --> 00:05:38,620 kan kun være én type og kun en type. 115 00:05:38,620 --> 00:05:42,890 Det er fordi C er en statisk skrevet sprog, i modsætning 116 00:05:42,890 --> 00:05:45,780 til dynamisk maskinskrevne sprog hvor, hvis du opretter en variabel 117 00:05:45,780 --> 00:05:50,081 du kan ændre, hvad der er gemt i det som du går på i dit program. 118 00:05:50,081 --> 00:05:52,580 Herovre på højre hånd side, jeg har de forskellige størrelser 119 00:05:52,580 --> 00:05:57,440 af disse typer af data i bytes. 120 00:05:57,440 --> 00:05:59,710 Så en karakter er 1 byte. 121 00:05:59,710 --> 00:06:01,250 Det er 8 bit. 122 00:06:01,250 --> 00:06:05,530 Og det betyder, fordi 8 bits der er otte 0'er og 1'ere. 123 00:06:05,530 --> 00:06:08,280 Vi så disse demoer i første uge med at binære pærer. 124 00:06:08,280 --> 00:06:15,680 >> Med 8 bit eller 1 byte, vi kan repræsentere tal fra 0 til 255. 125 00:06:15,680 --> 00:06:16,180 Højre. 126 00:06:16,180 --> 00:06:18,770 Hvis alle 8 bit er 0, der er 0. 127 00:06:18,770 --> 00:06:23,640 Hvis den første bit er 1, der er nummeret én, og så videre, hele vejen op til 255. 128 00:06:23,640 --> 00:06:28,290 Og det er derfor for tegn, du kan har i alt væsentligt op til 255 af dem, 129 00:06:28,290 --> 00:06:31,210 men det er rigeligt til at dække alle de tegn, vi skal bruge. 130 00:06:31,210 --> 00:06:38,060 >> For heltal, kan du have 0 og så har du 2 til 32 minus 1. 131 00:06:38,060 --> 00:06:40,340 Det er, hvor mange muligheder du har for heltal. 132 00:06:40,340 --> 00:06:44,780 >> I lang, har du 0 til 2 til 64 minus 1. 133 00:06:44,780 --> 00:06:48,860 Så du har mange, mange, flere muligheder for længes. 134 00:06:48,860 --> 00:06:54,220 >> Strenge, det er et spørgsmålstegn fordi det er en cliffhanger til senere. 135 00:06:54,220 --> 00:06:55,000 Ja. 136 00:06:55,000 --> 00:06:56,350 Jeg kunne fortælle alle er på kanten af ​​deres sæde, 137 00:06:56,350 --> 00:06:57,450 ligesom hvad er det spørgsmålstegnet? 138 00:06:57,450 --> 00:06:58,390 Det er en cliffhanger. 139 00:06:58,390 --> 00:07:02,340 Vi vil med tiden dække størrelse strygere og tale mere om strenge. 140 00:07:02,340 --> 00:07:04,692 Fordi strengen er faktisk en af ​​støttehjul 141 00:07:04,692 --> 00:07:06,400 vi lægger på i denne kursus i begyndelsen 142 00:07:06,400 --> 00:07:09,700 og derefter tage ud senere på, fordi strenge i C 143 00:07:09,700 --> 00:07:13,320 faktisk pointere til karakter arrays. 144 00:07:13,320 --> 00:07:15,810 Men igen, det er en cliffhanger til senere. 145 00:07:15,810 --> 00:07:18,890 Før jeg går videre spørgsmål, kommentarer, bekymringer om dette dias? 146 00:07:18,890 --> 00:07:25,800 147 00:07:25,800 --> 00:07:26,630 >> OK. 148 00:07:26,630 --> 00:07:30,330 Jeg må være en fantastisk explainer. 149 00:07:30,330 --> 00:07:33,210 Også når du programmerer, du kommer til at bruge disse operatører. 150 00:07:33,210 --> 00:07:36,730 Virkelig simple tegn, der kan gøre simple operationer, som du sandsynligvis 151 00:07:36,730 --> 00:07:38,340 allerede meget fortrolig. 152 00:07:38,340 --> 00:07:42,580 >> For eksempel, på højre side ser vi tilføje. 153 00:07:42,580 --> 00:07:44,640 For at tilføje, du bare gøre en Plus tegn. 154 00:07:44,640 --> 00:07:46,850 Og så har du måske to variable x og y. 155 00:07:46,850 --> 00:07:48,810 Du kan gøre x + y i din kode. 156 00:07:48,810 --> 00:07:52,790 Måske du ønsker at-- sige dig har nummeret 7 og 3, 157 00:07:52,790 --> 00:07:55,780 du ønsker at gemme, at i en variabel kaldet sum. 158 00:07:55,780 --> 00:08:03,010 Du kan gøre int for den type, rum sum, navnet på variablen, = 7 + 3; 159 00:08:03,010 --> 00:08:05,780 >> Hvad ville det butik i sum? 160 00:08:05,780 --> 00:08:07,190 Nogen? 161 00:08:07,190 --> 00:08:09,270 Hvis jeg havde i summen = 7 + 3. 162 00:08:09,270 --> 00:08:10,437 Hvad ville der opbevares i sum? 163 00:08:10,437 --> 00:08:11,520 Du kan bare råbe det ud. 164 00:08:11,520 --> 00:08:12,120 PUBLIKUM: 10. 165 00:08:12,120 --> 00:08:12,995 >> JASON Hirschhorn: 10! 166 00:08:12,995 --> 00:08:14,870 Det er helt rigtigt. 167 00:08:14,870 --> 00:08:19,520 Hvad med i summen = 7 - 3, med Jeg bare bruge bindestreg tegn. 168 00:08:19,520 --> 00:08:20,871 Hvad kommer til at opbevares? 169 00:08:20,871 --> 00:08:21,370 PUBLIKUM: 4. 170 00:08:21,370 --> 00:08:22,203 JASON Hirschhorn: 4. 171 00:08:22,203 --> 00:08:25,770 Sum er sandsynligvis den forkerte navn for denne variabel, ville men 4 opbevares. 172 00:08:25,770 --> 00:08:31,890 >> At formere i C, skal du bruge lidt Stjerne karakter, behøver du ikke bruge en x. 173 00:08:31,890 --> 00:08:35,990 At dele, bruge en Forward Slash ikke division symbol. 174 00:08:35,990 --> 00:08:39,580 Og at modulo Brug Procent symbol. 175 00:08:39,580 --> 00:08:47,900 >> Så lad os sige, at jeg ønsker at se int z = 7% 3, hvad ville blive lagret i z? 176 00:08:47,900 --> 00:08:51,250 Så det er væsentligt spørger hvad betyder modulo gøre? 177 00:08:51,250 --> 00:08:52,750 Er der nogen vide, hvad modulo gør? 178 00:08:52,750 --> 00:08:53,940 Ja. 179 00:08:53,940 --> 00:08:54,870 Y4. 180 00:08:54,870 --> 00:08:56,120 SPEAKER 1: Det er resten. 181 00:08:56,120 --> 00:08:58,369 JASON Hirschhorn: Det er den Resten, når du deler. 182 00:08:58,369 --> 00:09:02,790 Så 7 divideret med 3 er 2 resterende 1. 183 00:09:02,790 --> 00:09:04,690 Så 1 ville blive gemt. 184 00:09:04,690 --> 00:09:06,970 >> Du klarede subtraktion, men det er, hvordan det fungerer. 185 00:09:06,970 --> 00:09:09,140 Det er, hvad modulo operatøren gør. 186 00:09:09,140 --> 00:09:12,360 Det tager en række deler den med et andet nummer og vender tilbage til dig 187 00:09:12,360 --> 00:09:14,590 resten. 188 00:09:14,590 --> 00:09:19,770 Så igen, 7% 3 giver dig 1, fordi 7 divideret med 3 er 2 resterende 1, 189 00:09:19,770 --> 00:09:21,650 og returnerer resten. 190 00:09:21,650 --> 00:09:24,470 >> Hvad med lad os gå tilbage op et skridt til denne deling tegn. 191 00:09:24,470 --> 00:09:29,194 Hvis jeg gjorde 7 / divideret med 3 gør nogen ved, hvad det ville vende tilbage? 192 00:09:29,194 --> 00:09:30,090 >> SPEAKER 2: 2. 193 00:09:30,090 --> 00:09:32,240 >> JASON Hirschhorn: Hvorfor 2 og ikke 2.333? 194 00:09:32,240 --> 00:09:34,560 >> SPEAKER 2: Jeg synes, det skærer ud efter hele tal. 195 00:09:34,560 --> 00:09:36,310 JASON Hirschhorn: Så det er helt rigtigt. 196 00:09:36,310 --> 00:09:39,880 I C, hvis du gør opdeling af to heltal 7 divideret med 3, 197 00:09:39,880 --> 00:09:43,430 det får det svar, som i dette tilfælde 2,3333 evigt 198 00:09:43,430 --> 00:09:47,080 og den konstaterer, at kommaet og hugger alt ud efter kommaet 199 00:09:47,080 --> 00:09:49,240 og det bare vender du 2. 200 00:09:49,240 --> 00:09:51,120 >> Så hvis jeg gjorde 8 divideret med 3. 201 00:09:51,120 --> 00:09:54,010 Det faktisk, vi kender at for at vende tilbage 2,666, 202 00:09:54,010 --> 00:09:57,050 men det hugger alt ud på decimaltegnet, afkorter det hele, 203 00:09:57,050 --> 00:09:58,640 og bare vender tilbage til dig 2. 204 00:09:58,640 --> 00:10:02,090 Så 6 divideret med 3, 7 opdelt med 3, 8 divideret med 3, 205 00:10:02,090 --> 00:10:04,840 er alle kommer til at vende tilbage til dig 2. 206 00:10:04,840 --> 00:10:08,770 >> Er der nogen vide, eller har et gæt, til, hvordan jeg rent faktisk kunne få 207 00:10:08,770 --> 00:10:10,790 den fulde svar, hvis jeg ønsker at decimal? 208 00:10:10,790 --> 00:10:13,120 209 00:10:13,120 --> 00:10:13,620 Ja. 210 00:10:13,620 --> 00:10:14,152 Fortsæt. 211 00:10:14,152 --> 00:10:15,110 SPEAKER 3: Brug en flyder? 212 00:10:15,110 --> 00:10:16,942 JASON Hirschhorn: Hvad mener du? 213 00:10:16,942 --> 00:10:19,786 SPEAKER 3: Fordi du sagde det float er for tal [uhørligt] 214 00:10:19,786 --> 00:10:22,900 215 00:10:22,900 --> 00:10:23,900 JASON Hirschhorn: Right. 216 00:10:23,900 --> 00:10:26,100 Så det er helt rigtigt. 217 00:10:26,100 --> 00:10:28,440 7 er et helt tal. 218 00:10:28,440 --> 00:10:31,690 Men hvis jeg ønskede at vende det i et decimaltal, 219 00:10:31,690 --> 00:10:34,674 Jeg ville have til at gemme, at som 7,0 fordi computeren 220 00:10:34,674 --> 00:10:37,090 er virkelig stupid-- vi så, at med PB og J example-- 221 00:10:37,090 --> 00:10:38,930 det vil kun gøre præcis hvad du fortæller det. 222 00:10:38,930 --> 00:10:40,846 >> Så hvis du skriver 7, det tror, ​​det er et heltal. 223 00:10:40,846 --> 00:10:43,640 Hvis du skriver 7,0, selv om vi kender disse ting er ækvivalente, 224 00:10:43,640 --> 00:10:45,550 det behandler det som en decimaltal. 225 00:10:45,550 --> 00:10:50,441 Så hvis du gjorde 7,0 divideret med 3 eller divideres med 3,0, 226 00:10:50,441 --> 00:10:52,440 Det vil sige, OK, nu vi har at gøre med flåd. 227 00:10:52,440 --> 00:10:57,514 Jeg vil vende tilbage til dig 2.333333 evigt. 228 00:10:57,514 --> 00:10:59,930 Men ikke virkelig evigt, fordi som vi så også i foredrag, 229 00:10:59,930 --> 00:11:03,350 disse flydende komma tal er ikke ligefrem præcis. 230 00:11:03,350 --> 00:11:05,940 >> Så hvis du ønsker at decimal, eller en del af denne decimal, 231 00:11:05,940 --> 00:11:08,090 så er du nødt til at use-- en af ​​dem skal være et decimaltal 232 00:11:08,090 --> 00:11:11,048 og computeren har til at forstå at dette er en floating point, du er 233 00:11:11,048 --> 00:11:13,350 beskæftiger sig med, ikke er et heltal. 234 00:11:13,350 --> 00:11:16,760 Eventuelle spørgsmål vedrørende denne tabel på højre side, indtil videre? 235 00:11:16,760 --> 00:11:22,650 Eller din venstre side, din venstre, din venstre side. 236 00:11:22,650 --> 00:11:23,264 Ja. 237 00:11:23,264 --> 00:11:23,972 SPEAKER 4: Right. 238 00:11:23,972 --> 00:11:26,216 For ligesom en regelmæssig heltal, ville du 239 00:11:26,216 --> 00:11:30,230 write-- ville du nødt til at skrive flyde? 240 00:11:30,230 --> 00:11:31,920 >> JASON Hirschhorn: Ja så. 241 00:11:31,920 --> 00:11:34,400 Tja, hvis du vil oprette en variabel, der er en svømmer, 242 00:11:34,400 --> 00:11:37,020 du nødt til at sige flyde z er lig noget. 243 00:11:37,020 --> 00:11:37,640 >> SPEAKER 4: OK. 244 00:11:37,640 --> 00:11:41,950 >> JASON Hirschhorn: Men hvis jeg ønskede at gøre 7 divideret med 3 og få det decimal, 245 00:11:41,950 --> 00:11:48,540 Jeg ville gøre flyde z = 7,0 / med 3,0; og der ville give mig den flydende punkt 246 00:11:48,540 --> 00:11:49,273 nummer. 247 00:11:49,273 --> 00:11:50,000 >> SPEAKER 4: OK. 248 00:11:50,000 --> 00:11:56,370 >> JASON Hirschhorn: Hvis jeg gjorde noget lignende int z = 7 / med 3, 249 00:11:56,370 --> 00:12:00,856 der ville give mig et heltal, fordi de er alle heltal. 250 00:12:00,856 --> 00:12:01,730 Giver det mening? 251 00:12:01,730 --> 00:12:02,320 >> SPEAKER 4: Ja. 252 00:12:02,320 --> 00:12:02,950 >> JASON Hirschhorn: OK. 253 00:12:02,950 --> 00:12:03,450 Great. 254 00:12:03,450 --> 00:12:06,030 Andre spørgsmål om det bord? 255 00:12:06,030 --> 00:12:07,220 Virkelig? 256 00:12:07,220 --> 00:12:08,380 Jeg er så spændt. 257 00:12:08,380 --> 00:12:09,120 OK. 258 00:12:09,120 --> 00:12:13,910 >> Så nogle andre ting, du vil bruge, oftentimes i betingelser eller løkker, 259 00:12:13,910 --> 00:12:17,580 er disse typer af operators-- disse typer af booleske udtryk. 260 00:12:17,580 --> 00:12:23,140 Og som vi har lært, == er, hvad du bruger til at kontrollere, om to ting er ens. 261 00:12:23,140 --> 00:12:28,170 >> Så her jeg tjekker hvis x == y, lad os igen antage, at x er 7, og y er 3. 262 00:12:28,170 --> 00:12:33,220 Så hvis jeg skrev 7 == 3, hvad ville det vende tilbage til mig? 263 00:12:33,220 --> 00:12:34,220 Er det sandt eller falsk? 264 00:12:34,220 --> 00:12:35,275 >> PUBLIKUM: Falsk. 265 00:12:35,275 --> 00:12:36,150 JASON Hirschhorn: OK. 266 00:12:36,150 --> 00:12:37,370 Jeg føler, at alle kan få denne ene. 267 00:12:37,370 --> 00:12:39,054 Så alle, hvad ville det vende tilbage? 268 00:12:39,054 --> 00:12:39,720 PUBLIKUM: Falsk. 269 00:12:39,720 --> 00:12:40,130 JASON Hirschhorn: Falsk. 270 00:12:40,130 --> 00:12:40,850 Great. 271 00:12:40,850 --> 00:12:41,930 7 ikke er lig 3. 272 00:12:41,930 --> 00:12:44,530 Så 7 == 3 ville returnere false. 273 00:12:44,530 --> 00:12:50,746 Du har en ikke lighedstegn, så hvis jeg kontrolleres 7! = 3, hvad ville det vende tilbage? 274 00:12:50,746 --> 00:12:51,370 PUBLIKUM: Sandt. 275 00:12:51,370 --> 00:12:52,650 JASON Hirschhorn: Sandt. 276 00:12:52,650 --> 00:12:53,200 Fremragende. 277 00:12:53,200 --> 00:12:55,990 Nogen var meget eftertrykkelig i bagsiden og værdsætter. 278 00:12:55,990 --> 00:12:59,070 Så har du mindre end operatør, mindre end eller lig med operatøren, 279 00:12:59,070 --> 00:13:01,990 større end operatør, større end eller lig med operatøren. 280 00:13:01,990 --> 00:13:03,490 >> Så endnu en sanity check. 281 00:13:03,490 --> 00:13:05,660 Hvis jeg havde 7 er større end eller lig med 3. 282 00:13:05,660 --> 00:13:06,966 Hvad ville det vende tilbage? 283 00:13:06,966 --> 00:13:07,692 >> PUBLIKUM: Sandt. 284 00:13:07,692 --> 00:13:08,650 JASON Hirschhorn: Sandt. 285 00:13:08,650 --> 00:13:10,050 Ja. 286 00:13:10,050 --> 00:13:13,290 At baglokalet, bagsiden af rummet, fantastisk. 287 00:13:13,290 --> 00:13:16,240 Du kan kombinere disse udtryk, hvis du kan lide, så godt, 288 00:13:16,240 --> 00:13:21,880 med en logisk, og som er && Eller en logisk OR som er || 289 00:13:21,880 --> 00:13:22,800 ||. 290 00:13:22,800 --> 00:13:25,785 Og så nu kan du teste to ting together-- Er det sjovt? 291 00:13:25,785 --> 00:13:28,250 Hvorfor er det sjovt? 292 00:13:28,250 --> 00:13:35,200 >> Så hvis jeg ville, kan jeg sige, er 7 større end 3 og 2 er mindre end 4? 293 00:13:35,200 --> 00:13:37,090 Tja, hvis 7 er større end 3, det er sandt. 294 00:13:37,090 --> 00:13:38,400 2 er mindre end 4, det er sandt. 295 00:13:38,400 --> 00:13:41,140 Så hele denne ting ville vende tilbage sandt. 296 00:13:41,140 --> 00:13:45,130 >> Hvis jeg testede 7 er større end 3 og-- Jeg er bare plukke tilfældige tal her-- 297 00:13:45,130 --> 00:13:47,340 4 er mindre end 2, godt, det er falsk. 298 00:13:47,340 --> 00:13:49,610 Så sandt og falsk make falsk. 299 00:13:49,610 --> 00:13:54,520 Og du kan gå på og du kombinerer som mange betingelser sammen som du ønsker. 300 00:13:54,520 --> 00:14:00,000 >> Er der nogen har spørgsmål, kommentarer, bekymringer indtil nu? 301 00:14:00,000 --> 00:14:03,862 Og jeg ser nogle af jer at tage billeder af mig i skærmen, som jeg værdsætter. 302 00:14:03,862 --> 00:14:05,070 Forhåbentlig er det ikke snapchat. 303 00:14:05,070 --> 00:14:06,417 Forhåbentlig det er til dine noter. 304 00:14:06,417 --> 00:14:08,500 Men alle disse går at være tilgængelige online. 305 00:14:08,500 --> 00:14:11,210 Så du behøver ikke at tage billeder af dette. 306 00:14:11,210 --> 00:14:15,150 Som jeg nævnte, alt vil være tilgængelige online for dig. 307 00:14:15,150 --> 00:14:15,650 OK. 308 00:14:15,650 --> 00:14:17,980 Jeg er ved at få scenen, så gør nogen 309 00:14:17,980 --> 00:14:20,350 ønsker at sige noget før det sker? 310 00:14:20,350 --> 00:14:21,080 Spørgsmål? 311 00:14:21,080 --> 00:14:21,680 >> [Indskyde VOICES] 312 00:14:21,680 --> 00:14:22,250 >> JASON Hirschhorn: Åh, stop. 313 00:14:22,250 --> 00:14:23,290 Du fyre er for nice. 314 00:14:23,290 --> 00:14:23,790 OK. 315 00:14:23,790 --> 00:14:26,520 Jeg har tænkt mig at mærke ud. 316 00:14:26,520 --> 00:14:27,240 Lad os gå. 317 00:14:27,240 --> 00:14:29,570 >> ANDI Peng: Vi kommer til at gøre en akavet mic forandring nu. 318 00:14:29,570 --> 00:14:32,280 >> JASON Hirschhorn: Jeg er kommer til at tage dette fra. 319 00:14:32,280 --> 00:14:33,946 ANDI Peng: Sætter pris på den støtte, gutter. 320 00:14:33,946 --> 00:14:42,250 321 00:14:42,250 --> 00:14:43,180 Kan du høre mig? 322 00:14:43,180 --> 00:14:43,930 Er det godt? 323 00:14:43,930 --> 00:14:44,760 Perfekt. 324 00:14:44,760 --> 00:14:45,630 Smuk. 325 00:14:45,630 --> 00:14:47,490 Lad mig bare guffe det i. 326 00:14:47,490 --> 00:14:49,100 OK. 327 00:14:49,100 --> 00:14:54,140 Så jeg er ved at gøre som en kæmpe oplysninger dumpe på jer lige nu. 328 00:14:54,140 --> 00:14:57,370 Og ingen bekymringer overhovedet, hvis du er ikke efter hver eneste lille linje af, hvad 329 00:14:57,370 --> 00:14:58,812 Jeg er ved at vise dig. 330 00:14:58,812 --> 00:15:00,770 Som Jason sagde, alt er helt online. 331 00:15:00,770 --> 00:15:03,780 Bare vi vil forsøge at indføre alle til de begreber, der er omfattet 332 00:15:03,780 --> 00:15:05,270 i nogle af disse slides. 333 00:15:05,270 --> 00:15:06,582 Så bare følge med. 334 00:15:06,582 --> 00:15:09,540 Ingen bekymringer, hvis du ikke forstår alt; Men hvis på noget tidspunkt 335 00:15:09,540 --> 00:15:12,820 du føler dig fortabt, hæve din hånd, stopper vi, ingen bekymringer. 336 00:15:12,820 --> 00:15:15,060 Cool. 337 00:15:15,060 --> 00:15:19,270 >> Så jeg tror, ​​at noget, at David har allerede slags nævnt i foredrag 338 00:15:19,270 --> 00:15:23,240 og Jason har slags hentydet til i dag er, hvad et bibliotek er. 339 00:15:23,240 --> 00:15:27,510 Så i programmering, vi har disse ting kaldes biblioteker. 340 00:15:27,510 --> 00:15:29,690 Hvor det væsentlige, alt de er bare et sæt 341 00:15:29,690 --> 00:15:32,610 funktioner, der er væsentlige bare kode, der er 342 00:15:32,610 --> 00:15:35,070 allerede er skrevet af en anden, at vi alle kan 343 00:15:35,070 --> 00:15:36,410 brug inden for vores programmer. 344 00:15:36,410 --> 00:15:38,790 >> Så hvordan gør en normal bibliotek arbejde, ikke? 345 00:15:38,790 --> 00:15:40,030 Du indtaster biblioteket døren. 346 00:15:40,030 --> 00:15:41,890 Du har alle disse bøger, du kan trække ud 347 00:15:41,890 --> 00:15:44,590 og du kan få adgang til oplysninger inden for disse bøger. 348 00:15:44,590 --> 00:15:45,840 Samme ting i programmering. 349 00:15:45,840 --> 00:15:48,820 >> Du har et bibliotek, der allerede er skrevet af andre mennesker. 350 00:15:48,820 --> 00:15:51,530 Og den måde, at du kan, som programmør eller en elev, 351 00:15:51,530 --> 00:15:55,780 kan få adgang til at biblioteket er gennem hashtag # include. 352 00:15:55,780 --> 00:15:59,720 >> For eksempel i C vi har tre C-- mest 353 00:15:59,720 --> 00:16:03,420 almindeligt anvendt tre C-standard libraries-- input / output bibliotek, 354 00:16:03,420 --> 00:16:05,540 strengen bibliotek, og math-biblioteket. 355 00:16:05,540 --> 00:16:07,610 >> Så inden dit første par problem sæt, 356 00:16:07,610 --> 00:16:10,940 de vil være de tre at du primært bruger. 357 00:16:10,940 --> 00:16:14,610 Så som David allerede forklaret i foredrag 358 00:16:14,610 --> 00:16:17,460 standard I / O-bibliotek, eller standard input / output-bibliotek 359 00:16:17,460 --> 00:16:18,620 gør netop dette. 360 00:16:18,620 --> 00:16:23,530 Det giver dig, i din kode, indtaste noget fra brugeren og output, 361 00:16:23,530 --> 00:16:25,960 på skærmen, i det væsentlige udskrive det til skærmen. 362 00:16:25,960 --> 00:16:29,990 >> Og så hver gang du bruger nogen funktioner, for eksempel funktionen printf (), som 363 00:16:29,990 --> 00:16:33,319 vi kommer til at gå over den næste dias, sørg for at inkludere standard-I / O 364 00:16:33,319 --> 00:16:36,360 bibliotek eller andet, du kommer ikke til at kunne bruge printf () funktion. 365 00:16:36,360 --> 00:16:39,110 Fordi du, som programmøren faktisk aldrig skrev, at funktionen, 366 00:16:39,110 --> 00:16:41,840 du bare bruge nogen andens kode i din egen kode. 367 00:16:41,840 --> 00:16:43,620 >> Giver det mening alle? 368 00:16:43,620 --> 00:16:44,520 Cool. 369 00:16:44,520 --> 00:16:48,530 >> Og så har vi hovedsagelig komme ind på den string.h biblioteket og math.h 370 00:16:48,530 --> 00:16:52,970 bibliotek, .h blot betyder bibliotek, andre biblioteker, som du i sidste ende 371 00:16:52,970 --> 00:16:55,310 være at bruge i din kode. 372 00:16:55,310 --> 00:16:57,620 >> Dog med henblik af dette bibliotek, vi 373 00:16:57,620 --> 00:17:01,170 have-- af denne class-- vi også hvad der kaldes CS50 bibliotek, 374 00:17:01,170 --> 00:17:05,270 cs50.h, hvor vi, for din orientering har skabt 375 00:17:05,270 --> 00:17:07,369 mange vigtige og nyttige funktioner. 376 00:17:07,369 --> 00:17:09,550 Så du som programmør kan piggyback off 377 00:17:09,550 --> 00:17:14,470 hvad vi har allerede skrevet, så denne funktion er tilgængelig for dig 378 00:17:14,470 --> 00:17:15,599 til eget brug. 379 00:17:15,599 --> 00:17:18,359 >> Jeg vil være der dækker et par de funktioner, der almindeligvis anvendes, 380 00:17:18,359 --> 00:17:20,839 men ved, at disse er alle googleable online. 381 00:17:20,839 --> 00:17:24,904 Du er velkommen, trække op CS50 biblioteket og så har du alle de funktioner der. 382 00:17:24,904 --> 00:17:25,828 Ja. 383 00:17:25,828 --> 00:17:28,140 >> SPEAKER 5: Så hvis du ikke var ved hjælp af software, 384 00:17:28,140 --> 00:17:29,916 leveres til os af klassen, gør det 385 00:17:29,916 --> 00:17:32,698 mener vi ville have til at hente og finde denne overskrift fil os selv og fortælle 386 00:17:32,698 --> 00:17:33,840 den computer, hvor det er? 387 00:17:33,840 --> 00:17:34,320 >> ANDI Peng: Great spørgsmål. 388 00:17:34,320 --> 00:17:34,820 Præcis. 389 00:17:34,820 --> 00:17:38,194 Så det er ligesom hvis du ikke er fysisk til stede på et bibliotek, 390 00:17:38,194 --> 00:17:40,360 der er ingen måde for dig at faktisk gå og få adgang til det. 391 00:17:40,360 --> 00:17:42,589 Så det samme med programmering i C, du 392 00:17:42,589 --> 00:17:45,880 nødt til at sørge for, at du bruger vores apparat, fordi biblioteket er allerede 393 00:17:45,880 --> 00:17:47,270 blevet indarbejdet i det. 394 00:17:47,270 --> 00:17:50,020 Og så når du hashtag # include, bibliotekets der. 395 00:17:50,020 --> 00:17:50,520 Ja. 396 00:17:50,520 --> 00:17:51,920 Godt spørgsmål. 397 00:17:51,920 --> 00:17:53,461 Alle godt? 398 00:17:53,461 --> 00:17:53,960 Cool. 399 00:17:53,960 --> 00:17:56,371 400 00:17:56,371 --> 00:17:56,870 Okay. 401 00:17:56,870 --> 00:17:59,330 Så vi kommer til at ramme, væsentlige, hvad der er 402 00:17:59,330 --> 00:18:01,620 den første funktion, Vi som programmører er 403 00:18:01,620 --> 00:18:03,900 skal bruge inden for vores kode. 404 00:18:03,900 --> 00:18:05,690 Dette kaldes printf () funktion. 405 00:18:05,690 --> 00:18:08,450 Så printf () funktion, som jeg har allerede sagt i sidste dias, 406 00:18:08,450 --> 00:18:11,830 er inkluderet i standard I / O, standard input / output, bibliotek. 407 00:18:11,830 --> 00:18:16,470 >> Så sørg for uanset hvad du using-- Åh, lad mig få fat i laseren pointer-- 408 00:18:16,470 --> 00:18:18,660 når du bruger printf () funktion, 409 00:18:18,660 --> 00:18:21,790 du er nødt til også at omfatte standard-I / O bibliotek eller andet, når du kompilere, 410 00:18:21,790 --> 00:18:23,760 du kommer til at få en fejl fordi computeren bliver, 411 00:18:23,760 --> 00:18:26,140 Åh, jeg ved ikke, hvor printf () er, du ikke fortæller mig, hvor printf () 412 00:18:26,140 --> 00:18:26,830 er. 413 00:18:26,830 --> 00:18:30,150 Nå printf () er inkluderet i standard I / O, så når du bruger printf (), 414 00:18:30,150 --> 00:18:32,960 Sørg for at have, at linje over din kode. 415 00:18:32,960 --> 00:18:36,040 >> Så for eksempel printf () her er en funktion. 416 00:18:36,040 --> 00:18:40,260 Alt det gør, er udskrift noget i parenteserne til brugeren. 417 00:18:40,260 --> 00:18:44,840 Vil nogen gerne tage et stik på, hvad denne linje kode til højre 418 00:18:44,840 --> 00:18:46,420 her kommer til at printe ud? 419 00:18:46,420 --> 00:18:48,730 Derfor er svaret er på skærmen. 420 00:18:48,730 --> 00:18:50,480 Nogen? 421 00:18:50,480 --> 00:18:51,380 >> Verdi: Den nederste. 422 00:18:51,380 --> 00:18:53,510 >> ANDI Peng: Verdi, hvorfor du ikke gå videre og sige hele erklæring? 423 00:18:53,510 --> 00:18:55,718 >> VERDI: Hej, mit navn er Andi, og jeg er 20 år gammel. 424 00:18:55,718 --> 00:18:57,270 ANDI Peng: Ah, dejligt. 425 00:18:57,270 --> 00:19:00,240 Så i denne linje, vi kommer til at udskrive, Hej, mit navn er Andi, 426 00:19:00,240 --> 00:19:04,280 og jeg er 20 år, hvilket er i virkeligheden en sand sætning. 427 00:19:04,280 --> 00:19:05,090 >> Syntaks. 428 00:19:05,090 --> 00:19:08,830 Så par syntaktiske spørgsmål, jer vil være sikker på du ved. 429 00:19:08,830 --> 00:19:09,360 Citater. 430 00:19:09,360 --> 00:19:13,170 Dobbelte anførselstegn fortælle computer, alt inde 431 00:19:13,170 --> 00:19:14,850 kommer til at blive udskrevet. 432 00:19:14,850 --> 00:19:16,620 >> Alt inde dåse bare være præcis hvordan 433 00:19:16,620 --> 00:19:19,920 du skriver det, med undtagelse af almindeligvis ved udgangen, 434 00:19:19,920 --> 00:19:23,610 vi kommer til at ønsker at inkludere en hash-- åh sorry-- en streg n. 435 00:19:23,610 --> 00:19:24,640 Så en bindestreg n. 436 00:19:24,640 --> 00:19:28,884 >> Er der nogen ønsker at tage et gæt på, hvad der gør vores kode? 437 00:19:28,884 --> 00:19:29,465 Ja. 438 00:19:29,465 --> 00:19:30,840 SPEAKER 6: Sætter det på en ny linje. 439 00:19:30,840 --> 00:19:31,650 ANDI Peng: Præcis. 440 00:19:31,650 --> 00:19:34,660 Så alt dette gør, er tillade uanset hvad der sker 441 00:19:34,660 --> 00:19:37,520 efter dette, efter denne sætning, der skal udskrives til en ny linje. 442 00:19:37,520 --> 00:19:40,030 Så når du skriver din kode, du behøver ikke tilfældigt have ting 443 00:19:40,030 --> 00:19:41,738 tidsmæssigt til enden at du ikke ønsker. 444 00:19:41,738 --> 00:19:43,700 At alt bliver pænt udskrives en linje 445 00:19:43,700 --> 00:19:46,870 og så starter vi på følgende linje. 446 00:19:46,870 --> 00:19:50,970 >> Er der nogen der kan huske, hvad det semikolon gør, når vi kodning? 447 00:19:50,970 --> 00:19:54,580 448 00:19:54,580 --> 00:19:55,330 Ja. 449 00:19:55,330 --> 00:19:55,740 >> SPEAKER 7: Erklæring. 450 00:19:55,740 --> 00:19:56,010 >> ANDI Peng: Beklager? 451 00:19:56,010 --> 00:19:57,100 >> SPEAKER 7: Er det ende erklæringen? 452 00:19:57,100 --> 00:19:57,766 >> ANDI Peng: Ja. 453 00:19:57,766 --> 00:20:02,670 Så i C eller programmering sproget, semikolon 454 00:20:02,670 --> 00:20:04,640 betegner slutningen af ​​en linje programmering. 455 00:20:04,640 --> 00:20:09,240 Så for eksempel i engelsk bruger vi periode sige, oh dette er enden en sætning. 456 00:20:09,240 --> 00:20:12,857 I programmering, samme ting, vi har en semikolon at betegne slutningen af ​​en linje. 457 00:20:12,857 --> 00:20:14,690 Ofte, når du er begynder at programmere, 458 00:20:14,690 --> 00:20:17,150 du vil indse dig glemmer at tilføje et semikolon 459 00:20:17,150 --> 00:20:19,400 og så skal du prøve at køre din kode, og det virker ikke. 460 00:20:19,400 --> 00:20:21,520 Og du er ligesom, Ah, det gør jeg ikke hvorfor, det skal virke. 461 00:20:21,520 --> 00:20:24,394 >> Chancerne er du sandsynligvis glemt en semikolon eller en konsol eller noget 462 00:20:24,394 --> 00:20:25,020 sted. 463 00:20:25,020 --> 00:20:27,740 Så det er vigtigt at huske. 464 00:20:27,740 --> 00:20:29,627 Cool. 465 00:20:29,627 --> 00:20:31,960 Okay, håndsoprækning, hvordan mange mennesker her har nogensinde 466 00:20:31,960 --> 00:20:37,210 taget AP Computer Science eller programmeret i Java før, nogensinde? 467 00:20:37,210 --> 00:20:37,710 OK. 468 00:20:37,710 --> 00:20:38,210 Dejligt. 469 00:20:38,210 --> 00:20:41,340 Det vil ikke være gældende da, men i Java, du 470 00:20:41,340 --> 00:20:44,960 har noget, der hedder System.out.println som ikke findes i C. 471 00:20:44,960 --> 00:20:49,927 >> Så i C, når du ønsker at tilføje i variabler 472 00:20:49,927 --> 00:20:51,760 til noget, du ønsker at udskrive, er der 473 00:20:51,760 --> 00:20:54,620 en bestemt syntaks, vi kommer til at bruge. 474 00:20:54,620 --> 00:20:56,520 Det kaldes den placeholding-- væsentlige 475 00:20:56,520 --> 00:21:01,180 Vi tilføjer pladsholdere på plads af heltal eller variablen 476 00:21:01,180 --> 00:21:02,580 at vi ønsker at udskrive. 477 00:21:02,580 --> 00:21:07,430 >> Så som du fyre kan se, vi har inkluderet et nyt bibliotek header fil her. 478 00:21:07,430 --> 00:21:09,130 Den CS50 biblioteket. 479 00:21:09,130 --> 00:21:13,160 Og indeholdt i denne CS50 bibliotek er en fælles funktion, vi kommer til at bruge 480 00:21:13,160 --> 00:21:15,610 i vores kursus kaldet GetInt (). 481 00:21:15,610 --> 00:21:21,830 >> Er der nogen ønsker at tage en kniv på hvad GetInt () kan muligvis gøre. 482 00:21:21,830 --> 00:21:22,830 >> PUBLIKUM: [uhørligt] 483 00:21:22,830 --> 00:21:23,550 >> ANDI Peng: Beklager. 484 00:21:23,550 --> 00:21:24,370 Kunne ikke høre dig. 485 00:21:24,370 --> 00:21:25,511 Maddie, nogen. 486 00:21:25,511 --> 00:21:27,260 Maddie: Åh, det beder dig for et heltal. 487 00:21:27,260 --> 00:21:28,051 ANDI Peng: Præcis. 488 00:21:28,051 --> 00:21:30,670 Så denne funktion, anden funktion, der er allerede 489 00:21:30,670 --> 00:21:33,690 blevet skrevet af en anden at vi kan opfordre nu. 490 00:21:33,690 --> 00:21:38,000 Alt det er, er bede dig, brugeren, indtaste hvad du vil som koden 491 00:21:38,000 --> 00:21:41,850 kører, og det gemmer whatever-- i dette tilfælde er vi GetInt () - ing, 492 00:21:41,850 --> 00:21:44,060 så det betyder vi er opnå et heltal. 493 00:21:44,060 --> 00:21:46,150 >> Og vi kommer til at gemme at der i et andet heltal 494 00:21:46,150 --> 00:21:48,900 at vi lige har gjort kaldet alder. 495 00:21:48,900 --> 00:21:51,500 Det mening for alle? 496 00:21:51,500 --> 00:21:52,190 Cool. 497 00:21:52,190 --> 00:21:56,400 >> Så nu, at vi har gemt denne heltal, at vi har bedt fra brugeren, 498 00:21:56,400 --> 00:22:00,010 i denne variabel, vi har skabt af typen int kaldet alder, 499 00:22:00,010 --> 00:22:03,720 vi kan gå videre og sted at i vores printf () funktion. 500 00:22:03,720 --> 00:22:08,970 Så syntaksen normalt for printf () er at uanset hvor i dit faktiske fysiske 501 00:22:08,970 --> 00:22:14,410 linje, du vil inkludere, at heltal, du gør dette symbol lige der, 502 00:22:14,410 --> 00:22:17,800 procentsymbolet, med type variabel, som du ønsker. 503 00:22:17,800 --> 00:22:20,090 >> Så i dette tilfælde alder er et helt tal. 504 00:22:20,090 --> 00:22:25,030 Så du kommer til at omfatte % Jeg fordi det er et heltal. 505 00:22:25,030 --> 00:22:26,860 Og så efter din erklæring, du vil 506 00:22:26,860 --> 00:22:30,370 at gøre komma, og navnet på variablen. 507 00:22:30,370 --> 00:22:33,420 >> Så her, vi kommer til at udskrive ud, Hej, mit navn er Andi, 508 00:22:33,420 --> 00:22:35,730 og jeg er tomme år. 509 00:22:35,730 --> 00:22:38,890 Hashta-- eller sorry--, alder med hvad jeg input. 510 00:22:38,890 --> 00:22:42,790 Så hvis jeg var at indtaste 20 min GetInt () her, 511 00:22:42,790 --> 00:22:44,500 det ville udskrive præcis det samme. 512 00:22:44,500 --> 00:22:47,990 Men, hvis jeg ønskede at indtaste noget andet, ligesom måske 40 eller 45, 513 00:22:47,990 --> 00:22:50,800 så ville du se, at afspejlet følgelig i koden. 514 00:22:50,800 --> 00:22:52,886 >> Så dette er et eksempel af noget, som 515 00:22:52,886 --> 00:22:55,260 udskriver ud og ser til dig, som om det er de samme ting, 516 00:22:55,260 --> 00:22:57,593 men under hætten af computeren er der faktisk 517 00:22:57,593 --> 00:22:59,560 meget forskellige ting sker. 518 00:22:59,560 --> 00:23:00,060 Cool. 519 00:23:00,060 --> 00:23:02,760 520 00:23:02,760 --> 00:23:03,260 Okay. 521 00:23:03,260 --> 00:23:06,940 Så hvad nu hvis vi ønsker flere variabler? 522 00:23:06,940 --> 00:23:08,290 Temmelig let. 523 00:23:08,290 --> 00:23:09,150 Samme ting. 524 00:23:09,150 --> 00:23:11,930 Vi har også en ny funktion her kaldet getString (), 525 00:23:11,930 --> 00:23:15,380 også inden for CS50 bibliotek, at alt det gør, er bede brugeren 526 00:23:15,380 --> 00:23:18,120 for en streng, som er blot et sæt af tegn, 527 00:23:18,120 --> 00:23:19,810 så gerne en sætning eller lignende et navn. 528 00:23:19,810 --> 00:23:25,470 >> Så i dette tilfælde, ville vi have to pladsholdere% s for streng, og% i 529 00:23:25,470 --> 00:23:26,750 for heltal. 530 00:23:26,750 --> 00:23:29,190 Og vi kommer til at følge at ved de to variabler 531 00:23:29,190 --> 00:23:32,670 vi vil medtage, i den rækkefølge at de vises i sætningen. 532 00:23:32,670 --> 00:23:35,471 Så for eksempel, mit navn er blank, jeg vil have et navn der, 533 00:23:35,471 --> 00:23:36,970 så jeg har tænkt mig at have navnet først. 534 00:23:36,970 --> 00:23:39,637 Og så bagefter, jeg ønsker alder, ønsker at have alder sekund. 535 00:23:39,637 --> 00:23:42,720 Og så hvis jeg ønskede at input, Hej, mit navn Andi, og jeg er 20 år gammel. 536 00:23:42,720 --> 00:23:46,370 Hvis jeg indtastet Andi og 20, den præcis de samme ting ville udskrive; 537 00:23:46,370 --> 00:23:51,134 Men nu har vi fået to gemt variabler af navn samt INT. 538 00:23:51,134 --> 00:23:51,634 Ja. 539 00:23:51,634 --> 00:23:54,124 >> SPEAKER 8: Ville det være i stand til at køre, hvis du har skiftet 540 00:23:54,124 --> 00:23:55,620 navn og alder i slutningen af ​​det? 541 00:23:55,620 --> 00:23:55,840 >> ANDI Peng: Ja. 542 00:23:55,840 --> 00:23:57,006 Det er virkelig godt spørgsmål. 543 00:23:57,006 --> 00:23:59,520 Så lang historie kort, nej. 544 00:23:59,520 --> 00:24:03,070 Fordi navn og age-- hvad type variabel er navn? 545 00:24:03,070 --> 00:24:03,950 >> SPEAKER 8: String. 546 00:24:03,950 --> 00:24:05,440 >> ANDI Peng: Og hvad type variabel er alder? 547 00:24:05,440 --> 00:24:06,231 >> SPEAKER 8: Heltal. 548 00:24:06,231 --> 00:24:10,290 ANDI Peng: Så her har vi en pladsholder til snor og heltal, ikke? 549 00:24:10,290 --> 00:24:13,350 Så hvis du skulle skifte disse, computeren kommer ikke til at vide. 550 00:24:13,350 --> 00:24:16,250 Det kommer til at kontrollere, om en streng, og hvis du forsøger at give det en int, 551 00:24:16,250 --> 00:24:18,083 det vil være ligesom vent Jeg er forvirret, du 552 00:24:18,083 --> 00:24:21,100 fortalte mig, jeg skulle være færre hukommelse til en int. 553 00:24:21,100 --> 00:24:23,760 Og lige her, når det forventer et heltal 554 00:24:23,760 --> 00:24:25,640 og du giver den et navn og en streng stedet, 555 00:24:25,640 --> 00:24:28,931 det er også kommer til at være meget forvirrende, det vil ikke køre, præcis som du har brug for det. 556 00:24:28,931 --> 00:24:35,280 Så her, navngivning og syntaks er meget vigtigt for køre kode. 557 00:24:35,280 --> 00:24:37,991 Alle godt? 558 00:24:37,991 --> 00:24:38,490 Ja. 559 00:24:38,490 --> 00:24:39,476 Maddie. 560 00:24:39,476 --> 00:24:44,620 >> Maddie: Her, jeg ved, vi har kigget på eksempler i klassen, hvor de spørger 561 00:24:44,620 --> 00:24:46,950 hvad er din alder, hvad er dit navn. 562 00:24:46,950 --> 00:24:50,250 Her ville det være det doesn't-- hvis vi skulle til at køre denne kode, 563 00:24:50,250 --> 00:24:51,750 det ville ikke bede om det? 564 00:24:51,750 --> 00:24:54,740 Men du ville bare input to tal og så ville det køre sådan? 565 00:24:54,740 --> 00:24:55,781 >> ANDI Peng: Ja, præcis. 566 00:24:55,781 --> 00:24:58,250 Så hvis du ønskede for det at display, skal du indtaste din alder, 567 00:24:58,250 --> 00:25:01,100 du kan bare tilføje en printf () funktion Det siger, Indtast venligst din alder, 568 00:25:01,100 --> 00:25:01,600 ovenover. 569 00:25:01,600 --> 00:25:02,711 Det er et godt spørgsmål. 570 00:25:02,711 --> 00:25:03,210 Ja. 571 00:25:03,210 --> 00:25:07,964 >> SPEAKER 9: Så ville allerede være inkluderet i GetInt () [uhørligt]. 572 00:25:07,964 --> 00:25:09,380 ANDI Peng: Nej, det er faktisk ikke. 573 00:25:09,380 --> 00:25:11,809 Så alt dette gør, er bare beder en tom skærm 574 00:25:11,809 --> 00:25:13,100 til brugeren at indtaste noget. 575 00:25:13,100 --> 00:25:17,420 Hvis du vil have det, hvis du vil have det til at udskrive ud af noget, der fortæller brugeren lignende, 576 00:25:17,420 --> 00:25:21,110 giv mig din alder, så er du skulle printf (), der selv. 577 00:25:21,110 --> 00:25:23,789 Fordi alle bruger denne funktion til forskellige ting, 578 00:25:23,789 --> 00:25:26,080 du kunne gemme alder, du kunne gemme adresse, 579 00:25:26,080 --> 00:25:28,060 du kunne gemme telefonnumre. 580 00:25:28,060 --> 00:25:31,190 Og så det er virkelig op til dine fyre individuelle anvendelser 581 00:25:31,190 --> 00:25:34,390 for, hvad du vil have det til at sige. 582 00:25:34,390 --> 00:25:34,890 Ja. 583 00:25:34,890 --> 00:25:38,236 >> SPEAKER 10: Så, bare for at afklare, hvor gør du indtaster navn og alder 584 00:25:38,236 --> 00:25:43,020 så den dukker op i stedet for% s? 585 00:25:43,020 --> 00:25:44,320 >> ANDI Peng: Som i bruger? 586 00:25:44,320 --> 00:25:47,165 >> SPEAKER 10: Ja, ligesom hvordan gør jeg gøre det-- hvor skal jeg sætte Andi, 587 00:25:47,165 --> 00:25:48,350 og hvor kan jeg sætte 20? 588 00:25:48,350 --> 00:25:48,640 >> ANDI Peng: Ja. 589 00:25:48,640 --> 00:25:50,250 Så hvis du skulle faktisk køre denne kode, 590 00:25:50,250 --> 00:25:52,875 Jeg er faktisk ikke kører kode, det er bare her lige nu. 591 00:25:52,875 --> 00:25:56,910 Hvis jeg skulle køre koden, ville jeg kompilere koden, gøre filen, 592 00:25:56,910 --> 00:26:00,760 køre koden, og så ville der bare være to pladser til mig for at indtaste det. 593 00:26:00,760 --> 00:26:01,260 Ja. 594 00:26:01,260 --> 00:26:03,843 Du fyre vil se, når du spiller rundt med koden selv. 595 00:26:03,843 --> 00:26:05,760 596 00:26:05,760 --> 00:26:09,645 >> Okay vi vil flytte i næste afsnit af det, 597 00:26:09,645 --> 00:26:11,610 vi vil være der dækker i dag. 598 00:26:11,610 --> 00:26:13,980 Vi kommer til at gå over, hvad betingede udsagn er. 599 00:26:13,980 --> 00:26:16,500 Så hvis du fyre huske og huske fra foredrag, 600 00:26:16,500 --> 00:26:19,210 betingede udsagn, alle de er er et sæt 601 00:26:19,210 --> 00:26:24,010 af instruktioner til computeren i som, hvis en bestemt betingelse er sand, 602 00:26:24,010 --> 00:26:27,470 du udfører koden indersiden af ​​denne betingelse. 603 00:26:27,470 --> 00:26:30,101 >> Så i Scratch-- væsentlige den store tema fra i dag 604 00:26:30,101 --> 00:26:32,850 er, at du fyre har allerede alle set logikken bag alt 605 00:26:32,850 --> 00:26:34,020 at vi dækker. 606 00:26:34,020 --> 00:26:36,190 Og alt vi laver er oversætte noget 607 00:26:36,190 --> 00:26:39,090 der var meget intuitiv i Scratch, og hårde kodning det 608 00:26:39,090 --> 00:26:41,950 ind i syntaks, vi skal bruge for den klasse, der er C. 609 00:26:41,950 --> 00:26:47,550 Så logisk, al denne blok var er, at stykke kode lige der. 610 00:26:47,550 --> 00:26:49,995 Ja. 611 00:26:49,995 --> 00:26:50,900 OK. 612 00:26:50,900 --> 00:26:55,290 >> Vi får også ind i en if ... else erklæring, som er blot et ekstra lag 613 00:26:55,290 --> 00:26:59,120 af kompleksitet til hvis redegørelse hvor computeren tager et kig på dette 614 00:26:59,120 --> 00:27:04,260 , og ser, hvis denne betingelse er sand, skal du gøre hvad er inde i disse to beslag, 615 00:27:04,260 --> 00:27:08,470 else-- så lidt ligesom den standard, hvis det ikke opfylder Stand- gøre dette. 616 00:27:08,470 --> 00:27:10,120 Det er ligesom en gaffel i vejen. 617 00:27:10,120 --> 00:27:14,400 Hvis det regner udenfor, jeg sætter på en regnjakke, ellers noget 618 00:27:14,400 --> 00:27:16,330 ellers ved jeg ikke sætte på en regnjakke. 619 00:27:16,330 --> 00:27:18,400 >> Betyder det logik mening at alle? 620 00:27:18,400 --> 00:27:21,031 Cool. 621 00:27:21,031 --> 00:27:21,530 Okay. 622 00:27:21,530 --> 00:27:24,970 Så som en hård eksempel på det, at vi ville se i C 623 00:27:24,970 --> 00:27:28,890 er, hvis jeg ønskede at skabe et variabel kaldet lektier timer. 624 00:27:28,890 --> 00:27:32,050 Og hvis lektier timer er mindre end fem, jeg siger Livet er stor. 625 00:27:32,050 --> 00:27:33,070 Det er vidunderligt. 626 00:27:33,070 --> 00:27:36,450 , Siger Men Kampen er real-- hvilket er, hvad vi alle på mandag 627 00:27:36,450 --> 00:27:39,337 eftermiddag op Science Hill er sandsynligvis gør lige nu-- 628 00:27:39,337 --> 00:27:40,170 PUBLIKUM: [LAUGHING] 629 00:27:40,170 --> 00:27:42,510 ANDI Peng: De måde, vi ville, tak for det. 630 00:27:42,510 --> 00:27:46,180 Den måde, vi ville hardcode dette i C er if-- lad os antage, 631 00:27:46,180 --> 00:27:49,920 vi allerede har en variabel af typen int kaldte lektier timer lige her. 632 00:27:49,920 --> 00:27:53,870 Hvis lektier timer er mindre end fem printf (), Livet er stor. 633 00:27:53,870 --> 00:27:57,330 Husk at holde / n fordi du ønsker en ny linje efter. 634 00:27:57,330 --> 00:27:59,660 Else print, Kampen er reel. 635 00:27:59,660 --> 00:28:03,720 >> Er alle forstå, hvordan Jeg skiftet fra denne blok 636 00:28:03,720 --> 00:28:07,610 ind i denne blok af kode? 637 00:28:07,610 --> 00:28:08,110 Cool. 638 00:28:08,110 --> 00:28:11,030 639 00:28:11,030 --> 00:28:11,840 Okay. 640 00:28:11,840 --> 00:28:15,930 >> Så nu vil vi tage et kig på flere If udsagn helt. 641 00:28:15,930 --> 00:28:18,140 Så lad os antage det Formålet med dette program 642 00:28:18,140 --> 00:28:20,870 var vi bede brugeren om en karakter. 643 00:28:20,870 --> 00:28:24,450 Vi bevirke en hjælp GetInt () for en klasse, og de input en værdi, 644 00:28:24,450 --> 00:28:27,700 og du ønsker at vise hvilken type kvalitet, de fik. 645 00:28:27,700 --> 00:28:30,730 >> Så hvis jeg var at designe et program, jeg betyder typisk i alle vores øjne, 646 00:28:30,730 --> 00:28:35,490 90-100 er en A, 80-90 er en B, og så videre og så videre. 647 00:28:35,490 --> 00:28:39,040 Hvad er der galt med dette stykke kode, at det ikke 648 00:28:39,040 --> 00:28:41,393 gør, hvad jeg vil have det til at gøre. 649 00:28:41,393 --> 00:28:41,892 Ja. 650 00:28:41,892 --> 00:28:45,100 >> SPEAKER 11: de har lavere grænser, men de har ikke øvre grænser. 651 00:28:45,100 --> 00:28:46,280 >> ANDI Peng: Præcis. 652 00:28:46,280 --> 00:28:47,950 Har alle høre, hvad hun sagde? 653 00:28:47,950 --> 00:28:50,200 Der kommer til at være øverste grænser, men ingen nedre grænser. 654 00:28:50,200 --> 00:28:52,540 Beklager, anden vej rundt, nedre grænser, ingen øvre grænser. 655 00:28:52,540 --> 00:28:55,090 Så vil du gerne tage et stik til at sige 656 00:28:55,090 --> 00:28:58,945 hvad der ville blive udskrevet på denne skærmen, hvis jeg skulle køre denne kode. 657 00:28:58,945 --> 00:28:59,820 SPEAKER 11: En fejl? 658 00:28:59,820 --> 00:29:01,140 ANDI Peng: En fejl? 659 00:29:01,140 --> 00:29:02,740 Stor gæt, ikke helt rigtigt. 660 00:29:02,740 --> 00:29:05,465 Er der nogen, der har en anden stab? 661 00:29:05,465 --> 00:29:06,640 Ja, Aaron. 662 00:29:06,640 --> 00:29:10,099 >> AARON: Hvis du lægger i noget større end 90, 663 00:29:10,099 --> 00:29:11,640 det ville vise alle de kvaliteter, du fik. 664 00:29:11,640 --> 00:29:13,640 Det ville vise du fik en A, du fik en B, du fik en C. 665 00:29:13,640 --> 00:29:13,870 >> ANDI Peng: Ja. 666 00:29:13,870 --> 00:29:14,840 Det er helt rigtigt. 667 00:29:14,840 --> 00:29:17,820 Så ville det være vidunderligt. 668 00:29:17,820 --> 00:29:21,781 Men de er indbyrdes eksklusiv, tror jeg. 669 00:29:21,781 --> 00:29:23,280 Hvis jeg skulle til at køre dette stykke kode. 670 00:29:23,280 --> 00:29:26,200 Og så lad os bare sige, jeg indtastet den kvalitet af 95. 671 00:29:26,200 --> 00:29:30,360 Så 95 er nu gemt i INT kaldt lønklasse. 672 00:29:30,360 --> 00:29:33,610 >> Og så C er et sprog der løber op fra top til bund, 673 00:29:33,610 --> 00:29:36,000 så det kommer til at altid køre op til bunden. 674 00:29:36,000 --> 00:29:39,420 Så det kommer til at komme her, læse, hvis kvalitet er større end eller lig med 90, 675 00:29:39,420 --> 00:29:42,850 printf (), du fik en A. Fremragende, jeg har en 95, det er større end 90. 676 00:29:42,850 --> 00:29:44,866 Det kommer til at udskrive, Jeg fik en A. Det kommer 677 00:29:44,866 --> 00:29:48,850 at tage et kig på dette, hvis, går det sige, godt 95 er også større end 80, 678 00:29:48,850 --> 00:29:52,970 det kommer til at udskrive du fik også en Got en B udråbstegn, og så videre og så 679 00:29:52,970 --> 00:29:53,690 videre. 680 00:29:53,690 --> 00:29:55,890 >> Så som vi alle kan se, dette er en fælles fejl 681 00:29:55,890 --> 00:30:00,760 der kan opstå, når vi er skrive kode til at se ud for. 682 00:30:00,760 --> 00:30:05,430 Enhver, spørgsmål om hvorfor det skete? 683 00:30:05,430 --> 00:30:05,930 Great. 684 00:30:05,930 --> 00:30:08,920 685 00:30:08,920 --> 00:30:09,440 OK. 686 00:30:09,440 --> 00:30:12,110 >> Så hvordan kan vi løse dette, er naturligvis det logiske næste spørgsmål. 687 00:30:12,110 --> 00:30:16,290 Nå, har vi disse smukke ting kaldet hvis ellers hvis ellers 688 00:30:16,290 --> 00:30:18,010 hvis ellers udsagn. 689 00:30:18,010 --> 00:30:22,230 Så du kan se, hvis du ønsker at ændre dette problem, 690 00:30:22,230 --> 00:30:25,260 du ønskede at gøre hver af de betingelser gensidigt udelukkende, 691 00:30:25,260 --> 00:30:26,860 du vil tilføje en andet ... if-sætning. 692 00:30:26,860 --> 00:30:30,068 >> Og disse af course-- tænke på dem som stiger eller lignende trin på ladder-- 693 00:30:30,068 --> 00:30:34,050 du kan tilføje så mange af disse som du ønsker for så mange betingelser, som du ønsker. 694 00:30:34,050 --> 00:30:36,790 Så her, hvis jeg inputted klasse til at være 95. 695 00:30:36,790 --> 00:30:39,479 Hvis kvalitet er større end 95, printf (), fik jeg en A. Great. 696 00:30:39,479 --> 00:30:42,020 Det kommer til at se et andet ... hvis og det kommer til at vide, åh nej, 697 00:30:42,020 --> 00:30:43,750 Jeg har allerede henrettet den ellers først. 698 00:30:43,750 --> 00:30:47,020 Jeg know-- eller det første if-- jeg ved, at Jeg behøver ikke at se på nogen af ​​disse 699 00:30:47,020 --> 00:30:48,920 fordi en af ​​dem har allerede været sandt. 700 00:30:48,920 --> 00:30:50,410 Så det kommer til at løbe fra toppen og ned. 701 00:30:50,410 --> 00:30:53,650 Så snart den første er sandt, så det kommer til at springe over alle de andre 702 00:30:53,650 --> 00:30:54,675 af de andet ... hvis'er. 703 00:30:54,675 --> 00:30:55,550 Giver det mening? 704 00:30:55,550 --> 00:30:57,841 Så på den måde har du forskellige niveauer af kontrol 705 00:30:57,841 --> 00:31:01,090 og så snart én af dem er falsk, det Resten er også, vil de ikke selv tjekke. 706 00:31:01,090 --> 00:31:03,577 707 00:31:03,577 --> 00:31:04,076 Cool. 708 00:31:04,076 --> 00:31:07,680 709 00:31:07,680 --> 00:31:08,180 Okay. 710 00:31:08,180 --> 00:31:11,180 >> Så dette er et eksempel på en anden slags betingede udsagn 711 00:31:11,180 --> 00:31:15,250 vi ser sjældnere, men vi vil se dem og bruge dem. 712 00:31:15,250 --> 00:31:18,120 Og de er ofte mere effektive til visse tilfælde. 713 00:31:18,120 --> 00:31:20,020 Så vi har det, der hedder en switch-statement. 714 00:31:20,020 --> 00:31:25,140 Så før vi dækket, hvad der er en anden erklæring, en hvis ... ellers erklæring. 715 00:31:25,140 --> 00:31:27,790 Her har vi hvad er kaldes switch udsagn. 716 00:31:27,790 --> 00:31:31,100 >> Så når bruger vi afbryder udsagn er nøglen? 717 00:31:31,100 --> 00:31:34,090 Så i en switch-statement, du normalt typisk faktisk du 718 00:31:34,090 --> 00:31:38,010 Kan kun input heltal til din variabel, du tjekker. 719 00:31:38,010 --> 00:31:42,390 Så hvis jeg ønskede at kontrollere at se hvis en bestemt number-- f.eks 720 00:31:42,390 --> 00:31:43,720 en klasse, hvis jeg fik en 90. 721 00:31:43,720 --> 00:31:48,190 Jeg vil have det til at se, om det er en A, B eller C. Jeg kunne have en sag her. 722 00:31:48,190 --> 00:31:50,840 , Sagen har imidlertid at være en anden konstant. 723 00:31:50,840 --> 00:31:53,170 >> Så i denne forstand switch-statement kan kun 724 00:31:53,170 --> 00:31:55,290 tjekke for ligestilling af to tal. 725 00:31:55,290 --> 00:31:57,242 Det betyder ikke tjekke for noget andet. 726 00:31:57,242 --> 00:31:59,950 Så det er noget at være meget forsigtig med når du bruger dette. 727 00:31:59,950 --> 00:32:04,810 Så her, hvis jeg ønskede at kontrollere at se hvis min klasse på 90 er lig med 90 eller 80 728 00:32:04,810 --> 00:32:08,500 eller 70 eller 60, og derefter udskrive den tilsvarende kvalitet, 729 00:32:08,500 --> 00:32:11,420 Jeg ville være i stand til at skrive, at i en switch-statement. 730 00:32:11,420 --> 00:32:15,120 >> Så det kommer til at komme her, check er denne helt tal lig med denne konstante? 731 00:32:15,120 --> 00:32:17,030 Hvis ikke, vil det springe. 732 00:32:17,030 --> 00:32:19,880 Er det lig med en konstant to, og så videre og så videre, 733 00:32:19,880 --> 00:32:22,390 indtil du rammer standard hvis ingen af ​​dem er ens. 734 00:32:22,390 --> 00:32:24,590 Så snart en af ​​dem er indstillet til at være lig, 735 00:32:24,590 --> 00:32:27,040 det kommer til at gøre dette linje kode og pause. 736 00:32:27,040 --> 00:32:30,990 Hvilket betyder, at det kommer til at ramme den køre, pause, og bare helt springe 737 00:32:30,990 --> 00:32:32,240 til bunden af ​​koden. 738 00:32:32,240 --> 00:32:37,550 Så i den forstand den slags funktioner ligesom en hvis ellers hvis andet, hvis erklæring. 739 00:32:37,550 --> 00:32:40,830 >> Så her er et konkret eksempel for jer. 740 00:32:40,830 --> 00:32:46,140 Så lad os antage, at jeg ønskede at oprette en variabel kaldet Grundlagt. 741 00:32:46,140 --> 00:32:50,230 Og jeg vil gerne bede brugeren om at indtaste året, at deres skole blev grundlagt. 742 00:32:50,230 --> 00:32:53,300 Så jeg kan oprette en switch-statement her. 743 00:32:53,300 --> 00:32:56,650 Og lad os bare sige, jeg input 1636. 744 00:32:56,650 --> 00:33:01,120 >> Denne kode kommer til at se switch Grundlagt som er lig 1636. 745 00:33:01,120 --> 00:33:03,940 Det kommer til at se sagen 1636, åh de er lige, 746 00:33:03,940 --> 00:33:06,230 printf () Skulle du ikke være på den skole oppe nordpå? 747 00:33:06,230 --> 00:33:08,770 Fordi vi antager, at de ikke gør gå her, hvis de går til Harvard, 748 00:33:08,770 --> 00:33:10,380 pause og springe til slutningen. 749 00:33:10,380 --> 00:33:14,090 >> Hvis jeg var at indtaste 1701, hvilket Jeg går ud fra vi alle ville input, 750 00:33:14,090 --> 00:33:17,500 det ville springe denne sag, kommer ned til tilfælde to, som er 1701, 751 00:33:17,500 --> 00:33:19,660 og udskrive Velkommen til Yale! 752 00:33:19,660 --> 00:33:21,360 Break, springe til slutningen. 753 00:33:21,360 --> 00:33:25,130 Else du sandsynligvis tager dette kursus online hvor case-- fantastisk velkomst 754 00:33:25,130 --> 00:33:29,020 at Yale-- det kommer til at gå til standard print, Hello Internet! 755 00:33:29,020 --> 00:33:29,870 Og bryde. 756 00:33:29,870 --> 00:33:30,466 Ja. 757 00:33:30,466 --> 00:33:32,090 >> SPEAKER 12: Kan du bruge andet i stedet for misligholdelse der? 758 00:33:32,090 --> 00:33:34,550 >> ANDI Peng: Nej, fordi måde, at hele denne funktion 759 00:33:34,550 --> 00:33:39,170 kontakten er bygget, syntaksen du nødt til at bruge, er tilfældet tilfældet standard. 760 00:33:39,170 --> 00:33:42,400 Det er ligesom det, hvis ellers hvis dette en det er tilfældet sag standard. Ja. 761 00:33:42,400 --> 00:33:45,650 SPEAKER 13: Du måske allerede sagt det, men kan du have mere end to sager? 762 00:33:45,650 --> 00:33:48,066 ANDI Peng: Ja, kunne du have så mange tilfælde som du ønsker. 763 00:33:48,066 --> 00:33:50,050 Tænk på det som ligesom uendeligt tilføje på. 764 00:33:50,050 --> 00:33:52,396 >> SPEAKER 14: Hvis du skiftede 1701 med 1636, 765 00:33:52,396 --> 00:33:54,187 det ikke rigtigt gøre en forskel ret? 766 00:33:54,187 --> 00:33:55,770 Det er bare kommer til at være kontrol for det. 767 00:33:55,770 --> 00:33:56,900 >> ANDI Peng: Det er en rigtig godt spørgsmål. 768 00:33:56,900 --> 00:33:58,880 Og vi vil komme ind på dette senere, men blot 769 00:33:58,880 --> 00:34:01,160 ved, det er kontakten erklæring infinitely-- det er 770 00:34:01,160 --> 00:34:03,536 mere effektiv end det, og hvis ellers hvis fordi den opererer 771 00:34:03,536 --> 00:34:06,660 ved hjælp af en anden type funktion, giver dig mulighed for, at væsentlige, at bare 772 00:34:06,660 --> 00:34:08,790 springe direkte til den Hvis du har brug for at være på. 773 00:34:08,790 --> 00:34:10,547 Ja. 774 00:34:10,547 --> 00:34:11,255 SPEAKER 14: Cool. 775 00:34:11,255 --> 00:34:11,754 Tak. 776 00:34:11,754 --> 00:34:12,526 ANDI Peng: Ja 777 00:34:12,526 --> 00:34:16,687 >> SPEAKER 14: Og du ikke kunne gør tilfælde lignende og større end. 778 00:34:16,687 --> 00:34:17,270 ANDI Peng: Nej. 779 00:34:17,270 --> 00:34:19,860 Så det er hvad der begrænser om switch-statement er, at du har 780 00:34:19,860 --> 00:34:21,564 at have konstanter kun, kun heltal. 781 00:34:21,564 --> 00:34:22,064 Ja. 782 00:34:22,064 --> 00:34:25,179 783 00:34:25,179 --> 00:34:25,820 OK. 784 00:34:25,820 --> 00:34:28,659 >> Så det er noget, du fyre vil støde sjældnere for, 785 00:34:28,659 --> 00:34:32,280 men jeg ville bare at indføre den i sagen. 786 00:34:32,280 --> 00:34:36,210 Vi har her, hvad der er kaldes et ternært operatør. 787 00:34:36,210 --> 00:34:39,370 Hvor væsentlige, det er ligesom en hvis erklæring samlet i én linje. 788 00:34:39,370 --> 00:34:42,630 Her, vil jeg gå videre til den næste linje, den næste side, fordi det er nemmere at se. 789 00:34:42,630 --> 00:34:44,860 >> Så vi har alle set denne ret? 790 00:34:44,860 --> 00:34:46,110 Dette er temmelig let at følge. 791 00:34:46,110 --> 00:34:51,290 Hvis jeg ønskede at gøre en variabel kaldet string opkaldt s, hvis et bestemt antal 792 00:34:51,290 --> 00:34:54,770 Jeg giver det er mindre end 100, jeg ønsker at tildele lav til strengen, 793 00:34:54,770 --> 00:34:57,240 andet, jeg ønsker at tildele høj. 794 00:34:57,240 --> 00:35:01,370 >> Dette her gør præcis det samme disse otte linjer kode gør. 795 00:35:01,370 --> 00:35:03,600 Så her jeg ønsker at skabe en variabel streng. 796 00:35:03,600 --> 00:35:08,520 Og det er den tilstand, jeg er kontrol, om et tal er mindre end 100, 797 00:35:08,520 --> 00:35:12,750 så du tildele værdien af ​​lave, ellers tildele værdien af ​​high. 798 00:35:12,750 --> 00:35:15,802 >> Disse slides vil være online, ingen bekymringer hvis du fyre ikke får dette ned. 799 00:35:15,802 --> 00:35:18,510 Dette er blot en enklere måde, en mere effektiv måde at skrive kode. 800 00:35:18,510 --> 00:35:21,290 801 00:35:21,290 --> 00:35:21,810 OK. 802 00:35:21,810 --> 00:35:25,190 >> Så nu vil vi indtaste hvad, for de fleste mennesker 803 00:35:25,190 --> 00:35:28,660 er som en meget, meget forvirrende ting at tænke på i første omgang. 804 00:35:28,660 --> 00:35:30,226 Sløjfen sektion. 805 00:35:30,226 --> 00:35:32,600 Så i dag, vi kommer til at tale omkring tre typer af løkker. 806 00:35:32,600 --> 00:35:34,890 Vi kommer til at starte med et stykke loop, derefter tale om en gør while-løkke, 807 00:35:34,890 --> 00:35:36,740 og derefter snakke om efter sløjfer. 808 00:35:36,740 --> 00:35:40,010 >> Så det væsentlige, for de mere visuelle elever derude, 809 00:35:40,010 --> 00:35:44,410 Vi har i det væsentlige, en grafisk skildring af, hvad en while-løkke gør. 810 00:35:44,410 --> 00:35:48,290 Så i et programmeringssprog, ville du begynde og indtast løkken på et bestemt tidspunkt. 811 00:35:48,290 --> 00:35:49,470 Du tjekker en betingelse. 812 00:35:49,470 --> 00:35:52,165 Og hvis betingelsen er sand, du udfører koden indeni. 813 00:35:52,165 --> 00:35:53,790 Og du kommer tilbage omkring og du tjekke. 814 00:35:53,790 --> 00:35:57,190 Hvis det er stadig sandt du holde kører denne kode rundt og rundt i en løkke. 815 00:35:57,190 --> 00:36:00,970 >> Det andet, at betingelsen bliver falsk, 816 00:36:00,970 --> 00:36:02,739 du kommer til at bryde og afslutte løkken. 817 00:36:02,739 --> 00:36:05,030 Og det er i det væsentlige den syntaks du vil bruge. 818 00:36:05,030 --> 00:36:08,250 Mens en bestemt betingelse er sand gør dette, hvis det ikke er sandt, 819 00:36:08,250 --> 00:36:12,920 du kommer til at springe til slutningen og komme videre med dit program. 820 00:36:12,920 --> 00:36:13,690 OK. 821 00:36:13,690 --> 00:36:17,250 >> Er der nogen der har et eksempel på, hvad der kan ske potentielt 822 00:36:17,250 --> 00:36:19,160 hvis jeg forsøger at køre dette stykke kode? 823 00:36:19,160 --> 00:36:22,470 Af den måde, SAJ-- det er SCAZ, Andi, Jason-- vi vil underskrive vores e-mails, 824 00:36:22,470 --> 00:36:24,830 Kærlighed, SAJ. 825 00:36:24,830 --> 00:36:25,573 Det er os. 826 00:36:25,573 --> 00:36:26,500 OK. 827 00:36:26,500 --> 00:36:29,829 >> Nogen der har et eksempel, eller har en idé om, hvad det ville udskrive? 828 00:36:29,829 --> 00:36:30,870 Slags en trick spørgsmål. 829 00:36:30,870 --> 00:36:34,550 830 00:36:34,550 --> 00:36:39,380 Så her, husk tilstanden vi tjekker efter, er mens sandt. 831 00:36:39,380 --> 00:36:42,840 Så mens det er sandt, er det kommer til at udskrive, jeg elsker SAJ! 832 00:36:42,840 --> 00:36:48,460 Er der noget tidspunkt, hvor vi havde ændre dette til noget andet? 833 00:36:48,460 --> 00:36:49,050 Nej, ikke? 834 00:36:49,050 --> 00:36:51,470 >> Så her har vi stødt hvad er nok 835 00:36:51,470 --> 00:36:54,310 vil være aflytning en masse dine programmer, den uendelige løkke. 836 00:36:54,310 --> 00:36:56,268 Du vil opdage, at hvis du køre denne stykke kode, 837 00:36:56,268 --> 00:36:58,160 det bare kommer til at holde trykning, jeg elsker SAJ! 838 00:36:58,160 --> 00:37:00,701 Mens vi sætter pris på den støtte, vi ønsker ikke dine computere 839 00:37:00,701 --> 00:37:02,910 til at gå ned, fordi du holde udskrivning Jeg elsker SAJ! 840 00:37:02,910 --> 00:37:05,320 >> Så please, please, undgå uendelig løkke 841 00:37:05,320 --> 00:37:07,320 fordi det aldrig vil at vurdere, falsk 842 00:37:07,320 --> 00:37:08,780 og du er aldrig at forlade løkken. 843 00:37:08,780 --> 00:37:10,530 Og du kommer til at indsuges evigt. 844 00:37:10,530 --> 00:37:13,000 Cool. 845 00:37:13,000 --> 00:37:13,694 OK. 846 00:37:13,694 --> 00:37:15,610 Den anden type af sløjfe vi vil tale om i dag 847 00:37:15,610 --> 00:37:17,580 er den gøre, mens løkken, gøre, mens løkke. 848 00:37:17,580 --> 00:37:20,580 Og det hedder en gør while-løkke fordi du har en gør og et stykke tid. 849 00:37:20,580 --> 00:37:24,390 Så det er temmelig ligner et stykke loop, men en lille smule anderledes. 850 00:37:24,390 --> 00:37:27,620 Her er du nødt til at gøre uanset er inde i denne 851 00:37:27,620 --> 00:37:29,747 mens en bestemt betingelse er sand. 852 00:37:29,747 --> 00:37:32,580 Så hvis jeg var C og computeren er jeg kører ned dette stykke kode, 853 00:37:32,580 --> 00:37:33,880 Jeg tager et kig på toppen. 854 00:37:33,880 --> 00:37:36,890 Jeg går til C, siger jeg gøre dette. 855 00:37:36,890 --> 00:37:40,550 Og derefter kontrollere jeg, mens dette er sandt, jeg er nødt til at gentage det. 856 00:37:40,550 --> 00:37:42,750 Men mens det er falsk, så jeg komme videre 857 00:37:42,750 --> 00:37:44,700 og jeg aldrig gå tilbage til at sløjfe igen. 858 00:37:44,700 --> 00:37:48,360 >> Kan nogen tage et stik på, hvad forskellen 859 00:37:48,360 --> 00:37:52,130 mellem denne løkke og et vi kiggede bare på var praktisk. 860 00:37:52,130 --> 00:37:52,717 Ja. 861 00:37:52,717 --> 00:37:55,050 SPEAKER 15: Betingelsen kommer efter i stedet for før? 862 00:37:55,050 --> 00:37:55,841 ANDI Peng: Præcis. 863 00:37:55,841 --> 00:37:57,984 Så hun sagde den tilstand kommer efter, ikke før. 864 00:37:57,984 --> 00:38:00,400 I sidste ende er forskellen mellem dette og while-løkken 865 00:38:00,400 --> 00:38:03,597 er, at du bare vil gøre uanset er inde i dette uanset 866 00:38:03,597 --> 00:38:06,430 om din tilstand er eller ej sandt, og derefter kontrollere tilstanden. 867 00:38:06,430 --> 00:38:08,304 Så i dette tilfælde, er du always-- på denne måde, 868 00:38:08,304 --> 00:38:11,240 du altid sikre hvad der er indeni kører mindst 869 00:38:11,240 --> 00:38:14,230 gang før kontrol for at se hvis du vil have det til at køre igen. 870 00:38:14,230 --> 00:38:18,040 >> Og her er et eksempel på, når vi ville bruge det. 871 00:38:18,040 --> 00:38:22,570 Så for eksempel, hvis jeg ville have en variabel af typen int navngivet alder, 872 00:38:22,570 --> 00:38:25,640 og jeg ønsker at bede brugeren om deres alder, 873 00:38:25,640 --> 00:38:27,910 Jeg har tænkt mig at gøre printf () Hvad er din alder? 874 00:38:27,910 --> 00:38:30,330 alder = GetInt (), som er at spørge brugeren. 875 00:38:30,330 --> 00:38:32,140 >> Og nogle mennesker vil være virkelig irriterende. 876 00:38:32,140 --> 00:38:34,931 Og du ikke ønsker bugs i dit program for nogen indlæsning lignende, 877 00:38:34,931 --> 00:38:36,680 Åh jeg er negativ 4 år eller hvad. 878 00:38:36,680 --> 00:38:39,900 I hvilket tilfælde, hvis de gøre det, det evaluerer 879 00:38:39,900 --> 00:38:43,150 til sand, hvilket betyder, at jeg har tænkt mig at nødt til at holde gå tilbage og gøre dette. 880 00:38:43,150 --> 00:38:45,310 Så dette kommer til at holde re-spørge brugeren 881 00:38:45,310 --> 00:38:47,960 at give dig som en rigtig alder nummer, og det er 882 00:38:47,960 --> 00:38:51,930 kommer til at holde tilbage og annullere Fortryd det, indtil de giver dig en rigtig alder 883 00:38:51,930 --> 00:38:56,900 større end en eller ikke er nul. 884 00:38:56,900 --> 00:38:58,020 >> Så vink, vink. 885 00:38:58,020 --> 00:39:02,263 Dette vil være meget, meget nyttig for et af dine pset problemer. 886 00:39:02,263 --> 00:39:04,155 Ja. 887 00:39:04,155 --> 00:39:05,580 >> SPEAKER 16: Ups, sorry. 888 00:39:05,580 --> 00:39:06,288 >> ANDI Peng: Yep. 889 00:39:06,288 --> 00:39:09,424 >> SPEAKER 16: Er der ikke at være en røvhul, men-- 890 00:39:09,424 --> 00:39:10,340 ANDI Peng: Ingen bekymringer. 891 00:39:10,340 --> 00:39:11,990 SPEAKER 16: --are der forskellige regler her, 892 00:39:11,990 --> 00:39:13,810 eller har du bare glemme at sætte citatet? 893 00:39:13,810 --> 00:39:14,250 >> ANDI Peng: Oh Yeah. 894 00:39:14,250 --> 00:39:15,530 Beklager, det er helt min dårlige. 895 00:39:15,530 --> 00:39:17,100 Det var helt sikkert formodes at være et tilbud. 896 00:39:17,100 --> 00:39:17,690 God fangst. 897 00:39:17,690 --> 00:39:18,800 Det ville ikke have kørt. 898 00:39:18,800 --> 00:39:22,070 899 00:39:22,070 --> 00:39:22,830 OK. 900 00:39:22,830 --> 00:39:26,160 >> Så den sidste type af loop vil vi tale om og i sidste ende, form af de 901 00:39:26,160 --> 00:39:28,854 Komplekset er for-løkken. 902 00:39:28,854 --> 00:39:30,770 Må ikke bekymre dig, hvis du ikke gør ved, hvad det betyder. 903 00:39:30,770 --> 00:39:32,061 Det er temmelig forvirrende i starten. 904 00:39:32,061 --> 00:39:33,640 Vi vil gå over et eksempel. 905 00:39:33,640 --> 00:39:37,040 >> Alt, hvad der sker i en for-løkke er, at du har tre udsagn 906 00:39:37,040 --> 00:39:38,380 at du kommer til at omfatte. 907 00:39:38,380 --> 00:39:42,130 Så for en bestemt ting, er du kommer til at initialisere en variabel. 908 00:39:42,130 --> 00:39:45,280 Du kommer til at tilføje den betingelse til som denne løkke fortsætter med at køre. 909 00:39:45,280 --> 00:39:47,790 Og derefter, ved udgangen af loop, er du nødt til at opdatere den. 910 00:39:47,790 --> 00:39:50,248 Du kan opdatere variabel at du ønsker at holde styr på. 911 00:39:50,248 --> 00:39:52,530 Så vi bruger typisk efter sløjfer til, når vi 912 00:39:52,530 --> 00:39:55,390 ønsker at køre en løkke for en vis mængde gange 913 00:39:55,390 --> 00:39:58,900 og vi ved allerede, Åh jeg ønsker denne løkke til at udføre som 10 gange, 914 00:39:58,900 --> 00:40:03,060 så du do-- jeg gå over et eksempel på næste side. 915 00:40:03,060 --> 00:40:07,830 >> Så her for eksempel i Scratch, hvis du ønskede noget at gentage 10 gange, 916 00:40:07,830 --> 00:40:10,790 alle du havde at sige var, gentag 10 gange jeg elsker SAJ! 917 00:40:10,790 --> 00:40:15,260 som er en mere acceptabel show af støtte til os 918 00:40:15,260 --> 00:40:17,120 snarere end uendelig løkke. 919 00:40:17,120 --> 00:40:19,920 Her hvordan du ville overgang til C og skrive 920 00:40:19,920 --> 00:40:26,040 det er for int-- jeg har tænkt mig at oprette eller erklære en variabel af typen int navngivet i. 921 00:40:26,040 --> 00:40:30,089 Jeg har tænkt mig at initialisere den til 0, så jeg = 0; 922 00:40:30,089 --> 00:40:31,630 og dette vil være min tilstand. 923 00:40:31,630 --> 00:40:33,860 Så jeg er mindre end 10. 924 00:40:33,860 --> 00:40:36,096 Og så i end-- den sidste sætning, du er 925 00:40:36,096 --> 00:40:38,710 kommer til at have, er opdateringen af hvad der sker med den variable i 926 00:40:38,710 --> 00:40:40,206 i slutningen af ​​din for-løkke. 927 00:40:40,206 --> 00:40:42,830 Så det er lidt forvirrende, fordi forskellige dele af denne linje 928 00:40:42,830 --> 00:40:44,871 sker på forskellige typer af sløjfen. 929 00:40:44,871 --> 00:40:46,746 Men jeg vil gå over en pseudokode eksempel på denne 930 00:40:46,746 --> 00:40:50,360 og måske forklare dette bare en smule bedre. 931 00:40:50,360 --> 00:40:51,500 >> Så her. 932 00:40:51,500 --> 00:40:52,929 Det er løkken vi lige har set. 933 00:40:52,929 --> 00:40:55,470 Hovedsagelig i pseudokode, hvad der sker i dette program, 934 00:40:55,470 --> 00:40:57,940 er først Jeg skaber Jeg, initialisering det til 0. 935 00:40:57,940 --> 00:41:00,440 Jeg kontrol for at se, hvis jeg er mindre end 10, i hvilket tilfælde 936 00:41:00,440 --> 00:41:02,840 første gang, det er fordi 0 er mindre end 10. 937 00:41:02,840 --> 00:41:04,727 Således sløjfen til at løbe. 938 00:41:04,727 --> 00:41:06,310 Og så jeg har tænkt mig at udskrive denne linje. 939 00:41:06,310 --> 00:41:11,240 Og derefter ved slutningen af ​​denne linie, lige her, jeg kommer til at gøre tilvækst i, i ++, 940 00:41:11,240 --> 00:41:13,370 alt det middel er forøgelse det efter én. 941 00:41:13,370 --> 00:41:15,460 >> Så jeg er nu 1. 942 00:41:15,460 --> 00:41:17,960 Fordi det var engang 0, hvis jeg tilvækst, det er, er det nu 1. 943 00:41:17,960 --> 00:41:19,610 Og så jeg har tænkt mig at gå tilbage til begyndelsen af ​​sløjfen 944 00:41:19,610 --> 00:41:20,730 og jeg kontrollere tilstanden. 945 00:41:20,730 --> 00:41:22,080 Er betingelsen stadig sandt? 946 00:41:22,080 --> 00:41:24,030 Ja, 1 er stadig mindre end 10. 947 00:41:24,030 --> 00:41:27,370 Så det kommer til at udskrive det igen, gå og derefter tilvækst i, og tjek 948 00:41:27,370 --> 00:41:29,180 betingelsen kontinuerligt, uafbrudt, 949 00:41:29,180 --> 00:41:33,290 indtil du til sidst får til det punkt, hvor i er 10. 950 00:41:33,290 --> 00:41:36,300 >> Du kommer til at udskrive denne 10 gange og så er jeg kommer til at svare til 10. 951 00:41:36,300 --> 00:41:37,800 Du kommer til at kontrollere tilstanden. 952 00:41:37,800 --> 00:41:38,760 Er 10 mindre end 10? 953 00:41:38,760 --> 00:41:40,370 Nej, det er falsk. 954 00:41:40,370 --> 00:41:43,020 Således er denne løkke ikke vil til at køre, går det at bryde, 955 00:41:43,020 --> 00:41:45,040 og du kommer til at fortsætte med din kode. 956 00:41:45,040 --> 00:41:47,550 >> Så som du fyre kan se, er dette er en virkelig stor eksempel 957 00:41:47,550 --> 00:41:53,110 af en løkke, du kan programmere i, at kører for et bestemt antal gange. 958 00:41:53,110 --> 00:41:54,457 Hver eneste klare? 959 00:41:54,457 --> 00:41:54,956 Ja. 960 00:41:54,956 --> 00:41:59,060 >> SPEAKER 17: Hvad med tilvækst eksponentielt, er det anderledes kodning? 961 00:41:59,060 --> 00:42:02,060 >> ANDI Peng: Du can-- vi vil gå i denne i det næste dias. 962 00:42:02,060 --> 00:42:03,350 Godt spørgsmål. 963 00:42:03,350 --> 00:42:05,910 Er anyone-- inden jeg flytter on-- nogen overhovedet forvirret, 964 00:42:05,910 --> 00:42:07,640 fordi dette er en virkelig hård koncept. 965 00:42:07,640 --> 00:42:09,510 Ingen bekymringer, hvis you're-- OK. 966 00:42:09,510 --> 00:42:10,010 Cool. 967 00:42:10,010 --> 00:42:12,836 968 00:42:12,836 --> 00:42:13,490 >> Okay. 969 00:42:13,490 --> 00:42:14,610 Bare en generel dias. 970 00:42:14,610 --> 00:42:18,020 Denne while-løkke er at gøre det præcis det samme for-løkken var. 971 00:42:18,020 --> 00:42:19,631 Det er bare skrevet forskelligt. 972 00:42:19,631 --> 00:42:22,130 Du fyre kan gennemlæse dias på din bekvemmelighed senere. 973 00:42:22,130 --> 00:42:24,880 Men bare vide, at der er flere måder at skrive det samme 974 00:42:24,880 --> 00:42:28,300 ske med forskellige loops. 975 00:42:28,300 --> 00:42:28,800 OK. 976 00:42:28,800 --> 00:42:32,380 >> Så nu får vi i spørgsmålet om, hvad hvis vi har en løkke inde i en løkke. 977 00:42:32,380 --> 00:42:35,810 Vi får ind reelle Inception type stuff her. 978 00:42:35,810 --> 00:42:40,640 Når du ønsker at gøre ting flere gange inde i andre ting 979 00:42:40,640 --> 00:42:44,129 at gøre ting flere gange, du ønsker, hvad der kaldes en indlejret for løkke. 980 00:42:44,129 --> 00:42:47,420 For dem af jer, der først ser dette og få meget forvirret, er alt, hvad vi gør her 981 00:42:47,420 --> 00:42:50,580 er at have en for-løkke, hvor vi har en variabel af rækken. 982 00:42:50,580 --> 00:42:54,500 Men inde i det, har vi også en anden for-løkke af en variabel kaldet kolonne. 983 00:42:54,500 --> 00:42:58,560 Og jeg stærkt foreslå jer alle der er forvirret først holde 984 00:42:58,560 --> 00:43:00,310 track-- trække det ud, tegne det ud. 985 00:43:00,310 --> 00:43:03,000 Forsøg ikke at bare årsag gennem det, trække det ud. 986 00:43:03,000 --> 00:43:06,630 >> I dit hoved, på dette stykke af papir, eller hvad, skrive række, 987 00:43:06,630 --> 00:43:08,614 holde styr på, hvad række er lig med. 988 00:43:08,614 --> 00:43:10,780 Skriv kolonne, holde styr af hvilken søjle er lig med. 989 00:43:10,780 --> 00:43:13,490 Og holde styr på, hvad der er udskrivning ud med hver iteration. 990 00:43:13,490 --> 00:43:16,320 Hver gentagelse af denne løkke, hver iteration af denne større løkke, 991 00:43:16,320 --> 00:43:17,820 bare holde følge logikken. 992 00:43:17,820 --> 00:43:20,190 Og jeg garanterer dig, du vil elske, hvad du ser, 993 00:43:20,190 --> 00:43:24,307 fordi det er også meget gældende på dit problem sæt. 994 00:43:24,307 --> 00:43:24,806 Cool. 995 00:43:24,806 --> 00:43:27,501 996 00:43:27,501 --> 00:43:28,000 Okay. 997 00:43:28,000 --> 00:43:30,723 Så det vigtigste at du fyre er sandsynligvis alle 998 00:43:30,723 --> 00:43:32,400 tænker lige nu, er dit problem Sæt 1s, 999 00:43:32,400 --> 00:43:33,650 som skyldes torsdag / fredag. 1000 00:43:33,650 --> 00:43:36,890 1001 00:43:36,890 --> 00:43:39,710 >> I dit water.c program, tip du kommer til at have 1002 00:43:39,710 --> 00:43:41,590 at bede brugeren om et input. 1003 00:43:41,590 --> 00:43:43,640 Inden din mario.c program du kommer til at have 1004 00:43:43,640 --> 00:43:46,431 at bruge en indlejret for løkke, som er en for-løkke inde i en for-løkke, 1005 00:43:46,431 --> 00:43:50,247 at udskrive en blok af pyramide, hovedsagelig Ligesom hvad Mario har at hoppe igennem. 1006 00:43:50,247 --> 00:43:53,330 Og derefter i din greedy-- eller måske Making Change, hvis nogen af ​​jer gutter 1007 00:43:53,330 --> 00:43:55,740 nogensinde har hørt om at-- du er nødt til at være meget 1008 00:43:55,740 --> 00:43:58,160 forsigtig med de første floating point-værdier. 1009 00:43:58,160 --> 00:44:01,860 Husk flydende decimaler og heltal er ikke det samme. 1010 00:44:01,860 --> 00:44:03,620 Hold styr på, hvor den ene er der. 1011 00:44:03,620 --> 00:44:05,953 Og du kommer til at bruge betingede udsagn, så godt. 1012 00:44:05,953 --> 00:44:09,070 1013 00:44:09,070 --> 00:44:10,940 >> Okay, sidste ting. 1014 00:44:10,940 --> 00:44:12,770 Jeg har et par minutter tilbage. 1015 00:44:12,770 --> 00:44:13,460 Style. 1016 00:44:13,460 --> 00:44:19,320 Så dette er noget, der ikke faktisk bevirke effektivitet, 1017 00:44:19,320 --> 00:44:21,010 eller den faktiske drift af din kode. 1018 00:44:21,010 --> 00:44:24,380 Det påvirker dog os som dine gradere, som dine læsere. 1019 00:44:24,380 --> 00:44:27,290 Det påvirker dig selv, hvis du er forsøger at finde et problem. 1020 00:44:27,290 --> 00:44:30,700 Det påvirker læsbarheden af ​​din kode. 1021 00:44:30,700 --> 00:44:34,070 >> Så stil, ligesom når du forsøger at style en essay til engelsk, hvis du 1022 00:44:34,070 --> 00:44:36,070 havde ikke stykker, du har alt slags 1023 00:44:36,070 --> 00:44:39,190 af rodet sammen på én linje, det gør det virkelig svært for nogen 1024 00:44:39,190 --> 00:44:42,620 at læse dit essay, selv om dine punkter er logisk lyd. 1025 00:44:42,620 --> 00:44:44,390 Samme ting i programmering. 1026 00:44:44,390 --> 00:44:47,910 Du kan have grueligt obskure kode, som SCAZ vil dække, 1027 00:44:47,910 --> 00:44:49,660 og det kan stadig køre og funktion. 1028 00:44:49,660 --> 00:44:53,110 Men for os, som din dejlige TAS, som vil læser og evaluere dine PSets, 1029 00:44:53,110 --> 00:44:54,460 det er ikke særlig rart. 1030 00:44:54,460 --> 00:44:56,859 >> Så vær venlig, af hensyn af os og dig selv, 1031 00:44:56,859 --> 00:44:58,900 når du forsøger at løse et problem i din kode, 1032 00:44:58,900 --> 00:45:00,774 og du forsøger at læse din egen kode, gør 1033 00:45:00,774 --> 00:45:03,910 sikker på at du følger nogle konventioner at vi kommer til at gå over. 1034 00:45:03,910 --> 00:45:04,510 >> Så først. 1035 00:45:04,510 --> 00:45:07,070 Giv dine variabler meningsfulde navne. 1036 00:45:07,070 --> 00:45:11,450 Hvis du ønsker at gemme et heltal kaldet alder, skal du navngive det alder. 1037 00:45:11,450 --> 00:45:12,875 Må ikke kalde den højde. 1038 00:45:12,875 --> 00:45:14,750 Når du forsøger at gemme en alder i højden, 1039 00:45:14,750 --> 00:45:16,722 det gør alting meget forvirrende for os. 1040 00:45:16,722 --> 00:45:17,930 Vi kan ikke lide at blive forvirret. 1041 00:45:17,930 --> 00:45:19,180 Du kan ikke lide at blive forvirret. 1042 00:45:19,180 --> 00:45:20,350 Ingen kan lide at blive forvirret. 1043 00:45:20,350 --> 00:45:23,100 Hvis du vil skabe noget, name it noget meningsfuldt. 1044 00:45:23,100 --> 00:45:26,440 >> Men i for-løkke, single Karakter variabler er normalt fint. 1045 00:45:26,440 --> 00:45:31,350 Og i for-løkke, hvis du vil bare i, og j, k, er du velkommen til bare at gøre det. 1046 00:45:31,350 --> 00:45:32,670 >> Konsekvent initialisering. 1047 00:45:32,670 --> 00:45:33,770 Så hvad betyder det? 1048 00:45:33,770 --> 00:45:37,600 Det betyder teknisk set, teoretisk, du kan starte og skabe 1049 00:45:37,600 --> 00:45:40,140 flere variabler på samme linje. 1050 00:45:40,140 --> 00:45:42,820 Så for eksempel, kan jeg oprette et heltal kaldes scaz_age, 1051 00:45:42,820 --> 00:45:47,110 og heltal kaldet andi_age = 20, og et heltal kaldes jason_age 1052 00:45:47,110 --> 00:45:48,090 på samme linje. 1053 00:45:48,090 --> 00:45:52,060 Og jeg kan også tildele kun en af dem og ikke de andre til værdier. 1054 00:45:52,060 --> 00:45:54,142 Vi beder dig venligst ikke gøre det. 1055 00:45:54,142 --> 00:45:57,350 Fordi her du hovedsageligt har oprettet tre variable, men kun én af dem 1056 00:45:57,350 --> 00:45:58,295 faktisk har en værdi. 1057 00:45:58,295 --> 00:46:00,170 Og så når vi er forsøger at læse din kode, 1058 00:46:00,170 --> 00:46:01,850 eller hvis du forsøger at reparere et problem i din kode, 1059 00:46:01,850 --> 00:46:03,340 det er meget forvirrende at følge. 1060 00:46:03,340 --> 00:46:09,300 Så bare for din læsbarhed, for vores læsbarhed, ikke gør det. 1061 00:46:09,300 --> 00:46:10,355 >> Konsekvent krøllede parenteser. 1062 00:46:10,355 --> 00:46:12,980 Nogle mennesker kan lide at sætte deres krøllede parenteser i forskellige steder. 1063 00:46:12,980 --> 00:46:14,100 Det gør ikke rigtig noget. 1064 00:46:14,100 --> 00:46:17,900 Bare sørg for at du er konsekvent i din egen kode på, hvor du kan lide at sætte dem. 1065 00:46:17,900 --> 00:46:18,950 >> Konsekvent afstand. 1066 00:46:18,950 --> 00:46:22,040 Hvis du sætter et mellemrum efter et for-løkke, gør altid det. 1067 00:46:22,040 --> 00:46:24,930 Må ikke bare gerne slags gøre det på nogle steder, gør det ikke i andre. 1068 00:46:24,930 --> 00:46:26,580 Bare være konsekvent. 1069 00:46:26,580 --> 00:46:29,500 >> For det andet, hvis nogen ønsker at gennemlæse CS50 Style Guide, 1070 00:46:29,500 --> 00:46:33,230 vi officielt har en stil guide, fortæller dig alle disse konventioner, 1071 00:46:33,230 --> 00:46:34,890 plus mere. 1072 00:46:34,890 --> 00:46:35,530 Det er online. 1073 00:46:35,530 --> 00:46:38,670 Det er ligesom cs50.net/style eller sådan noget. 1074 00:46:38,670 --> 00:46:40,180 Du kan google det. 1075 00:46:40,180 --> 00:46:41,399 >> Sammenhæng er nøglen. 1076 00:46:41,399 --> 00:46:43,190 Så fortvivl ikke, hvad andre mennesker gør, 1077 00:46:43,190 --> 00:46:46,180 bare sørg for, at du er konsekvent i din egen kode. 1078 00:46:46,180 --> 00:46:50,570 Nogen har spørgsmål om det? 1079 00:46:50,570 --> 00:46:51,070 Ja. 1080 00:46:51,070 --> 00:46:53,370 >> SPEAKER 18: Så den rigtige ting at gøre med initialiseringen er lige 1081 00:46:53,370 --> 00:46:56,130 har dem alle i et separat linje, er, at hvad du siger? 1082 00:46:56,130 --> 00:46:58,850 >> ANDI Peng: Så jeg sjældent har dette ske. 1083 00:46:58,850 --> 00:47:02,230 Men hvis du ville, hvis du ønsker at være ligesom at spare plads i din kode, 1084 00:47:02,230 --> 00:47:04,000 eller hvad, kan du gøre dette. 1085 00:47:04,000 --> 00:47:07,800 Vi beder om, at du bare ikke initialisere én ting, og ikke de andre. 1086 00:47:07,800 --> 00:47:12,600 Så hvis du ønsker at gøre int scaz_age, int andi_age, int jason_age, det er fint. 1087 00:47:12,600 --> 00:47:15,600 Bare ikke initialisere en og ikke de andre er alt. 1088 00:47:15,600 --> 00:47:18,380 1089 00:47:18,380 --> 00:47:19,904 >> Spørgsmål? 1090 00:47:19,904 --> 00:47:20,850 Okay. 1091 00:47:20,850 --> 00:47:24,610 Jeg har tænkt mig at passere off mikrofon, og laser pointer, 1092 00:47:24,610 --> 00:47:28,862 og stafetten videre til SCAZ på dette punkt. 1093 00:47:28,862 --> 00:47:29,808 Dette er akavet. 1094 00:47:29,808 --> 00:47:32,650 1095 00:47:32,650 --> 00:47:33,200 Her er den. 1096 00:47:33,200 --> 00:47:34,408 >> BRIAN Scassellati: Tak. 1097 00:47:34,408 --> 00:47:42,500 1098 00:47:42,500 --> 00:47:43,380 Hvordan er det for en lyd? 1099 00:47:43,380 --> 00:47:46,420 1100 00:47:46,420 --> 00:47:47,900 Lyden er god? . 1101 00:47:47,900 --> 00:47:49,220 Fremragende. 1102 00:47:49,220 --> 00:47:50,350 OK. 1103 00:47:50,350 --> 00:47:52,110 Så hej alle. 1104 00:47:52,110 --> 00:47:56,540 >> Jeg har tænkt mig at forsøge at arbejde sig igennem et praktisk eksempel med dig. 1105 00:47:56,540 --> 00:48:00,850 Og vi kommer til at bruge CS50 s udviklingsmiljø, hvad der kaldes 1106 00:48:00,850 --> 00:48:03,120 Integrated Development Environment. 1107 00:48:03,120 --> 00:48:05,145 Og du har set dette påvist i forelæsning. 1108 00:48:05,145 --> 00:48:07,520 Og i Problem Set 1, du er vil have en mulighed 1109 00:48:07,520 --> 00:48:10,890 at bruge det, og lege med det, og vænne sig til det, 1110 00:48:10,890 --> 00:48:13,640 fordi vi kommer til at bruge det gennem resten af ​​semestret. 1111 00:48:13,640 --> 00:48:20,350 >> Så i denne IDE, du har, hvad der ser ud som en meget traditionel fil browser 1112 00:48:20,350 --> 00:48:21,890 over på den ene side. 1113 00:48:21,890 --> 00:48:24,360 Du har fået en del op toppen, hvor du skal hen 1114 00:48:24,360 --> 00:48:28,850 at se din kildekode, din Cfile, den kode, du skriver. 1115 00:48:28,850 --> 00:48:31,880 Og ned bunden, vil du har et terminalvindue 1116 00:48:31,880 --> 00:48:36,330 som du vil bruge til både kompilere dit program 1117 00:48:36,330 --> 00:48:39,090 og til at køre eller udføre dit program. 1118 00:48:39,090 --> 00:48:40,100 OK. 1119 00:48:40,100 --> 00:48:46,560 >> Så bare for at give os en lille smule fundament, idet terminalvindue, 1120 00:48:46,560 --> 00:48:48,930 du kommer til at være ved hjælp af et sæt af kommandoer 1121 00:48:48,930 --> 00:48:53,040 der er standard kommandoer i hele de fleste af Unix eller Linux-systemer. 1122 00:48:53,040 --> 00:48:55,890 Og så hvis du nogensinde har brugt enhver form for Unix, Ubuntu, 1123 00:48:55,890 --> 00:48:59,140 eller et af de andre varianter, disse kommer til at se velkendte. 1124 00:48:59,140 --> 00:49:00,890 >> Hvis du ikke har, så fortvivl ikke. 1125 00:49:00,890 --> 00:49:02,830 Der er ikke noget kompliceret om dem. 1126 00:49:02,830 --> 00:49:05,330 De er bare bruger en anden syntaks, en anden navngivning 1127 00:49:05,330 --> 00:49:07,630 konvention, end du har set før. 1128 00:49:07,630 --> 00:49:12,190 >> Så for at liste ud filerne inden for en bestemt mappe, 1129 00:49:12,190 --> 00:49:15,310 de kommer til at bruge en Kommandoen hedder ls eller liste. 1130 00:49:15,310 --> 00:49:18,010 Hvis du ønsker at se alt med alle detaljer, 1131 00:49:18,010 --> 00:49:21,535 du skal bruge en kommando line argument med ls -l. 1132 00:49:21,535 --> 00:49:23,910 Og der vil vise dig alt mere detaljeret, herunder 1133 00:49:23,910 --> 00:49:26,270 tilladelserne for en fil. 1134 00:49:26,270 --> 00:49:31,190 >> For at ændre mappen, du vil bruge kommandoen cd. 1135 00:49:31,190 --> 00:49:35,180 Og du vil være i stand til at ændre mappe både at gå til din hjemmemappe. 1136 00:49:35,180 --> 00:49:38,500 Det er bare cd alle ved selv, cd med to 1137 00:49:38,500 --> 00:49:42,930 prikker vil returnere dig op en niveau til din tidligere mappe. 1138 00:49:42,930 --> 00:49:46,400 Og du kan også cd til en undermappe ved at skrive i cd 1139 00:49:46,400 --> 00:49:48,500 og navnet på denne undermappe. 1140 00:49:48,500 --> 00:49:50,540 >> Du kan også oprette nye mapper. 1141 00:49:50,540 --> 00:49:52,790 Og vi kommer til at gå gennem denne i bare et minut. 1142 00:49:52,790 --> 00:49:54,498 Men blot at sætte alt på skærmen. 1143 00:49:54,498 --> 00:49:56,310 Så du kan se dem. 1144 00:49:56,310 --> 00:50:00,420 >> Du vil også have mulighed for til at manipulere filer direkte 1145 00:50:00,420 --> 00:50:02,100 fra kommandolinjen. 1146 00:50:02,100 --> 00:50:06,059 Du vil være i stand til at kopiere dem, til flytte dem eller for at fjerne dem, 1147 00:50:06,059 --> 00:50:07,600 det vil sige, effektivt, at slette dem. 1148 00:50:07,600 --> 00:50:10,310 1149 00:50:10,310 --> 00:50:15,350 >> Den CS50 IDE giver dig fuld magt kommandolinjeargumenter. 1150 00:50:15,350 --> 00:50:20,280 Og det betyder, kan du også gør meget farlige ting. 1151 00:50:20,280 --> 00:50:21,560 OK. 1152 00:50:21,560 --> 00:50:25,010 For eksempel kan man fjerne eller det er delete, 1153 00:50:25,010 --> 00:50:28,750 en fil uden at spørge for en bekræftelse. 1154 00:50:28,750 --> 00:50:31,820 Og du kan endda fjerne recursively-- det er 1155 00:50:31,820 --> 00:50:38,940 Dash r flag-- en hel underbibliotek og alle dens indhold. 1156 00:50:38,940 --> 00:50:39,660 OK. 1157 00:50:39,660 --> 00:50:42,940 De er angivet i rødt, fordi du skal tænke "Danger", hver gang 1158 00:50:42,940 --> 00:50:45,000 du ser disse ting. 1159 00:50:45,000 --> 00:50:45,920 OK. 1160 00:50:45,920 --> 00:50:46,420 Okay. 1161 00:50:46,420 --> 00:50:50,090 1162 00:50:50,090 --> 00:50:53,430 >> Nu endelig de ting, der er vil være virkelig værdifuldt for dig, 1163 00:50:53,430 --> 00:50:57,270 er der er et par gode tricks at kende som du navigerer 1164 00:50:57,270 --> 00:50:59,190 gennem denne terminal vindue. 1165 00:50:59,190 --> 00:51:03,590 Først, kan du rydde skærmen i enhver tid ved blot at skrive i klar. 1166 00:51:03,590 --> 00:51:06,310 Og du kommer til at se mig gøre det ganske ofte. 1167 00:51:06,310 --> 00:51:09,990 Du kan også bare vise teksten til en fil 1168 00:51:09,990 --> 00:51:13,992 ved at skrive mere og derefter filnavnet. 1169 00:51:13,992 --> 00:51:17,200 Du vil derefter være i stand til at rulle tilbage og tilbage med at bare med mellemrumstasten 1170 00:51:17,200 --> 00:51:19,010 og piletasterne. 1171 00:51:19,010 --> 00:51:25,450 >> Hvis du har, som vi gjorde i dag i foredrag, et program, der kører kontinuerligt 1172 00:51:25,450 --> 00:51:29,190 i uendelig løkke, du kan stoppe programmet 1173 00:51:29,190 --> 00:51:35,160 fra at udføre ved at skrive i kontrol, der holder Ctrl-C. 1174 00:51:35,160 --> 00:51:38,360 Og du kan have at gøre dette flere gange. 1175 00:51:38,360 --> 00:51:40,620 Computeren får langt foran dig. 1176 00:51:40,620 --> 00:51:43,380 Og du nogle gange nødt til at give det et par forsøg 1177 00:51:43,380 --> 00:51:46,280 før det rent faktisk vil komme igennem. 1178 00:51:46,280 --> 00:51:48,760 >> Du vil også være i stand til sortere gennem kommandoerne 1179 00:51:48,760 --> 00:51:54,230 at du lige har skrevet ved hjælp af op-tasten, piletast, og derefter pil ned. 1180 00:51:54,230 --> 00:51:57,560 Og hvad der er mest nyttige er stedet af at skrive ud lange filnavne, 1181 00:51:57,560 --> 00:52:02,209 vil du være i stand til at anvende Tab til autofuldføre et par instruktioner. 1182 00:52:02,209 --> 00:52:04,750 Nu vil vi demonstrere alle dem i bare et sekund. 1183 00:52:04,750 --> 00:52:06,780 Så hvis du ikke kan huske dem, så fortvivl ikke. 1184 00:52:06,780 --> 00:52:10,780 Det er ting, som du vil samle op og bruge som vi hen ad vejen. 1185 00:52:10,780 --> 00:52:11,470 OK. 1186 00:52:11,470 --> 00:52:18,830 >> Så i modsætning til i C-- Scratch-- C er en kompileret sprog. 1187 00:52:18,830 --> 00:52:23,210 Det betyder, at vi kommer til at tage en kilde file-- det er den tekst, som du skriver, 1188 00:52:23,210 --> 00:52:26,500 de kommandoer, som du skriver, det printf () erklæringer, løkkerne, 1189 00:52:26,500 --> 00:52:32,580 alt else-- og vi vil at tage denne fil og aflevere det ud 1190 00:52:32,580 --> 00:52:34,670 til et program kaldet compileren. 1191 00:52:34,670 --> 00:52:39,850 >> Compileren vil derefter tage at tekst, som du har skrevet 1192 00:52:39,850 --> 00:52:43,270 og omsætte den til de binære instruktioner 1193 00:52:43,270 --> 00:52:46,010 at din computer er faktisk går brug. 1194 00:52:46,010 --> 00:52:49,700 Det kaldes objektet eller den eksekverbare fil. 1195 00:52:49,700 --> 00:52:55,320 Hvis man ser på denne fil, du vil at se den kode, du har skrevet. 1196 00:52:55,320 --> 00:52:59,480 Hvis man ser på denne fil, du vil at se en tilfældig sekvens af tegn 1197 00:52:59,480 --> 00:53:01,680 der gør overhovedet ingen mening. 1198 00:53:01,680 --> 00:53:03,250 Det er, fordi det er den binære. 1199 00:53:03,250 --> 00:53:05,560 Det er ikke ment for dig at være læser. 1200 00:53:05,560 --> 00:53:08,690 >> Men enhver tid, du ønsker at køre noget, hvad du vil 1201 00:53:08,690 --> 00:53:13,670 skal køre er det objekt fil. 1202 00:53:13,670 --> 00:53:19,110 Så når vi arbejder med disse filer, vil vi skrive en fil i C. 1203 00:53:19,110 --> 00:53:23,400 Vi vil derefter kompilere den ved hjælp af en kommando som make, som vil påberåbe sig 1204 00:53:23,400 --> 00:53:27,070 compiler klang for C-sprog. 1205 00:53:27,070 --> 00:53:31,530 Og der vil producere et objekt fil, som en ud, eller i dette tilfælde, 1206 00:53:31,530 --> 00:53:36,580 navn, min fil, som jeg har lagt i. 1207 00:53:36,580 --> 00:53:37,780 Okay. 1208 00:53:37,780 --> 00:53:39,790 >> Så lad os faktisk prøve dette. 1209 00:53:39,790 --> 00:53:42,850 Så jeg kom op med et eksempel af det, jeg ønskede at forsøge. 1210 00:53:42,850 --> 00:53:47,380 Og en af ​​de ting, fascinerer mig, er animation. 1211 00:53:47,380 --> 00:53:51,010 Så vi kommer til at forsøge at gøre en lille smule af animation 1212 00:53:51,010 --> 00:53:53,760 hjælp kun ASCII-tegn. 1213 00:53:53,760 --> 00:53:56,470 Tegn vi kan printe ud nemt nu. 1214 00:53:56,470 --> 00:54:00,890 >> Så her er mit bedste forsøg at skabe for dig 1215 00:54:00,890 --> 00:54:07,005 animationen af ​​en kanin der løber gennem det høje græs. 1216 00:54:07,005 --> 00:54:07,505 Der er han. 1217 00:54:07,505 --> 00:54:10,150 1218 00:54:10,150 --> 00:54:10,670 OK. 1219 00:54:10,670 --> 00:54:14,050 Så han ikke kører endnu, men han er stod der i det høje græs. 1220 00:54:14,050 --> 00:54:17,810 >> Nu, hvis jeg var en animator, i den gamle skole 1221 00:54:17,810 --> 00:54:20,860 version af animation, hvad jeg ville gøre, er jeg ville producere 1222 00:54:20,860 --> 00:54:23,640 et billede af denne bunny i græsset. 1223 00:54:23,640 --> 00:54:25,390 Og så ville jeg producere anden picture-- 1224 00:54:25,390 --> 00:54:30,600 en anden, hvad de kaldte cell-- at havde bunny kun let flyttes. 1225 00:54:30,600 --> 00:54:34,870 Og derefter en tredje, der havde bunny flyttede lidt længere. 1226 00:54:34,870 --> 00:54:40,610 >> Og jeg ville producere en hel Sekvensen af ​​disse celler. 1227 00:54:40,610 --> 00:54:44,220 Nogle hvor bunny er overstået på venstre kanten. 1228 00:54:44,220 --> 00:54:47,050 Og derefter bevæger sig langsomt, en med en mod midten. 1229 00:54:47,050 --> 00:54:51,120 Og derefter fra midten over til højre. 1230 00:54:51,120 --> 00:54:55,760 Og hvis jeg var dengang, virkelig heldig, jeg kunne sætte det sammen 1231 00:54:55,760 --> 00:54:57,970 og jeg kunne animere dem. 1232 00:54:57,970 --> 00:55:00,370 Og der er min kanin løber gennem græsset. 1233 00:55:00,370 --> 00:55:02,310 >> Det er min store PowerPoint trick for dagen. 1234 00:55:02,310 --> 00:55:02,809 OK. 1235 00:55:02,809 --> 00:55:04,760 Så dette er så godt som det bliver. 1236 00:55:04,760 --> 00:55:05,260 OK. 1237 00:55:05,260 --> 00:55:08,455 Så her endnu en gang, her er vores bunny løber gennem græsset. 1238 00:55:08,455 --> 00:55:09,217 >> SPEAKER 19: Igen. 1239 00:55:09,217 --> 00:55:11,050 BRIAN Scassellati: One mere tid, okay. 1240 00:55:11,050 --> 00:55:11,940 Der er din kanin. 1241 00:55:11,940 --> 00:55:12,940 OK. 1242 00:55:12,940 --> 00:55:15,470 >> Så i dag, hvad vi vil at gøre, er vi vil 1243 00:55:15,470 --> 00:55:21,110 at forsøge at automatisere processen til fremstilling af disse celler. 1244 00:55:21,110 --> 00:55:24,135 Vi vil ikke helt komme til det punkt, at være i stand til at sætte dem alle sammen. 1245 00:55:24,135 --> 00:55:28,900 Men, vi vil forsøge at automatisere genereringsprocessen denne sekvens. 1246 00:55:28,900 --> 00:55:32,900 >> Og det er meget af det animation dag er. 1247 00:55:32,900 --> 00:55:36,690 Det vil sige, behøver du ikke gøre ting nødvendigvis ved at tegne alt i hånden. 1248 00:55:36,690 --> 00:55:40,610 Vi bruger en computer til at automatisere dele af denne proces. 1249 00:55:40,610 --> 00:55:41,110 OK. 1250 00:55:41,110 --> 00:55:47,720 >> Så lad mig skifte over nu på vores CS50 IDE. 1251 00:55:47,720 --> 00:55:54,260 Og jeg har skabt for os-- og lad mig zoome ind her lidt bit-- jeg har 1252 00:55:54,260 --> 00:55:58,420 oprettet for os et udgangspunkt. 1253 00:55:58,420 --> 00:56:03,830 >> Hver gang, at vi beder dig om at sidde ned og skrive et stykke kode, 1254 00:56:03,830 --> 00:56:09,250 hvad vi virkelig beder dig om at gøre er vi beder om at løse et problem. 1255 00:56:09,250 --> 00:56:11,810 Og den måde, at du skal tænke på at gøre det 1256 00:56:11,810 --> 00:56:17,900 er ved at starte med nogle simpel del af denne løsning. 1257 00:56:17,900 --> 00:56:21,730 Og derefter bygge ud fra den del. 1258 00:56:21,730 --> 00:56:23,400 Og det er, hvad vi vil gøre i dag. 1259 00:56:23,400 --> 00:56:27,570 >> Så snarere end at forsøge på én gang til skrive hele bundt af kode, der er 1260 00:56:27,570 --> 00:56:30,770 kommer til at producere dem 10 animation celler, 1261 00:56:30,770 --> 00:56:35,506 vi kommer til at starte i stedet med et stykke, der virker. 1262 00:56:35,506 --> 00:56:37,380 Og så vil vi bygge en lidt omkring denne 1263 00:56:37,380 --> 00:56:39,740 og lidt mere og lidt mere. 1264 00:56:39,740 --> 00:56:42,550 >> Nu det gode ved løse problemer på denne måde 1265 00:56:42,550 --> 00:56:46,716 er, at det vil give dig mulighed for at starte altid med noget, som du kender 1266 00:56:46,716 --> 00:56:51,130 værker og introducere en gradvis ændring. 1267 00:56:51,130 --> 00:56:54,090 Og det er en fantastisk måde at lære at kode, 1268 00:56:54,090 --> 00:56:58,590 fordi hver gang du foretager et forandring, kan du se hvilken betydning det har. 1269 00:56:58,590 --> 00:56:59,540 OK. 1270 00:56:59,540 --> 00:57:01,450 >> Så her er vores udgangspunkt. 1271 00:57:01,450 --> 00:57:01,950 OK. 1272 00:57:01,950 --> 00:57:08,030 Så i starten af ​​min fil, Jeg har hash #included stdio.h. 1273 00:57:08,030 --> 00:57:12,560 Det er, så jeg kan få den printf () funktion til at arbejde. 1274 00:57:12,560 --> 00:57:15,240 >> Jeg så har jeg min vigtigste funktion. 1275 00:57:15,240 --> 00:57:18,760 Og det ser stadig lidt mystiske eller obskure til nogle af jer. 1276 00:57:18,760 --> 00:57:20,010 Det er ok. 1277 00:57:20,010 --> 00:57:23,190 Alt det siger, er, at den vigtigste funktion tager 1278 00:57:23,190 --> 00:57:27,830 ingen arguments-- void midler intet i C. Og det 1279 00:57:27,830 --> 00:57:29,940 afkast ved konventionen et heltal. 1280 00:57:29,940 --> 00:57:33,290 Main altid returnerer et heltal, normalt en kode siger ting 1281 00:57:33,290 --> 00:57:35,071 gik godt eller ikke gik godt. 1282 00:57:35,071 --> 00:57:35,570 OK. 1283 00:57:35,570 --> 00:57:39,110 Men vigtigste er at have det danner for os lige nu. 1284 00:57:39,110 --> 00:57:42,080 >> Jeg har derefter sat i tre linjer kode. 1285 00:57:42,080 --> 00:57:46,760 Og sammen med hver linje i kode, jeg har lagt en kommentar. 1286 00:57:46,760 --> 00:57:51,340 Nu er en af ​​de ting, Vi vil insistere på, at du gør det, 1287 00:57:51,340 --> 00:57:55,320 og det er sådan en vigtig programmering praksis, 1288 00:57:55,320 --> 00:57:57,800 er altid at kommentere din kode. 1289 00:57:57,800 --> 00:58:02,550 Altid skrive ned i en Engelsk kommentar noget 1290 00:58:02,550 --> 00:58:06,740 at du tror kode er meningen at gøre. 1291 00:58:06,740 --> 00:58:11,360 På den måde, senere, når du kommer tilbage til det, kan du se på det, og du kan sige, 1292 00:58:11,360 --> 00:58:13,800 Åh, jeg kan huske, hvad jeg var forsøger at gøre med dette. 1293 00:58:13,800 --> 00:58:17,590 Eller når en TA sætter sig med dig for at forsøge at hjælpe dig på kontortid, 1294 00:58:17,590 --> 00:58:20,890 de kan se på dette og gå, jeg se, hvad du forsøger at gøre, 1295 00:58:20,890 --> 00:58:25,630 men i stedet er det hvad der virkelig sker. 1296 00:58:25,630 --> 00:58:26,130 OK. 1297 00:58:26,130 --> 00:58:30,300 >> Så jeg har fået tre dele til min kode, Jeg har tænkt mig at først og fremmest print 1298 00:58:30,300 --> 00:58:33,110 nogle prikker i starten. 1299 00:58:33,110 --> 00:58:37,480 Jeg vil derefter udskrive mit ekstremt fancy bunny. 1300 00:58:37,480 --> 00:58:40,600 Og derefter nogle lidt af prikker i slutningen. 1301 00:58:40,600 --> 00:58:45,220 >> Og disse tre print udsagn bør virke bekendt for dig på dette punkt. 1302 00:58:45,220 --> 00:58:47,350 Alt, jeg gør i hver af dem er jeg 1303 00:58:47,350 --> 00:58:49,780 udskrive en sekvens af tegn. 1304 00:58:49,780 --> 00:58:51,370 Der er ingen involverede variabler. 1305 00:58:51,370 --> 00:58:54,320 Alt er bare flad. 1306 00:58:54,320 --> 00:58:55,270 OK. 1307 00:58:55,270 --> 00:59:07,340 >> Så hvis jeg går ned nu til min terminal-- lad os se om jeg kan få dette tilbage out-- 1308 00:59:07,340 --> 00:59:09,370 og jeg har tænkt mig at skrive klart igen. 1309 00:59:09,370 --> 00:59:12,507 >> SPEAKER 20: Har vi bruger dobbelt skråstreg til at kommentere? 1310 00:59:12,507 --> 00:59:14,340 BRIAN Scassellati: Can bruge double-- ja. 1311 00:59:14,340 --> 00:59:16,920 Der er flere måder at efterlade kommentarer i C. One 1312 00:59:16,920 --> 00:59:19,440 måde er at bruge dobbelt skråstreg. 1313 00:59:19,440 --> 00:59:24,910 Den anden er at bruge en skråstreg og en stjerne og derefter lukke med en stjerne og en skråstreg. 1314 00:59:24,910 --> 00:59:26,110 Okay. 1315 00:59:26,110 --> 00:59:28,950 >> Først og fremmest, jeg har tænkt mig at begynde at navigere rundt her. 1316 00:59:28,950 --> 00:59:35,350 Så hvis jeg går til mit hjem bibliotek, Jeg har skiftet mapper der, 1317 00:59:35,350 --> 00:59:40,230 Jeg har tænkt mig at se og se, hvad der er i denne mappe, ls, liste ud. 1318 00:59:40,230 --> 00:59:43,230 Jeg har tænkt mig at se, at jeg har fik to undermapper. 1319 00:59:43,230 --> 00:59:47,910 Lad os gøre dette til en lidt større her, så vi alle kan se det. 1320 00:59:47,910 --> 00:59:50,610 >> Jeg kan se, at jeg har fik to undermapper. 1321 00:59:50,610 --> 00:59:53,510 Jeg vil ændre mappen at gå i arbejdsområdet. 1322 00:59:53,510 --> 00:59:58,380 Og jeg har tænkt mig at kun skrive ud del af det, og så bare hit Tab. 1323 00:59:58,380 --> 01:00:01,520 Og det vil fuldføre resten for mig. 1324 01:00:01,520 --> 01:00:03,370 Fancy. 1325 01:00:03,370 --> 01:00:04,960 >> Jeg vil se, og se i arbejdsområde. 1326 01:00:04,960 --> 01:00:08,431 Og lige nu, jeg arbejder på SuperSection 1327 01:00:08,431 --> 01:00:09,680 at vi underviser lige nu. 1328 01:00:09,680 --> 01:00:10,971 Så jeg vil gå ind i denne mappe. 1329 01:00:10,971 --> 01:00:14,770 1330 01:00:14,770 --> 01:00:15,970 Og endelig, se og se. 1331 01:00:15,970 --> 01:00:18,480 Og jeg har fået denne fil bunny.c. 1332 01:00:18,480 --> 01:00:20,980 >> Okay så lad mig klart endnu en gang. 1333 01:00:20,980 --> 01:00:24,370 Og jeg har tænkt mig at nu-- igen er jeg stadig opholder sig i denne mappe 1334 01:00:24,370 --> 01:00:27,540 og det fortæller mig jeg er i at SuperSection mappe. 1335 01:00:27,540 --> 01:00:30,690 Jeg har tænkt mig at gå videre og gøre mit program bunny. 1336 01:00:30,690 --> 01:00:33,730 1337 01:00:33,730 --> 01:00:38,810 Og denne kommando, gør bunny, mens klingende en lille smule mærkeligt, 1338 01:00:38,810 --> 01:00:42,960 også påberåber sig klang compiler. 1339 01:00:42,960 --> 01:00:46,470 >> Og det er produceret til mig et output, der er 1340 01:00:46,470 --> 01:00:52,130 en eksekverbar funny-- et eksekverbar fil kaldet bunny. 1341 01:00:52,130 --> 01:00:52,700 OK. 1342 01:00:52,700 --> 01:00:56,700 Jeg kan da, og det lyder endnu værre, udføre bunny. 1343 01:00:56,700 --> 01:00:59,360 1344 01:00:59,360 --> 01:01:00,680 OK. 1345 01:01:00,680 --> 01:01:03,150 Og lad os se, hvad den gør. 1346 01:01:03,150 --> 01:01:04,527 OK. 1347 01:01:04,527 --> 01:01:06,360 Det er en lille smule hvad jeg forventede. 1348 01:01:06,360 --> 01:01:11,290 Jeg har fået min bunny billede derinde, men jeg slags ville have det helt af sig selv. 1349 01:01:11,290 --> 01:01:13,186 Hvad gjorde jeg savner? 1350 01:01:13,186 --> 01:01:14,478 >> SPEAKER 21: Slash l eller skråstreg n. 1351 01:01:14,478 --> 01:01:15,602 BRIAN Scassellati: Slash n. 1352 01:01:15,602 --> 01:01:16,580 OK. 1353 01:01:16,580 --> 01:01:18,800 Så lad os gå tilbage herude. 1354 01:01:18,800 --> 01:01:20,330 Og jeg får ud af det. 1355 01:01:20,330 --> 01:01:23,320 Og jeg vil gå tilbage til denne. 1356 01:01:23,320 --> 01:01:27,720 Og lad os tage et kig nu fra min vigtigste funktion her. 1357 01:01:27,720 --> 01:01:29,280 >> Så hvad skal jeg gøre? 1358 01:01:29,280 --> 01:01:30,465 Jeg ønsker at afslutte linjen. 1359 01:01:30,465 --> 01:01:34,020 1360 01:01:34,020 --> 01:01:35,800 Så jeg vil sætte i en kommentar. 1361 01:01:35,800 --> 01:01:38,430 Jeg vil sætte i en printf (). 1362 01:01:38,430 --> 01:01:41,350 Og hvad skal jeg sætte i? 1363 01:01:41,350 --> 01:01:41,890 / n. 1364 01:01:41,890 --> 01:01:43,480 OK. 1365 01:01:43,480 --> 01:01:46,040 Hvad skal jeg nødt til at ende det med? 1366 01:01:46,040 --> 01:01:47,100 Semikolon. 1367 01:01:47,100 --> 01:01:48,730 Okay. 1368 01:01:48,730 --> 01:01:52,880 >> Nu, en af ​​de virkelig vigtige ting er at sørge 1369 01:01:52,880 --> 01:01:56,720 hver gang du foretager en ændring i din kode, at du gemmer det. 1370 01:01:56,720 --> 01:02:01,380 Hvis du ikke har gemt din kode, er du kommer til at lægge mærke til en lille stjerne deroppe. 1371 01:02:01,380 --> 01:02:03,420 Og det stjerne siger dig har ikke gemt denne kode. 1372 01:02:03,420 --> 01:02:07,790 >> Hvis jeg kompilere det lige nu, er det ikke kommer til at afspejle nogen af ​​disse ændringer, 1373 01:02:07,790 --> 01:02:11,680 fordi compileren ser på filen der er på disken, ikke den fil, der er 1374 01:02:11,680 --> 01:02:13,790 åbne i din editor. 1375 01:02:13,790 --> 01:02:14,290 Okay. 1376 01:02:14,290 --> 01:02:20,830 >> Så lad os gemme det og så vil vi gå lige på hernede, kommer tilbage ud. 1377 01:02:20,830 --> 01:02:24,670 Kom ned til min terminal. 1378 01:02:24,670 --> 01:02:27,193 Og lad os rydde plads igen. 1379 01:02:27,193 --> 01:02:30,690 1380 01:02:30,690 --> 01:02:35,760 >> Og vi kan gå videre og endnu tid gøre vores bunny-program. 1381 01:02:35,760 --> 01:02:40,180 Og udføre bunny. 1382 01:02:40,180 --> 01:02:42,500 Det virkede ikke enten. 1383 01:02:42,500 --> 01:02:43,950 Forkert skråstreg. 1384 01:02:43,950 --> 01:02:52,280 Så hvis du ser på, hvad jeg har fået, satte jeg en / n derinde, men jeg havde den forkerte skråstreg. 1385 01:02:52,280 --> 01:02:56,190 >> Alt det, din computer gør, er meget eksplicit. 1386 01:02:56,190 --> 01:02:57,230 OK? 1387 01:02:57,230 --> 01:03:01,250 Et lille fejl af tegnsætning, og pludselig du ikke får, hvad du ønsker. 1388 01:03:01,250 --> 01:03:01,750 Okay. 1389 01:03:01,750 --> 01:03:03,740 Så lad os zoome ud igen. 1390 01:03:03,740 --> 01:03:04,410 Vi vil gå tilbage. 1391 01:03:04,410 --> 01:03:07,930 Godt gøre det meget hurtig reparation. 1392 01:03:07,930 --> 01:03:09,270 Vi vil sætte den rigtige skråstreg i. 1393 01:03:09,270 --> 01:03:10,570 Vi vil gemme det. 1394 01:03:10,570 --> 01:03:13,410 Vi vil ind igen. 1395 01:03:13,410 --> 01:03:16,730 >> Af en eller anden grund, det er ikke at være glad, men lad os gå videre 1396 01:03:16,730 --> 01:03:19,850 og vi vil gå tilbage til terminalen her. 1397 01:03:19,850 --> 01:03:22,940 Ryd det op. 1398 01:03:22,940 --> 01:03:24,880 Vi vil zoome ind. 1399 01:03:24,880 --> 01:03:28,410 Og en gang mere, vil vi gøre bunny. 1400 01:03:28,410 --> 01:03:32,360 Og nu ganske rigtigt, det virker. 1401 01:03:32,360 --> 01:03:33,240 Hurra. 1402 01:03:33,240 --> 01:03:34,300 OK. 1403 01:03:34,300 --> 01:03:39,580 >> Så lad os prøve at gøre denne lidt mere generelt. 1404 01:03:39,580 --> 01:03:46,750 Lad os se, om stedet for bare udskrive en bestemt ramme, 1405 01:03:46,750 --> 01:03:49,610 lad os se om vi kan gøre dette så vi kan få alle 10 1406 01:03:49,610 --> 01:03:52,960 af disse animerede billeder at vi ønskede at have. 1407 01:03:52,960 --> 01:03:56,550 Så igen, lad os tage et skridt ad gangen. 1408 01:03:56,550 --> 01:03:59,900 >> Lad os først generalisere det, ikke så jeg gør alle de rammer, 1409 01:03:59,900 --> 01:04:03,990 men så gør jeg nogen ramme, som jeg måske ønsker. 1410 01:04:03,990 --> 01:04:05,920 Så hvad er forskellen mellem rammerne? 1411 01:04:05,920 --> 01:04:07,377 Er bunny det samme? 1412 01:04:07,377 --> 01:04:07,960 Publikum: Ja. 1413 01:04:07,960 --> 01:04:08,390 BRIAN Scassellati: Ja. 1414 01:04:08,390 --> 01:04:09,370 Hvad er forskellen? 1415 01:04:09,370 --> 01:04:10,246 >> PUBLIKUM: holdning. 1416 01:04:10,246 --> 01:04:11,870 BRIAN Scassellati: Dens holdning, ikke? 1417 01:04:11,870 --> 01:04:15,590 Og hvordan gør jeg styre sin position? 1418 01:04:15,590 --> 01:04:17,340 Hvor mange prikker jeg er sætte i begyndelsen 1419 01:04:17,340 --> 01:04:19,048 og hvor mange prikker jeg er sætte i slutningen. 1420 01:04:19,048 --> 01:04:21,970 Så jeg havde fem på begynder og fem ved udgangen. 1421 01:04:21,970 --> 01:04:28,320 >> Lad os erstatte fem med en for-løkke. 1422 01:04:28,320 --> 01:04:29,380 OK. 1423 01:04:29,380 --> 01:04:32,330 Og jeg har tænkt mig at skabe en for loop nu, kommer til at sige, 1424 01:04:32,330 --> 01:04:37,800 Jeg har tænkt mig at udskrive nogle tal af prikker i begyndelsen. 1425 01:04:37,800 --> 01:04:39,600 Jeg har tænkt mig at bruge en variabel. 1426 01:04:39,600 --> 01:04:44,150 Lad os sige, hvad med jeg som tælleren i min løkke. 1427 01:04:44,150 --> 01:04:47,200 Og jeg har tænkt mig at erklære den op øverst. 1428 01:04:47,200 --> 01:04:49,360 >> Og så i for-løkken Jeg har brug for at gøre tre ting. 1429 01:04:49,360 --> 01:04:52,340 Det første, jeg skal gøre er jeg nødt til at initialisere jeg. 1430 01:04:52,340 --> 01:04:56,570 Hvad skal jeg initialisere det at begynde at være? 1431 01:04:56,570 --> 01:04:57,160 0. 1432 01:04:57,160 --> 01:04:58,310 OK. 1433 01:04:58,310 --> 01:05:00,950 >> Så jeg er nødt til at sige, hvad der er opsigelsen tilstand? 1434 01:05:00,950 --> 01:05:03,020 Hvornår skal jeg stoppe? 1435 01:05:03,020 --> 01:05:05,983 Nå hvor mange prikker gør du ønsker at udskrive på denne ene? 1436 01:05:05,983 --> 01:05:06,921 >> PUBLIKUM: Five. 1437 01:05:06,921 --> 01:05:08,170 BRIAN Scassellati: Five igen? 1438 01:05:08,170 --> 01:05:10,650 Hvad med lad os gøre noget anderledes, gjorde vi fem. 1439 01:05:10,650 --> 01:05:12,584 Lad os vise, at det er anderledes. 1440 01:05:12,584 --> 01:05:13,250 SPEAKER 22: Two. 1441 01:05:13,250 --> 01:05:13,580 BRIAN Scassellati: Two. 1442 01:05:13,580 --> 01:05:14,080 OK. 1443 01:05:14,080 --> 01:05:17,760 Så hvis jeg vil have to prikker, hvad skal jeg sætte her? 1444 01:05:17,760 --> 01:05:19,140 >> PUBLIKUM: Tre. 1445 01:05:19,140 --> 01:05:20,530 >> BRIAN Scassellati: Tre. 1446 01:05:20,530 --> 01:05:21,400 OK. 1447 01:05:21,400 --> 01:05:24,220 Hvor mange gange er, at kommer til at gå igennem? 1448 01:05:24,220 --> 01:05:28,469 Det kommer til at gå gennem tre gange, 0, 1, og 2, højre? 1449 01:05:28,469 --> 01:05:30,010 Okay, lad os gå tilbage til to. 1450 01:05:30,010 --> 01:05:31,570 Nu får vi to prikker. 1451 01:05:31,570 --> 01:05:35,800 Og hvad gør jeg ønsker at gøre hver gang jeg går gennem løkken? 1452 01:05:35,800 --> 01:05:38,657 Hvad skal ændres hver gang jeg går igennem? 1453 01:05:38,657 --> 01:05:39,850 >> SPEAKER 23: Tilføj en prik. 1454 01:05:39,850 --> 01:05:41,020 >> BRIAN Scassellati: Jeg er nødt til at holde ud. 1455 01:05:41,020 --> 01:05:41,978 Jeg har tænkt mig at tilføje en prik. 1456 01:05:41,978 --> 01:05:45,310 Jeg har tænkt mig at udskrive en prik, hver gang gennem løkken. 1457 01:05:45,310 --> 01:05:49,990 Men hvordan skal jeg holde styr på, hvordan mange gange jeg har været gennem løkken? 1458 01:05:49,990 --> 01:05:53,260 Jeg bruger i, at variable, der tæller. 1459 01:05:53,260 --> 01:05:57,110 >> Så hver gang igennem, vil jeg at forøge tælleren med én. 1460 01:05:57,110 --> 01:06:00,670 Nu, det er det samme for mig som at sige, i = i + 1. 1461 01:06:00,670 --> 01:06:01,210 Det er ok. 1462 01:06:01,210 --> 01:06:04,653 Jeg kunne gøre det at-- Jeg kan godt lide stenografi, så jeg har tænkt mig at sige, jeg ++. 1463 01:06:04,653 --> 01:06:07,190 1464 01:06:07,190 --> 01:06:08,370 OK. 1465 01:06:08,370 --> 01:06:10,680 >> Lad os gøre det samme hernede på bunden. 1466 01:06:10,680 --> 01:06:11,846 Kun jeg slags gjorde at en. 1467 01:06:11,846 --> 01:06:13,990 Jeg har tænkt mig at lade dig fyre gøre dette én helt. 1468 01:06:13,990 --> 01:06:14,260 Okay. 1469 01:06:14,260 --> 01:06:15,426 >> Så hvad skal jeg skrive her? 1470 01:06:15,426 --> 01:06:17,170 Her er min for-løkke. 1471 01:06:17,170 --> 01:06:23,162 Jeg har tænkt mig at gøre en printf (), og jeg har tænkt mig at gøre det så, at jeg kun udskrive én prik 1472 01:06:23,162 --> 01:06:25,740 på denne bund. 1473 01:06:25,740 --> 01:06:27,740 >> Hvad skal jeg skrive inde i denne for-løkke nu? 1474 01:06:27,740 --> 01:06:30,897 1475 01:06:30,897 --> 01:06:33,948 Nå, først og fremmest hvad variabler skal jeg bruge? 1476 01:06:33,948 --> 01:06:35,430 >> SPEAKER 24: j. 1477 01:06:35,430 --> 01:06:36,880 >> BRIAN Scassellati: jeg kunne bruge j. 1478 01:06:36,880 --> 01:06:38,040 Kan jeg bruge den samme? 1479 01:06:38,040 --> 01:06:39,961 Kan jeg bruge jeg igen? 1480 01:06:39,961 --> 01:06:40,460 Ja. 1481 01:06:40,460 --> 01:06:45,531 Det er OK, fordi Is at jeg bruger heroppe, 1482 01:06:45,531 --> 01:06:47,780 Jeg har ikke brug for dem igen, når Jeg kommer ned til dette punkt. 1483 01:06:47,780 --> 01:06:52,240 1484 01:06:52,240 --> 01:06:53,790 >> Så hvad skal jeg initialisere jeg til? 1485 01:06:53,790 --> 01:06:56,675 1486 01:06:56,675 --> 01:06:57,300 SPEAKER 25: 10. 1487 01:06:57,300 --> 01:06:58,567 BRIAN Scassellati: 0. 1488 01:06:58,567 --> 01:06:59,400 Hvad skal jeg tjekke? 1489 01:06:59,400 --> 01:07:02,960 Hvor mange prikker har jeg brug for nu i slutningen hvis jeg har to prikker i starten? 1490 01:07:02,960 --> 01:07:05,820 1491 01:07:05,820 --> 01:07:09,165 Jeg har brug for otte i slutningen, så hvad skal jeg kontrollere, jeg mindre than-- 1492 01:07:09,165 --> 01:07:12,645 >> PUBLIKUM: syv, otte, ni. 1493 01:07:12,645 --> 01:07:14,020 BRIAN Scassellati: Jeg hørte syv. 1494 01:07:14,020 --> 01:07:14,810 Jeg hørte otte. 1495 01:07:14,810 --> 01:07:15,970 Og jeg hørte ni. 1496 01:07:15,970 --> 01:07:16,470 OK. 1497 01:07:16,470 --> 01:07:19,540 Så vi er alle i den rigtige ball-- Jason siger 10. 1498 01:07:19,540 --> 01:07:21,550 OK. 1499 01:07:21,550 --> 01:07:25,920 >> Hvis jeg havde brug for to prikker til den første, hvor mange gør 1500 01:07:25,920 --> 01:07:30,170 Jeg-- og jeg har brug otte prikker til sidste en-- jeg sætte en to op over, 1501 01:07:30,170 --> 01:07:31,743 hvad skal jeg sætte dernede? 1502 01:07:31,743 --> 01:07:32,570 >> PUBLIKUM: Otte. 1503 01:07:32,570 --> 01:07:33,611 >> BRIAN Scassellati: Otte. 1504 01:07:33,611 --> 01:07:35,695 Fordi det kommer til at tæller nul gennem syv. 1505 01:07:35,695 --> 01:07:38,490 Og det er otte gange gennem løkken. 1506 01:07:38,490 --> 01:07:38,990 OK. 1507 01:07:38,990 --> 01:07:41,774 Og hvad skal jeg gøre i slutningen? 1508 01:07:41,774 --> 01:07:42,670 >> PUBLIKUM: Jeg ++. 1509 01:07:42,670 --> 01:07:44,400 >> BRIAN Scassellati: Jeg ++. 1510 01:07:44,400 --> 01:07:45,440 Okay. 1511 01:07:45,440 --> 01:07:48,260 Så det ser temmelig godt der. 1512 01:07:48,260 --> 01:07:50,620 Lad os prøve det og lad os se, hvad den gør. 1513 01:07:50,620 --> 01:07:51,450 OK. 1514 01:07:51,450 --> 01:07:53,770 Så vi kommer til at gemme det. 1515 01:07:53,770 --> 01:07:54,940 Nice og gemt. 1516 01:07:54,940 --> 01:07:56,910 >> Vi vil zoome ud igen. 1517 01:07:56,910 --> 01:07:58,220 Vi vil prøve her i terminalen. 1518 01:07:58,220 --> 01:08:01,440 1519 01:08:01,440 --> 01:08:02,970 Vi vil zoome ind. 1520 01:08:02,970 --> 01:08:05,416 Ups. 1521 01:08:05,416 --> 01:08:09,990 Vi får, en gang mere, gøre vores bunny-program. 1522 01:08:09,990 --> 01:08:14,460 Og gå videre og udføre bunny. 1523 01:08:14,460 --> 01:08:15,980 Og der er det. 1524 01:08:15,980 --> 01:08:17,710 >> Så der er vores kanin. 1525 01:08:17,710 --> 01:08:25,130 Hvor den har to prikker i begyndelsen og otte prikker ud i slutningen. 1526 01:08:25,130 --> 01:08:27,540 Alle stadig med mig? 1527 01:08:27,540 --> 01:08:28,770 OK. 1528 01:08:28,770 --> 01:08:29,580 >> Så vi byggede det op. 1529 01:08:29,580 --> 01:08:33,000 Vi byggede en kanin, en bestemt ramme. 1530 01:08:33,000 --> 01:08:36,229 Nu har vi været i stand til generalisere at bygge 1531 01:08:36,229 --> 01:08:38,390 flere, forskellige typer af rammer. 1532 01:08:38,390 --> 01:08:42,399 >> Lad os nu gå videre, og har det generere ikke kun en ramme, 1533 01:08:42,399 --> 01:08:46,290 men lad os generere 10 rammer, hvor vi langsomt 1534 01:08:46,290 --> 01:08:50,569 gøre bunny flytte alle vejen på tværs af feltet. 1535 01:08:50,569 --> 01:08:51,430 Okay. 1536 01:08:51,430 --> 01:08:53,660 >> Lad os gå tilbage. 1537 01:08:53,660 --> 01:08:54,839 Og vi vil prøve nu. 1538 01:08:54,839 --> 01:09:00,680 1539 01:09:00,680 --> 01:09:02,830 Så hvad gør jeg virkelig brug for at ændre her? 1540 01:09:02,830 --> 01:09:06,139 1541 01:09:06,139 --> 01:09:07,180 Hvad skal jeg ændre? 1542 01:09:07,180 --> 01:09:10,638 >> SPEAKER 26: Du skal først ændre antallet af prikker maksimum 1543 01:09:10,638 --> 01:09:11,626 i begyndelsen. 1544 01:09:11,626 --> 01:09:16,850 For hvis vi gør 10 prikker, det vil få brug for at op til skalere. 1545 01:09:16,850 --> 01:09:17,850 BRIAN Scassellati: Ja. 1546 01:09:17,850 --> 01:09:23,760 Så lige nu har jeg det slags hardwired til altid at gøre to prikker i begyndelsen 1547 01:09:23,760 --> 01:09:27,890 og altid gøre otte prikker i slutningen. 1548 01:09:27,890 --> 01:09:30,660 >> Jeg ønsker at opbygge en anden loop, ikke? 1549 01:09:30,660 --> 01:09:33,290 Fordi jeg ønsker ikke at bygge kun et kanin billede, 1550 01:09:33,290 --> 01:09:37,140 Jeg ønsker at opbygge 10 bunny billeder. 1551 01:09:37,140 --> 01:09:41,500 Så jeg har brug for at bygge et andet loop, og da jeg går gennem denne løkke, 1552 01:09:41,500 --> 01:09:44,660 Jeg ønsker at ændre, hvor mange prikker jeg udskrive i begyndelsen 1553 01:09:44,660 --> 01:09:50,529 og hvor mange prikker jeg udskrive i slutningen, baseret på hvilken cyklus gennem løkken 1554 01:09:50,529 --> 01:09:52,270 Jeg er med. 1555 01:09:52,270 --> 01:09:52,770 Okay. 1556 01:09:52,770 --> 01:09:54,430 >> Så lad os få en anden tæller. 1557 01:09:54,430 --> 01:09:58,142 Nogen før sagt j, så vi vil gøre en anden j. 1558 01:09:58,142 --> 01:10:00,100 Og nu, vi vil opbygge en anden for løkke. 1559 01:10:00,100 --> 01:10:02,650 1560 01:10:02,650 --> 01:10:06,200 >> Hvad sker indeni, løkke? 1561 01:10:06,200 --> 01:10:09,060 Denne ting har at gå inde i løkken, ikke? 1562 01:10:09,060 --> 01:10:11,190 Har bunny have at gå ind i løkken? 1563 01:10:11,190 --> 01:10:13,390 Skal jeg have en kanin i hver af disse 10 rammer? 1564 01:10:13,390 --> 01:10:14,099 >> PUBLIKUM: Uh-huh. 1565 01:10:14,099 --> 01:10:15,098 BRIAN Scassellati: Ja. 1566 01:10:15,098 --> 01:10:17,250 Jeg vil have en kanin i hvert af de 10 frames, ikke? 1567 01:10:17,250 --> 01:10:20,531 Hvad med prikkerne på enden, har jeg brug for det? 1568 01:10:20,531 --> 01:10:21,030 OK. 1569 01:10:21,030 --> 01:10:22,550 >> Så jeg har tænkt mig at indrykke dem alle. 1570 01:10:22,550 --> 01:10:25,110 Jeg har tænkt mig at fremhæve alle dette, og jeg har tænkt mig at ramme Tab. 1571 01:10:25,110 --> 01:10:28,590 Og det kommer til at skubbe dem over en lille smule, så det er nemt for mig 1572 01:10:28,590 --> 01:10:32,010 for at se, hvad der er i løkken. 1573 01:10:32,010 --> 01:10:33,710 Og så vil jeg afslutte det. 1574 01:10:33,710 --> 01:10:35,850 Lad os sige. 1575 01:10:35,850 --> 01:10:36,430 OK? 1576 01:10:36,430 --> 01:10:39,230 >> Nu, i denne løkke, Jeg er building-- hovsa, 1577 01:10:39,230 --> 01:10:43,810 gøre det, så du kan see-- Jeg har fået min tæller j. 1578 01:10:43,810 --> 01:10:45,630 Jeg startede det på 0. 1579 01:10:45,630 --> 01:10:47,829 Hvor mange gange skal jeg ønsker at gå gennem denne løkke? 1580 01:10:47,829 --> 01:10:48,620 PUBLIKUM: 10 gange. 1581 01:10:48,620 --> 01:10:49,786 BRIAN Scassellati: 10 gange. 1582 01:10:49,786 --> 01:10:51,402 Så hvad nummer skal jeg sætte her? 1583 01:10:51,402 --> 01:10:52,880 >> PUBLIKUM: 9, 10. 1584 01:10:52,880 --> 01:10:55,600 >> BRIAN Scassellati: 9, 10, nogen er nødt til at sige 11, ikke? 1585 01:10:55,600 --> 01:10:58,190 1586 01:10:58,190 --> 01:11:01,585 Jeg ønskede to prikker før og sætte i mindre end 2. 1587 01:11:01,585 --> 01:11:03,810 Jeg ønskede otte prikker, Jeg sætter jeg mindre end 8. 1588 01:11:03,810 --> 01:11:06,950 Nu vil jeg gå gennem 10 gange, så jeg sætte j mindre than-- 1589 01:11:06,950 --> 01:11:07,590 >> PUBLIKUM: 10. 1590 01:11:07,590 --> 01:11:08,610 >> BRIAN Scassellati: 10. 1591 01:11:08,610 --> 01:11:10,150 Der vi går. 1592 01:11:10,150 --> 01:11:13,360 Og hvad gør jeg i slutningen at j? 1593 01:11:13,360 --> 01:11:15,310 ++, Tilvækst det. 1594 01:11:15,310 --> 01:11:16,230 OK. 1595 01:11:16,230 --> 01:11:21,500 Nu, her er den tricky del, hvad er kommer til at ske lige nu, hvis jeg gør dette? 1596 01:11:21,500 --> 01:11:24,537 Skal jeg udskrive 10 billeder? 1597 01:11:24,537 --> 01:11:26,370 SPEAKER 27: Jeg tror de vil alle være den samme. 1598 01:11:26,370 --> 01:11:28,453 BRIAN Scassellati: De vil alle være den samme, ikke? 1599 01:11:28,453 --> 01:11:31,750 Fordi alle af dem er stadig i gang at sætte to prikker i begyndelsen. 1600 01:11:31,750 --> 01:11:34,162 Men jeg vil ikke have dem alle til har to prikker begyndelsen. 1601 01:11:34,162 --> 01:11:35,870 Hvor mange prikker gør jeg ønsker i starten? 1602 01:11:35,870 --> 01:11:39,097 1603 01:11:39,097 --> 01:11:40,020 >> PUBLIKUM: Ændring. 1604 01:11:40,020 --> 01:11:42,840 >> BRIAN Scassellati: Jeg ønsker det at ændre, ikke? 1605 01:11:42,840 --> 01:11:46,588 Så hvad gør jeg har her, der er skiftende hver gang løkken går igennem? 1606 01:11:46,588 --> 01:11:48,242 >> PUBLIKUM: Antallet af prikker, j. 1607 01:11:48,242 --> 01:11:49,950 BRIAN Scassellati: j, antallet af prikker. 1608 01:11:49,950 --> 01:11:54,782 Så jeg kan ændre dette til at være j. 1609 01:11:54,782 --> 01:11:59,190 Første gang gennem loop, hvad er det kommer til at være? 1610 01:11:59,190 --> 01:12:01,700 Hvad skal jeg sætte j til først? 1611 01:12:01,700 --> 01:12:02,420 >> PUBLIKUM: 0. 1612 01:12:02,420 --> 01:12:05,700 >> BRIAN Scassellati: Så hvor mange gange skal jeg gøre det? 1613 01:12:05,700 --> 01:12:06,750 0. 1614 01:12:06,750 --> 01:12:11,750 Anden gang gennem løkken, j s kommer til at være 1, fordi jeg tilvækst det. 1615 01:12:11,750 --> 01:12:14,180 Hvor mange prikker skal jeg printe? 1616 01:12:14,180 --> 01:12:15,100 1. 1617 01:12:15,100 --> 01:12:19,904 Tredje gang gennem løkken, hvor mange prikker skal jeg printe? 1618 01:12:19,904 --> 01:12:20,587 >> PUBLIKUM: Tre. 1619 01:12:20,587 --> 01:12:22,170 BRIAN Scassellati: j vil være 3. 1620 01:12:22,170 --> 01:12:24,890 Hvor mange prikker skal jeg printe? 1621 01:12:24,890 --> 01:12:26,817 Åh, undskyld, j kommer til at være 2. 1622 01:12:26,817 --> 01:12:28,233 Hvor mange prikker skal jeg printe? 1623 01:12:28,233 --> 01:12:28,980 >> PUBLIKUM: 2. 1624 01:12:28,980 --> 01:12:29,855 >> BRIAN Scassellati: 2. 1625 01:12:29,855 --> 01:12:32,460 OK, så jeg har tænkt mig at holde forøgelse, at når vi går sammen. 1626 01:12:32,460 --> 01:12:33,460 Hvad med dernede? 1627 01:12:33,460 --> 01:12:34,310 Hvad går ned her? 1628 01:12:34,310 --> 01:12:38,080 Jeg vil ikke have 8 altid i slutningen længere? 1629 01:12:38,080 --> 01:12:39,269 >> SPEAKER 28: 10. 1630 01:12:39,269 --> 01:12:40,685 BRIAN Scassellati: Jeg vil have 10 prikker? 1631 01:12:40,685 --> 01:12:43,440 1632 01:12:43,440 --> 01:12:44,620 Jeg vil have det til at ændre sig, også. 1633 01:12:44,620 --> 01:12:47,469 Så hvordan skal jeg have det at ændre? 1634 01:12:47,469 --> 01:12:49,167 >> PUBLIKUM: [uhørligt]. 1635 01:12:49,167 --> 01:12:51,750 BRIAN Scassellati: Tja, hvis jeg har fem prikker i begyndelsen, 1636 01:12:51,750 --> 01:12:53,293 hvor mange dot s får jeg i slutningen? 1637 01:12:53,293 --> 01:12:54,020 >> PUBLIKUM: Five. 1638 01:12:54,020 --> 01:12:55,630 >> BRIAN Scassellati: Hvis jeg har seks prikker i begyndelsen, 1639 01:12:55,630 --> 01:12:56,875 hvor mange får jeg i slutningen? 1640 01:12:56,875 --> 01:12:57,500 PUBLIKUM: Fire. 1641 01:12:57,500 --> 01:12:58,950 BRIAN Scassellati: Hvis jeg fik syv prikker i begyndelsen, 1642 01:12:58,950 --> 01:13:00,204 hvor mange får jeg i slutningen? 1643 01:13:00,204 --> 01:13:00,870 PUBLIKUM: Tre. 1644 01:13:00,870 --> 01:13:03,161 BRIAN Scassellati: Hvis jeg har fik j prikker i begyndelsen, 1645 01:13:03,161 --> 01:13:04,790 hvor mange får jeg i slutningen? 1646 01:13:04,790 --> 01:13:07,520 10-j. 1647 01:13:07,520 --> 01:13:08,650 OK. 1648 01:13:08,650 --> 01:13:10,390 Så lad os prøve at ud. 1649 01:13:10,390 --> 01:13:13,180 >> Så jeg har tænkt mig at redde vores bunny-program. 1650 01:13:13,180 --> 01:13:16,270 Endnu engang vil vi zoome ud. 1651 01:13:16,270 --> 01:13:19,090 Vi vil gå ned til vores terminal. 1652 01:13:19,090 --> 01:13:20,180 Vi vil klare det. 1653 01:13:20,180 --> 01:13:23,410 Og zoome ind. 1654 01:13:23,410 --> 01:13:26,410 Vi vil gøre vores bunny program igen. 1655 01:13:26,410 --> 01:13:27,690 Og vi vil udføre den. 1656 01:13:27,690 --> 01:13:30,462 1657 01:13:30,462 --> 01:13:32,090 Uh-oh. 1658 01:13:32,090 --> 01:13:34,580 >> Hold nu, lad os zoome ud. 1659 01:13:34,580 --> 01:13:36,860 Fik jeg 10 frames? 1660 01:13:36,860 --> 01:13:38,970 Nå, hvordan mange kaniner kan jeg se deroppe? 1661 01:13:38,970 --> 01:13:43,330 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. 1662 01:13:43,330 --> 01:13:44,820 Jeg fik 10 frames. 1663 01:13:44,820 --> 01:13:46,375 Er de alle det samme? 1664 01:13:46,375 --> 01:13:47,000 Publikum: Ja. 1665 01:13:47,000 --> 01:13:48,740 Nej. 1666 01:13:48,740 --> 01:13:50,000 >> BRIAN Scassellati: Nej. 1667 01:13:50,000 --> 01:13:55,050 Det første, den bunny er langt til venstre. 1668 01:13:55,050 --> 01:13:57,541 Og herovre, bunny er langt på 1669 01:13:57,541 --> 01:13:58,290 SPEAKER 29: Right. 1670 01:13:58,290 --> 01:14:00,502 BRIAN Scassellati: Så hvad gjorde jeg glemmer at gøre? 1671 01:14:00,502 --> 01:14:01,750 SPEAKER 30: Start en ny linje. 1672 01:14:01,750 --> 01:14:04,041 BRIAN Scassellati: Jeg har glemt at starte en ny linje, igen. 1673 01:14:04,041 --> 01:14:05,270 Samme fejl, jeg gjorde før. 1674 01:14:05,270 --> 01:14:07,120 Okay, lad os gå ordne det. 1675 01:14:07,120 --> 01:14:11,690 Nu har jeg stadig fik koden derinde til at lave en ny linje. 1676 01:14:11,690 --> 01:14:13,899 Hvorfor har det ikke virker? 1677 01:14:13,899 --> 01:14:15,440 SPEAKER 31: Det er ikke inde i løkken. 1678 01:14:15,440 --> 01:14:17,710 BRIAN Scassellati: Åh, det er ikke inden for omkredsen. 1679 01:14:17,710 --> 01:14:18,520 Det er rigtigt. 1680 01:14:18,520 --> 01:14:20,150 Det sidder udenfor her. 1681 01:14:20,150 --> 01:14:23,470 1682 01:14:23,470 --> 01:14:29,050 Og for-løkken er alt der er inde denne tekst. 1683 01:14:29,050 --> 01:14:35,500 >> Så jeg har tænkt mig at flytte dette inde for-løkken. 1684 01:14:35,500 --> 01:14:39,410 Og jeg vil Tab foran det til viser, at det er i det rigtige sted. 1685 01:14:39,410 --> 01:14:42,020 Og nu vil vi gemme det igen. 1686 01:14:42,020 --> 01:14:44,350 Vi vil zoome ud. 1687 01:14:44,350 --> 01:14:45,770 Vi vil skifte over til vores terminal. 1688 01:14:45,770 --> 01:14:48,330 1689 01:14:48,330 --> 01:14:50,360 Zoom ind. 1690 01:14:50,360 --> 01:14:54,050 Vi vil genskabe vores bunny-program. 1691 01:14:54,050 --> 01:14:59,070 Og nu, nu har vi fået vores 10 frames. 1692 01:14:59,070 --> 01:15:00,190 >> [Klapper] 1693 01:15:00,190 --> 01:15:02,120 >> BRIAN Scassellati: OK. 1694 01:15:02,120 --> 01:15:04,080 So. 1695 01:15:04,080 --> 01:15:08,370 Her er vores indlejret efter sløjfer. 1696 01:15:08,370 --> 01:15:13,140 Vi var i stand til at generere i indre sløjfe hvor mange prikker jeg ønskede 1697 01:15:13,140 --> 01:15:15,320 at udskrive i starten, i slutningen. 1698 01:15:15,320 --> 01:15:21,570 Og den ydre sløjfe styret hvor mange billeder jeg byggede. 1699 01:15:21,570 --> 01:15:26,340 Vi startede med en lille kernen af ​​problemet, 1700 01:15:26,340 --> 01:15:30,320 og vi bygget fra dette punkt. 1701 01:15:30,320 --> 01:15:30,820 Okay. 1702 01:15:30,820 --> 01:15:33,500 >> Lad os gøre endnu et skridt. 1703 01:15:33,500 --> 01:15:35,040 Er du klar? 1704 01:15:35,040 --> 01:15:38,800 Der er én ting i her, hvor vi har faktisk slags fik 1705 01:15:38,800 --> 01:15:42,180 mere komplekse, end vi har brug for. 1706 01:15:42,180 --> 01:15:44,700 Lad os tage et kig. 1707 01:15:44,700 --> 01:15:52,050 Så i vores kanin program, hvis jeg zoome ud her, 1708 01:15:52,050 --> 01:15:54,980 Jeg rent faktisk gør noget af det samme ting igen og igen. 1709 01:15:54,980 --> 01:15:59,032 Hvad gør jeg, det er en slags det samme gentages to gange? 1710 01:15:59,032 --> 01:16:00,310 >> SPEAKER 32: Udskriv prikker. 1711 01:16:00,310 --> 01:16:03,526 >> BRIAN Scassellati: Ja Jeg udskrive disse prikker to gange. 1712 01:16:03,526 --> 01:16:05,710 Virkelig, skulle jeg have denne kommentar hernede. 1713 01:16:05,710 --> 01:16:09,037 Jeg udskrive nogle prikker på begynder, lige op her. 1714 01:16:09,037 --> 01:16:10,620 Og så vil jeg udskrive nogle prikker i slutningen. 1715 01:16:10,620 --> 01:16:14,694 Og jeg gør slags nøjagtig det samme. 1716 01:16:14,694 --> 01:16:17,110 Hvad vi kommer til at starte arbejder på i de næste par uger 1717 01:16:17,110 --> 01:16:23,440 er at kunne tage disse blokke af kode, vi bruger igen og igen, 1718 01:16:23,440 --> 01:16:25,800 og gennem en proces kaldet abstraktion, 1719 01:16:25,800 --> 01:16:31,100 vi kommer til at trække dem ud og skrive dem én gang, så vi kan derefter 1720 01:16:31,100 --> 01:16:35,130 genbruge dem igen og igen. 1721 01:16:35,130 --> 01:16:37,210 Så lad os prøve det. 1722 01:16:37,210 --> 01:16:38,220 Klar? 1723 01:16:38,220 --> 01:16:42,200 >> Vi kommer til at tage denne blok af kode. 1724 01:16:42,200 --> 01:16:45,280 Og jeg har tænkt mig at tage den ud af der. 1725 01:16:45,280 --> 01:16:50,530 Og jeg har tænkt mig at define-- ned til bunden, 1726 01:16:50,530 --> 01:16:53,130 Jeg har tænkt mig at skrive en ny funktion. 1727 01:16:53,130 --> 01:16:54,750 Det kommer ikke til at returnere noget. 1728 01:16:54,750 --> 01:16:58,550 Og jeg har tænkt mig at kalde det printDots. 1729 01:16:58,550 --> 01:17:01,530 >> Det kommer til at tage en argument, at et helt tal 1730 01:17:01,530 --> 01:17:04,920 siger howManyDots jeg skulle udskrives. 1731 01:17:04,920 --> 01:17:09,310 1732 01:17:09,310 --> 01:17:17,720 Og nu i stedet for at udskrive j prikker, jeg vil Print Tip howManyDots jeg skulle udskrives. 1733 01:17:17,720 --> 01:17:21,581 >> Og der er én lille problem her. 1734 01:17:21,581 --> 01:17:22,580 Nogen ved, hvad det er? 1735 01:17:22,580 --> 01:17:27,270 1736 01:17:27,270 --> 01:17:31,505 Hvad har jeg, der er opført herinde der ikke er defineret? 1737 01:17:31,505 --> 01:17:34,165 1738 01:17:34,165 --> 01:17:35,090 >> PUBLIKUM: [uhørligt] 1739 01:17:35,090 --> 01:17:37,465 >> BRIAN Scassellati: Nå, hvordan mange prikker er defineret helt op 1740 01:17:37,465 --> 01:17:40,584 her, men jeg bruger denne variabel i. 1741 01:17:40,584 --> 01:17:43,750 Så jeg har tænkt mig at tage denne variabel i og jeg har tænkt mig at definere den ned i her 1742 01:17:43,750 --> 01:17:44,610 stedet. 1743 01:17:44,610 --> 01:17:49,683 >> Så nu er det kommer til at stay-- Ups, Fik caps lock på somehow-- jeg 1744 01:17:49,683 --> 01:17:52,060 vil holde jeg ned i her. 1745 01:17:52,060 --> 01:17:57,050 >> Så nu her er min lille funktion eller sub-rutine, og det siger, 1746 01:17:57,050 --> 01:18:00,640 hvor mange prikker skal jeg printe? 1747 01:18:00,640 --> 01:18:05,300 Og det vil gå igennem denne løkke og udskrive dem igen og igen. 1748 01:18:05,300 --> 01:18:10,940 >> Jeg kan derefter ændre mit program op her. 1749 01:18:10,940 --> 01:18:12,540 Og hvad gjorde jeg kalder denne funktion? 1750 01:18:12,540 --> 01:18:13,960 printDots. 1751 01:18:13,960 --> 01:18:17,060 Så jeg ringer printDots. 1752 01:18:17,060 --> 01:18:21,530 Hvor mange prikker jeg ønsker at udskrive første gang inden bunny? 1753 01:18:21,530 --> 01:18:22,030 PUBLIKUM: j. 1754 01:18:22,030 --> 01:18:23,230 BRIAN Scassellati: j. 1755 01:18:23,230 --> 01:18:27,110 Hvor mange prikker jeg ønsker at udskrive i slutningen, efter bunny? 1756 01:18:27,110 --> 01:18:30,610 1757 01:18:30,610 --> 01:18:31,110 10-j. 1758 01:18:31,110 --> 01:18:35,020 1759 01:18:35,020 --> 01:18:38,010 >> Og der er én ting, jeg mangler. 1760 01:18:38,010 --> 01:18:43,740 Som du så i forelæsning i dag, vi kommer til at erklære printDots 1761 01:18:43,740 --> 01:18:52,430 op ovenfor til opnåelse af prototypen. 1762 01:18:52,430 --> 01:18:56,740 1763 01:18:56,740 --> 01:18:58,220 OK. 1764 01:18:58,220 --> 01:19:03,530 >> Så hvad jeg har gjort, er jeg har prøvet at isolere der genbruges del af koden 1765 01:19:03,530 --> 01:19:06,430 at jeg har gjort igen og igen. 1766 01:19:06,430 --> 01:19:11,120 Og jeg har prøvet at trække det ud, så alle der er indeholdt i ét sted. 1767 01:19:11,120 --> 01:19:16,810 På den måde, hvis jeg har en fejl et eller andet sted, Jeg behøver kun at ordne det på ét sted. 1768 01:19:16,810 --> 01:19:17,310 Okay. 1769 01:19:17,310 --> 01:19:18,470 >> Så lad os gemme det. 1770 01:19:18,470 --> 01:19:20,950 Og lad os sørge for det virker. 1771 01:19:20,950 --> 01:19:22,050 Så lad os gå ud. 1772 01:19:22,050 --> 01:19:25,200 Vi vil gå igen til vores terminal. 1773 01:19:25,200 --> 01:19:27,960 Vi vil zoome ind. 1774 01:19:27,960 --> 01:19:31,010 Vi vil gøre, at bunny proces. 1775 01:19:31,010 --> 01:19:32,380 >> Oh. 1776 01:19:32,380 --> 01:19:34,800 Og det har givet mig en advarsel. 1777 01:19:34,800 --> 01:19:37,070 Hvad er det fortæller mig? 1778 01:19:37,070 --> 01:19:39,870 Godt i enhver af disse gange, du altid ønsker 1779 01:19:39,870 --> 01:19:44,170 at rulle op til den allerførste error-- nu på denne ene, har jeg kun fik en. 1780 01:19:44,170 --> 01:19:52,700 >> Det fortæller mig bunny.c, på linje 8, kolonne 9, der er et problem. 1781 01:19:52,700 --> 01:19:58,650 Den siger, at du har erklæret dette variabel i og du ikke har brugt den. 1782 01:19:58,650 --> 01:20:02,230 >> Nu normalt, det er ikke værst fejl. 1783 01:20:02,230 --> 01:20:04,300 Det er en let at løse. 1784 01:20:04,300 --> 01:20:07,550 Og i virkeligheden, kan vi gå igen. 1785 01:20:07,550 --> 01:20:09,910 Vi kan gå tilbage til bunny. 1786 01:20:09,910 --> 01:20:13,010 Og i dette tilfælde, alle vi skal gøre er at slippe af med i, 1787 01:20:13,010 --> 01:20:16,630 fordi vi ikke bruger Jeg indenfor main længere. 1788 01:20:16,630 --> 01:20:19,860 Vi er lige ved hjælp af det inden for vores sub-rutine. 1789 01:20:19,860 --> 01:20:22,777 >> Så lad os redde dette. 1790 01:20:22,777 --> 01:20:23,360 Vi vil gå tilbage. 1791 01:20:23,360 --> 01:20:26,760 1792 01:20:26,760 --> 01:20:28,630 Og zoome ind. 1793 01:20:28,630 --> 01:20:30,700 Vi vil endnu en gang gøre bunny. 1794 01:20:30,700 --> 01:20:33,810 1795 01:20:33,810 --> 01:20:36,530 Og der igen er vores 10 frames. 1796 01:20:36,530 --> 01:20:39,450 1797 01:20:39,450 --> 01:20:41,360 OK. 1798 01:20:41,360 --> 01:20:43,190 >> Enhver tid du er givet en procedure-- Ja. 1799 01:20:43,190 --> 01:20:44,690 SPEAKER 33: Jeg har en-- Jeg er forvirret. 1800 01:20:44,690 --> 01:20:45,892 Kan du gå tilbage til den kode? 1801 01:20:45,892 --> 01:20:46,850 BRIAN Scassellati: Yep. 1802 01:20:46,850 --> 01:20:50,730 1803 01:20:50,730 --> 01:20:54,367 >> SPEAKER 33: Så når du skrev din prototype, det argument, du 1804 01:20:54,367 --> 01:20:56,550 havde det opkaldt blev kaldt howmany? 1805 01:20:56,550 --> 01:20:57,540 Men, below-- 1806 01:20:57,540 --> 01:20:57,640 >> BRIAN Scassellati: Oh yeah. 1807 01:20:57,640 --> 01:20:59,140 >> SPEAKER 33: --called dem noget anderledes, forstår jeg ikke. 1808 01:20:59,140 --> 01:21:00,240 >> BRIAN Scassellati: Hvorfor er de forskellige. 1809 01:21:00,240 --> 01:21:01,780 Så det er et godt spørgsmål. 1810 01:21:01,780 --> 01:21:08,250 Så var spørgsmålet, op her, jeg skrev howmany, 1811 01:21:08,250 --> 01:21:12,380 og nede, skrev jeg howManyDots. 1812 01:21:12,380 --> 01:21:15,590 >> Årsagen er, at op i din prototype, Det er faktisk ikke opmærksom 1813 01:21:15,590 --> 01:21:17,090 til de navne, du lægger i. 1814 01:21:17,090 --> 01:21:20,530 Alt det virkelig bekymrer sig om er, at det er et heltal. 1815 01:21:20,530 --> 01:21:23,080 Den ønsker at kende formen af, hvad du lægger i. 1816 01:21:23,080 --> 01:21:31,560 >> Nu stylistically-- oops-- hvad jeg skal gør, er jeg gerne gøre disse kamp. 1817 01:21:31,560 --> 01:21:33,150 OK. 1818 01:21:33,150 --> 01:21:36,430 Fordi det vil være at holde det lettere for mig at huske. 1819 01:21:36,430 --> 01:21:38,390 Men det var min fejl Ja. 1820 01:21:38,390 --> 01:21:47,620 >> SPEAKER 34: Og så for det prototype til at arbejde, bare 1821 01:21:47,620 --> 01:21:50,510 skrive denne linje, skriver prototypen, 1822 01:21:50,510 --> 01:21:53,932 tillader denne funktion, der kommer lige under det til at gå til enden 1823 01:21:53,932 --> 01:21:55,140 og hente hvad det betyder? 1824 01:21:55,140 --> 01:21:58,480 >> BRIAN Scassellati: Hvad det betyder er, når compileren går igennem, 1825 01:21:58,480 --> 01:22:01,930 den går fra toppen af din kode til bunden. 1826 01:22:01,930 --> 01:22:05,430 Og hvad denne prototype er, er det er dybest set et løfte. 1827 01:22:05,430 --> 01:22:09,570 >> Den siger, at der vil være en funktion defineret sted. 1828 01:22:09,570 --> 01:22:11,880 Det kommer til at blive kaldt printDots. 1829 01:22:11,880 --> 01:22:15,110 Og det kommer til at tage et argument der kommer til at være et heltal 1830 01:22:15,110 --> 01:22:18,590 og det kommer til at vende tilbage ingenting, ugyldig type. 1831 01:22:18,590 --> 01:22:19,310 OK. 1832 01:22:19,310 --> 01:22:22,950 Jeg lover dig, at det vil være defineret et eller andet sted nede ad vejen. 1833 01:22:22,950 --> 01:22:25,590 Men hver gang du ser at, som du går ned 1834 01:22:25,590 --> 01:22:28,710 gennem resten af ​​mit vigtigste funktion, jeg vil 1835 01:22:28,710 --> 01:22:33,800 du til at behandle det som en funktion der tager et heltal input. 1836 01:22:33,800 --> 01:22:37,970 >> Og så når compileren går ned gennem denne, det ser, at løfte. 1837 01:22:37,970 --> 01:22:40,220 Og når det bliver ned, holder vil, holder vil, 1838 01:22:40,220 --> 01:22:43,060 den finder for første gang printDots er nævnt. 1839 01:22:43,060 --> 01:22:46,910 Og det siger, Åh, du giver mig j. j er et heltal. 1840 01:22:46,910 --> 01:22:49,570 >> Nå du lovede mig, at ville være et heltal, og det er rigtigt. 1841 01:22:49,570 --> 01:22:51,370 Det er ok. 1842 01:22:51,370 --> 01:22:53,880 Og så endelig, ned i bunden, 1843 01:22:53,880 --> 01:22:58,340 før jeg kommer til slutningen af ​​min fil, jeg gør godt på mit løfte 1844 01:22:58,340 --> 01:22:59,896 og jeg definere det. 1845 01:22:59,896 --> 01:23:01,868 OK? 1846 01:23:01,868 --> 01:23:06,320 >> SPEAKER 35: Så det saves-- den Programmet vil spare mellemrum 1847 01:23:06,320 --> 01:23:09,570 at det går tilbage og udfylder i slutningen? 1848 01:23:09,570 --> 01:23:12,140 >> BRIAN Scassellati: Det er ikke om fordelingen hukommelse. 1849 01:23:12,140 --> 01:23:16,800 Det er faktisk bare om, hvad type er du forventer at se. 1850 01:23:16,800 --> 01:23:19,340 Skulle denne ting har en argument, eller fem argumenter? 1851 01:23:19,340 --> 01:23:23,590 Skal have det hele tal være givet til det, eller strygere? 1852 01:23:23,590 --> 01:23:25,780 Det er alt, det ser at gøre, er at kontrollere, 1853 01:23:25,780 --> 01:23:29,303 giver du mig rigtige form for argumentation. 1854 01:23:29,303 --> 01:23:31,560 OK? 1855 01:23:31,560 --> 01:23:32,300 Okay. 1856 01:23:32,300 --> 01:23:38,570 >> Lad mig efterlade dig med et andet lidt at se på. 1857 01:23:38,570 --> 01:23:44,850 ASCII kunst er ikke den store model animation, som det er i dag. 1858 01:23:44,850 --> 01:23:50,850 Men nogle mennesker selvfølgelig tage tingene og de skubbe det til deres ekstremer. 1859 01:23:50,850 --> 01:23:56,790 >> Dette er, som David påvist i forelæsning, et stykke kode 1860 01:23:56,790 --> 01:24:02,150 at du må under ingen omstændigheder forsøge at duplikere jer selv. 1861 01:24:02,150 --> 01:24:05,260 Fordi det er forfærdeligt stilistisk. 1862 01:24:05,260 --> 01:24:11,180 Faktisk er det designet til at være så svært som muligt at læse. 1863 01:24:11,180 --> 01:24:11,680 OK. 1864 01:24:11,680 --> 01:24:16,210 >> Så for at gøre igen, lad os zoome ind her. 1865 01:24:16,210 --> 01:24:20,120 Jeg har tænkt mig at gå nu, ændre mappe. 1866 01:24:20,120 --> 01:24:24,050 Jeg har tænkt mig at gå op en niveau, tilbage til min arbejdsplads. 1867 01:24:24,050 --> 01:24:29,760 Jeg vil så ændre mappe ind i denne anden mappe, som jeg har oprettet. 1868 01:24:29,760 --> 01:24:36,190 >> Og dette er den internationale Korrumperet C Programming Contest. 1869 01:24:36,190 --> 01:24:40,650 Korrumperet midler som hårdt muligt at forstå. 1870 01:24:40,650 --> 01:24:44,150 Så venligst ikke være bange, hvis man ser på dette og gå, kan jeg ikke læse det. 1871 01:24:44,150 --> 01:24:46,350 Det er meningen med det. 1872 01:24:46,350 --> 01:24:47,700 OK? 1873 01:24:47,700 --> 01:24:52,770 >> Men, vi har denne vidunderlige program, som jeg er 1874 01:24:52,770 --> 01:24:57,180 kommer til at se på ved blot at skrive mere. 1875 01:24:57,180 --> 01:25:01,890 Og lad os se om jeg kan zoome ud bare en smule, så du kan se det 1876 01:25:01,890 --> 01:25:03,940 >> Og det er programmet. 1877 01:25:03,940 --> 01:25:08,080 Det er opkaldt endo.c. 1878 01:25:08,080 --> 01:25:14,850 Og det ser sådan spand med form af bogstaverne F-L-U-I-D i det. 1879 01:25:14,850 --> 01:25:16,440 >> Dette er faktisk et program. 1880 01:25:16,440 --> 01:25:20,260 Den er skrevet i de mest obskure måde, at forfatterne kunne eventuelt 1881 01:25:20,260 --> 01:25:21,760 skrive det. 1882 01:25:21,760 --> 01:25:29,210 Men det er en vidunderlig lille stykke, der genererer en model for fluiddynamik. 1883 01:25:29,210 --> 01:25:34,870 >> Og så vil vi give denne model et input, som 1884 01:25:34,870 --> 01:25:42,520 ser sådan ud, af et staired sæt af beholdere 1885 01:25:42,520 --> 01:25:45,820 med noget væske, nogle flydende, op øverst. 1886 01:25:45,820 --> 01:25:48,790 Og vi vil have det simulere hvad der sker med det. 1887 01:25:48,790 --> 01:25:52,415 >> Så jeg vil kalde denne funktion, endo. 1888 01:25:52,415 --> 01:25:59,000 Og jeg vil give det, at input fil, som jeg har haft. 1889 01:25:59,000 --> 01:26:02,830 Og der er vores indbegrebet af ASCII-kunst. 1890 01:26:02,830 --> 01:26:08,960 En fuld fluiddynamisk simulator kører på blot et par linjer kode. 1891 01:26:08,960 --> 01:26:13,750 >> Nu, hvad er faktisk rigtig forbløffende om dette lille program 1892 01:26:13,750 --> 01:26:17,280 er, at jeg ønsker at stoppe det nu, så jeg har tænkt mig at bruge, hvad kommandoen? 1893 01:26:17,280 --> 01:26:18,660 >> PUBLIKUM: Kontrol-C. 1894 01:26:18,660 --> 01:26:20,390 >> BRIAN Scassellati: Kontrol-C. OK. 1895 01:26:20,390 --> 01:26:22,960 Så jeg vil bruge Ctrl-C. C Det vil stoppe det. 1896 01:26:22,960 --> 01:26:25,330 Jeg vil rydde igen. 1897 01:26:25,330 --> 01:26:31,210 Og nu jeg har tænkt mig at påberåbe sig program, udføre programmet, 1898 01:26:31,210 --> 01:26:33,740 ved hjælp af sig selv som input. 1899 01:26:33,740 --> 01:26:36,760 1900 01:26:36,760 --> 01:26:42,700 >> Og vi vil se væsken dynamik simulering af det smelter. 1901 01:26:42,700 --> 01:26:43,830 OK. 1902 01:26:43,830 --> 01:26:48,180 Vær venlig ikke at lade dette program være den ting, der forvirrer dig. 1903 01:26:48,180 --> 01:26:52,220 Det er bare så vi kan slutte på noget cool og interessant. 1904 01:26:52,220 --> 01:26:53,930 OK. 1905 01:26:53,930 --> 01:26:56,330 >> Held og lykke med dit problem sæt. 1906 01:26:56,330 --> 01:26:59,030 Vi vil være glade for at besvare spørgsmål efter klasse. 1907 01:26:59,030 --> 01:27:01,180 Tak meget, gutter. 1908 01:27:01,180 --> 01:27:02,793