1 00:00:00,000 --> 00:00:03,290 >> [Speel van musiek] 2 00:00:03,290 --> 00:00:04,989 3 00:00:04,989 --> 00:00:06,280 JASON Hirsch: OK, almal. 4 00:00:06,280 --> 00:00:07,460 Welkom by Afdeling. 5 00:00:07,460 --> 00:00:10,840 Dit is CS50, ons heel eerste super afdeling. 6 00:00:10,840 --> 00:00:13,700 Soos julle almal weet, volgende week gereelde artikels sal begin, 7 00:00:13,700 --> 00:00:15,580 maar hierdie week is ons almal saam. 8 00:00:15,580 --> 00:00:17,730 >> Daar is myself. 9 00:00:17,730 --> 00:00:18,840 My naam is Jason. 10 00:00:18,840 --> 00:00:20,630 Ek is 'n dosent in Rekenaarwetenskap. 11 00:00:20,630 --> 00:00:23,910 Ons het Andi, wie is die hoof van die TA CS50. 12 00:00:23,910 --> 00:00:27,630 En Scaz, Professor Brian Scassellati, hy is 'n professor in Rekenaarwetenskap. 13 00:00:27,630 --> 00:00:30,970 >> Ons is die CS50 koppe aan die Yale. 14 00:00:30,970 --> 00:00:34,992 Jy kan altyd e-pos ons heads@cs50.yale.edu. 15 00:00:34,992 --> 00:00:35,950 Ons sal tydens lesings. 16 00:00:35,950 --> 00:00:37,547 Ons sal by kantoorure. 17 00:00:37,547 --> 00:00:40,130 As daar ooit iets wat ons kan vir jou doen, enigiets wat jy nodig het, 18 00:00:40,130 --> 00:00:42,610 voel vry om uit te reik na ons. 19 00:00:42,610 --> 00:00:44,140 >> So, wat gaan ons vandag doen? 20 00:00:44,140 --> 00:00:47,790 Voor of dan, wat is kom hierdie week? 21 00:00:47,790 --> 00:00:52,620 So kantoorure is Maandag, Dinsdag, Woensdag, Donderdag en, 8:00 tot 11:00. 22 00:00:52,620 --> 00:00:54,770 Daar is 'n skedule op die webwerf. 23 00:00:54,770 --> 00:00:57,830 >> Afdelings, soos ek genoem het, begin volgende week. 24 00:00:57,830 --> 00:01:01,390 En jy sal hierdie week uit te vind wat tyd om jou artikel is, watter dag dit is, 25 00:01:01,390 --> 00:01:03,350 en wie jou TA is. 26 00:01:03,350 --> 00:01:08,610 >> Probleem Stel 1 is te danke aan Donderdag by middag, Vrydag middag met 'n laat dag. 27 00:01:08,610 --> 00:01:10,817 Ja, jy het nege laat dae. 28 00:01:10,817 --> 00:01:12,150 En daar is nege probleem stelle. 29 00:01:12,150 --> 00:01:14,320 En kan slegs gebruik maak van een laat die dag per probleem stel. 30 00:01:14,320 --> 00:01:17,930 Ja, in effek, al probleem stelle is as gevolg van Vrydag middag. 31 00:01:17,930 --> 00:01:18,550 Dit is al. 32 00:01:18,550 --> 00:01:20,400 Alle besonderhede is op die sillabus. 33 00:01:20,400 --> 00:01:22,360 >> Elke Vrydag het ons middagetes. 34 00:01:22,360 --> 00:01:25,230 Ons wil graag van hierdie groot te maak Natuurlik voel 'n bietjie kleiner. 35 00:01:25,230 --> 00:01:26,580 So jy is welkom om te RSVP. 36 00:01:26,580 --> 00:01:30,050 Gratis middagete met mede klasmaats en personeel. 37 00:01:30,050 --> 00:01:34,120 cs50.yale.edu/rsvp. 38 00:01:34,120 --> 00:01:36,940 >> Al hierdie dinge wat Ek het op die skerm, 39 00:01:36,940 --> 00:01:43,330 en meer, kan jy cs50.yale.edu of cs50.harvard.edu, as jy gaan na Harvard 40 00:01:43,330 --> 00:01:46,800 en kyk na hierdie aanlyn. 41 00:01:46,800 --> 00:01:50,240 >> Ook op die web, is daar is 'n ton van die hulpbronne vir jou. 42 00:01:50,240 --> 00:01:54,610 Elke lesing nie net die video van die lesing nie, maar ook daarop. 43 00:01:54,610 --> 00:01:58,184 Iemand sal die horlosie lesings en aantekeninge vir jou. 44 00:01:58,184 --> 00:02:00,100 So jy kan net betaal aandag tydens lesings, 45 00:02:00,100 --> 00:02:03,970 of jy kan hul notas te gebruik / ons aantekeninge om jou eie notas te vul. 46 00:02:03,970 --> 00:02:04,987 >> Daar is skyfies aanlyn. 47 00:02:04,987 --> 00:02:07,320 Die bron code-- alles David gaan oor in lesing 48 00:02:07,320 --> 00:02:09,979 of Scaz gaan oor lesing, wat bronkode is aanlyn beskikbaar 49 00:02:09,979 --> 00:02:11,750 sowel as soos ek, genoem videos. 50 00:02:11,750 --> 00:02:14,257 >> Afdelings, net so sal die hele verfilm. 51 00:02:14,257 --> 00:02:15,840 Al daardie skyfies sal beskikbaar wees. 52 00:02:15,840 --> 00:02:18,190 Al wat sal kode beskikbaar wees vir jou. 53 00:02:18,190 --> 00:02:22,440 Daar is kortbroek op die webwerf waar CS50 personeellede bestee vyf tot 10 54 00:02:22,440 --> 00:02:24,130 minute gaan deur onderwerpe vir jou. 55 00:02:24,130 --> 00:02:26,750 Sommige van die mense wat jy reeds het teëgekom in die probleem stelle. 56 00:02:26,750 --> 00:02:30,430 >> Kantoorure, soos ek genoem het, Maandae deur Donderdae, 8:00 tot 11:00. 57 00:02:30,430 --> 00:02:32,600 CS50 Studie is 'n fantastiese hulpbron. 58 00:02:32,600 --> 00:02:37,100 Daar is die praktyk probleme, monster skyfies, bekende foute 59 00:02:37,100 --> 00:02:40,920 dat studente wil om te loop in, vir elke wese onderwerp ons 60 00:02:40,920 --> 00:02:42,650 sal dek in hierdie kursus. 61 00:02:42,650 --> 00:02:46,350 >> En uiteindelik, op hierdie skyfie ten minste, Reference50 62 00:02:46,350 --> 00:02:49,690 wat jy inligting gee op al die funksies C 63 00:02:49,690 --> 00:02:53,160 jy kan ooit moontlik hoop om te gebruik en baie, baie meer. 64 00:02:53,160 --> 00:02:55,690 >> Weereens, dit dot dot dot by die onderkant van die skerm 65 00:02:55,690 --> 00:02:59,990 is om aan te dui dat daar is selfs meer hulpbronne op die twee webwerwe: 66 00:02:59,990 --> 00:03:04,270 cs50.yale.edu, cs50.harvard.edu. 67 00:03:04,270 --> 00:03:05,840 >> So, wat is ons vandag? 68 00:03:05,840 --> 00:03:08,970 Wel, die eerste Ek gaan om te gee jy kyk na die hulpbronne. 69 00:03:08,970 --> 00:03:10,010 Het reeds dat een. 70 00:03:10,010 --> 00:03:11,590 Kyk na ons. 71 00:03:11,590 --> 00:03:16,430 >> Nou, ons gaan om te gaan oor tipes en operateurs data in C. 72 00:03:16,430 --> 00:03:19,990 Dan sal Andi hier kom gaan oor biblioteke in C, printf (), 73 00:03:19,990 --> 00:03:24,570 'n funksie waarmee jy reeds bekende of sal vinnig baie geword 74 00:03:24,570 --> 00:03:25,530 vertroud. 75 00:03:25,530 --> 00:03:27,810 En jy sal ook gaan oor conditionals en loops. 76 00:03:27,810 --> 00:03:30,900 >> En dan uiteindelik, Scaz gaan oor die CS50 ID. 77 00:03:30,900 --> 00:03:34,250 As jy nog nie duif in reeds in Probleem Stel 1, 78 00:03:34,250 --> 00:03:37,060 asook hoe om die gebruik terminale en nuttige opdragte 79 00:03:37,060 --> 00:03:42,280 en gee dan jou 'n paar demos en praktyk kodering in die CS50 ID. 80 00:03:42,280 --> 00:03:45,130 >> Voordat ek spring in om hierdie inhoud aan hierdie kant, 81 00:03:45,130 --> 00:03:46,770 Het enige iemand enige vrae so ver? 82 00:03:46,770 --> 00:03:53,190 83 00:03:53,190 --> 00:03:54,030 Groot. 84 00:03:54,030 --> 00:03:54,950 OK. 85 00:03:54,950 --> 00:03:55,810 Ratte verander. 86 00:03:55,810 --> 00:03:58,760 >> [Ratte verander] 87 00:03:58,760 --> 00:04:03,070 >> Dit was vir my die verskuiwing ratte in 'n handleiding motor. 88 00:04:03,070 --> 00:04:10,920 So tipes data in C, kan jy nie net 'n veranderlike x en dit op die lyn 10, 89 00:04:10,920 --> 00:04:17,170 'n heelgetal, miskien is die nommer 1, op die lyn 20, 'n desimale getal 10,5, 90 00:04:17,170 --> 00:04:20,500 en dan 'n paar lyne later 'n string, ek hou van CS50. 91 00:04:20,500 --> 00:04:25,052 >> In C kan veranderlikes slegs een ding, en net een ding. 92 00:04:25,052 --> 00:04:26,510 En so het jy dit tipes te gee. 93 00:04:26,510 --> 00:04:28,780 En op hierdie bord, ons het 'n lys van tipes. 94 00:04:28,780 --> 00:04:32,000 Daar is karakters, wat staan ​​vir karakters. 95 00:04:32,000 --> 00:04:36,850 So dit is een letter A, B, C, D. Dit word ook 'n ruimte kan wees, 96 00:04:36,850 --> 00:04:40,290 of dat kan ook 'n nuwe lyn karakter. 97 00:04:40,290 --> 00:04:45,030 >> Daar is heelgetalle, wat net is getalle, telgetalle numbers-- of heelgetalle 98 00:04:45,030 --> 00:04:47,130 rather-- maar geen desimale. 99 00:04:47,130 --> 00:04:49,790 >> Vir desimale, ons het drywende punt getalle. 100 00:04:49,790 --> 00:04:53,200 Drywende punt getalle is getalle met desimale. 101 00:04:53,200 --> 00:04:58,160 >> Dan is daar verlang, wat wese meer heelgetalle. 102 00:04:58,160 --> 00:05:01,160 Jy sal sien dat 'n lang 8, terwyl 'n int is 4. 103 00:05:01,160 --> 00:05:02,640 Ek sal om wat jy in 'n tweede. 104 00:05:02,640 --> 00:05:07,390 Dit is omdat verlang kan selfs slaan meer heelgetalle as 'n int kan stoor. 105 00:05:07,390 --> 00:05:10,100 Double is 'n lang float. 106 00:05:10,100 --> 00:05:12,460 >> En ten slotte, ons het string, wat is 'n tipe 107 00:05:12,460 --> 00:05:14,430 dat jy waarskynlik voor gebruik. 108 00:05:14,430 --> 00:05:21,100 As jy sluit hashtag # includeCS50.h in jou bron lêer, 109 00:05:21,100 --> 00:05:23,170 dan kan jy 'n tipe string gebruik. 110 00:05:23,170 --> 00:05:25,560 Dit is nie eintlik gebou in C. 111 00:05:25,560 --> 00:05:27,760 >> Daar is 'n paar ander vorme as well. 112 00:05:27,760 --> 00:05:32,900 Maar dit is die skoolhoof kinders met wat jy sal gebruik en teëkom. 113 00:05:32,900 --> 00:05:36,210 C as weer genoem I, elke variable-- dit 114 00:05:36,210 --> 00:05:38,620 kan slegs een soort en slegs een tipe. 115 00:05:38,620 --> 00:05:42,890 Dit is omdat C is 'n staties getikte taal, in teenstelling 116 00:05:42,890 --> 00:05:45,780 dinamies getik tale waar as jy 'n veranderlike te skep 117 00:05:45,780 --> 00:05:50,081 jy kan verander wat gestoor word in dit as jy gaan in jou program. 118 00:05:50,081 --> 00:05:52,580 Hier aan die regterhand kant, ek het die verskillende groottes 119 00:05:52,580 --> 00:05:57,440 van hierdie tipes data in grepe. 120 00:05:57,440 --> 00:05:59,710 So 'n karakter is 1 byte. 121 00:05:59,710 --> 00:06:01,250 Dit is 8 stukkies. 122 00:06:01,250 --> 00:06:05,530 En dit beteken dat omdat 8 stukkies daar is agt 0e en 1e. 123 00:06:05,530 --> 00:06:08,280 Ons het die demos in die eerste week met daardie binêre bolle. 124 00:06:08,280 --> 00:06:15,680 >> Met 8 stukkies of 1 byte, kan ons getalle 0-255. 125 00:06:15,680 --> 00:06:16,180 Reg. 126 00:06:16,180 --> 00:06:18,770 As al 8 stukkies is 0 dis 0. 127 00:06:18,770 --> 00:06:23,640 As die eerste bietjie is 1, dit is die aantal een, en so aan, al die pad tot 255. 128 00:06:23,640 --> 00:06:28,290 En dit is hoekom vir karakters wat jy kan het hoofsaaklik tot 255 van hulle, 129 00:06:28,290 --> 00:06:31,210 maar dit is genoeg om al dek die karakters wat ons nodig het om te gebruik. 130 00:06:31,210 --> 00:06:38,060 >> Vir heelgetalle kan jy 0 en dan moet jy 2 van die 32 minus 1. 131 00:06:38,060 --> 00:06:40,340 Dit is hoe baie opsies jy het vir heelgetalle. 132 00:06:40,340 --> 00:06:44,780 >> Vir 'n lang, jy het 0 2 tot die 64 minus 1. 133 00:06:44,780 --> 00:06:48,860 So jy het baie, baie, meer opsies vir verlang. 134 00:06:48,860 --> 00:06:54,220 >> Strings, dit is 'n vraagteken want dit is 'n fotonische lewe vir later. 135 00:06:54,220 --> 00:06:55,000 Ja. 136 00:06:55,000 --> 00:06:56,350 Ek kon vertel almal is op die rand van hul sitplek, 137 00:06:56,350 --> 00:06:57,450 soos wat is dit vraagteken? 138 00:06:57,450 --> 00:06:58,390 Dit is 'n fotonische lewe. 139 00:06:58,390 --> 00:07:02,340 Ons sal uiteindelik die grootte van snare en praat meer oor snare. 140 00:07:02,340 --> 00:07:04,692 Omdat string is eintlik een van die opleiding wiele 141 00:07:04,692 --> 00:07:06,400 ons sit op in hierdie Natuurlik aan die begin 142 00:07:06,400 --> 00:07:09,700 en dan neem af later op, want snare in C 143 00:07:09,700 --> 00:07:13,320 is eintlik wenke karakter skikkings. 144 00:07:13,320 --> 00:07:15,810 Maar weereens, dit is 'n fotonische lewe vir later. 145 00:07:15,810 --> 00:07:18,890 Voordat ek beweeg op enige vrae het, kommentaar, knelpunte oor hierdie slide? 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 Ek moet 'n fantastiese explainer wees. 149 00:07:30,330 --> 00:07:33,210 Ook wanneer jy programmering, jy gaan hierdie operateurs gebruik. 150 00:07:33,210 --> 00:07:36,730 Baie eenvoudige tekens dat eenvoudige kan doen bedrywighede, waarmee jy waarskynlik 151 00:07:36,730 --> 00:07:38,340 reeds baie bekend. 152 00:07:38,340 --> 00:07:42,580 >> Byvoorbeeld, op die regte kant, sien ons by te voeg. 153 00:07:42,580 --> 00:07:44,640 Om by te voeg, moet jy net nie 'n plus-teken. 154 00:07:44,640 --> 00:07:46,850 En so jy mag hê twee veranderlikes x en y. 155 00:07:46,850 --> 00:07:48,810 Jy kan x + y doen in jou kode. 156 00:07:48,810 --> 00:07:52,790 Miskien wil jy aan- jy sê die nommer 7 en 3, 157 00:07:52,790 --> 00:07:55,780 jy wil om te slaan wat in 'n bedrag veranderlike genoem. 158 00:07:55,780 --> 00:08:03,010 Jy kan int te doen vir die tipe, ruimte som, die naam van die veranderlike, = 7 + 3; 159 00:08:03,010 --> 00:08:05,780 >> Wat sou dit in die winkel som? 160 00:08:05,780 --> 00:08:07,190 Iemand? 161 00:08:07,190 --> 00:08:09,270 As ek moes in som = 7 + 3. 162 00:08:09,270 --> 00:08:10,437 Wat sou word gestoor in som? 163 00:08:10,437 --> 00:08:11,520 Jy kan net skree dit uit. 164 00:08:11,520 --> 00:08:12,120 GEHOOR: 10. 165 00:08:12,120 --> 00:08:12,995 >> JASON Hirsch: 10! 166 00:08:12,995 --> 00:08:14,870 Dit is presies reg. 167 00:08:14,870 --> 00:08:19,520 Wat van in som = 7-3, Ek het net die gebruik dat Dash teken. 168 00:08:19,520 --> 00:08:20,871 Wat gaan gestoor word? 169 00:08:20,871 --> 00:08:21,370 GEHOOR: 4. 170 00:08:21,370 --> 00:08:22,203 JASON Hirsch: 4. 171 00:08:22,203 --> 00:08:25,770 Som is waarskynlik die verkeerde naam vir daardie veranderlike nie, maar 4 sal gestoor word. 172 00:08:25,770 --> 00:08:31,890 >> Vermeerder in C, gebruik die klein Star karakter, het jy nie 'n x gebruik. 173 00:08:31,890 --> 00:08:35,990 Te verdeel, gebruik 'n Vorentoe Sny nie die verdeling simbool. 174 00:08:35,990 --> 00:08:39,580 En modulo, gebruik die Persent simbool. 175 00:08:39,580 --> 00:08:47,900 >> So kom ons sê ek wil sien int z = 7% 3, wat sou word gestoor in z? 176 00:08:47,900 --> 00:08:51,250 So, wat is in wese vra wat beteken modulo doen? 177 00:08:51,250 --> 00:08:52,750 Het enige iemand weet wat modulo doen? 178 00:08:52,750 --> 00:08:53,940 Ja. 179 00:08:53,940 --> 00:08:54,870 y 4. 180 00:08:54,870 --> 00:08:56,120 Spreker 1: Dit is die res. 181 00:08:56,120 --> 00:08:58,369 JASON Hirsch: Dit is die restant wanneer jy verdeel. 182 00:08:58,369 --> 00:09:02,790 So 7 gedeel deur 3 is 2 restant 1. 183 00:09:02,790 --> 00:09:04,690 So 1 sal gestoor word. 184 00:09:04,690 --> 00:09:06,970 >> Jy het aftrek, maar dit is hoe dit werk. 185 00:09:06,970 --> 00:09:09,140 Dit is wat die modulo operateur doen. 186 00:09:09,140 --> 00:09:12,360 Dit neem 'n aantal verdeel dit deur 'n ander nommer en keer terug na jou 187 00:09:12,360 --> 00:09:14,590 die res. 188 00:09:14,590 --> 00:09:19,770 So weer, 7% 3 gee jou 1, want Gedeel deur 3 is 2 restant 1 7, 189 00:09:19,770 --> 00:09:21,650 en gee die res. 190 00:09:21,650 --> 00:09:24,470 >> Wat van laat teruggaan up een stap na daardie afdeling teken. 191 00:09:24,470 --> 00:09:29,194 As ek het 7 / gedeel deur 3 doen niemand weet wat dit sou terugkeer? 192 00:09:29,194 --> 00:09:30,090 >> Spreker 2: 2. 193 00:09:30,090 --> 00:09:32,240 >> JASON Hirsch: Hoekom 2 en nie 2,333? 194 00:09:32,240 --> 00:09:34,560 >> Spreker 2: Ek dink dit sny af na die hele nommer. 195 00:09:34,560 --> 00:09:36,310 JASON Hirsch: So Dit is presies reg. 196 00:09:36,310 --> 00:09:39,880 In C, as jy n afdeling van doen twee heelgetalle 7 gedeel deur 3, 197 00:09:39,880 --> 00:09:43,430 dit is die antwoord kry wat in hierdie geval 2,3333 vir ewig 198 00:09:43,430 --> 00:09:47,080 en dit bevind dat desimale punt en kap alles af na die desimale 199 00:09:47,080 --> 00:09:49,240 en dit net gaan terug 2. 200 00:09:49,240 --> 00:09:51,120 >> So as ek gedoen het 8 gedeel deur 3. 201 00:09:51,120 --> 00:09:54,010 Wat eintlik, weet ons dat om terug te keer 2,666, 202 00:09:54,010 --> 00:09:57,050 maar dit kap alles af by die desimale, truncates dit alles, 203 00:09:57,050 --> 00:09:58,640 en net terug na jou 2. 204 00:09:58,640 --> 00:10:02,090 So 6 gedeel deur 3, 7 verdeel met 3, 8, gedeel deur 3, 205 00:10:02,090 --> 00:10:04,840 gaan almal na julle terugkeer 2. 206 00:10:04,840 --> 00:10:08,770 >> Het enige iemand weet, of 'n raaiskoot, hoe ek eintlik kon kry 207 00:10:08,770 --> 00:10:10,790 die volledige antwoord as ek wil hê dat die desimale? 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 Gaan voort. 211 00:10:14,152 --> 00:10:15,110 SPREKER 3: Gebruik 'n float? 212 00:10:15,110 --> 00:10:16,942 JASON Hirsch: Wat bedoel jy? 213 00:10:16,942 --> 00:10:19,786 SPREKER 3: Omdat jy die float is vir getalle [onhoorbaar] 214 00:10:19,786 --> 00:10:22,900 215 00:10:22,900 --> 00:10:23,900 JASON Hirsch: Right. 216 00:10:23,900 --> 00:10:26,100 So, dit is presies reg. 217 00:10:26,100 --> 00:10:28,440 7 'n heelgetal is. 218 00:10:28,440 --> 00:10:31,690 Maar as ek wou om te draai dat in 'n swaai punt nommer, 219 00:10:31,690 --> 00:10:34,674 Ek wil hê om op te slaan wat as 7,0 omdat die rekenaar 220 00:10:34,674 --> 00:10:37,090 regtig stupid-- ons dat gesien met die PB en J example-- 221 00:10:37,090 --> 00:10:38,930 dit sal net presies te doen wat jy vertel dit. 222 00:10:38,930 --> 00:10:40,846 >> So as jy skryf 7, is dit dink dit is 'n heelgetal. 223 00:10:40,846 --> 00:10:43,640 As jy skryf 7,0, selfs al het ons weet die dinge ekwivalent is, 224 00:10:43,640 --> 00:10:45,550 dit behandel wat soos 'n drywende punt nommer. 225 00:10:45,550 --> 00:10:50,441 So as jy het 7,0 verdeel met 3, of gedeel deur 3,0, 226 00:10:50,441 --> 00:10:52,440 dit sou sê, OK, nou ons te doen het met die dryf. 227 00:10:52,440 --> 00:10:57,514 Ek sal vir ewig na julle terugkeer 2,333333. 228 00:10:57,514 --> 00:10:59,930 Maar nie regtig vir ewig, want soos ons het ook in lesing 229 00:10:59,930 --> 00:11:03,350 hierdie drywende punt getalle is nie presies akkuraat. 230 00:11:03,350 --> 00:11:05,940 >> So as jy wil daai desimale, of 'n deel van daardie desimale, 231 00:11:05,940 --> 00:11:08,090 dan moet jy een van hulle use-- het om 'n drywende punt nommer wees 232 00:11:08,090 --> 00:11:11,048 en die rekenaar het om te verstaan dat dit 'n drywende punt jy 233 00:11:11,048 --> 00:11:13,350 hantering, nie 'n heelgetal. 234 00:11:13,350 --> 00:11:16,760 Enige vrae oor daardie tabel op die regterhand, so ver? 235 00:11:16,760 --> 00:11:22,650 Of jou linkerkant, jou links, jou linkerkant. 236 00:11:22,650 --> 00:11:23,264 Ja. 237 00:11:23,264 --> 00:11:23,972 SPREKER 4: Right. 238 00:11:23,972 --> 00:11:26,216 Vir net soos 'n gereelde heelgetalle, sou jy 239 00:11:26,216 --> 00:11:30,230 write-- sou jy skryf dryf? 240 00:11:30,230 --> 00:11:31,920 >> JASON Hirsch: Ja so. 241 00:11:31,920 --> 00:11:34,400 Wel, as jy wil skep 'n veranderlike wat 'n vlot, 242 00:11:34,400 --> 00:11:37,020 wat jy nodig het om te dryf sê z gelyk iets. 243 00:11:37,020 --> 00:11:37,640 >> SPREKER 4: OK. 244 00:11:37,640 --> 00:11:41,950 >> JASON Hirsch: Maar as ek wou doen 7 gedeel deur 3 en kry wat desimale, 245 00:11:41,950 --> 00:11:48,540 Ek sou float z = 7,0 / 3,0 deur te doen; en wat my die swaai punt sou gee 246 00:11:48,540 --> 00:11:49,273 nommer. 247 00:11:49,273 --> 00:11:50,000 >> SPREKER 4: OK. 248 00:11:50,000 --> 00:11:56,370 >> JASON Hirsch: As ek iets soos int z = 7 / met 3, 249 00:11:56,370 --> 00:12:00,856 wat my 'n heelgetal gee, want dit is al heelgetalle. 250 00:12:00,856 --> 00:12:01,730 Maak wat sin maak? 251 00:12:01,730 --> 00:12:02,320 >> SPREKER 4: Ja. 252 00:12:02,320 --> 00:12:02,950 >> JASON Hirsch: OK. 253 00:12:02,950 --> 00:12:03,450 Groot. 254 00:12:03,450 --> 00:12:06,030 Enige ander vrae oor die tafel? 255 00:12:06,030 --> 00:12:07,220 Regtig? 256 00:12:07,220 --> 00:12:08,380 Ek's so opgewonde. 257 00:12:08,380 --> 00:12:09,120 OK. 258 00:12:09,120 --> 00:12:13,910 >> So 'n paar ander dinge wat jy sal gebruik, dikwels in omstandighede of loops, 259 00:12:13,910 --> 00:12:17,580 is hierdie tipe van operators-- hierdie tipe van Boolse uitdrukkings. 260 00:12:17,580 --> 00:12:23,140 En soos ons geleer het, is wat jy == gebruik om te kyk of twee dinge gelyk. 261 00:12:23,140 --> 00:12:28,170 >> So hier Ek check as x == y, laat weer aanneem dat x is 7 en y is 3. 262 00:12:28,170 --> 00:12:33,220 So as ek geskryf het 7 == 3, wat sou dit terug na my toe? 263 00:12:33,220 --> 00:12:34,220 Is dit waar of vals? 264 00:12:34,220 --> 00:12:35,275 >> GEHOOR: Vals. 265 00:12:35,275 --> 00:12:36,150 JASON Hirsch: OK. 266 00:12:36,150 --> 00:12:37,370 Ek voel soos almal kan hierdie een te kry. 267 00:12:37,370 --> 00:12:39,054 Sodat almal, wat sal dit terugkeer? 268 00:12:39,054 --> 00:12:39,720 GEHOOR: Vals. 269 00:12:39,720 --> 00:12:40,130 JASON Hirsch: Vals. 270 00:12:40,130 --> 00:12:40,850 Groot. 271 00:12:40,850 --> 00:12:41,930 7 nie gelyk 3. 272 00:12:41,930 --> 00:12:44,530 So 7 == 3 sal valse terugkeer. 273 00:12:44,530 --> 00:12:50,746 Jy hoef nie 'n gelyke teken, so as ek nagegaan 7! = 3, wat sal dit terugkeer? 274 00:12:50,746 --> 00:12:51,370 GEHOOR: Waar. 275 00:12:51,370 --> 00:12:52,650 JASON Hirsch: Waar. 276 00:12:52,650 --> 00:12:53,200 Uitstekend. 277 00:12:53,200 --> 00:12:55,990 Iemand was baie oortuigende in die rug en waardeer dit. 278 00:12:55,990 --> 00:12:59,070 Dan minder as operateur het julle minder as of gelyk aan operateur, 279 00:12:59,070 --> 00:13:01,990 groter as operateur, groter as of gelyk aan operateur. 280 00:13:01,990 --> 00:13:03,490 >> So 'n meer gesonde verstand tjek. 281 00:13:03,490 --> 00:13:05,660 As ek moes 7 groter as of gelyk aan 3. 282 00:13:05,660 --> 00:13:06,966 Wat sou dit terug? 283 00:13:06,966 --> 00:13:07,692 >> GEHOOR: Waar. 284 00:13:07,692 --> 00:13:08,650 JASON Hirsch: Waar. 285 00:13:08,650 --> 00:13:10,050 Ja. 286 00:13:10,050 --> 00:13:13,290 Dit agterkamer, agterkant van die kamer, fantasties. 287 00:13:13,290 --> 00:13:16,240 Jy kan hierdie kombineer uitdrukkings as jy wil, so goed, 288 00:13:16,240 --> 00:13:21,880 met 'n logiese en wat is && Of 'n logiese of wat || 289 00:13:21,880 --> 00:13:22,800 ||. 290 00:13:22,800 --> 00:13:25,785 En so nou kan jy twee toets dinge saam op Is dit snaaks? 291 00:13:25,785 --> 00:13:28,250 Hoekom is dit snaaks? 292 00:13:28,250 --> 00:13:35,200 >> So as ek wou, kan ek sê, is 7 groter as 3 en 2 is minder as 4? 293 00:13:35,200 --> 00:13:37,090 Wel, as 7 is groter as 3, dis waar. 294 00:13:37,090 --> 00:13:38,400 2 is minder as 4, dis waar. 295 00:13:38,400 --> 00:13:41,140 So hierdie hele ding sou waar terugkeer. 296 00:13:41,140 --> 00:13:45,130 >> As ek getoets 7 is groter as 3 and-- Ek is net pluk ewekansige getalle here-- 297 00:13:45,130 --> 00:13:47,340 4 is minder as 2, wel, dis onwaar. 298 00:13:47,340 --> 00:13:49,610 So waar en vals valse. 299 00:13:49,610 --> 00:13:54,520 En jy kan gaan en jy kombineer as baie toestande saam as jy wil. 300 00:13:54,520 --> 00:14:00,000 >> Het enige iemand enige vrae het, kommentaar, knelpunte so ver? 301 00:14:00,000 --> 00:14:03,862 En ek sien 'n paar van julle foto's neem van my in die skerm, wat ek waardeer. 302 00:14:03,862 --> 00:14:05,070 Hopelik is dit nie Snapchat. 303 00:14:05,070 --> 00:14:06,417 Hopelik is dit vir jou notas. 304 00:14:06,417 --> 00:14:08,500 Maar al hierdie gaan aanlyn beskikbaar wees. 305 00:14:08,500 --> 00:14:11,210 So jy hoef nie te foto's van te neem. 306 00:14:11,210 --> 00:14:15,150 Soos ek genoem het, is alles sal aanlyn beskikbaar wees vir jou. 307 00:14:15,150 --> 00:14:15,650 OK. 308 00:14:15,650 --> 00:14:17,980 Ek is op die punt om te kry buite drama, so doen niemand 309 00:14:17,980 --> 00:14:20,350 iets wil sê voordat dit gebeur? 310 00:14:20,350 --> 00:14:21,080 Vrae? 311 00:14:21,080 --> 00:14:21,680 >> [INTERPOSING VOICES] 312 00:14:21,680 --> 00:14:22,250 >> JASON Hirsch: Ag, stop. 313 00:14:22,250 --> 00:14:23,290 Julle is ook baie mooi. 314 00:14:23,290 --> 00:14:23,790 OK. 315 00:14:23,790 --> 00:14:26,520 Ek gaan merk uit. 316 00:14:26,520 --> 00:14:27,240 Kom ons gaan. 317 00:14:27,240 --> 00:14:29,570 >> ANDI Peng: Ons gaan om te doen 'n ongemaklike mic verandering nou. 318 00:14:29,570 --> 00:14:32,280 >> JASON Hirsch: Ek is gaan hierdie opstyg. 319 00:14:32,280 --> 00:14:33,946 ANDI Peng: waardeer die ondersteuning, ouens. 320 00:14:33,946 --> 00:14:42,250 321 00:14:42,250 --> 00:14:43,180 Kan jy my hoor? 322 00:14:43,180 --> 00:14:43,930 Is dit goed? 323 00:14:43,930 --> 00:14:44,760 Volmaak. 324 00:14:44,760 --> 00:14:45,630 Mooi. 325 00:14:45,630 --> 00:14:47,490 Laat my snoepie net dat in. 326 00:14:47,490 --> 00:14:49,100 OK. 327 00:14:49,100 --> 00:14:54,140 So, ek is op die punt om te doen soos 'n reuse inligting stort nou op julle. 328 00:14:54,140 --> 00:14:57,370 En geen bekommernisse hoegenaamd as jy nie volgende elke klein lyn van wat 329 00:14:57,370 --> 00:14:58,812 Ek is op die punt om jou te wys. 330 00:14:58,812 --> 00:15:00,770 As Jason gesê alles is heeltemal aanlyn. 331 00:15:00,770 --> 00:15:03,780 Net ons gaan om te probeer om in te voer almal om die konsepte wat 332 00:15:03,780 --> 00:15:05,270 in sommige van hierdie skyfies. 333 00:15:05,270 --> 00:15:06,582 Dus net volg saam. 334 00:15:06,582 --> 00:15:09,540 Geen bekommernisse as jy nie verstaan ​​nie alles; Maar, as op enige punt 335 00:15:09,540 --> 00:15:12,820 jy verlore voel, verhoog jou hand, sal ons stop, geen bekommernisse. 336 00:15:12,820 --> 00:15:15,060 Koel. 337 00:15:15,060 --> 00:15:19,270 >> So ek dink iets wat Dawid het reeds soort genoem in lesing 338 00:15:19,270 --> 00:15:23,240 en Jason het soort van verwys vandag is wat 'n biblioteek is. 339 00:15:23,240 --> 00:15:27,510 So in programmering, ons het hierdie dinge genoem biblioteke. 340 00:15:27,510 --> 00:15:29,690 Waar, in wese, alle hulle is net 'n stel 341 00:15:29,690 --> 00:15:32,610 van funksies, wat wese net-kode wat 342 00:15:32,610 --> 00:15:35,070 reeds geskryf deur iemand anders wat ons kan al 343 00:15:35,070 --> 00:15:36,410 gebruik in ons programme. 344 00:15:36,410 --> 00:15:38,790 >> So hoe werk 'n normale biblioteek werk, reg? 345 00:15:38,790 --> 00:15:40,030 Jy gaan die biblioteek deur. 346 00:15:40,030 --> 00:15:41,890 Jy het al hierdie boeke wat jy kan trek uit 347 00:15:41,890 --> 00:15:44,590 en jy kan toegang tot inligting binne daardie boeke. 348 00:15:44,590 --> 00:15:45,840 Dieselfde ding in programmering. 349 00:15:45,840 --> 00:15:48,820 >> Jy het 'n biblioteek wat reeds is geskryf deur ander mense. 350 00:15:48,820 --> 00:15:51,530 En die manier waarop jy kan, as programmeerder of 'n student, 351 00:15:51,530 --> 00:15:55,780 kan toegang tot daardie biblioteek te verkry is deur middel van hashtag # include. 352 00:15:55,780 --> 00:15:59,720 >> Byvoorbeeld, in C ons het drie C-- die mees 353 00:15:59,720 --> 00:16:03,420 algemeen gebruik drie C standaard libraries-- die toevoer / afvoer biblioteek, 354 00:16:03,420 --> 00:16:05,540 die string biblioteek, en die wiskunde biblioteek. 355 00:16:05,540 --> 00:16:07,610 >> So in jou eerste paartjie probleem stel, 356 00:16:07,610 --> 00:16:10,940 diegene sal die drie wees dat jy primêr jy gebruik. 357 00:16:10,940 --> 00:16:14,610 So as David reeds verduidelik in lesing 358 00:16:14,610 --> 00:16:17,460 die standaard I / O biblioteek, of die standaard toevoer / afvoer biblioteek 359 00:16:17,460 --> 00:16:18,620 doen presies dit. 360 00:16:18,620 --> 00:16:23,530 Dit laat jou in jou kode om insette enigiets van die gebruiker en afvoer wat 361 00:16:23,530 --> 00:16:25,960 na die skerm, in wese druk dit na die skerm. 362 00:16:25,960 --> 00:16:29,990 >> En so enige tyd wat jy enige funksies te gebruik, byvoorbeeld die funksie printf () wat 363 00:16:29,990 --> 00:16:33,319 ons gaan om te gaan oor die volgende skuif, maak seker dat die standaard insluit I / O 364 00:16:33,319 --> 00:16:36,360 biblioteek of anders wat jy gaan nie in staat wees om die printf () funksie te gebruik. 365 00:16:36,360 --> 00:16:39,110 Omdat jy, as die programmeerder nooit eintlik geskryf dat funksie, 366 00:16:39,110 --> 00:16:41,840 jy net die gebruik van iemand kode anders se binne jou eie kode. 367 00:16:41,840 --> 00:16:43,620 >> Maak dit sin almal? 368 00:16:43,620 --> 00:16:44,520 Koel. 369 00:16:44,520 --> 00:16:48,530 >> En dan het ons in wese te kry op die string.h biblioteek en die math.h 370 00:16:48,530 --> 00:16:52,970 biblioteek, .H net kenne biblioteek, ander biblioteke dat jy sal uiteindelik 371 00:16:52,970 --> 00:16:55,310 gebruik word om in die kode. 372 00:16:55,310 --> 00:16:57,620 >> Maar vir doeleindes van hierdie biblioteek, het ons ook 373 00:16:57,620 --> 00:17:01,170 have-- van hierdie class-- ons het ook wat genoem word die CS50 biblioteek, 374 00:17:01,170 --> 00:17:05,270 cs50.h, waar ons vir jou insae geskep 375 00:17:05,270 --> 00:17:07,369 baie belangrike en nuttige funksies. 376 00:17:07,369 --> 00:17:09,550 Sodat jy as 'n programmeerder kan rug af 377 00:17:09,550 --> 00:17:14,470 wat ons reeds sodat geskryf se beskikbare hierdie funksie aan u 378 00:17:14,470 --> 00:17:15,599 vir jou gebruik. 379 00:17:15,599 --> 00:17:18,359 >> Ek sal oor 'n paar van die die funksies wat algemeen gebruik word, 380 00:17:18,359 --> 00:17:20,839 maar weet dat dit is al googleable aanlyn. 381 00:17:20,839 --> 00:17:24,904 Voel vry, trek die CS50 biblioteek en dan moet jy al die funksies is daar. 382 00:17:24,904 --> 00:17:25,828 Ja. 383 00:17:25,828 --> 00:17:28,140 >> SPREKER 5: So as jy nie was die gebruik van die sagteware wat 384 00:17:28,140 --> 00:17:29,916 is deur aan ons verskaf die klas, doen dit 385 00:17:29,916 --> 00:17:32,698 bedoel ons wil hê om af te laai en uit te vind hierdie header lêer onsself en vertel 386 00:17:32,698 --> 00:17:33,840 die rekenaar waar dit is? 387 00:17:33,840 --> 00:17:34,320 >> ANDI Peng: Groot vraag. 388 00:17:34,320 --> 00:17:34,820 Presies. 389 00:17:34,820 --> 00:17:38,194 So dit is soos as jy nie fisies teenwoordig by 'n biblioteek, 390 00:17:38,194 --> 00:17:40,360 daar is geen manier vir jou om eintlik gaan en toegang tot dit. 391 00:17:40,360 --> 00:17:42,589 So het die dieselfde ding met programmering in C, jy 392 00:17:42,589 --> 00:17:45,880 het om seker te maak dat jy die gebruik van ons toestel omdat die biblioteek reeds 393 00:17:45,880 --> 00:17:47,270 opgeneem in dit. 394 00:17:47,270 --> 00:17:50,020 En dan wanneer jy hashtag include, die biblioteek se daar. 395 00:17:50,020 --> 00:17:50,520 Ja. 396 00:17:50,520 --> 00:17:51,920 Goeie vraag. 397 00:17:51,920 --> 00:17:53,461 Almal goeie? 398 00:17:53,461 --> 00:17:53,960 Koel. 399 00:17:53,960 --> 00:17:56,371 400 00:17:56,371 --> 00:17:56,870 Alles reg. 401 00:17:56,870 --> 00:17:59,330 So ons gaan om te tref, wese, wat 402 00:17:59,330 --> 00:18:01,620 die eerste funksie wat Ons as programmeerders is 403 00:18:01,620 --> 00:18:03,900 gaan word met behulp binne ons kode. 404 00:18:03,900 --> 00:18:05,690 Dit is die printf () funksie genoem. 405 00:18:05,690 --> 00:18:08,450 So, printf () funksie, soos ek reeds gesê in die laaste skuif, 406 00:18:08,450 --> 00:18:11,830 is ingesluit in die standaard I / O, standaard toevoer / afvoer, biblioteek. 407 00:18:11,830 --> 00:18:16,470 >> So maak seker dat alles wat jy using-- oh, laat my gryp die laser pointer-- 408 00:18:16,470 --> 00:18:18,660 wanneer jy gebruik die printf () funksie, 409 00:18:18,660 --> 00:18:21,790 jy het om die standaard te sluit I / O biblioteek of anders wanneer jy stel, 410 00:18:21,790 --> 00:18:23,760 jy gaan 'n fout omdat die rekenaar sal wees, 411 00:18:23,760 --> 00:18:26,140 Ag, ek weet nie waar printf () is, jy my nie vertel waar printf () 412 00:18:26,140 --> 00:18:26,830 is. 413 00:18:26,830 --> 00:18:30,150 Wel printf () is ingesluit in die standaard I / O, so wanneer jy printf gebruik (), 414 00:18:30,150 --> 00:18:32,960 maak seker dat daardie lyn bo jou kode. 415 00:18:32,960 --> 00:18:36,040 >> So byvoorbeeld, printf () hier is 'n funksie. 416 00:18:36,040 --> 00:18:40,260 Al wat dit doen is om druk uit iets binne-in die hakies aan die gebruiker. 417 00:18:40,260 --> 00:18:44,840 Sou enige iemand wil 'n steek te neem na wat hierdie lyn van die kode reg 418 00:18:44,840 --> 00:18:46,420 hier gaan om uit te druk? 419 00:18:46,420 --> 00:18:48,730 Dus, die antwoord is op die skerm. 420 00:18:48,730 --> 00:18:50,480 Iemand? 421 00:18:50,480 --> 00:18:51,380 >> VERDI: Die bodem. 422 00:18:51,380 --> 00:18:53,510 >> ANDI Peng: Verdi, hoekom nie jy gaan voort en sê die hele stelling? 423 00:18:53,510 --> 00:18:55,718 >> VERDI: Hallo, my naam is Andi, en ek is 20 jaar oud. 424 00:18:55,718 --> 00:18:57,270 ANDI Peng: Ag, mooi. 425 00:18:57,270 --> 00:19:00,240 So in hierdie lyn wat ons gaan druk, Hello, my naam is Andi, 426 00:19:00,240 --> 00:19:04,280 en ek is 20 jaar oud, wat is in werklikheid 'n ware verklaring. 427 00:19:04,280 --> 00:19:05,090 >> Sintaksis. 428 00:19:05,090 --> 00:19:08,830 So paar sintaktiese kwessies wat julle ouens wil seker maak jy weet. 429 00:19:08,830 --> 00:19:09,360 Aanhalingstekens. 430 00:19:09,360 --> 00:19:13,170 Dubbele aanhalingstekens vertel die rekenaar wat alles binne 431 00:19:13,170 --> 00:19:14,850 gaan gedruk word. 432 00:19:14,850 --> 00:19:16,620 >> Alles binne blikkie net presies hoe 433 00:19:16,620 --> 00:19:19,920 jy tik, behalwe vir algemeen aan die einde, 434 00:19:19,920 --> 00:19:23,610 ons gaan om te wil sluit 'n hash-- oh sorry-- 'n tikkie n. 435 00:19:23,610 --> 00:19:24,640 So 'n bietjie n. 436 00:19:24,640 --> 00:19:28,884 >> Is daar iemand wat wil 'n raaiskoot te neem na wat dit beteken om ons kode? 437 00:19:28,884 --> 00:19:29,465 Ja. 438 00:19:29,465 --> 00:19:30,840 SPREKER 6: sit dit op 'n nuwe reël. 439 00:19:30,840 --> 00:19:31,650 ANDI Peng: Presies. 440 00:19:31,650 --> 00:19:34,660 So al hierdie doen, is toelaat wat gebeur 441 00:19:34,660 --> 00:19:37,520 Na hierdie, na hierdie stelling, gedruk word om 'n nuwe lyn. 442 00:19:37,520 --> 00:19:40,030 Sodat wanneer jy skryf jou kode wat jy nie lukraak het dinge 443 00:19:40,030 --> 00:19:41,738 geryg op die einde dat jy nie wil hê nie. 444 00:19:41,738 --> 00:19:43,700 Dat alles kry netjies gedruk een lyn 445 00:19:43,700 --> 00:19:46,870 en dan begin ons op die volgende lyn. 446 00:19:46,870 --> 00:19:50,970 >> Is daar iemand wat onthou wat kommapunt doen wanneer ons kodering? 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 >> SPREKER 7: Verklaring. 450 00:19:55,740 --> 00:19:56,010 >> ANDI Peng: Jammer? 451 00:19:56,010 --> 00:19:57,100 >> SPREKER 7: Is dit die einde van die stelling? 452 00:19:57,100 --> 00:19:57,766 >> ANDI Peng: Ja. 453 00:19:57,766 --> 00:20:02,670 So in C, of ​​enige ontwikkeling taal, die kommapunt 454 00:20:02,670 --> 00:20:04,640 dui op die einde van 'n programmeertaal lyn. 455 00:20:04,640 --> 00:20:09,240 So byvoorbeeld, in Engels gebruik ons ​​tydperk om te sê, o dit is die einde 'n sin. 456 00:20:09,240 --> 00:20:12,857 In programmering, dieselfde ding, ons het 'n kommapunt aan die einde van 'n lyn te dui. 457 00:20:12,857 --> 00:20:14,690 Dikwels, wanneer jy begin om die program, 458 00:20:14,690 --> 00:20:17,150 jy sal jy besef vergeet om 'n kommapunt voeg 459 00:20:17,150 --> 00:20:19,400 en dan moet jy probeer om te hardloop jou kode en dit nie werk nie. 460 00:20:19,400 --> 00:20:21,520 En jy soos Ag, ek doen nie hoekom nie, dit moet werk. 461 00:20:21,520 --> 00:20:24,394 >> Kanse is jy waarskynlik vergeet 'n kommapunt of 'n bracket of iets 462 00:20:24,394 --> 00:20:25,020 iewers. 463 00:20:25,020 --> 00:20:27,740 So, dit is belangrik om te onthou. 464 00:20:27,740 --> 00:20:29,627 Koel. 465 00:20:29,627 --> 00:20:31,960 Alle reg, die opsteek van hande, hoe baie mense hier het ooit 466 00:20:31,960 --> 00:20:37,210 geneem AP Rekenaarwetenskap of geprogrammeer in Java voor, ooit? 467 00:20:37,210 --> 00:20:37,710 OK. 468 00:20:37,710 --> 00:20:38,210 Mooi. 469 00:20:38,210 --> 00:20:41,340 Dit sal nie van toepassing wees dan nie, maar in Java, jy 470 00:20:41,340 --> 00:20:44,960 het iets genoem System.out.println wat nie bestaan ​​nie in C. 471 00:20:44,960 --> 00:20:49,927 >> So in C, wanneer jy wil byvoeg in veranderlikes 472 00:20:49,927 --> 00:20:51,760 in enigiets wat jy wil om uit te druk, is daar 473 00:20:51,760 --> 00:20:54,620 'n spesifieke sintaksis ons gaan gebruik. 474 00:20:54,620 --> 00:20:56,520 Dit is bekend as die placeholding-- wese 475 00:20:56,520 --> 00:21:01,180 ons plekhouers voeg in plek van die getal of die veranderlike 476 00:21:01,180 --> 00:21:02,580 dat ons wil druk. 477 00:21:02,580 --> 00:21:07,430 >> So as julle kan sien het ons ingesluit 'n nuwe biblioteek kop lêer hier. 478 00:21:07,430 --> 00:21:09,130 Die CS50 biblioteek. 479 00:21:09,130 --> 00:21:13,160 En vervat in daardie CS50 biblioteek is 'n algemene funksie wat ons sal gebruik word om 480 00:21:13,160 --> 00:21:15,610 in ons kursus genaamd GetInt (). 481 00:21:15,610 --> 00:21:21,830 >> Het enige iemand wil 'n steek te neem op wat GetInt () kan moontlik doen. 482 00:21:21,830 --> 00:21:22,830 >> GEHOOR: [onhoorbaar] 483 00:21:22,830 --> 00:21:23,550 >> ANDI Peng: Jammer. 484 00:21:23,550 --> 00:21:24,370 Kan jy nie hoor nie. 485 00:21:24,370 --> 00:21:25,511 Maddie, niemand nie. 486 00:21:25,511 --> 00:21:27,260 Maddie: O, dit vra vir 'n heelgetal. 487 00:21:27,260 --> 00:21:28,051 ANDI Peng: Presies. 488 00:21:28,051 --> 00:21:30,670 So hierdie funksie, 'n ander funksie wat reeds 489 00:21:30,670 --> 00:21:33,690 is geskryf deur iemand anders dat ons kan roep nou. 490 00:21:33,690 --> 00:21:38,000 Al wat dit is, is gevra die u, die gebruiker, om insette wat jy wil as die kode 491 00:21:38,000 --> 00:21:41,850 loop en dit slaan whatever-- in hierdie geval is ons GetInt () - ing, 492 00:21:41,850 --> 00:21:44,060 so dit beteken dat ons verkryging van 'n heelgetal. 493 00:21:44,060 --> 00:21:46,150 >> En ons gaan om te slaan wat in 'n ander heelgetal 494 00:21:46,150 --> 00:21:48,900 dat ons net gemaak het genoem ouderdom. 495 00:21:48,900 --> 00:21:51,500 Dit maak sin om almal? 496 00:21:51,500 --> 00:21:52,190 Koel. 497 00:21:52,190 --> 00:21:56,400 >> So nou dat ons hierdie heelgetal gestoor het, wat ons het gevra van die gebruiker, 498 00:21:56,400 --> 00:22:00,010 in hierdie veranderlike, het ons geskep tipe int genoem ouderdom, 499 00:22:00,010 --> 00:22:03,720 kan ons voorlê en plek gaan dat ons in ons printf () funksie. 500 00:22:03,720 --> 00:22:08,970 So het die sintaksis gewoonlik printf () is dat waar in jou werklike fisiese 501 00:22:08,970 --> 00:22:14,410 lyn wat jy wil hê dat die heelgetal sluit, jy daardie simbool doen net daar, 502 00:22:14,410 --> 00:22:17,800 die persentasie simbool, met die tipe veranderlike wat jy wil. 503 00:22:17,800 --> 00:22:20,090 >> So in hierdie geval ouderdom is 'n heelgetal. 504 00:22:20,090 --> 00:22:25,030 So jy gaan sluit % i, want dit is 'n heelgetal. 505 00:22:25,030 --> 00:22:26,860 En dan na jou verklaring, jy gaan 506 00:22:26,860 --> 00:22:30,370 om komma en die doen Naam van die veranderlike. 507 00:22:30,370 --> 00:22:33,420 >> So hier gaan ons om te druk uit, Hello, my naam is Andi, 508 00:22:33,420 --> 00:22:35,730 en ek is leeg jaar oud. 509 00:22:35,730 --> 00:22:38,890 Hashta-- of, sorry--, ouderdom met alles wat ek insette. 510 00:22:38,890 --> 00:22:42,790 So as ek insette 20 vir my GetInt () hier, 511 00:22:42,790 --> 00:22:44,500 dit sou presies dieselfde ding druk. 512 00:22:44,500 --> 00:22:47,990 Maar, as ek wou om insette iets anders, soos miskien 40 of 45, 513 00:22:47,990 --> 00:22:50,800 dan sou jy sien dat weerspieël dienooreenkomstig in die kode. 514 00:22:50,800 --> 00:22:52,886 >> So, dit is 'n voorbeeld van iets wat 515 00:22:52,886 --> 00:22:55,260 dit druk uit en kyk na jy asof dit dieselfde ding, 516 00:22:55,260 --> 00:22:57,593 maar onder die kap van die rekenaar daar is eintlik 517 00:22:57,593 --> 00:22:59,560 baie verskillende dinge gebeur. 518 00:22:59,560 --> 00:23:00,060 Koel. 519 00:23:00,060 --> 00:23:02,760 520 00:23:02,760 --> 00:23:03,260 Alles reg. 521 00:23:03,260 --> 00:23:06,940 So wat as ons wil hê verskeie veranderlikes? 522 00:23:06,940 --> 00:23:08,290 Redelik maklik. 523 00:23:08,290 --> 00:23:09,150 Dieselfde ding. 524 00:23:09,150 --> 00:23:11,930 Ons het ook 'n nuwe funksie hier genoem GetString (), 525 00:23:11,930 --> 00:23:15,380 ook ingesluit in die CS50 biblioteek, dat al wat dit doen is gevra die gebruiker 526 00:23:15,380 --> 00:23:18,120 vir 'n string, wat net 'n stel van die karakters, 527 00:23:18,120 --> 00:23:19,810 so soos 'n sin of soos 'n naam. 528 00:23:19,810 --> 00:23:25,470 >> So in hierdie geval, sou ons twee het plekhouers% s vir string en% i 529 00:23:25,470 --> 00:23:26,750 vir heelgetal. 530 00:23:26,750 --> 00:23:29,190 En ons gaan om te volg wat deur die twee veranderlikes 531 00:23:29,190 --> 00:23:32,670 Ons wil ingesluit, in die volgorde dat dit in die sin. 532 00:23:32,670 --> 00:23:35,471 So byvoorbeeld, my naam is leeg, ek wil 'n naam daar 533 00:23:35,471 --> 00:23:36,970 so ek gaan eers die naam. 534 00:23:36,970 --> 00:23:39,637 En dan daarna, ek wil ouderdom, wil ouderdom tweede het. 535 00:23:39,637 --> 00:23:42,720 En so as ek wou om insette, Hello, my naam se Andi, en ek is 20 jaar oud. 536 00:23:42,720 --> 00:23:46,370 As ek ingevoer Andi en 20, die presies dieselfde ding sou druk; 537 00:23:46,370 --> 00:23:51,134 Maar nou het ons het twee gestoor veranderlikes naam, sowel as int. 538 00:23:51,134 --> 00:23:51,634 Ja. 539 00:23:51,634 --> 00:23:54,124 >> SPREKER 8: Sou dit in staat wees om te hardloop as jy oorgeskakel 540 00:23:54,124 --> 00:23:55,620 naam en ouderdom aan die einde van daardie? 541 00:23:55,620 --> 00:23:55,840 >> ANDI Peng: Ja. 542 00:23:55,840 --> 00:23:57,006 Dit is regtig 'n goeie vraag. 543 00:23:57,006 --> 00:23:59,520 So lang storie kort, no. 544 00:23:59,520 --> 00:24:03,070 Omdat naam en age-- wat tipe veranderlike naam? 545 00:24:03,070 --> 00:24:03,950 >> SPREKER 8: String. 546 00:24:03,950 --> 00:24:05,440 >> ANDI Peng: En wat tipe veranderlike ouderdom? 547 00:24:05,440 --> 00:24:06,231 >> SPREKER 8: Integer. 548 00:24:06,231 --> 00:24:10,290 ANDI Peng: So hier het ons 'n tydelike vir string en heelgetal, reg? 549 00:24:10,290 --> 00:24:13,350 So as jy op hierdie skakel, die rekenaar gaan nie om te weet. 550 00:24:13,350 --> 00:24:16,250 Dit gaan om te kyk vir 'n string, en as jy probeer om dit gee 'n int, 551 00:24:16,250 --> 00:24:18,083 dit gaan wees soos wag Ek is verward, jy 552 00:24:18,083 --> 00:24:21,100 het vir my gesê ek moet wees toewysing geheue vir 'n int. 553 00:24:21,100 --> 00:24:23,760 En reg hier, wanneer dit verwag 'n heelgetal 554 00:24:23,760 --> 00:24:25,640 en jy gee dit 'n naam en 'n string plaas, 555 00:24:25,640 --> 00:24:28,931 dit gaan ook baie verwarrend wees, is dit sal nie presies die manier waarop jy dit nodig het. 556 00:24:28,931 --> 00:24:35,280 So hier, benoeming en sintaksis is baie belangrik vir die bestuur van die kode. 557 00:24:35,280 --> 00:24:37,991 Almal goeie? 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: Hier, ek weet ons het gekyk voorbeelde in die klas, waar hulle vra 561 00:24:44,620 --> 00:24:46,950 Wat is jou ouderdom, wat is jou naam. 562 00:24:46,950 --> 00:24:50,250 Hier sal dit wees dit doesn't-- as ons hierdie kode hardloop, 563 00:24:50,250 --> 00:24:51,750 dit sou nie vra vir wat? 564 00:24:51,750 --> 00:24:54,740 Maar jy wil net insette twee getalle en dan sal dit loop soos wat? 565 00:24:54,740 --> 00:24:55,781 >> ANDI Peng: Ja, presies. 566 00:24:55,781 --> 00:24:58,250 So as jy wil om dit te vertoon, tik asseblief jou ouderdom, 567 00:24:58,250 --> 00:25:01,100 jy kan net voeg 'n printf () funksie wat sê: Gee jou ouderdom, 568 00:25:01,100 --> 00:25:01,600 bo dit. 569 00:25:01,600 --> 00:25:02,711 Dit is 'n goeie vraag. 570 00:25:02,711 --> 00:25:03,210 Ja. 571 00:25:03,210 --> 00:25:07,964 >> SPREKER 9: So, sou reeds ingesluit in GetInt () [onhoorbaar]. 572 00:25:07,964 --> 00:25:09,380 ANDI Peng: Nee, dit is eintlik nie. 573 00:25:09,380 --> 00:25:11,809 So al hierdie doen is net vra 'n leë skerm 574 00:25:11,809 --> 00:25:13,100 aan die gebruiker om insette iets. 575 00:25:13,100 --> 00:25:17,420 As jy dit wil hê, as jy dit wil hê om te druk iets wat die gebruiker vertel soos, 576 00:25:17,420 --> 00:25:21,110 gee asseblief vir my jou ouderdom, dan moet jy sou hê om printf () wat jouself. 577 00:25:21,110 --> 00:25:23,789 Want almal gebruik hierdie funksie vir verskillende dinge, 578 00:25:23,789 --> 00:25:26,080 jy kan stoor ouderdom, jy kan stoor adres, 579 00:25:26,080 --> 00:25:28,060 jy kan stoor telefoonnommers. 580 00:25:28,060 --> 00:25:31,190 En so is dit werklik aan individuele gebruik jou ouens se 581 00:25:31,190 --> 00:25:34,390 vir wat jy wil hê dit moet sê. 582 00:25:34,390 --> 00:25:34,890 Ja. 583 00:25:34,890 --> 00:25:38,236 >> SPREKER 10: So, net om te verduidelik, waar doen jy die invoer van die naam en die ouderdom 584 00:25:38,236 --> 00:25:43,020 sodat dit toon in die plek van% s? 585 00:25:43,020 --> 00:25:44,320 >> ANDI Peng: Soos in die gebruiker? 586 00:25:44,320 --> 00:25:47,165 >> SPREKER 10: Ja, soos hoe ek maak it-- Waar sit ek Andi, 587 00:25:47,165 --> 00:25:48,350 en waar Ek sit 20? 588 00:25:48,350 --> 00:25:48,640 >> ANDI Peng: Ja. 589 00:25:48,640 --> 00:25:50,250 So as jy was om te eintlik hierdie kode hardloop, 590 00:25:50,250 --> 00:25:52,875 Ek is nie eintlik die bestuur van die kode, dit is net hier nou. 591 00:25:52,875 --> 00:25:56,910 As ek die kode hardloop, sou ek stel die kode, maak die lêer, 592 00:25:56,910 --> 00:26:00,760 hardloop die kode, en dan sou daar net twee ruimtes vir my om insette nie. 593 00:26:00,760 --> 00:26:01,260 Ja. 594 00:26:01,260 --> 00:26:03,843 Julle sal sien wanneer jy speel rond met die kode jouself. 595 00:26:03,843 --> 00:26:05,760 596 00:26:05,760 --> 00:26:09,645 >> Alle regte ons gaan om te beweeg in die volgende afdeling van wat 597 00:26:09,645 --> 00:26:11,610 ons sal wees wat vandag. 598 00:26:11,610 --> 00:26:13,980 Ons gaan om te gaan oor wat voorwaardelike stellings. 599 00:26:13,980 --> 00:26:16,500 So as jy ouens onthou en onthou uit lesing 600 00:26:16,500 --> 00:26:19,210 voorwaardelike stellings, hulle is almal is 'n stel 601 00:26:19,210 --> 00:26:24,010 instruksies aan die rekenaar in wat as 'n sekere toestand is waar, 602 00:26:24,010 --> 00:26:27,470 jy die kode uit te voer binnekant van die toestand. 603 00:26:27,470 --> 00:26:30,101 >> So in wese Scratch-- die groot tema van vandag af 604 00:26:30,101 --> 00:26:32,850 is dat jy ouens het reeds al gesien die logika agter alles 605 00:26:32,850 --> 00:26:34,020 dat ons wat. 606 00:26:34,020 --> 00:26:36,190 En al wat ons doen, is iets vertaling 607 00:26:36,190 --> 00:26:39,090 dit was baie intuïtief in Nuuts af, en hard kodering dit 608 00:26:39,090 --> 00:26:41,950 in die sintaksis ons sal gebruik word om vir die klas wat is C. 609 00:26:41,950 --> 00:26:47,550 So logies, al hierdie blok was is dat die stuk van die kode reg daar. 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 >> Ons het ook anders kry in 'n as ... verklaring wat net 'n bykomende laag 613 00:26:55,290 --> 00:26:59,120 van kompleksiteit om die verklaring as waar die rekenaar neem 'n blik op hierdie 614 00:26:59,120 --> 00:27:04,260 en sien, as hierdie toestand is waar, doen net die binnekant van hierdie twee hakies, 615 00:27:04,260 --> 00:27:08,470 else-- so soort van soos die verstek indien dit nie voldoen aan die condition-- dit te doen. 616 00:27:08,470 --> 00:27:10,120 Dit is soos 'n vurk in die pad. 617 00:27:10,120 --> 00:27:14,400 As dit reën buite, ek op 'n reënbaadjie, anders enigiets 618 00:27:14,400 --> 00:27:16,330 anders wat ek nie op 'n reënbaadjie. 619 00:27:16,330 --> 00:27:18,400 >> Maak daardie logika sin maak om almal? 620 00:27:18,400 --> 00:27:21,031 Koel. 621 00:27:21,031 --> 00:27:21,530 Alles reg. 622 00:27:21,530 --> 00:27:24,970 Dus, net soos 'n harde voorbeeld van dit wat ons in C sou sien 623 00:27:24,970 --> 00:27:28,890 is as ek wou 'n te skep veranderlike genoem huiswerk uur. 624 00:27:28,890 --> 00:27:32,050 En as huiswerk uur minder as vyf, sê ek Life is groot. 625 00:27:32,050 --> 00:27:33,070 Dit is wonderlik. 626 00:27:33,070 --> 00:27:36,450 Maar, sê die stryd is real-- en dit is wat ons almal op hierdie Maandag 627 00:27:36,450 --> 00:27:39,337 middag up Science Hill is waarskynlik reg doen now-- 628 00:27:39,337 --> 00:27:40,170 GEHOOR: [ROOIBORSDUIFIE] 629 00:27:40,170 --> 00:27:42,510 ANDI Peng: Hulle manier waarop ons sou, dankie vir dit. 630 00:27:42,510 --> 00:27:46,180 Die manier waarop ons sou hardcode dit in C is if-- laat ons veronderstel 631 00:27:46,180 --> 00:27:49,920 Ons het reeds 'n veranderlike van tipe int genoem huiswerk uur hier. 632 00:27:49,920 --> 00:27:53,870 Indien huiswerk uur is minder as vyf printf (), Life is groot. 633 00:27:53,870 --> 00:27:57,330 Onthou hou / n gevolg jy wil 'n nuwe lyn na. 634 00:27:57,330 --> 00:27:59,660 Anders druk, Die stryd is real. 635 00:27:59,660 --> 00:28:03,720 >> Maak almal verstaan ​​hoe Ek transitioned van hierdie blok 636 00:28:03,720 --> 00:28:07,610 in hierdie blok van die kode? 637 00:28:07,610 --> 00:28:08,110 Koel. 638 00:28:08,110 --> 00:28:11,030 639 00:28:11,030 --> 00:28:11,840 Alles reg. 640 00:28:11,840 --> 00:28:15,930 >> So nou gaan ons 'n blik op te neem verskeie As state heeltemal. 641 00:28:15,930 --> 00:28:18,140 So laat ons veronderstel die doel van hierdie program 642 00:28:18,140 --> 00:28:20,870 was ons die gebruiker vir 'n graad gevra. 643 00:28:20,870 --> 00:28:24,450 Ons vinnige behulp GetInt () vir 'n graad, en hulle insette 'n waarde, 644 00:28:24,450 --> 00:28:27,700 en jy wil om te wys watter tipe graad hulle het. 645 00:28:27,700 --> 00:28:30,730 >> So as ek 'n program te ontwerp, het ek beteken tipies in almal van ons oë, 646 00:28:30,730 --> 00:28:35,490 90-100 is 'n A, 80-90 is 'n B, en so meer en so aan. 647 00:28:35,490 --> 00:28:39,040 Wat is verkeerd met hierdie stuk kode wat dit is nie 648 00:28:39,040 --> 00:28:41,393 doen wat ek wil om dit te doen nie. 649 00:28:41,393 --> 00:28:41,892 Ja. 650 00:28:41,892 --> 00:28:45,100 >> SPREKER 11: Hulle het 'n laer perke, maar hulle het nie die boonste perke. 651 00:28:45,100 --> 00:28:46,280 >> ANDI Peng: Presies. 652 00:28:46,280 --> 00:28:47,950 Het almal hoor wat sy sê? 653 00:28:47,950 --> 00:28:50,200 Daar gaan boonste wees perke, maar geen onderste grense. 654 00:28:50,200 --> 00:28:52,540 Jammer, andersom, onderste grense, geen boonste perke. 655 00:28:52,540 --> 00:28:55,090 So sal jy graag wil neem 'n steek op te sê 656 00:28:55,090 --> 00:28:58,945 wat op hierdie sou gedruk screen as ek hierdie kode te hardloop. 657 00:28:58,945 --> 00:28:59,820 SPREKER 11: 'n Fout? 658 00:28:59,820 --> 00:29:01,140 ANDI Peng: 'n Fout? 659 00:29:01,140 --> 00:29:02,740 Groot raaiskoot, nie heeltemal reg. 660 00:29:02,740 --> 00:29:05,465 Het enige iemand 'n ander steek? 661 00:29:05,465 --> 00:29:06,640 Ja, Aaron. 662 00:29:06,640 --> 00:29:10,099 >> AARON: As jy in iets groter as 90, 663 00:29:10,099 --> 00:29:11,640 dit sou al die grade wat jy het wys. 664 00:29:11,640 --> 00:29:13,640 Dit sou wys jy het 'n A, jy het 'n B, jy het 'n C. 665 00:29:13,640 --> 00:29:13,870 >> ANDI Peng: Ja. 666 00:29:13,870 --> 00:29:14,840 Dit is presies reg. 667 00:29:14,840 --> 00:29:17,820 So, sou dit wonderlik wees. 668 00:29:17,820 --> 00:29:21,781 Hulle is egter wedersyds eksklusiewe, dink ek. 669 00:29:21,781 --> 00:29:23,280 As ek hierdie stuk van die kode uit te voer. 670 00:29:23,280 --> 00:29:26,200 En dan laat ons net sê, ek ingevoer die graad 95. 671 00:29:26,200 --> 00:29:30,360 So 95 word nou gestoor in die Int genoem graad. 672 00:29:30,360 --> 00:29:33,610 >> En so C is 'n taal wat loop tot bo tot onder, 673 00:29:33,610 --> 00:29:36,000 so dit gaan altyd aanloop tot onder. 674 00:29:36,000 --> 00:29:39,420 So dit gaan om hier te kom, lees as graad is groter as of gelyk aan 90, 675 00:29:39,420 --> 00:29:42,850 printf () jy het 'n A. Groot, ek 'n 95, dit is groter as 90. 676 00:29:42,850 --> 00:29:44,866 Dit gaan druk, Ek het 'n A. Dit gaan 677 00:29:44,866 --> 00:29:48,850 om 'n blik op hierdie neem as, dit gaan sê, goed 95 is ook meer as 80, 678 00:29:48,850 --> 00:29:52,970 dit gaan druk jy het ook 'n Got 'n B uitroepteken, en so aan en so 679 00:29:52,970 --> 00:29:53,690 meer. 680 00:29:53,690 --> 00:29:55,890 >> So as ons almal kan sien, dit is 'n algemene fout 681 00:29:55,890 --> 00:30:00,760 wat mag voorkom wanneer ons kode skryf om uit te kyk vir. 682 00:30:00,760 --> 00:30:05,430 Enigiemand enige vrae oor waarom dit gebeur het? 683 00:30:05,430 --> 00:30:05,930 Groot. 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 >> So hoe kan ons dit regmaak, is natuurlik die logiese volgende vraag. 687 00:30:12,110 --> 00:30:16,290 Wel, ons het hierdie pragtige dinge genoem as anders as die ander 688 00:30:16,290 --> 00:30:18,010 As anders state. 689 00:30:18,010 --> 00:30:22,230 Sodat jy kan sien, as jy wou dat die probleem te verander, 690 00:30:22,230 --> 00:30:25,260 jy wou elk van die maak voorwaardes wedersyds eksklusiewe, 691 00:30:25,260 --> 00:30:26,860 sou jy 'n ander by te voeg ... as verklaring. 692 00:30:26,860 --> 00:30:30,068 >> En dit van course-- hulle dink as lere, of soos sporte op die ladder-- 693 00:30:30,068 --> 00:30:34,050 jy kan soveel voeg van hierdie as jy wil vir soveel voorwaardes as wat jy wil. 694 00:30:34,050 --> 00:30:36,790 So hier, as ek ingevoer graad te wees 95. 695 00:30:36,790 --> 00:30:39,479 As graad is groter as 95, printf (), het ek 'n A. Grote. 696 00:30:39,479 --> 00:30:42,020 Dit gaan 'n ander te sien ... as en dit gaan om te weet, O nee, 697 00:30:42,020 --> 00:30:43,750 Ek het reeds uitgevoer die eerste anders. 698 00:30:43,750 --> 00:30:47,020 Ek know-- of die eerste if-- Ek weet dat Ek hoef nie te kyk na enige van hierdie 699 00:30:47,020 --> 00:30:48,920 omdat een van hulle het reeds waar is. 700 00:30:48,920 --> 00:30:50,410 So dit gaan om te loop van top-down. 701 00:30:50,410 --> 00:30:53,650 Sodra die eerste een is waar, dan dit gaan slaan oor al die res 702 00:30:53,650 --> 00:30:54,675 van die anders ... ifs. 703 00:30:54,675 --> 00:30:55,550 Maak wat sin maak? 704 00:30:55,550 --> 00:30:57,841 So, op hierdie manier wat jy het verskillende vlakke van kontrole 705 00:30:57,841 --> 00:31:01,090 en so gou as een van hulle vals is, die res is ook, sal hulle nie eens te gaan. 706 00:31:01,090 --> 00:31:03,577 707 00:31:03,577 --> 00:31:04,076 Koel. 708 00:31:04,076 --> 00:31:07,680 709 00:31:07,680 --> 00:31:08,180 Alles reg. 710 00:31:08,180 --> 00:31:11,180 >> So, dit is 'n voorbeeld van 'n ander soort voorwaardelike verklaring 711 00:31:11,180 --> 00:31:15,250 sien ons minder dikwels, maar ons sal hulle sien en gebruik hulle. 712 00:31:15,250 --> 00:31:18,120 En hulle is dikwels meer doeltreffend vir sekere gevalle. 713 00:31:18,120 --> 00:31:20,020 So het ons wat genoem 'n skakelaar verklaring. 714 00:31:20,020 --> 00:31:25,140 So voordat ons gedek wat is 'n ander verklaring, 'n as ... anders verklaring. 715 00:31:25,140 --> 00:31:27,790 Hier het ons wat genoem skakelaar state. 716 00:31:27,790 --> 00:31:31,100 >> So wanneer gebruik ons ​​skakelaar state is die sleutel? 717 00:31:31,100 --> 00:31:34,090 So in 'n skakelaar verklaring, jy gewoonlik, tipies, eintlik jy 718 00:31:34,090 --> 00:31:38,010 kan net insette heelgetalle vir jou veranderlike wat jy nagaan is. 719 00:31:38,010 --> 00:31:42,390 So as ek wou om te kyk om te sien As 'n sekere number-- byvoorbeeld 720 00:31:42,390 --> 00:31:43,720 'n graad, as ek 'n 90. 721 00:31:43,720 --> 00:31:48,190 Ek wil dit om te sien of dit is 'n A, B of C. ek kon 'n geval hier nie. 722 00:31:48,190 --> 00:31:50,840 Maar die saak het na 'n ander konstant wees. 723 00:31:50,840 --> 00:31:53,170 >> So in hierdie sin, die skakelaar verklaring kan net 724 00:31:53,170 --> 00:31:55,290 gaan vir die gelykheid van twee getalle. 725 00:31:55,290 --> 00:31:57,242 Dit maak nie kyk vir iets anders. 726 00:31:57,242 --> 00:31:59,950 So dit is iets baie wees versigtig wanneer jy die gebruik van hierdie. 727 00:31:59,950 --> 00:32:04,810 So hier, as ek wou om te kyk om te sien As my graad 90 is gelyk aan 90 of 80 728 00:32:04,810 --> 00:32:08,500 of 70 of 60, en dan druk die ooreenstemmende graad, 729 00:32:08,500 --> 00:32:11,420 Ek sal in staat wees om te skryf wat in 'n skakelaar verklaring. 730 00:32:11,420 --> 00:32:15,120 >> So dit gaan om hier te kom, tjek hierdie heelgetal gelyk aan hierdie konstante? 731 00:32:15,120 --> 00:32:17,030 Indien nie, gaan dit oor te slaan. 732 00:32:17,030 --> 00:32:19,880 Is dit gelyk aan konstante twee, en so aan en so voort, 733 00:32:19,880 --> 00:32:22,390 totdat jy die standaard getref, As een van hulle is gelyk. 734 00:32:22,390 --> 00:32:24,590 Sodra een van hulle is ingestel om gelyk te wees, 735 00:32:24,590 --> 00:32:27,040 dit gaan om dit te doen reël van die kode en breek. 736 00:32:27,040 --> 00:32:30,990 Wat beteken dit gaan om te tref dat hardloop, breek, en net heeltemal oor te slaan 737 00:32:30,990 --> 00:32:32,240 aan die onderkant van die kode. 738 00:32:32,240 --> 00:32:37,550 So in daardie sin is die soort van funksies soos 'n as anders as anders as verklaring. 739 00:32:37,550 --> 00:32:40,830 >> So hier is 'n konkrete voorbeeld vir julle ouens. 740 00:32:40,830 --> 00:32:46,140 So laat ons veronderstel dat ek wou skep 'n veranderlike genaamd jaar gestig. 741 00:32:46,140 --> 00:32:50,230 En ek wil hê dat die gebruiker om insette gevra die jaar wat hul skool is gestig. 742 00:32:50,230 --> 00:32:53,300 So kan ek 'n skakelaar verklaring hier te skep. 743 00:32:53,300 --> 00:32:56,650 En laat ons net sê, ek insette 1636. 744 00:32:56,650 --> 00:33:01,120 >> Hierdie kode hier gaan skakelaar te sien jaar gestig wat 1636 gelyk. 745 00:33:01,120 --> 00:33:03,940 Dit gaan geval sien 1636, oh diegene gelyk is, 746 00:33:03,940 --> 00:33:06,230 printf () Indien u nie by die skool in die noorde? 747 00:33:06,230 --> 00:33:08,770 Omdat ons aanvaar dat hulle dit nie doen nie gaan hier as hulle gaan om Harvard, 748 00:33:08,770 --> 00:33:10,380 breek en slaan tot die einde. 749 00:33:10,380 --> 00:33:14,090 >> As ek om insette 1701, wat Ek neem aan almal van ons sou insette, 750 00:33:14,090 --> 00:33:17,500 dit sou hierdie geval slaan, kom af na die geval twee wat 1701, 751 00:33:17,500 --> 00:33:19,660 en druk Welkom by Yale! 752 00:33:19,660 --> 00:33:21,360 Breek, slaan tot die einde. 753 00:33:21,360 --> 00:33:25,130 Anders wat jy waarskynlik hierdie kursus neem aanlyn in wat case-- ongelooflike welkom 754 00:33:25,130 --> 00:33:29,020 om Yale-- dit gaan om te gaan na die standaard druk, Hello Internet! 755 00:33:29,020 --> 00:33:29,870 En breek. 756 00:33:29,870 --> 00:33:30,466 Ja. 757 00:33:30,466 --> 00:33:32,090 >> SPREKER 12: Kan jy anders gebruik in plaas van die standaard daar? 758 00:33:32,090 --> 00:33:34,550 >> ANDI Peng: Nee, want die manier dat hierdie hele funksie 759 00:33:34,550 --> 00:33:39,170 skakelaar gebou is, die sintaksis jy nodig is om te gebruik, is die geval geval verstek. 760 00:33:39,170 --> 00:33:42,400 Dit is soos die as anders as hierdie een is dit die geval geval verstek. Ja. 761 00:33:42,400 --> 00:33:45,650 SPREKER 13: Jy dalk reeds hierdie gesê, maar kan jy meer as twee gevalle? 762 00:33:45,650 --> 00:33:48,066 ANDI Peng: Ja, jy kan het so baie gevalle as wat jy wil. 763 00:33:48,066 --> 00:33:50,050 Dink aan dit as net graag oneindig voeg. 764 00:33:50,050 --> 00:33:52,396 >> SPREKER 14: As jy oorgeskakel 1701 met 1636, 765 00:33:52,396 --> 00:33:54,187 dit maak nie regtig maak 'n verskil reg? 766 00:33:54,187 --> 00:33:55,770 Dit is net gaan om te beheer word vir dit. 767 00:33:55,770 --> 00:33:56,900 >> ANDI Peng: Dit is 'n regtig 'n goeie vraag. 768 00:33:56,900 --> 00:33:58,880 En ons sal raak op hierdie later, maar net 769 00:33:58,880 --> 00:34:01,160 weet dit is die skakelaar stelling infinitely-- dit 770 00:34:01,160 --> 00:34:03,536 meer doeltreffend as dit en as anders as omdat dit bedryf 771 00:34:03,536 --> 00:34:06,660 met behulp van 'n ander soort funksie wat kan jy om in wese, net 772 00:34:06,660 --> 00:34:08,790 spring reguit na die geval wat jy nodig het om te wees by. 773 00:34:08,790 --> 00:34:10,547 Ja. 774 00:34:10,547 --> 00:34:11,255 SPREKER 14: Cool. 775 00:34:11,255 --> 00:34:11,754 Dankie. 776 00:34:11,754 --> 00:34:12,526 ANDI Peng: Ja 777 00:34:12,526 --> 00:34:16,687 >> SPREKER 14: En jy kan nie doen gevalle soos en groter as. 778 00:34:16,687 --> 00:34:17,270 ANDI Peng: No. 779 00:34:17,270 --> 00:34:19,860 So, dit is wat die beperking van die skakelaar verklaring is dat jy 780 00:34:19,860 --> 00:34:21,564 om konstantes het net, net heelgetalle. 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 >> So, dit is iets wat jy ouens sal minder dikwels teëkom van, 785 00:34:28,659 --> 00:34:32,280 maar ek wou net stel dit in die geval. 786 00:34:32,280 --> 00:34:36,210 Ons het hier, wat is bekend as 'n drieledige operateur. 787 00:34:36,210 --> 00:34:39,370 Waar in wese, is dit net soos 'n As verklaring saamgestel in een lyn. 788 00:34:39,370 --> 00:34:42,630 Hier sal ek gaan na die volgende lyn, die volgende bladsy, want dit is makliker om te sien. 789 00:34:42,630 --> 00:34:44,860 >> Dus het ons al hierdie reg gesien? 790 00:34:44,860 --> 00:34:46,110 Dit is redelik maklik om te volg. 791 00:34:46,110 --> 00:34:51,290 As ek wou 'n veranderlike genoem te maak string naam s, as 'n sekere aantal 792 00:34:51,290 --> 00:34:54,770 Ek gee dit is minder as 100, ek wil lae te ken aan die tou, 793 00:34:54,770 --> 00:34:57,240 anders wat ek wil toewys hoog. 794 00:34:57,240 --> 00:35:01,370 >> Dit is hier doen presies dieselfde ding diegene agt reëls van die kode doen. 795 00:35:01,370 --> 00:35:03,600 So hier is ek wil skep 'n veranderlike string. 796 00:35:03,600 --> 00:35:08,520 En dit is die toestand ek is nagaan, as 'n aantal minder as 100, 797 00:35:08,520 --> 00:35:12,750 dan moet jy die waarde van 'n lae toewys, anders sal die waarde van 'n hoë toewys. 798 00:35:12,750 --> 00:35:15,802 >> Hierdie skyfies sal aanlyn wees, geen bekommernisse as jy dit nie doen nie ouens af kry. 799 00:35:15,802 --> 00:35:18,510 Dit is net 'n eenvoudiger manier, 'n meer doeltreffende manier van skryf 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 >> So nou gaan ons betree wat vir die meeste mense 803 00:35:25,190 --> 00:35:28,660 is soos 'n baie, baie verwarrend ding om te dink oor by die eerste. 804 00:35:28,660 --> 00:35:30,226 Die artikel lus. 805 00:35:30,226 --> 00:35:32,600 So vandag, ons gaan om te praat sowat drie tipes lusse. 806 00:35:32,600 --> 00:35:34,890 Ons gaan begin met 'n rukkie lus, dan praat oor 'n doen while lus, 807 00:35:34,890 --> 00:35:36,740 en dan praat oor vir loops. 808 00:35:36,740 --> 00:35:40,010 >> So in wese, vir die meer visuele leerders daar buite, 809 00:35:40,010 --> 00:35:44,410 ons het, in wese, 'n grafiese uitbeelding van wat 'n while lus nie. 810 00:35:44,410 --> 00:35:48,290 So in 'n programmeertaal, sou jy begin en betree die lus op 'n sekere punt. 811 00:35:48,290 --> 00:35:49,470 Jy gaan 'n toestand. 812 00:35:49,470 --> 00:35:52,165 En as die toestand is waar, jy sal die kode in te voer. 813 00:35:52,165 --> 00:35:53,790 En jy terug om te kom en jy kyk. 814 00:35:53,790 --> 00:35:57,190 As dit is steeds waar jy bly voortbestaan hierdie kode om en om in 'n lus. 815 00:35:57,190 --> 00:36:00,970 >> Maar die tweede wat die toestand word vals is, 816 00:36:00,970 --> 00:36:02,739 jy gaan om te breek en die einde van die lus. 817 00:36:02,739 --> 00:36:05,030 En dit is in wese die sintaksis jy gaan gebruik. 818 00:36:05,030 --> 00:36:08,250 Terwyl 'n sekere toestand is ware doen dit, as dit is nie waar nie, 819 00:36:08,250 --> 00:36:12,920 jy gaan om oor te slaan na die einde en vorentoe beweeg met jou program. 820 00:36:12,920 --> 00:36:13,690 OK. 821 00:36:13,690 --> 00:36:17,250 >> Is daar iemand het 'n voorbeeld oor wat kan gebeur potensieel 822 00:36:17,250 --> 00:36:19,160 as ek probeer om hierdie stuk kode loop? 823 00:36:19,160 --> 00:36:22,470 By the way, dit is SAJ-- Scaz, Andi, Jason-- ons sal afteken ons e-pos, 824 00:36:22,470 --> 00:36:24,830 Liefde, SAJ. 825 00:36:24,830 --> 00:36:25,573 Dit is vir ons. 826 00:36:25,573 --> 00:36:26,500 OK. 827 00:36:26,500 --> 00:36:29,829 >> Enigiemand het 'n voorbeeld, of 'n idee van wat dit sou druk? 828 00:36:29,829 --> 00:36:30,870 Soort van 'n truuk vraag. 829 00:36:30,870 --> 00:36:34,550 830 00:36:34,550 --> 00:36:39,380 So hier, onthou die toestand Ons monitor vir is, terwyl die ware. 831 00:36:39,380 --> 00:36:42,840 Dus, terwyl dit waar is, is dit gaan druk, ek hou van SAJ! 832 00:36:42,840 --> 00:36:48,460 Is daar enige punt in wat ons wil verander dit na iets anders? 833 00:36:48,460 --> 00:36:49,050 Nee, reg? 834 00:36:49,050 --> 00:36:51,470 >> So hier het ons teëgekom wat waarskynlik 835 00:36:51,470 --> 00:36:54,310 gaan afluister baie jou programme, die oneindige lus. 836 00:36:54,310 --> 00:36:56,268 Jy sal vind dat as jy hardloop hierdie stuk van die kode, 837 00:36:56,268 --> 00:36:58,160 dit is net gaan om te hou druk, ek hou van SAJ! 838 00:36:58,160 --> 00:37:00,701 Terwyl ons waardeer die ondersteuning, ons wil nie jou rekenaars 839 00:37:00,701 --> 00:37:02,910 om te crash omdat jy hou druk Ek hou SAJ! 840 00:37:02,910 --> 00:37:05,320 >> So asseblief, asseblief, vermy die oneindige lus 841 00:37:05,320 --> 00:37:07,320 want dit gaan nooit om te evalueer vals 842 00:37:07,320 --> 00:37:08,780 en jy gaan nooit om die lus te verlaat. 843 00:37:08,780 --> 00:37:10,530 En jy gaan word ingesuig in ewigheid. 844 00:37:10,530 --> 00:37:13,000 Koel. 845 00:37:13,000 --> 00:37:13,694 OK. 846 00:37:13,694 --> 00:37:15,610 Die tweede tipe lus ons sal praat oor vandag 847 00:37:15,610 --> 00:37:17,580 is die doen terwyl loop, doen terwyl loop. 848 00:37:17,580 --> 00:37:20,580 En dit is bekend as 'n doen terwyl lus want jy het 'n doen en 'n rukkie. 849 00:37:20,580 --> 00:37:24,390 So dit is redelik soortgelyk aan 'n rukkie lus, maar 'n bietjie anders. 850 00:37:24,390 --> 00:37:27,620 Hier, jy gaan om dit te doen net die binnekant van hierdie 851 00:37:27,620 --> 00:37:29,747 terwyl 'n sekere toestand is waar. 852 00:37:29,747 --> 00:37:32,580 So as ek en C van die rekenaar Ek is loop af hierdie stuk van die kode, 853 00:37:32,580 --> 00:37:33,880 Ek neem 'n blik op die top. 854 00:37:33,880 --> 00:37:36,890 Ek gaan na C, sê ek dit doen. 855 00:37:36,890 --> 00:37:40,550 En dan gaan ek, terwyl dit is waar, ek het om dit te herhaal. 856 00:37:40,550 --> 00:37:42,750 Maar terwyl dit is vals, dan het ek vorentoe beweeg 857 00:37:42,750 --> 00:37:44,700 en ek het nooit terug na daardie lus weer gaan. 858 00:37:44,700 --> 00:37:48,360 >> Kan iemand neem 'n steek na wat die verskil 859 00:37:48,360 --> 00:37:52,130 tussen hierdie lus en die een wat ons net gekyk na feitlik. 860 00:37:52,130 --> 00:37:52,717 Ja. 861 00:37:52,717 --> 00:37:55,050 SPREKER 15: Die toestand kom nadat plaas van voor? 862 00:37:55,050 --> 00:37:55,841 ANDI Peng: Presies. 863 00:37:55,841 --> 00:37:57,984 So het sy gesê die toestand kom nadat, nie voor. 864 00:37:57,984 --> 00:38:00,400 Uiteindelik, die verskil tussen hierdie en die while lus 865 00:38:00,400 --> 00:38:03,597 is dat jy net gaan doen net die binnekant van hierdie ongeag 866 00:38:03,597 --> 00:38:06,430 of jou toestand is waar, en dan gaan die toestand. 867 00:38:06,430 --> 00:38:08,304 So in hierdie geval, is jy always-- op hierdie manier, 868 00:38:08,304 --> 00:38:11,240 Jy is altyd om seker te maak net die binnekant loop ten minste 869 00:38:11,240 --> 00:38:14,230 keer voor om te kyk as jy dit wil hê om weer te loop. 870 00:38:14,230 --> 00:38:18,040 >> En hier is 'n voorbeeld van wanneer ons dit sal gebruik. 871 00:38:18,040 --> 00:38:22,570 So byvoorbeeld, as ek wou hê 'n veranderlike van tipe int naam ouderdom, 872 00:38:22,570 --> 00:38:25,640 en ek wil aanspoor die gebruiker vir hul ouderdom, 873 00:38:25,640 --> 00:38:27,910 Ek gaan printf te doen () Wat is jou ouderdom? 874 00:38:27,910 --> 00:38:30,330 ouderdom = GetInt (), wat is waarna die gebruiker. 875 00:38:30,330 --> 00:38:32,140 >> En sommige mense sal regtig irriterende. 876 00:38:32,140 --> 00:38:34,931 En jy hoef nie foute wil in jou program iemand skryf soos, 877 00:38:34,931 --> 00:38:36,680 oh Ek is negatief 4 jaar oud of wat ook al. 878 00:38:36,680 --> 00:38:39,900 In welke geval as hulle doen, hierdie evalueer 879 00:38:39,900 --> 00:38:43,150 waar, wat beteken dat ek gaan te hou om terug te gaan en dit te doen. 880 00:38:43,150 --> 00:38:45,310 So dit gaan hou re-waarna die gebruiker 881 00:38:45,310 --> 00:38:47,960 om jou te gee soos 'n ware ouderdom nommer en dit is 882 00:38:47,960 --> 00:38:51,930 gaan hou om terug te gaan en herhaling totdat hulle gee jou 'n ware ouderdom 883 00:38:51,930 --> 00:38:56,900 groter as een, of nie nul. 884 00:38:56,900 --> 00:38:58,020 >> So wenk, wenk. 885 00:38:58,020 --> 00:39:02,263 Dit sal baie, baie nuttig wees vir een van jou PSet probleme. 886 00:39:02,263 --> 00:39:04,155 Ja. 887 00:39:04,155 --> 00:39:05,580 >> SPREKER 16: Oeps, jammer. 888 00:39:05,580 --> 00:39:06,288 >> ANDI Peng: Yep. 889 00:39:06,288 --> 00:39:09,424 >> SPREKER 16: Is daar nie om 'n asshole wees, but-- 890 00:39:09,424 --> 00:39:10,340 ANDI Peng: Geen sorge. 891 00:39:10,340 --> 00:39:11,990 SPREKER 16: --are daar verskillende reëls hier 892 00:39:11,990 --> 00:39:13,810 of het jy net vergeet om die kwotasie te sit? 893 00:39:13,810 --> 00:39:14,250 >> ANDI Peng: Oh Yeah. 894 00:39:14,250 --> 00:39:15,530 Jammer, dit is heeltemal my sleg. 895 00:39:15,530 --> 00:39:17,100 Dit was beslis veronderstel om 'n kwotasie te wees. 896 00:39:17,100 --> 00:39:17,690 Goeie vangs. 897 00:39:17,690 --> 00:39:18,800 Dit sou nie hardloop nie. 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 >> So die laaste tipe lus sal ons praat oor en, uiteindelik, soort van die mees 901 00:39:26,160 --> 00:39:28,854 kompleks is die lus. 902 00:39:28,854 --> 00:39:30,770 Moenie bekommerd wees as jy nie doen nie weet wat dit beteken. 903 00:39:30,770 --> 00:39:32,061 Dit is redelik verwarrend op die eerste. 904 00:39:32,061 --> 00:39:33,640 Ons gaan oor 'n voorbeeld. 905 00:39:33,640 --> 00:39:37,040 >> Al wat gebeur in 'n lus vir die is dat jy drie stellings 906 00:39:37,040 --> 00:39:38,380 dat jy gaan om in te sluit. 907 00:39:38,380 --> 00:39:42,130 So vir 'n sekere ding, jy is gaan 'n veranderlike inisialiseer. 908 00:39:42,130 --> 00:39:45,280 Jy gaan die toestand te voeg tot wat hierdie lus sal bly voortbestaan. 909 00:39:45,280 --> 00:39:47,790 En dan, aan die einde van die lus, jy gaan om dit te werk. 910 00:39:47,790 --> 00:39:50,248 Jy kan die veranderlike te werk wat jy wil om tred te hou. 911 00:39:50,248 --> 00:39:52,530 Sodat ons tipies gebruik vir sirkelroetes vir wanneer ons 912 00:39:52,530 --> 00:39:55,390 wil 'n lus vir 'n loop sekere bedrag van die tye 913 00:39:55,390 --> 00:39:58,900 en ons reeds weet, O ek wil hierdie lus om uit te voer soos 10 keer, 914 00:39:58,900 --> 00:40:03,060 dan do-- jy ek sal gaan oor 'n voorbeeld op die volgende bladsy. 915 00:40:03,060 --> 00:40:07,830 >> So hier byvoorbeeld in Scratch, as jy wou iets tot 10 keer herhaal, 916 00:40:07,830 --> 00:40:10,790 al wat jy te sê gehad het was, herhaal 10 keer Ek is mal SAJ! 917 00:40:10,790 --> 00:40:15,260 wat is 'n meer aanvaarbare show van ondersteuning vir ons 918 00:40:15,260 --> 00:40:17,120 eerder as die oneindige lus. 919 00:40:17,120 --> 00:40:19,920 Hier hoe jy sou oorgang na C en skryf 920 00:40:19,920 --> 00:40:26,040 dit is vir int-- ek gaan om te skep of verklaar 'n veranderlike van tipe int i vernoem. 921 00:40:26,040 --> 00:40:30,089 Ek gaan inisialiseer dit 0, so i = 0; 922 00:40:30,089 --> 00:40:31,630 en dit gaan my toestand. 923 00:40:31,630 --> 00:40:33,860 So ek is minder as 10. 924 00:40:33,860 --> 00:40:36,096 En dan aan die end-- die laaste stelling is jy 925 00:40:36,096 --> 00:40:38,710 gaan hê is die werk van die wat gebeur met die veranderlike i 926 00:40:38,710 --> 00:40:40,206 aan die einde van jou lus. 927 00:40:40,206 --> 00:40:42,830 So dit is soort van verwarrend, want verskillende dele van die lyn 928 00:40:42,830 --> 00:40:44,871 gebeur op verskillende tipes van die lus. 929 00:40:44,871 --> 00:40:46,746 Maar ek sal gaan oor 'n pseudokode voorbeeld van wat 930 00:40:46,746 --> 00:40:50,360 en dit miskien verduidelik net 'n bietjie beter. 931 00:40:50,360 --> 00:40:51,500 >> So hier. 932 00:40:51,500 --> 00:40:52,929 Dit is die lus sien ons net. 933 00:40:52,929 --> 00:40:55,470 Wese in pseudokode, wat gebeur in hierdie program, 934 00:40:55,470 --> 00:40:57,940 is die eerste wat ek skep i, initializing dit 0. 935 00:40:57,940 --> 00:41:00,440 Ek is om te kyk of ek is minder as 10, in welke geval 936 00:41:00,440 --> 00:41:02,840 die eerste keer is dit want 0 is minder as 10. 937 00:41:02,840 --> 00:41:04,727 So het die lus gaan loop. 938 00:41:04,727 --> 00:41:06,310 En dan gaan ek hierdie lyn te druk. 939 00:41:06,310 --> 00:41:11,240 En dan aan die einde van die lyn, reg hier, ek gaan inkrement i, i ++ te doen, 940 00:41:11,240 --> 00:41:13,370 Dit beteken egter die verhoog dit vir een. 941 00:41:13,370 --> 00:41:15,460 >> So ek is nou 1. 942 00:41:15,460 --> 00:41:17,960 Want dit was een keer 0, as ek inkrementeer dit is, dit is nou 1. 943 00:41:17,960 --> 00:41:19,610 En dan gaan ek om terug te gaan na die begin van die lus 944 00:41:19,610 --> 00:41:20,730 en ek gaan die toestand. 945 00:41:20,730 --> 00:41:22,080 Is die toestand nog waar? 946 00:41:22,080 --> 00:41:24,030 Ja, 1 is steeds minder as 10. 947 00:41:24,030 --> 00:41:27,370 So dit gaan om dit weer te druk, gaan en dan inkrementeer i, en kyk 948 00:41:27,370 --> 00:41:29,180 die toestand voortdurend, aanhoudend, 949 00:41:29,180 --> 00:41:33,290 totdat jy uiteindelik tot op die punt waar ek is 10. 950 00:41:33,290 --> 00:41:36,300 >> Jy gaan hierdie keer druk 10 en dan is ek gaan gelyk 10. 951 00:41:36,300 --> 00:41:37,800 Jy gaan die toestand te monitor. 952 00:41:37,800 --> 00:41:38,760 Is 10 minder as 10? 953 00:41:38,760 --> 00:41:40,370 Nee, dit is onwaar. 954 00:41:40,370 --> 00:41:43,020 So, is hierdie lus nie gaan om te hardloop, dit gaan om te breek, 955 00:41:43,020 --> 00:41:45,040 en jy gaan voortgaan met jou kode. 956 00:41:45,040 --> 00:41:47,550 >> So as jy ouens kan dit sien is 'n baie goeie voorbeeld 957 00:41:47,550 --> 00:41:53,110 van 'n lus wat jy kan program in wat loop vir 'n bepaalde bedrag van die tye. 958 00:41:53,110 --> 00:41:54,457 Elkeen duidelik? 959 00:41:54,457 --> 00:41:54,956 Ja. 960 00:41:54,956 --> 00:41:59,060 >> SPREKER 17: Hoe gaan inkrement eksponensieel, is dit anders kodering? 961 00:41:59,060 --> 00:42:02,060 >> ANDI Peng: Jy can-- ons gaan oor dit in die volgende skuif. 962 00:42:02,060 --> 00:42:03,350 Goeie vraag. 963 00:42:03,350 --> 00:42:05,910 Is anyone-- voordat ek on-- iemand te alle verward, 964 00:42:05,910 --> 00:42:07,640 want dit is 'n baie moeilike konsep. 965 00:42:07,640 --> 00:42:09,510 Geen sorge, as you're-- OK. 966 00:42:09,510 --> 00:42:10,010 Koel. 967 00:42:10,010 --> 00:42:12,836 968 00:42:12,836 --> 00:42:13,490 >> Alles reg. 969 00:42:13,490 --> 00:42:14,610 Net 'n algemene skuif. 970 00:42:14,610 --> 00:42:18,020 Dit terwyl lus is om te doen die presies dieselfde ding die lus was. 971 00:42:18,020 --> 00:42:19,631 Dit is net anders geskryf. 972 00:42:19,631 --> 00:42:22,130 Julle kan die skyfies deur lees op jou gemak later. 973 00:42:22,130 --> 00:42:24,880 Maar net weet dat daar verskeie maniere van skryf in dieselfde ding 974 00:42:24,880 --> 00:42:28,300 gebeur met verskillende loops. 975 00:42:28,300 --> 00:42:28,800 OK. 976 00:42:28,800 --> 00:42:32,380 >> So, nou kry ons in die vraag van wat as ons 'n lus binnekant van 'n lus. 977 00:42:32,380 --> 00:42:35,810 Ons kry in die werklike Ontstaan ​​tipe dinge hier. 978 00:42:35,810 --> 00:42:40,640 As jy wil om dinge te doen verskeie keer binnekant van ander dinge 979 00:42:40,640 --> 00:42:44,129 dat dinge doen verskeie kere, het jy wil 'n sogenaamde geneste lus. 980 00:42:44,129 --> 00:42:47,420 Vir dié van julle wat hierdie eerste sien en kry baie verward, is al wat ons hier doen 981 00:42:47,420 --> 00:42:50,580 is met 'n lus vir die waar ons het 'n veranderlike van ry. 982 00:42:50,580 --> 00:42:54,500 Maar binnekant van dit, het ons 'n ander het ook lus van 'n kolom veranderlike genoem. 983 00:42:54,500 --> 00:42:58,560 En ek hoogs stel voor julle almal wat verwar eerste hou 984 00:42:58,560 --> 00:43:00,310 track-- hierdie trek uit, teken dit uit. 985 00:43:00,310 --> 00:43:03,000 Moet nie probeer om net rede deur dit, trek dit uit. 986 00:43:03,000 --> 00:43:06,630 >> In jou kop, op hierdie stuk papier, of wat ook al, skryf ry, 987 00:43:06,630 --> 00:43:08,614 hou van wat ry is gelyk aan. 988 00:43:08,614 --> 00:43:10,780 Skryf kolom, hou van wat kolom is gelyk aan. 989 00:43:10,780 --> 00:43:13,490 En hou van wat uit te druk met elke iterasie. 990 00:43:13,490 --> 00:43:16,320 Elke iterasie van hierdie lus, elke iterasie van daardie groter lus, 991 00:43:16,320 --> 00:43:17,820 hou net ná die logika. 992 00:43:17,820 --> 00:43:20,190 En ek waarborg jou, jy sal hou van wat jy sien, 993 00:43:20,190 --> 00:43:24,307 want dit is ook 'n baie toepassing vir jou probleem stelle. 994 00:43:24,307 --> 00:43:24,806 Koel. 995 00:43:24,806 --> 00:43:27,501 996 00:43:27,501 --> 00:43:28,000 Alles reg. 997 00:43:28,000 --> 00:43:30,723 So is die belangrikste ding dat julle ouens is waarskynlik al 998 00:43:30,723 --> 00:43:32,400 dink oor die oomblik, is jou probleem Stel 1s, 999 00:43:32,400 --> 00:43:33,650 wat as gevolg is Donderdag / Vrydag. 1000 00:43:33,650 --> 00:43:36,890 1001 00:43:36,890 --> 00:43:39,710 >> In jou water.c program, wenk jy gaan te hê 1002 00:43:39,710 --> 00:43:41,590 aan die gebruiker vir 'n vinnige insette. 1003 00:43:41,590 --> 00:43:43,640 Binne jou mario.c program jy gaan te hê 1004 00:43:43,640 --> 00:43:46,431 om 'n geneste lus vir wat 'n lus vir die binnekant van 'n lus, 1005 00:43:46,431 --> 00:43:50,247 om 'n blok piramide te druk, in wese soos wat Mario het om deur te spring. 1006 00:43:50,247 --> 00:43:53,330 En dan in jou greedy-- of dalk Maak Verandering, indien enige van julle ouens 1007 00:43:53,330 --> 00:43:55,740 het al ooit gehoor van that-- jy gaan hê om baie wees 1008 00:43:55,740 --> 00:43:58,160 versigtig eerste drywende punt waardes. 1009 00:43:58,160 --> 00:44:01,860 Onthou swaai desimale en heelgetalle is nie dieselfde ding nie. 1010 00:44:01,860 --> 00:44:03,620 Bly op hoogte van watter een is wat. 1011 00:44:03,620 --> 00:44:05,953 En jy gaan gebruik voorwaardelike stellings, as well. 1012 00:44:05,953 --> 00:44:09,070 1013 00:44:09,070 --> 00:44:10,940 >> Alle reg, laaste ding. 1014 00:44:10,940 --> 00:44:12,770 Ek het 'n paar minute oor. 1015 00:44:12,770 --> 00:44:13,460 Styl. 1016 00:44:13,460 --> 00:44:19,320 So, dit is iets wat nie eintlik die uitwerking van die doeltreffendheid, 1017 00:44:19,320 --> 00:44:21,010 of die werklike verloop van jou kode. 1018 00:44:21,010 --> 00:44:24,380 Maar dit effekte ons as jou skrapers, as jou lesers. 1019 00:44:24,380 --> 00:44:27,290 Dit effekte jouself, as jy probeer om 'n probleem te vind. 1020 00:44:27,290 --> 00:44:30,700 Dit effekte die leesbaarheid van jou kode. 1021 00:44:30,700 --> 00:44:34,070 >> So styl, soos wanneer jy probeer om te styl 'n opstel vir Engels, as jy 1022 00:44:34,070 --> 00:44:36,070 het paragrawe nie, jy het alles soort 1023 00:44:36,070 --> 00:44:39,190 saam deurmekaar op een lyn, is dit maak dit moeilik vir enigiemand regtig 1024 00:44:39,190 --> 00:44:42,620 om jou opstel te lees, selfs as jou punte is logies klank. 1025 00:44:42,620 --> 00:44:44,390 Dieselfde ding in programmering. 1026 00:44:44,390 --> 00:44:47,910 Jy kan verskriklik duister het kode wat Scaz sal dek, 1027 00:44:47,910 --> 00:44:49,660 en dit kan nog steeds loop en funksie. 1028 00:44:49,660 --> 00:44:53,110 Maar vir ons, as jou pragtige Tas, wat sal lees en evaluering van jou PSets, 1029 00:44:53,110 --> 00:44:54,460 dit is nie baie mooi. 1030 00:44:54,460 --> 00:44:56,859 >> So asseblief, ter wille ons en jouself, 1031 00:44:56,859 --> 00:44:58,900 wanneer jy probeer om op te los 'n probleem in jou kode, 1032 00:44:58,900 --> 00:45:00,774 en jy probeer om lees jou eie kode, maak 1033 00:45:00,774 --> 00:45:03,910 seker dat jy 'n paar konvensies te volg dat ons gaan om te gaan oor. 1034 00:45:03,910 --> 00:45:04,510 >> So die eerste. 1035 00:45:04,510 --> 00:45:07,070 Gee jou veranderlikes betekenisvolle name. 1036 00:45:07,070 --> 00:45:11,450 As jy wil 'n heelgetal te stoor genoem ouderdom, asseblief noem dit die ouderdom. 1037 00:45:11,450 --> 00:45:12,875 Moenie noem dit hoog. 1038 00:45:12,875 --> 00:45:14,750 As jy probeer om stoor 'n ouderdom in die hoogte, 1039 00:45:14,750 --> 00:45:16,722 dit maak alles baie verwarrend vir ons. 1040 00:45:16,722 --> 00:45:17,930 Ons hou nie verwar word. 1041 00:45:17,930 --> 00:45:19,180 Jy wil nie verwar word. 1042 00:45:19,180 --> 00:45:20,350 Niemand hou daarvan om verwar. 1043 00:45:20,350 --> 00:45:23,100 As jy gaan om iets te skep, noem dit iets betekenisvol. 1044 00:45:23,100 --> 00:45:26,440 >> Maar in vir lus, enkele karakter veranderlikes is gewoonlik fyn. 1045 00:45:26,440 --> 00:45:31,350 En in vir lus, as jy wil net i, en j, k, voel vry om dit te doen. 1046 00:45:31,350 --> 00:45:32,670 >> Konsekwent inisialisering. 1047 00:45:32,670 --> 00:45:33,770 So wat beteken dit? 1048 00:45:33,770 --> 00:45:37,600 Dit beteken tegnies, teoreties, jy kan inisieer en te skep 1049 00:45:37,600 --> 00:45:40,140 verskeie veranderlikes op dieselfde lyn. 1050 00:45:40,140 --> 00:45:42,820 So byvoorbeeld, kan ek 'n heelgetal genoem scaz_age, 1051 00:45:42,820 --> 00:45:47,110 en heelgetal genoem andi_age = 20, en 'n heelgetal genoem jason_age 1052 00:45:47,110 --> 00:45:48,090 op dieselfde lyn. 1053 00:45:48,090 --> 00:45:52,060 En ek kan ook net een van toewys hulle en nie die ander waardes. 1054 00:45:52,060 --> 00:45:54,142 Ons vra dat u asseblief nie doen nie. 1055 00:45:54,142 --> 00:45:57,350 Want hier het jy in wese geskep drie veranderlikes, maar net een van hulle 1056 00:45:57,350 --> 00:45:58,295 het eintlik 'n waarde. 1057 00:45:58,295 --> 00:46:00,170 En dan wanneer ons probeer om jou kode te lees, 1058 00:46:00,170 --> 00:46:01,850 of as jy probeer om op te los 'n probleem in jou kode, 1059 00:46:01,850 --> 00:46:03,340 dit is baie verwarrend om te volg. 1060 00:46:03,340 --> 00:46:09,300 Dus net vir jou leesbaarheid vir ons leesbaarheid, dit nie doen nie. 1061 00:46:09,300 --> 00:46:10,355 >> Konsekwent krullerige draadjies. 1062 00:46:10,355 --> 00:46:12,980 Sommige mense hou daarvan om hul sit krulhakies op verskillende plekke. 1063 00:46:12,980 --> 00:46:14,100 Dit maak nie regtig saak nie. 1064 00:46:14,100 --> 00:46:17,900 Maak net seker jy konsekwent in jou is eie-kode op die plek waar jy wil om hulle te sit. 1065 00:46:17,900 --> 00:46:18,950 >> Konsekwente spasiëring. 1066 00:46:18,950 --> 00:46:22,040 As jy 'n spasie na 'n lus altyd doen nie. 1067 00:46:22,040 --> 00:46:24,930 Moet nie net graag soort doen dit op sommige plekke, doen dit nie in die ander. 1068 00:46:24,930 --> 00:46:26,580 Net konsekwent wees. 1069 00:46:26,580 --> 00:46:29,500 >> Tweedens, as iemand wil te kyk die CS50 Style Guide, 1070 00:46:29,500 --> 00:46:33,230 ons het amptelik 'n styl gids wat vertel jy al hierdie konvensies, 1071 00:46:33,230 --> 00:46:34,890 plus nog baie meer. 1072 00:46:34,890 --> 00:46:35,530 Dit is online. 1073 00:46:35,530 --> 00:46:38,670 Dit is soos cs50.net/style of iets soos dit. 1074 00:46:38,670 --> 00:46:40,180 Jy kan dit Google. 1075 00:46:40,180 --> 00:46:41,399 >> Konsekwentheid is die sleutel. 1076 00:46:41,399 --> 00:46:43,190 So moenie bekommerd wees wat ander mense doen, 1077 00:46:43,190 --> 00:46:46,180 maak net seker dat jy konsekwent in jou eie kode. 1078 00:46:46,180 --> 00:46:50,570 Iemand enige vrae oor wat? 1079 00:46:50,570 --> 00:46:51,070 Ja. 1080 00:46:51,070 --> 00:46:53,370 >> SPREKER 18: So het die behoorlike ding te doen met inisialisering is net 1081 00:46:53,370 --> 00:46:56,130 het hulle almal in 'n aparte lyn, is dat dit wat jy sê? 1082 00:46:56,130 --> 00:46:58,850 >> ANDI Peng: So ek selde het dit gebeur. 1083 00:46:58,850 --> 00:47:02,230 Maar as jy wil, as jy wou om te wees soos die redding ruimte in jou kode, 1084 00:47:02,230 --> 00:47:04,000 of wat ook al, kan jy dit doen. 1085 00:47:04,000 --> 00:47:07,800 Ons vra dat jy net nie inisialiseer een ding, en nie die ander. 1086 00:47:07,800 --> 00:47:12,600 So as jy wil int scaz_age doen int andi_age, int jason_age, dit is goed. 1087 00:47:12,600 --> 00:47:15,600 Net nie inisialiseer een en nie die ander is nie. 1088 00:47:15,600 --> 00:47:18,380 1089 00:47:18,380 --> 00:47:19,904 >> Vrae? 1090 00:47:19,904 --> 00:47:20,850 Alles reg. 1091 00:47:20,850 --> 00:47:24,610 Ek gaan om te slaag die mikrofoon, en die laser pointer, 1092 00:47:24,610 --> 00:47:28,862 en die leiding te Scaz op hierdie punt. 1093 00:47:28,862 --> 00:47:29,808 Dit is ongemaklik. 1094 00:47:29,808 --> 00:47:32,650 1095 00:47:32,650 --> 00:47:33,200 Hier is dit. 1096 00:47:33,200 --> 00:47:34,408 >> BRIAN SCASSELLATI: Dankie. 1097 00:47:34,408 --> 00:47:42,500 1098 00:47:42,500 --> 00:47:43,380 Hoe is dit vir 'n goeie? 1099 00:47:43,380 --> 00:47:46,420 1100 00:47:46,420 --> 00:47:47,900 Klank is goed? . 1101 00:47:47,900 --> 00:47:49,220 Uitstekend. 1102 00:47:49,220 --> 00:47:50,350 OK. 1103 00:47:50,350 --> 00:47:52,110 So, hi almal. 1104 00:47:52,110 --> 00:47:56,540 >> Ek gaan om te probeer om deur te werk 'n praktiese voorbeeld met jou. 1105 00:47:56,540 --> 00:48:00,850 En ons gaan CS50 se gebruik ontwikkeling omgewing, wat genoem 1106 00:48:00,850 --> 00:48:03,120 die Geïntegreerde Ontwikkelingsplan Omgewing. 1107 00:48:03,120 --> 00:48:05,145 En jy het dit gesien gedemonstreer in lesing. 1108 00:48:05,145 --> 00:48:07,520 En in Probleem Stel 1, jy is gaan om 'n geleentheid te hê 1109 00:48:07,520 --> 00:48:10,890 om dit te gebruik, en speel rond met , en kry gewoond aan dit, 1110 00:48:10,890 --> 00:48:13,640 want ons gaan om dit te gebruik deur die res van die semester. 1111 00:48:13,640 --> 00:48:20,350 >> So in hierdie IDE, jy wat lyk soos 'n baie tradisionele lêer leser 1112 00:48:20,350 --> 00:48:21,890 oor aan die een kant. 1113 00:48:21,890 --> 00:48:24,360 Jy het 'n gedeelte opgestaan top waar jy gaan 1114 00:48:24,360 --> 00:48:28,850 om jou bronkode sien jou Cfile, die kode wat jy skryf. 1115 00:48:28,850 --> 00:48:31,880 En af onder, sal jy het 'n terminale venster 1116 00:48:31,880 --> 00:48:36,330 wat jy sal gebruik word om te beide jou program saam te stel 1117 00:48:36,330 --> 00:48:39,090 en om te hardloop of jou program uit te voer. 1118 00:48:39,090 --> 00:48:40,100 OK. 1119 00:48:40,100 --> 00:48:46,560 >> Dus net om te gee ons 'n bietjie van stigting, in daardie terminale venster, 1120 00:48:46,560 --> 00:48:48,930 jy gaan wees met behulp van 'n stel van opdragte 1121 00:48:48,930 --> 00:48:53,040 daardie standaard opdragte regdeur is die meeste van Unix of Linux stelsels. 1122 00:48:53,040 --> 00:48:55,890 En so as jy al ooit gebruik enige vorm van Unix, Ubuntu, 1123 00:48:55,890 --> 00:48:59,140 of enige van die ander geure, hierdie gaan vertroud te kyk. 1124 00:48:59,140 --> 00:49:00,890 >> As jy nie het nie, moenie bekommerd wees nie. 1125 00:49:00,890 --> 00:49:02,830 Daar is niks ingewikkeld oor hulle. 1126 00:49:02,830 --> 00:49:05,330 Hulle is maar net 'n ander sintaksis, 'n ander benaming 1127 00:49:05,330 --> 00:49:07,630 konvensie as jy voorheen gesien. 1128 00:49:07,630 --> 00:49:12,190 >> So om die lys uit die lêers binne 'n bepaalde gids, 1129 00:49:12,190 --> 00:49:15,310 hulle gaan om 'n gebruik opdrag genoem ls, of lys. 1130 00:49:15,310 --> 00:49:18,010 As jy wil om alles te sien met al die besonderhede, 1131 00:49:18,010 --> 00:49:21,535 jy sal 'n opdrag te gebruik line argument met ls-l. 1132 00:49:21,535 --> 00:49:23,910 En dit sal jou alles wys in meer detail, insluitende 1133 00:49:23,910 --> 00:49:26,270 die regte vir 'n lêer. 1134 00:49:26,270 --> 00:49:31,190 >> Om gids te verander, jy sal die cd opdrag gebruik. 1135 00:49:31,190 --> 00:49:35,180 En jy sal in staat wees om te verander gids beide om te gaan na jou huis gids. 1136 00:49:35,180 --> 00:49:38,500 Dit is net cd al deur self, cd met twee 1137 00:49:38,500 --> 00:49:42,930 kolletjies sal jy terugkeer een vlak om jou vorige gids. 1138 00:49:42,930 --> 00:49:46,400 En jy kan ook 'n CD subdirectory deur te tik in cd 1139 00:49:46,400 --> 00:49:48,500 en die naam van daardie subdirectory. 1140 00:49:48,500 --> 00:49:50,540 >> Jy kan ook nuwe dopgehou te skep. 1141 00:49:50,540 --> 00:49:52,790 En ons gaan om te loop deur middel van hierdie in net 'n minuut. 1142 00:49:52,790 --> 00:49:54,498 Maar net om te sit alles op die skerm. 1143 00:49:54,498 --> 00:49:56,310 Sodat jy kan sien. 1144 00:49:56,310 --> 00:50:00,420 >> Jy sal ook die vermoë om lêers direk te manipuleer 1145 00:50:00,420 --> 00:50:02,100 uit die opdrag lyn. 1146 00:50:02,100 --> 00:50:06,059 Jy sal in staat wees om hulle te kopieer, te beweeg hulle, of om hulle te verwyder, 1147 00:50:06,059 --> 00:50:07,600 dit is, effektief, om hulle te verwyder. 1148 00:50:07,600 --> 00:50:10,310 1149 00:50:10,310 --> 00:50:15,350 >> Die CS50 IDE gee jou die volle krag van command line argumente. 1150 00:50:15,350 --> 00:50:20,280 En dit beteken dat jy kan ook doen hoogs gevaarlike dinge. 1151 00:50:20,280 --> 00:50:21,560 OK. 1152 00:50:21,560 --> 00:50:25,010 Byvoorbeeld, jy kan verwyder, of dit is verwyder, 1153 00:50:25,010 --> 00:50:28,750 'n lêer sonder om te vra vir 'n bevestiging. 1154 00:50:28,750 --> 00:50:31,820 En jy kan selfs verwyder recursively-- dis 1155 00:50:31,820 --> 00:50:38,940 die paneelbord r flag-- 'n hele subdirectory en al sy inhoud. 1156 00:50:38,940 --> 00:50:39,660 OK. 1157 00:50:39,660 --> 00:50:42,940 Hulle is in die rooi gelys omdat jy moet dink "Danger" elke keer 1158 00:50:42,940 --> 00:50:45,000 jy sien die dinge. 1159 00:50:45,000 --> 00:50:45,920 OK. 1160 00:50:45,920 --> 00:50:46,420 Alles reg. 1161 00:50:46,420 --> 00:50:50,090 1162 00:50:50,090 --> 00:50:53,430 >> Nou uiteindelik, die dinge wat gaan regtig waardevol vir jou wees, 1163 00:50:53,430 --> 00:50:57,270 is daar 'n paar goeie truuks om te weet as jy opgevolg 1164 00:50:57,270 --> 00:50:59,190 deur middel van hierdie terminale venster. 1165 00:50:59,190 --> 00:51:03,590 Eerstens, kan jy die skerm skoon te maak enige tyd deur net te tik in duidelik. 1166 00:51:03,590 --> 00:51:06,310 En jy gaan om te sien my doen dikwels. 1167 00:51:06,310 --> 00:51:09,990 Jy kan ook net vertoon die teks van 'n lêer 1168 00:51:09,990 --> 00:51:13,992 deur te tik en dan meer die lêernaam. 1169 00:51:13,992 --> 00:51:17,200 Jy sal dan in staat wees om terug te blaai en saam met wat net met die spasiebalk 1170 00:51:17,200 --> 00:51:19,010 en die pyltjie sleutels. 1171 00:51:19,010 --> 00:51:25,450 >> As jy het, soos vandag in lesing 'n program wat voortdurend loop 1172 00:51:25,450 --> 00:51:29,190 in oneindige lus, jy kan die program te stop 1173 00:51:29,190 --> 00:51:35,160 uit te voer deur te tik in beheer, wat hou hou Control-C. 1174 00:51:35,160 --> 00:51:38,360 En jy mag hê om te doen hierdie verskeie kere. 1175 00:51:38,360 --> 00:51:40,620 Die rekenaar kry ver voor jou. 1176 00:51:40,620 --> 00:51:43,380 En jy soms moet gee dit 'n paar van die drieë 1177 00:51:43,380 --> 00:51:46,280 voordat dit werklik sal kom deur. 1178 00:51:46,280 --> 00:51:48,760 >> Jy sal ook in staat wees om sorteer deur die opdragte 1179 00:51:48,760 --> 00:51:54,230 dat jy net getik met die up sleutel, pyl sleutel, en dan die pyltjie sleutel. 1180 00:51:54,230 --> 00:51:57,560 En wat is die meeste nuttig is in plaas tik uit lang lêername, 1181 00:51:57,560 --> 00:52:02,209 jy sal in staat wees om die gebruik Tab om outomaties in 'n paar instruksies. 1182 00:52:02,209 --> 00:52:04,750 Nou gaan ons om te demonstreer al van diegene in net 'n sekonde. 1183 00:52:04,750 --> 00:52:06,780 So as jy nie kan onthou nie hulle moenie bekommerd wees nie. 1184 00:52:06,780 --> 00:52:10,780 Dit is dinge wat jy sal haal en gebruik as ons gaan saam. 1185 00:52:10,780 --> 00:52:11,470 OK. 1186 00:52:11,470 --> 00:52:18,830 >> So in C-- anders as in Scratch-- C is 'n saamgestel taal. 1187 00:52:18,830 --> 00:52:23,210 Dit beteken dat ons gaan 'n bron te neem file-- dit is die teks wat jy skryf, 1188 00:52:23,210 --> 00:52:26,500 die opdragte wat jy skryf, die printf () state, die loops, 1189 00:52:26,500 --> 00:52:32,580 alles else-- en ons gaan om die lêer te neem en gee dit af 1190 00:52:32,580 --> 00:52:34,670 om 'n program genaamd die samesteller. 1191 00:52:34,670 --> 00:52:39,850 >> Die samesteller sal dan dat die teks wat jy geskryf het 1192 00:52:39,850 --> 00:52:43,270 en vertaal dit in die binêre instruksies 1193 00:52:43,270 --> 00:52:46,010 dat jou rekenaar is eintlik gaan gebruik. 1194 00:52:46,010 --> 00:52:49,700 Dit is die voorwerp genoem of die uitvoerbare lêer. 1195 00:52:49,700 --> 00:52:55,320 As jy kyk na hierdie lêer, jy gaan om die kode wat jy geskryf het te sien. 1196 00:52:55,320 --> 00:52:59,480 As jy kyk na hierdie lêer, jy gaan om 'n ewekansige volgorde van karakters 1197 00:52:59,480 --> 00:53:01,680 wat geen sin maak hoegenaamd nie. 1198 00:53:01,680 --> 00:53:03,250 Dit is omdat dit is die binêre. 1199 00:53:03,250 --> 00:53:05,560 Dit is nie bedoel vir jou om te lees. 1200 00:53:05,560 --> 00:53:08,690 >> Maar, enige tyd wat jy wil hardloop iets wat jy gaan 1201 00:53:08,690 --> 00:53:13,670 te loop is hierdie voorwerp lêer. 1202 00:53:13,670 --> 00:53:19,110 So wanneer ons werk met hierdie lêers, sal ons 'n lêer in C. skryf 1203 00:53:19,110 --> 00:53:23,400 Ons sal dan stel dit, met behulp van 'n opdrag soos make wat roep 1204 00:53:23,400 --> 00:53:27,070 samesteller klang vir die C-taal. 1205 00:53:27,070 --> 00:53:31,530 En dit sal 'n voorwerp lêer, soos 'n uit, of in hierdie geval, 1206 00:53:31,530 --> 00:53:36,580 die naam, my lêer, dat ek in gesit het. 1207 00:53:36,580 --> 00:53:37,780 Alles reg. 1208 00:53:37,780 --> 00:53:39,790 >> So laat eintlik dit te probeer. 1209 00:53:39,790 --> 00:53:42,850 So ek het met 'n voorbeeld van wat ek wou probeer. 1210 00:53:42,850 --> 00:53:47,380 En een van die dinge wat my fassineer is animasie. 1211 00:53:47,380 --> 00:53:51,010 So ons gaan om te probeer om te doen 'n bietjie van animasie 1212 00:53:51,010 --> 00:53:53,760 met net ASCII karakters. 1213 00:53:53,760 --> 00:53:56,470 Karakters wat ons kan maklik nou druk. 1214 00:53:56,470 --> 00:54:00,890 >> So hier is my beste poging op die skep vir jou 1215 00:54:00,890 --> 00:54:07,005 die animasie van 'n bunny wat deur die lang gras. 1216 00:54:07,005 --> 00:54:07,505 Daar is hy. 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 So hy is nog nie loop nie, maar hy is daar staan ​​in die lang gras. 1220 00:54:14,050 --> 00:54:17,810 >> Nou as ek 'n animeerder, in die ou skool 1221 00:54:17,810 --> 00:54:20,860 weergawe van animasie, wat ek sou doen, is ek sou produseer 1222 00:54:20,860 --> 00:54:23,640 'n foto van hierdie bunny in die gras. 1223 00:54:23,640 --> 00:54:25,390 En dan sou ek produseer 'n ander picture-- 1224 00:54:25,390 --> 00:54:30,600 'n ander wat hulle genoem dat cell-- het die hasie net effens verskuif. 1225 00:54:30,600 --> 00:54:34,870 En dan 'n derde een wat moes die bunny beweeg 'n bietjie verder. 1226 00:54:34,870 --> 00:54:40,610 >> En ek sou 'n hele produseer volgorde van hierdie selle. 1227 00:54:40,610 --> 00:54:44,220 Sommige waar die bunny is verby op die linkerkant. 1228 00:54:44,220 --> 00:54:47,050 En dan beweeg stadig, een deur die een teen die middel. 1229 00:54:47,050 --> 00:54:51,120 En dan van die middel oor na regs. 1230 00:54:51,120 --> 00:54:55,760 En as ek dan regtig gelukkig, ek kon dit saam te stel 1231 00:54:55,760 --> 00:54:57,970 en ek kon hulle lewendig. 1232 00:54:57,970 --> 00:55:00,370 En daar is my bunny hardloop deur die gras. 1233 00:55:00,370 --> 00:55:02,310 >> Dit is my groot PowerPoint mislei vir die dag. 1234 00:55:02,310 --> 00:55:02,809 OK. 1235 00:55:02,809 --> 00:55:04,760 So, dit is so goed soos dit kry. 1236 00:55:04,760 --> 00:55:05,260 OK. 1237 00:55:05,260 --> 00:55:08,455 So, hier nog een keer, hier is ons bunny hardloop deur die gras. 1238 00:55:08,455 --> 00:55:09,217 >> SPREKER 19: Weereens. 1239 00:55:09,217 --> 00:55:11,050 BRIAN SCASSELLATI: Een meer tyd, alles reg. 1240 00:55:11,050 --> 00:55:11,940 Daar is jou haas. 1241 00:55:11,940 --> 00:55:12,940 OK. 1242 00:55:12,940 --> 00:55:15,470 >> So vandag wat ons gaan te doen, is ons gaan 1243 00:55:15,470 --> 00:55:21,110 om te probeer om die proses te outomatiseer van die vervaardiging van hierdie selle. 1244 00:55:21,110 --> 00:55:24,135 Ons sal nie heeltemal tot op die punt van in staat is om hulle almal saam te stel. 1245 00:55:24,135 --> 00:55:28,900 Maar, ons gaan om te probeer om die outomatiseer proses vir die opwekking van die ry. 1246 00:55:28,900 --> 00:55:32,900 >> En dit is baie van wat animasie vandag is soos. 1247 00:55:32,900 --> 00:55:36,690 Dit beteken dat jy nie dinge doen noodwendig deur die tekening alles met die hand. 1248 00:55:36,690 --> 00:55:40,610 Ons gebruik 'n rekenaar te outomatiseer dele van die proses. 1249 00:55:40,610 --> 00:55:41,110 OK. 1250 00:55:41,110 --> 00:55:47,720 >> So laat my oorskakel nou ons CS50 IDE. 1251 00:55:47,720 --> 00:55:54,260 En Ek geskape het tot us-- en laat my zoom hier 'n bietjie bit-- Ek het 1252 00:55:54,260 --> 00:55:58,420 geskep vir ons 'n beginpunt. 1253 00:55:58,420 --> 00:56:03,830 >> Elke keer wat ons jou vra om te sit af en skryf 'n stukkie van die kode, 1254 00:56:03,830 --> 00:56:09,250 wat ons jy regtig vra om te doen is ons vra om 'n probleem op te los. 1255 00:56:09,250 --> 00:56:11,810 En die weg wat jy moet dink oor om dit te doen 1256 00:56:11,810 --> 00:56:17,900 is deur te begin met 'n paar eenvoudige deel van die oplossing. 1257 00:56:17,900 --> 00:56:21,730 En dan bou uit daardie deel. 1258 00:56:21,730 --> 00:56:23,400 En dit is wat ons gaan doen vandag. 1259 00:56:23,400 --> 00:56:27,570 >> So eerder as om alles op een slag te skryf die hele klomp van die kode wat 1260 00:56:27,570 --> 00:56:30,770 gaan daardie produseer 10 animasie selle, 1261 00:56:30,770 --> 00:56:35,506 ons gaan plaas begin met een stuk wat werk. 1262 00:56:35,506 --> 00:56:37,380 En dan sal ons 'n bou bietjie rond wat 1263 00:56:37,380 --> 00:56:39,740 en 'n bietjie meer en 'n bietjie meer. 1264 00:56:39,740 --> 00:56:42,550 >> Nou is die goeie ding oor probleme op te los hierdie manier 1265 00:56:42,550 --> 00:56:46,716 is dat dit sal jou toelaat om te begin altyd met iets wat jy weet 1266 00:56:46,716 --> 00:56:51,130 werk en stel een geleidelike verandering. 1267 00:56:51,130 --> 00:56:54,090 En dit is 'n goeie manier om te leer hoe om die kode, 1268 00:56:54,090 --> 00:56:58,590 want elke keer as jy 'n verandering, jy sien watter impak dit het. 1269 00:56:58,590 --> 00:56:59,540 OK. 1270 00:56:59,540 --> 00:57:01,450 >> So hier is ons uitgangspunt. 1271 00:57:01,450 --> 00:57:01,950 OK. 1272 00:57:01,950 --> 00:57:08,030 So aan die begin van my lêer, Ek het hash #included stdio.h. 1273 00:57:08,030 --> 00:57:12,560 Dit is so dat ek kan kry die printf () funksie is om te werk. 1274 00:57:12,560 --> 00:57:15,240 >> Ek het toe ek my hoof funksie. 1275 00:57:15,240 --> 00:57:18,760 En dit lyk nog 'n bietjie arcane of onduidelik om sommige van jou. 1276 00:57:18,760 --> 00:57:20,010 Dit is OK. 1277 00:57:20,010 --> 00:57:23,190 Al wat dit sê is dat Die belangrikste funksie neem 1278 00:57:23,190 --> 00:57:27,830 geen arguments-- leemte middel niks in C. En 1279 00:57:27,830 --> 00:57:29,940 opgawes deur konvensie 'n heelgetal. 1280 00:57:29,940 --> 00:57:33,290 Main terug altyd 'n heelgetal is, gewoonlik 'n kode te sê dinge 1281 00:57:33,290 --> 00:57:35,071 het goed gegaan of het nie goed gaan nie. 1282 00:57:35,071 --> 00:57:35,570 OK. 1283 00:57:35,570 --> 00:57:39,110 Maar belangrikste moet daardie vorm vir ons nou. 1284 00:57:39,110 --> 00:57:42,080 >> Ek het toe in drie reëls van die kode. 1285 00:57:42,080 --> 00:57:46,760 En saam met elke lyn van kode, het ek 'n kommentaar. 1286 00:57:46,760 --> 00:57:51,340 Nou een van die dinge wat Ons sal aandring dat jy dit doen, 1287 00:57:51,340 --> 00:57:55,320 en dit is so 'n belangrike programmering praktyk, 1288 00:57:55,320 --> 00:57:57,800 is om altyd jou kode kommentaar lewer nie. 1289 00:57:57,800 --> 00:58:02,550 Skryf altyd in 'n English kommentaar iets 1290 00:58:02,550 --> 00:58:06,740 wat jy dink die kode is veronderstel om te doen. 1291 00:58:06,740 --> 00:58:11,360 Op dié manier, later wanneer jy terug te kom dit, kan jy kyk na dit en jy kan sê, 1292 00:58:11,360 --> 00:58:13,800 o, ek onthou wat ek was probeer om te doen met hierdie. 1293 00:58:13,800 --> 00:58:17,590 Of wanneer 'n TA sit met jou probeer om jou te help op kantoorure, 1294 00:58:17,590 --> 00:58:20,890 hulle kan kyk na hierdie en gaan, ek sien wat jy probeer om te doen, 1295 00:58:20,890 --> 00:58:25,630 maar in plaas daarvan is dit wat regtig gebeur het. 1296 00:58:25,630 --> 00:58:26,130 OK. 1297 00:58:26,130 --> 00:58:30,300 >> So ek het drie dele om my kode, Ek gaan in die eerste plek druk 1298 00:58:30,300 --> 00:58:33,110 uit 'n paar punte aan die begin. 1299 00:58:33,110 --> 00:58:37,480 Ek sal dan druk my uiters fancy haas. 1300 00:58:37,480 --> 00:58:40,600 En dan 'n paar bietjie kolletjies aan die einde. 1301 00:58:40,600 --> 00:58:45,220 >> En hierdie drie druk state moet kyk vir jou bekend op hierdie punt. 1302 00:58:45,220 --> 00:58:47,350 Al wat ek doen in elkeen van hulle is ek is 1303 00:58:47,350 --> 00:58:49,780 uit te druk 'n reeks van karakters. 1304 00:58:49,780 --> 00:58:51,370 Daar is geen veranderlikes betrokke. 1305 00:58:51,370 --> 00:58:54,320 Alles is net plat. 1306 00:58:54,320 --> 00:58:55,270 OK. 1307 00:58:55,270 --> 00:59:07,340 >> So as ek neerdaal nou na my terminal-- Kom ons kyk of ek dit terug kan kry out-- 1308 00:59:07,340 --> 00:59:09,370 en ek gaan weer tik duidelik. 1309 00:59:09,370 --> 00:59:12,507 >> SPREKER 20: Het ons gebruik die dubbel slash om kommentaar te lewer? 1310 00:59:12,507 --> 00:59:14,340 BRIAN SCASSELLATI: Kan gebruik die double-- ja. 1311 00:59:14,340 --> 00:59:16,920 Daar is verskeie maniere om laat kommentaar in C. Een 1312 00:59:16,920 --> 00:59:19,440 manier is om die dubbele streep te gebruik. 1313 00:59:19,440 --> 00:59:24,910 Die ander is om 'n streep en 'n ster te gebruik en dan sluit af met 'n ster en 'n streep. 1314 00:59:24,910 --> 00:59:26,110 Alles reg. 1315 00:59:26,110 --> 00:59:28,950 >> Eerste van alles, ek gaan begin opgevolg hier rond. 1316 00:59:28,950 --> 00:59:35,350 So as ek gaan na my tuisgids, Ek het dopgehou daar verander, 1317 00:59:35,350 --> 00:59:40,230 Ek gaan om te kyk en te sien wat in daardie gids, LS, lys uit. 1318 00:59:40,230 --> 00:59:43,230 Ek gaan om te sien dat ek het twee subdirectories. 1319 00:59:43,230 --> 00:59:47,910 Kom ons maak dit 'n bietjie groter hier sodat ons almal kan dit sien. 1320 00:59:47,910 --> 00:59:50,610 >> Ek kan sien dat Ek het het twee subdirectories. 1321 00:59:50,610 --> 00:59:53,510 Ek sal directory verander om te gaan in werkspasie. 1322 00:59:53,510 --> 00:59:58,380 En ek gaan net tik deel daarvan, en dan net getref Tab. 1323 00:59:58,380 --> 01:00:01,520 En dit sal die res voltooi vir my. 1324 01:00:01,520 --> 01:00:03,370 Fancy. 1325 01:00:03,370 --> 01:00:04,960 >> Ek sal kyk en kyk in werkspasie. 1326 01:00:04,960 --> 01:00:08,431 En nou, ek werk op die SuperSection 1327 01:00:08,431 --> 01:00:09,680 dat ons nou is onderrig. 1328 01:00:09,680 --> 01:00:10,971 So ek gaan in daardie gids. 1329 01:00:10,971 --> 01:00:14,770 1330 01:00:14,770 --> 01:00:15,970 En uiteindelik, kyk en sien. 1331 01:00:15,970 --> 01:00:18,480 En Ek het die lêer bunny.c. 1332 01:00:18,480 --> 01:00:20,980 >> Alle regte so laat my duidelik weer. 1333 01:00:20,980 --> 01:00:24,370 En ek gaan weer ek is now-- bly nog in daardie gids 1334 01:00:24,370 --> 01:00:27,540 en dit is vir my vertel ek is in dat SuperSection gids. 1335 01:00:27,540 --> 01:00:30,690 Ek gaan om voort te gaan en maak my program haas. 1336 01:00:30,690 --> 01:00:33,730 1337 01:00:33,730 --> 01:00:38,810 En dat opdrag, maak bunny, terwyl klink 'n bietjie vreemd, 1338 01:00:38,810 --> 01:00:42,960 beroep ook die klang samesteller. 1339 01:00:42,960 --> 01:00:46,470 >> En dit is vervaardig vir my 'n uitset wat 1340 01:00:46,470 --> 01:00:52,130 'n uitvoerbare funny-- n uitvoerbare lêer genaamd haas. 1341 01:00:52,130 --> 01:00:52,700 OK. 1342 01:00:52,700 --> 01:00:56,700 Ek kan dan, en dit klink nog erger, uit te voer haas. 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 En laat ons sien wat dit doen. 1346 01:01:03,150 --> 01:01:04,527 OK. 1347 01:01:04,527 --> 01:01:06,360 Dit is 'n bietjie van wat ek verwag het. 1348 01:01:06,360 --> 01:01:11,290 Ek het my bunny prentjie het daar, maar ek wou dit al die soort van self. 1349 01:01:11,290 --> 01:01:13,186 Wat het ek mis? 1350 01:01:13,186 --> 01:01:14,478 >> SPREKER 21: Sny l of streep n. 1351 01:01:14,478 --> 01:01:15,602 BRIAN SCASSELLATI: Sny n. 1352 01:01:15,602 --> 01:01:16,580 OK. 1353 01:01:16,580 --> 01:01:18,800 So laat teruggaan hier. 1354 01:01:18,800 --> 01:01:20,330 En ek sal uit daardie. 1355 01:01:20,330 --> 01:01:23,320 En ek sal terug te gaan in hierdie een. 1356 01:01:23,320 --> 01:01:27,720 En laat ons nou 'n blik uit my hoof funksie hier. 1357 01:01:27,720 --> 01:01:29,280 >> So, wat moet ek doen? 1358 01:01:29,280 --> 01:01:30,465 Ek wil die lyn te beëindig. 1359 01:01:30,465 --> 01:01:34,020 1360 01:01:34,020 --> 01:01:35,800 So sal ek in 'n kommentaar te plaas. 1361 01:01:35,800 --> 01:01:38,430 Ek sal in 'n printf sit (). 1362 01:01:38,430 --> 01:01:41,350 En wat het ek in te sit? 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 Wat doen ek dit eindig met? 1366 01:01:46,040 --> 01:01:47,100 Kommapunt. 1367 01:01:47,100 --> 01:01:48,730 Alles reg. 1368 01:01:48,730 --> 01:01:52,880 >> Nou, een van die werklik belangrike dinge is seker te maak 1369 01:01:52,880 --> 01:01:56,720 elke keer as jy 'n verandering te maak in jou kode, wat jou red nie. 1370 01:01:56,720 --> 01:02:01,380 As jy jou kode nie gered is, is jy gaan 'n bietjie star daar te sien. 1371 01:02:01,380 --> 01:02:03,420 En dat die ster sê jy het nie hierdie kode gered. 1372 01:02:03,420 --> 01:02:07,790 >> As ek stel dit nou, dit is nie van plan om enige van hierdie veranderinge te weerspieël, 1373 01:02:07,790 --> 01:02:11,680 omdat die samesteller kyk na die lêer dit is op die skyf, nie die lêer wat 1374 01:02:11,680 --> 01:02:13,790 oop te maak in jou editor. 1375 01:02:13,790 --> 01:02:14,290 Alles reg. 1376 01:02:14,290 --> 01:02:20,830 >> So laat dit stoor en dan sal ons gaan regs op hier, kom terug uit. 1377 01:02:20,830 --> 01:02:24,670 Kom af na my terminale. 1378 01:02:24,670 --> 01:02:27,193 En laat ons weer duidelik die ruimte. 1379 01:02:27,193 --> 01:02:30,690 1380 01:02:30,690 --> 01:02:35,760 >> En ons kan voort en een gaan tyd om ons bunny program. 1381 01:02:35,760 --> 01:02:40,180 En voer die haas. 1382 01:02:40,180 --> 01:02:42,500 Dit het nie gewerk nie. 1383 01:02:42,500 --> 01:02:43,950 Verkeerde slash. 1384 01:02:43,950 --> 01:02:52,280 So as jy kyk na wat ek het, het ek 'n / n in daar, maar ek het die verkeerde slash. 1385 01:02:52,280 --> 01:02:56,190 >> Alles wat jou rekenaar doen, is baie duidelik. 1386 01:02:56,190 --> 01:02:57,230 OK? 1387 01:02:57,230 --> 01:03:01,250 Een klein fout punktuasie en skielik jy nie kry wat jy wil. 1388 01:03:01,250 --> 01:03:01,750 Alles reg. 1389 01:03:01,750 --> 01:03:03,740 So laat se rug zoom weer. 1390 01:03:03,740 --> 01:03:04,410 Ons sal terug te gaan. 1391 01:03:04,410 --> 01:03:07,930 Wel maak dat baie vinnig herstel. 1392 01:03:07,930 --> 01:03:09,270 Ons sal die regte slash in te sit. 1393 01:03:09,270 --> 01:03:10,570 Ons sal dit red. 1394 01:03:10,570 --> 01:03:13,410 Ons sal terug zoom in. 1395 01:03:13,410 --> 01:03:16,730 >> Vir een of ander rede, dit is nie gelukkig, maar laat ons gaan voort 1396 01:03:16,730 --> 01:03:19,850 en ons sal terug na die terminale hier gaan. 1397 01:03:19,850 --> 01:03:22,940 Duidelik dit op. 1398 01:03:22,940 --> 01:03:24,880 Ons sal in zoom. 1399 01:03:24,880 --> 01:03:28,410 En nog een keer, sal ons bunny te maak. 1400 01:03:28,410 --> 01:03:32,360 En nou seker genoeg, dit werk. 1401 01:03:32,360 --> 01:03:33,240 Hoera. 1402 01:03:33,240 --> 01:03:34,300 OK. 1403 01:03:34,300 --> 01:03:39,580 >> So kom ons probeer om hierdie te maak 'n bietjie meer algemeen. 1404 01:03:39,580 --> 01:03:46,750 Kom ons kyk of in plaas van net druk 'n bepaalde raam, 1405 01:03:46,750 --> 01:03:49,610 Kom ons kyk of ons dit kan maak sodat ons almal kan kry 10 1406 01:03:49,610 --> 01:03:52,960 van daardie geanimeerde rame wat ons wou hê. 1407 01:03:52,960 --> 01:03:56,550 So weer, laat ons dit 'n stap in 'n tyd. 1408 01:03:56,550 --> 01:03:59,900 >> Kom ons eerste veralgemeen nie, nie sodat ek al die rame, 1409 01:03:59,900 --> 01:04:03,990 maar so het ek 'n mens doen raam dat ek dalk wil. 1410 01:04:03,990 --> 01:04:05,920 So wat is die verskil tussen die rame? 1411 01:04:05,920 --> 01:04:07,377 Is die bunny dieselfde? 1412 01:04:07,377 --> 01:04:07,960 Gehoor: Ja. 1413 01:04:07,960 --> 01:04:08,390 BRIAN SCASSELLATI: Ja. 1414 01:04:08,390 --> 01:04:09,370 Wat is die verskil? 1415 01:04:09,370 --> 01:04:10,246 >> GEHOOR: Posisie. 1416 01:04:10,246 --> 01:04:11,870 BRIAN SCASSELLATI: Sy posisie, reg? 1417 01:04:11,870 --> 01:04:15,590 En hoe kan ek sy posisie te beheer? 1418 01:04:15,590 --> 01:04:17,340 Hoeveel kolle Ek is om aan die begin 1419 01:04:17,340 --> 01:04:19,048 en hoeveel kolletjies Ek is om aan die einde. 1420 01:04:19,048 --> 01:04:21,970 So ek het vyf by die begin en vyf aan die einde. 1421 01:04:21,970 --> 01:04:28,320 >> Kom ons vervang dat vyf met 'n lus. 1422 01:04:28,320 --> 01:04:29,380 OK. 1423 01:04:29,380 --> 01:04:32,330 En ek gaan om 'n te skep vir lus nou wat gaan om te sê, 1424 01:04:32,330 --> 01:04:37,800 Ek gaan 'n paar nommer druk kolletjies aan die begin. 1425 01:04:37,800 --> 01:04:39,600 Ek gaan 'n veranderlike te gebruik. 1426 01:04:39,600 --> 01:04:44,150 Kom ons sê, hoe ek as die toonbank in my lus. 1427 01:04:44,150 --> 01:04:47,200 En ek gaan om dit te verklaar tot bo. 1428 01:04:47,200 --> 01:04:49,360 >> En dan in die lus Ek nodig het om drie dinge te doen. 1429 01:04:49,360 --> 01:04:52,340 Die eerste ding wat ek nodig het om te doen is wat ek nodig het om i inisialiseer. 1430 01:04:52,340 --> 01:04:56,570 Wat moet ek inisialiseer dit begin om te wees? 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 >> Dan moet ek sê, wat is die toestand beëindiging? 1434 01:05:00,950 --> 01:05:03,020 Wanneer moet ek ophou? 1435 01:05:03,020 --> 01:05:05,983 Wel hoeveel kolletjies doen jy wil druk op hierdie een? 1436 01:05:05,983 --> 01:05:06,921 >> GEHOOR: Five. 1437 01:05:06,921 --> 01:05:08,170 BRIAN SCASSELLATI: Vyf weer? 1438 01:05:08,170 --> 01:05:10,650 Hoe gaan laat iets te doen anders, ons het vyf. 1439 01:05:10,650 --> 01:05:12,584 Kom ons wys dat dit anders is. 1440 01:05:12,584 --> 01:05:13,250 SPREKER 22: Twee. 1441 01:05:13,250 --> 01:05:13,580 BRIAN SCASSELLATI: Twee. 1442 01:05:13,580 --> 01:05:14,080 OK. 1443 01:05:14,080 --> 01:05:17,760 So as ek wil twee punte, wat moet ek hier sit? 1444 01:05:17,760 --> 01:05:19,140 >> GEHOOR: Drie. 1445 01:05:19,140 --> 01:05:20,530 >> BRIAN SCASSELLATI: Drie. 1446 01:05:20,530 --> 01:05:21,400 OK. 1447 01:05:21,400 --> 01:05:24,220 Hoeveel keer is dat gaan om te gaan deur middel van? 1448 01:05:24,220 --> 01:05:28,469 Dit gaan om te gaan deur middel van drie keer, 0, 1, 2 en, reg? 1449 01:05:28,469 --> 01:05:30,010 Alle reg, laat ons gaan terug na twee. 1450 01:05:30,010 --> 01:05:31,570 Nou sal ons twee kolle kry. 1451 01:05:31,570 --> 01:05:35,800 En wat wil ek elke doen keer as ek gaan deur die loop? 1452 01:05:35,800 --> 01:05:38,657 Wat het verander elke keer as ek gaan deur? 1453 01:05:38,657 --> 01:05:39,850 >> SPREKER 23: Voeg 'n dot. 1454 01:05:39,850 --> 01:05:41,020 >> BRIAN SCASSELLATI: Ek het om aan te hou. 1455 01:05:41,020 --> 01:05:41,978 Ek gaan 'n punt toe te voeg. 1456 01:05:41,978 --> 01:05:45,310 Ek gaan 'n punt te druk, elke keer deur die loop. 1457 01:05:45,310 --> 01:05:49,990 Maar hoe ek die dop van hoe baie keer Ek het deur die lus was? 1458 01:05:49,990 --> 01:05:53,260 Ek gebruik i, wat veranderlike, wat toonbank. 1459 01:05:53,260 --> 01:05:57,110 >> So elke keer deur, ek gaan om die toonbank te inkrementeer een. 1460 01:05:57,110 --> 01:06:00,670 Nou, dit is dieselfde vir my gesê i = i + 1. 1461 01:06:00,670 --> 01:06:01,210 Dit is OK. 1462 01:06:01,210 --> 01:06:04,653 Ek kan dit doen that-- Ek hou van die snelskrif, so ek gaan om te sê I ++. 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 >> Kom ons doen dieselfde ding af hier aan die onderkant. 1466 01:06:10,680 --> 01:06:11,846 Net ek het soort van daardie een. 1467 01:06:11,846 --> 01:06:13,990 Ek gaan julle ouens laat hierdie een heeltemal te doen. 1468 01:06:13,990 --> 01:06:14,260 Alles reg. 1469 01:06:14,260 --> 01:06:15,426 >> So, wat moet ek hier skryf? 1470 01:06:15,426 --> 01:06:17,170 Hier is my lus. 1471 01:06:17,170 --> 01:06:23,162 Ek gaan 'n printf (doen) en ek gaan om dit te maak sodat ek net een dot druk 1472 01:06:23,162 --> 01:06:25,740 op daardie bodem. 1473 01:06:25,740 --> 01:06:27,740 >> Wat moet ek skryf binne hierdie lus nou? 1474 01:06:27,740 --> 01:06:30,897 1475 01:06:30,897 --> 01:06:33,948 Wel, die eerste van alles wat veranderlikes moet ek gebruik? 1476 01:06:33,948 --> 01:06:35,430 >> SPREKER 24: j. 1477 01:06:35,430 --> 01:06:36,880 >> BRIAN SCASSELLATI: Ek kon j gebruik. 1478 01:06:36,880 --> 01:06:38,040 Kan ek dieselfde een te gebruik? 1479 01:06:38,040 --> 01:06:39,961 Kan ek weer gebruik ek? 1480 01:06:39,961 --> 01:06:40,460 Ja. 1481 01:06:40,460 --> 01:06:45,531 Dit is OK, want die is wat ek gebruik hier, 1482 01:06:45,531 --> 01:06:47,780 Ek het hulle nie weer wanneer nodig Ek kry op hierdie punt. 1483 01:06:47,780 --> 01:06:52,240 1484 01:06:52,240 --> 01:06:53,790 >> So, wat moet ek inisialiseer i om? 1485 01:06:53,790 --> 01:06:56,675 1486 01:06:56,675 --> 01:06:57,300 SPREKER 25: 10. 1487 01:06:57,300 --> 01:06:58,567 BRIAN SCASSELLATI: 0. 1488 01:06:58,567 --> 01:06:59,400 Wat moet ek gaan? 1489 01:06:59,400 --> 01:07:02,960 Hoeveel kolle moet ek nou aan die einde as ek twee kolle het aan die begin? 1490 01:07:02,960 --> 01:07:05,820 1491 01:07:05,820 --> 01:07:09,165 Ek moet agt aan die einde, so wat Ek moet gaan, ek minder than-- 1492 01:07:09,165 --> 01:07:12,645 >> GEHOOR: Sewe, agt, nege. 1493 01:07:12,645 --> 01:07:14,020 BRIAN SCASSELLATI: Ek het gehoor sewe. 1494 01:07:14,020 --> 01:07:14,810 Ek het gehoor agt. 1495 01:07:14,810 --> 01:07:15,970 En ek hoor nege. 1496 01:07:15,970 --> 01:07:16,470 OK. 1497 01:07:16,470 --> 01:07:19,540 So ons is almal in die regte ball-- Jason sê 10. 1498 01:07:19,540 --> 01:07:21,550 OK. 1499 01:07:21,550 --> 01:07:25,920 >> As ek nodig twee kolle vir die eerste een, hoeveel te doen 1500 01:07:25,920 --> 01:07:30,170 I-- en ek moet agt punte vir die laaste one-- Ek het 'n twee bo, 1501 01:07:30,170 --> 01:07:31,743 wat moet ek hieronder neer te sit? 1502 01:07:31,743 --> 01:07:32,570 >> GEHOOR: Agt. 1503 01:07:32,570 --> 01:07:33,611 >> BRIAN SCASSELLATI: Agt. 1504 01:07:33,611 --> 01:07:35,695 Want dit gaan tel nul deur sewe. 1505 01:07:35,695 --> 01:07:38,490 En dit is agt keer deur die loop. 1506 01:07:38,490 --> 01:07:38,990 OK. 1507 01:07:38,990 --> 01:07:41,774 En wat moet ek doen aan die einde? 1508 01:07:41,774 --> 01:07:42,670 >> GEHOOR: i ++. 1509 01:07:42,670 --> 01:07:44,400 >> BRIAN SCASSELLATI: i ++. 1510 01:07:44,400 --> 01:07:45,440 Alles reg. 1511 01:07:45,440 --> 01:07:48,260 So dit is op soek na mooi goed daar. 1512 01:07:48,260 --> 01:07:50,620 Kom ons probeer dit en laat ons sien wat dit doen. 1513 01:07:50,620 --> 01:07:51,450 OK. 1514 01:07:51,450 --> 01:07:53,770 So ons gaan om dit te red. 1515 01:07:53,770 --> 01:07:54,940 Nice en gered word nie. 1516 01:07:54,940 --> 01:07:56,910 >> Ons sal terug uit zoom. 1517 01:07:56,910 --> 01:07:58,220 Ons sal hier probeer in die terminale. 1518 01:07:58,220 --> 01:08:01,440 1519 01:08:01,440 --> 01:08:02,970 Ons sal in zoom. 1520 01:08:02,970 --> 01:08:05,416 Oops. 1521 01:08:05,416 --> 01:08:09,990 Ons sal, een keer, maak ons ​​bunny program. 1522 01:08:09,990 --> 01:08:14,460 En gaan voort en voer haas. 1523 01:08:14,460 --> 01:08:15,980 En dit is daar. 1524 01:08:15,980 --> 01:08:17,710 >> So daar is ons haas. 1525 01:08:17,710 --> 01:08:25,130 Waar dit het twee kolletjies aan die begin en agt punte aan die einde. 1526 01:08:25,130 --> 01:08:27,540 Almal nog met my? 1527 01:08:27,540 --> 01:08:28,770 OK. 1528 01:08:28,770 --> 01:08:29,580 >> So het ons dit op. 1529 01:08:29,580 --> 01:08:33,000 Ons gebou een bunny, een spesifieke raam. 1530 01:08:33,000 --> 01:08:36,229 Nou het ons in staat was om veralgemeen wat om te bou 1531 01:08:36,229 --> 01:08:38,390 meer, verskillende soorte rame. 1532 01:08:38,390 --> 01:08:42,399 >> Nou laat gaan voort, en het dit genereer nie net een raam, 1533 01:08:42,399 --> 01:08:46,290 maar laat genereer 10 rame, waar ons stadig 1534 01:08:46,290 --> 01:08:50,569 maak die bunny beweeg al die pad oor die veld. 1535 01:08:50,569 --> 01:08:51,430 Alles reg. 1536 01:08:51,430 --> 01:08:53,660 >> Kom ons gaan terug. 1537 01:08:53,660 --> 01:08:54,839 En ons sal nou probeer. 1538 01:08:54,839 --> 01:09:00,680 1539 01:09:00,680 --> 01:09:02,830 So, wat moet ek regtig hier te verander? 1540 01:09:02,830 --> 01:09:06,139 1541 01:09:06,139 --> 01:09:07,180 Wat het ek nodig om te verander? 1542 01:09:07,180 --> 01:09:10,638 >> SPREKER 26: Jy moet eers verander die aantal kolletjies maksimum 1543 01:09:10,638 --> 01:09:11,626 Aan die begin. 1544 01:09:11,626 --> 01:09:16,850 Want as ons doen 10 punte, dit gaan nodig het om te skaal. 1545 01:09:16,850 --> 01:09:17,850 BRIAN SCASSELLATI: Ja. 1546 01:09:17,850 --> 01:09:23,760 So nou het ek dit soort van geprogrammeer om altyd te doen twee kolle aan die begin 1547 01:09:23,760 --> 01:09:27,890 en altyd agt punte aan die einde. 1548 01:09:27,890 --> 01:09:30,660 >> Ek wil 'n ander loop bou, reg? 1549 01:09:30,660 --> 01:09:33,290 Want ek wil nie bou net een bunny prentjie 1550 01:09:33,290 --> 01:09:37,140 Ek wil 10 bunny foto te bou. 1551 01:09:37,140 --> 01:09:41,500 So ek moet na 'n ander te bou lus, en as ek gaan deur daardie lus, 1552 01:09:41,500 --> 01:09:44,660 Ek wil om te verander hoeveel kolletjies ek druk aan die begin 1553 01:09:44,660 --> 01:09:50,529 en hoeveel kolletjies ek druk aan die einde, gebaseer op wat siklus deur die lus 1554 01:09:50,529 --> 01:09:52,270 Ek's in. 1555 01:09:52,270 --> 01:09:52,770 Alles reg. 1556 01:09:52,770 --> 01:09:54,430 >> So laat ons kry 'n ander toonbank. 1557 01:09:54,430 --> 01:09:58,142 Iemand het gesê voordat j, so ons sal 'n ander j te maak. 1558 01:09:58,142 --> 01:10:00,100 En nou, ons gaan bou 'n ander vir lus. 1559 01:10:00,100 --> 01:10:02,650 1560 01:10:02,650 --> 01:10:06,200 >> Wat gaan binne-in dat lus? 1561 01:10:06,200 --> 01:10:09,060 Hierdie dinge het om te gaan binne die lus, reg? 1562 01:10:09,060 --> 01:10:11,190 Maak die bunny het om te gaan binne die lus? 1563 01:10:11,190 --> 01:10:13,390 Het ek 'n bunny in elk van die 10 rame? 1564 01:10:13,390 --> 01:10:14,099 >> GEHOOR: Uh-huh. 1565 01:10:14,099 --> 01:10:15,098 BRIAN SCASSELLATI: Ja. 1566 01:10:15,098 --> 01:10:17,250 Ek wil 'n bunny in elke van die 10 rame, reg? 1567 01:10:17,250 --> 01:10:20,531 Hoe oor die kolletjies op die einde, doen ek dit nodig? 1568 01:10:20,531 --> 01:10:21,030 OK. 1569 01:10:21,030 --> 01:10:22,550 >> So ek gaan almal van hulle keep. 1570 01:10:22,550 --> 01:10:25,110 Ek gaan al beklemtoon hierdie, en ek gaan om te tref Tab. 1571 01:10:25,110 --> 01:10:28,590 En wat gaan hulle almal oor stoot 'n bietjie, sodat dit maklik vir my 1572 01:10:28,590 --> 01:10:32,010 om te sien wat in die lus. 1573 01:10:32,010 --> 01:10:33,710 En dan sal ek dit te beëindig. 1574 01:10:33,710 --> 01:10:35,850 Kom ons sê. 1575 01:10:35,850 --> 01:10:36,430 OK? 1576 01:10:36,430 --> 01:10:39,230 >> Nou, in hierdie lus wat Ek is building-- Oeps, 1577 01:10:39,230 --> 01:10:43,810 maak wat so kan jy see-- Ek het my counter j. 1578 01:10:43,810 --> 01:10:45,630 Ek sal dit begin by 0. 1579 01:10:45,630 --> 01:10:47,829 Hoeveel keer wil ek om te gaan deur middel van hierdie lus? 1580 01:10:47,829 --> 01:10:48,620 GEHOOR: 10 keer. 1581 01:10:48,620 --> 01:10:49,786 BRIAN SCASSELLATI: 10 keer. 1582 01:10:49,786 --> 01:10:51,402 So watter getal moet ek hier sit? 1583 01:10:51,402 --> 01:10:52,880 >> GEHOOR: 9, 10. 1584 01:10:52,880 --> 01:10:55,600 >> BRIAN SCASSELLATI: 9, 10, iemand se het om te sê 11, reg? 1585 01:10:55,600 --> 01:10:58,190 1586 01:10:58,190 --> 01:11:01,585 Ek wou twee kolle voor en sit i minder as 2. 1587 01:11:01,585 --> 01:11:03,810 Ek wou agt punte, Ek sit i minder as 8. 1588 01:11:03,810 --> 01:11:06,950 Nou wil ek gaan deur 10 tye, so ek het j minder than-- 1589 01:11:06,950 --> 01:11:07,590 >> GEHOOR: 10. 1590 01:11:07,590 --> 01:11:08,610 >> BRIAN SCASSELLATI: 10. 1591 01:11:08,610 --> 01:11:10,150 Daar gaan ons. 1592 01:11:10,150 --> 01:11:13,360 En wat doen ek aan die einde j? 1593 01:11:13,360 --> 01:11:15,310 ++, Inkrementeer dit. 1594 01:11:15,310 --> 01:11:16,230 OK. 1595 01:11:16,230 --> 01:11:21,500 Nou, hier is die moeilike deel, wat is gaan nou as ek dit doen gebeur? 1596 01:11:21,500 --> 01:11:24,537 Gaan ek 10 rame druk? 1597 01:11:24,537 --> 01:11:26,370 SPREKER 27: Ek dink hulle sal almal dieselfde wees. 1598 01:11:26,370 --> 01:11:28,453 BRIAN SCASSELLATI: Hulle sal almal dieselfde, reg? 1599 01:11:28,453 --> 01:11:31,750 Omdat almal van hulle is nog steeds gaan twee punte aan die begin sit. 1600 01:11:31,750 --> 01:11:34,162 Maar ek weet nie alles wil het twee kolletjies die begin. 1601 01:11:34,162 --> 01:11:35,870 Hoeveel kolle ek wil aan die begin? 1602 01:11:35,870 --> 01:11:39,097 1603 01:11:39,097 --> 01:11:40,020 >> GEHOOR: verander. 1604 01:11:40,020 --> 01:11:42,840 >> BRIAN SCASSELLATI: Ek dit wil verander, reg? 1605 01:11:42,840 --> 01:11:46,588 So, wat moet ek hier dat die veranderende elke keer as die lus gaan deur? 1606 01:11:46,588 --> 01:11:48,242 >> GEHOOR: Aantal punte, j. 1607 01:11:48,242 --> 01:11:49,950 BRIAN SCASSELLATI: j, die aantal kolletjies. 1608 01:11:49,950 --> 01:11:54,782 So ek kan dit verander om j wees. 1609 01:11:54,782 --> 01:11:59,190 Die eerste keer deur die lus, wat is dit gaan wees? 1610 01:11:59,190 --> 01:12:01,700 Wat kan ek j ten eerste? 1611 01:12:01,700 --> 01:12:02,420 >> GEHOOR: 0. 1612 01:12:02,420 --> 01:12:05,700 >> BRIAN SCASSELLATI: So hoeveel keer gaan ek dit doen? 1613 01:12:05,700 --> 01:12:06,750 0. 1614 01:12:06,750 --> 01:12:11,750 Die tweede keer deur die lus, j se gaan wees 1, want ek inkrementeer dit. 1615 01:12:11,750 --> 01:12:14,180 Hoeveel kolle gaan ek druk? 1616 01:12:14,180 --> 01:12:15,100 1. 1617 01:12:15,100 --> 01:12:19,904 Die derde keer deur die lus, Hoeveel kolle gaan ek druk? 1618 01:12:19,904 --> 01:12:20,587 >> GEHOOR: Drie. 1619 01:12:20,587 --> 01:12:22,170 BRIAN SCASSELLATI: j gaan wees 3. 1620 01:12:22,170 --> 01:12:24,890 Hoeveel kolle gaan ek druk? 1621 01:12:24,890 --> 01:12:26,817 O, jammer, j gaan wees 2. 1622 01:12:26,817 --> 01:12:28,233 Hoeveel kolle gaan ek druk? 1623 01:12:28,233 --> 01:12:28,980 >> GEHOOR: 2. 1624 01:12:28,980 --> 01:12:29,855 >> BRIAN SCASSELLATI: 2. 1625 01:12:29,855 --> 01:12:32,460 OK, so ek gaan hou die verhoog dat as ons gaan saam. 1626 01:12:32,460 --> 01:12:33,460 Hoe gaan daaronder? 1627 01:12:33,460 --> 01:12:34,310 Wat gaan hier af? 1628 01:12:34,310 --> 01:12:38,080 Ek wil nie altyd 8 aan die einde nie? 1629 01:12:38,080 --> 01:12:39,269 >> SPREKER 28: 10. 1630 01:12:39,269 --> 01:12:40,685 BRIAN SCASSELLATI: Ek wil 10 punte? 1631 01:12:40,685 --> 01:12:43,440 1632 01:12:43,440 --> 01:12:44,620 Ek wil dit verander, ook. 1633 01:12:44,620 --> 01:12:47,469 So hoe kan ek dit wil hê om te verander? 1634 01:12:47,469 --> 01:12:49,167 >> GEHOOR: [onhoorbaar]. 1635 01:12:49,167 --> 01:12:51,750 BRIAN SCASSELLATI: Wel, as ek het vyf punte aan die begin, 1636 01:12:51,750 --> 01:12:53,293 hoeveel dot se kry ek aan die einde? 1637 01:12:53,293 --> 01:12:54,020 >> GEHOOR: Five. 1638 01:12:54,020 --> 01:12:55,630 >> BRIAN SCASSELLATI: As ek ses punte aan die begin, 1639 01:12:55,630 --> 01:12:56,875 hoeveel kry ek aan die einde? 1640 01:12:56,875 --> 01:12:57,500 GEHOOR: Vier. 1641 01:12:57,500 --> 01:12:58,950 BRIAN SCASSELLATI: As ek sewe punte aan die begin, 1642 01:12:58,950 --> 01:13:00,204 hoeveel kry ek aan die einde? 1643 01:13:00,204 --> 01:13:00,870 GEHOOR: Drie. 1644 01:13:00,870 --> 01:13:03,161 BRIAN SCASSELLATI: As ek het het j kolletjies aan die begin, 1645 01:13:03,161 --> 01:13:04,790 hoeveel kry ek aan die einde? 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 So kom ons probeer dat uit. 1649 01:13:10,390 --> 01:13:13,180 >> So ek gaan om ons bunny program te red. 1650 01:13:13,180 --> 01:13:16,270 Weereens sal ons uit te zoem. 1651 01:13:16,270 --> 01:13:19,090 Ons sal afgaan om ons terminale. 1652 01:13:19,090 --> 01:13:20,180 Ons sal dit skoon te maak. 1653 01:13:20,180 --> 01:13:23,410 En zoom in. 1654 01:13:23,410 --> 01:13:26,410 Ons sal ons bunny program weer te maak. 1655 01:13:26,410 --> 01:13:27,690 En ons sal dit uit te voer. 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 >> Hou op, laat ons zoom uit. 1659 01:13:34,580 --> 01:13:36,860 Het ek 10 rame? 1660 01:13:36,860 --> 01:13:38,970 Wel, hoeveel hasies sien ek daar? 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 Ek het 10 rame. 1663 01:13:44,820 --> 01:13:46,375 Is hulle almal dieselfde? 1664 01:13:46,375 --> 01:13:47,000 GEHOOR: Ja. 1665 01:13:47,000 --> 01:13:48,740 Geen. 1666 01:13:48,740 --> 01:13:50,000 >> BRIAN SCASSELLATI: No. 1667 01:13:50,000 --> 01:13:55,050 Daardie eerste een is, die bunny is ver aan die linkerkant. 1668 01:13:55,050 --> 01:13:57,541 En hier, die bunny is ver oor die 1669 01:13:57,541 --> 01:13:58,290 SPREKER 29: Right. 1670 01:13:58,290 --> 01:14:00,502 BRIAN SCASSELLATI: So, wat het ek vergeet om te doen? 1671 01:14:00,502 --> 01:14:01,750 SPREKER 30: Begin 'n nuwe lyn. 1672 01:14:01,750 --> 01:14:04,041 BRIAN SCASSELLATI: ek vergeet om 'n nuwe lyn te begin, weer. 1673 01:14:04,041 --> 01:14:05,270 Dieselfde fout wat ek voor gemaak word. 1674 01:14:05,270 --> 01:14:07,120 Alle reg, laat ons gaan regmaak. 1675 01:14:07,120 --> 01:14:11,690 Nou, het ek nog steeds het die kode daar 'n nuwe lyn te maak. 1676 01:14:11,690 --> 01:14:13,899 Hoekom het dit nie werk nie? 1677 01:14:13,899 --> 01:14:15,440 SPREKER 31: Dit is nie binne die lus. 1678 01:14:15,440 --> 01:14:17,710 BRIAN SCASSELLATI: O, dit is nie binne die lus. 1679 01:14:17,710 --> 01:14:18,520 Dis reg. 1680 01:14:18,520 --> 01:14:20,150 Dit is buite sit hier. 1681 01:14:20,150 --> 01:14:23,470 1682 01:14:23,470 --> 01:14:29,050 En die lus vir 'alles dit is binne-in die teks. 1683 01:14:29,050 --> 01:14:35,500 >> So ek gaan om te beweeg hierdie binne-in die lus. 1684 01:14:35,500 --> 01:14:39,410 En ek sal Tab in die voorkant van dit toon dat dit is in die regte plek. 1685 01:14:39,410 --> 01:14:42,020 En nou, ons sal dit weer te red. 1686 01:14:42,020 --> 01:14:44,350 Ons sal uit te zoem. 1687 01:14:44,350 --> 01:14:45,770 Ons sal aan ons terminale skakel. 1688 01:14:45,770 --> 01:14:48,330 1689 01:14:48,330 --> 01:14:50,360 Zoom in. 1690 01:14:50,360 --> 01:14:54,050 Ons sal ons bunny program remake. 1691 01:14:54,050 --> 01:14:59,070 En nou, nou is ons het ons 10 rame. 1692 01:14:59,070 --> 01:15:00,190 >> [Klap] 1693 01:15:00,190 --> 01:15:02,120 >> BRIAN SCASSELLATI: OK. 1694 01:15:02,120 --> 01:15:04,080 Doen. 1695 01:15:04,080 --> 01:15:08,370 Hier is ons nes vir loops. 1696 01:15:08,370 --> 01:15:13,140 Ons was in staat om te genereer in die innerlike lus hoeveel kolletjies Ek wou 1697 01:15:13,140 --> 01:15:15,320 druk op die begin, aan die einde. 1698 01:15:15,320 --> 01:15:21,570 En die buitenste lus beheer hoeveel rame ek bou. 1699 01:15:21,570 --> 01:15:26,340 Ons het begin met 'n klein kern van die probleem, 1700 01:15:26,340 --> 01:15:30,320 en ons het uit daardie punt. 1701 01:15:30,320 --> 01:15:30,820 Alles reg. 1702 01:15:30,820 --> 01:15:33,500 >> Kom ons doen 'n stap. 1703 01:15:33,500 --> 01:15:35,040 Jy gereed? 1704 01:15:35,040 --> 01:15:38,800 Daar is een ding hier waar Ons het eintlik soort van het 1705 01:15:38,800 --> 01:15:42,180 meer kompleksiteit as wat ons nodig het. 1706 01:15:42,180 --> 01:15:44,700 Kom ons neem 'n blik. 1707 01:15:44,700 --> 01:15:52,050 So in ons bunny program, as ek hier zoom uit, 1708 01:15:52,050 --> 01:15:54,980 Ek het eintlik 'n paar van die dieselfde te doen ding oor en oor weer. 1709 01:15:54,980 --> 01:15:59,032 Wat doen ek dit is soort van dieselfde ding twee keer herhaal? 1710 01:15:59,032 --> 01:16:00,310 >> SPREKER 32: Druk die punte. 1711 01:16:00,310 --> 01:16:03,526 >> BRIAN SCASSELLATI: Ja Ek druk die kolletjies twee keer. 1712 01:16:03,526 --> 01:16:05,710 Regtig, moet ek hierdie opmerking hier af. 1713 01:16:05,710 --> 01:16:09,037 Ek druk 'n paar punte by die begin, reg hier. 1714 01:16:09,037 --> 01:16:10,620 En dan 'n paar kolle druk ek aan die einde. 1715 01:16:10,620 --> 01:16:14,694 En ek doen soort van presies dieselfde ding. 1716 01:16:14,694 --> 01:16:17,110 Wat ons gaan begin werk in die volgende paar weke 1717 01:16:17,110 --> 01:16:23,440 is in staat om die blokke te neem kode wat ons gebruik oor en oor weer, 1718 01:16:23,440 --> 01:16:25,800 en deur 'n proses genoem abstraksie, 1719 01:16:25,800 --> 01:16:31,100 ons gaan hulle trek uit en skryf dit een keer, sodat ons kan dan 1720 01:16:31,100 --> 01:16:35,130 hergebruik hulle oor en oor weer. 1721 01:16:35,130 --> 01:16:37,210 So kom ons probeer dit. 1722 01:16:37,210 --> 01:16:38,220 Gereed? 1723 01:16:38,220 --> 01:16:42,200 >> Ons gaan hierdie blok van die kode te neem. 1724 01:16:42,200 --> 01:16:45,280 En ek gaan om dit te neem daar uit. 1725 01:16:45,280 --> 01:16:50,530 En ek gaan define-- af aan die onderkant, 1726 01:16:50,530 --> 01:16:53,130 Ek gaan 'n nuwe funksie te skryf. 1727 01:16:53,130 --> 01:16:54,750 Dit is nie van plan om iets terug te keer. 1728 01:16:54,750 --> 01:16:58,550 En ek gaan om dit te noem printDots. 1729 01:16:58,550 --> 01:17:01,530 >> Dit gaan om een ​​te neem argument, 'n heelgetal wat 1730 01:17:01,530 --> 01:17:04,920 sê howManyDots ek moet druk. 1731 01:17:04,920 --> 01:17:09,310 1732 01:17:09,310 --> 01:17:17,720 En nou in plaas van druk j kolletjies, sal ek druk howManyDots ek moet druk te vertel. 1733 01:17:17,720 --> 01:17:21,581 >> En daar is hier een klein probleem. 1734 01:17:21,581 --> 01:17:22,580 Enigiemand wat weet wat dit is? 1735 01:17:22,580 --> 01:17:27,270 1736 01:17:27,270 --> 01:17:31,505 Wat moet ek dit is gelys hier dit is nie gedefinieer? 1737 01:17:31,505 --> 01:17:34,165 1738 01:17:34,165 --> 01:17:35,090 >> GEHOOR: [onhoorbaar] 1739 01:17:35,090 --> 01:17:37,465 >> BRIAN SCASSELLATI: Wel hoe baie kolle gedefinieer reg 1740 01:17:37,465 --> 01:17:40,584 hier, maar ek gebruik dit veranderlike i. 1741 01:17:40,584 --> 01:17:43,750 So ek gaan daardie veranderlike neem i en ek gaan om dit af te definieer in hier 1742 01:17:43,750 --> 01:17:44,610 plaas. 1743 01:17:44,610 --> 01:17:49,683 >> Dus is dit nou gaan stay-- oops, het die caps lock op somehow-- Ek is 1744 01:17:49,683 --> 01:17:52,060 gaan i laag te hou hier. 1745 01:17:52,060 --> 01:17:57,050 >> So nou hier is my klein funksie of sub-roetine, en dit sê, 1746 01:17:57,050 --> 01:18:00,640 Hoeveel kolle gaan ek druk? 1747 01:18:00,640 --> 01:18:05,300 En dit sal gaan deur hierdie lus en druk hulle oor en oor weer. 1748 01:18:05,300 --> 01:18:10,940 >> Ek kan dan my program hier verander het. 1749 01:18:10,940 --> 01:18:12,540 En wat het ek noem daardie funksie? 1750 01:18:12,540 --> 01:18:13,960 printDots. 1751 01:18:13,960 --> 01:18:17,060 So ek sal printDots noem. 1752 01:18:17,060 --> 01:18:21,530 Hoeveel kolle ek wil druk die eerste keer voor die bunny? 1753 01:18:21,530 --> 01:18:22,030 GEHOOR: j. 1754 01:18:22,030 --> 01:18:23,230 BRIAN SCASSELLATI: j. 1755 01:18:23,230 --> 01:18:27,110 Hoeveel kolle ek wil druk aan die einde, na die 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 >> En daar is een ding wat ek mis. 1760 01:18:38,010 --> 01:18:43,740 As jy gesien het in lesing vandag ons gaan printDots verklaar 1761 01:18:43,740 --> 01:18:52,430 bo die prototipe te gee. 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 >> So, wat ek gedoen het is ek het probeer om isoleer wat hergebruik deel van die kode 1765 01:19:03,530 --> 01:19:06,430 dat ek oor en oor weer gedoen het. 1766 01:19:06,430 --> 01:19:11,120 En ek het probeer om dit uit te trek sodat al wat is vervat in 'n plek. 1767 01:19:11,120 --> 01:19:16,810 Op dié manier, as ek 'n fout gemaak het iewers, Ek het net om dit op te los in een plek. 1768 01:19:16,810 --> 01:19:17,310 Alles reg. 1769 01:19:17,310 --> 01:19:18,470 >> So laat dit red. 1770 01:19:18,470 --> 01:19:20,950 En laat ons seker maak dit werk. 1771 01:19:20,950 --> 01:19:22,050 So laat uitgaan. 1772 01:19:22,050 --> 01:19:25,200 Ons sal weer na ons terminale. 1773 01:19:25,200 --> 01:19:27,960 Ons sal in zoom. 1774 01:19:27,960 --> 01:19:31,010 Ons sal dit bunny proses te maak. 1775 01:19:31,010 --> 01:19:32,380 >> Oh. 1776 01:19:32,380 --> 01:19:34,800 En dit is aan my gegee 'n waarskuwing. 1777 01:19:34,800 --> 01:19:37,070 Wat is dit vir my vertel? 1778 01:19:37,070 --> 01:19:39,870 Wel, in enige van hierdie tye, jy wil altyd 1779 01:19:39,870 --> 01:19:44,170 om te beweeg na die heel eerste error-- nou op hierdie een, het ek nog net een gekry. 1780 01:19:44,170 --> 01:19:52,700 >> Dit sê vir my in bunny.c, op die lyn 8, 9 kolom, daar is 'n probleem. 1781 01:19:52,700 --> 01:19:58,650 Dit sê, jy dit verklaar het veranderlike i en julle het dit nie gebruik nie. 1782 01:19:58,650 --> 01:20:02,230 >> Nou gewoonlik, dis nie die ergste fout. 1783 01:20:02,230 --> 01:20:04,300 Dit is 'n maklike een om op te los. 1784 01:20:04,300 --> 01:20:07,550 En in die feit, kan ons terug gaan. 1785 01:20:07,550 --> 01:20:09,910 Ons kan terug te gaan na haas. 1786 01:20:09,910 --> 01:20:13,010 En in hierdie geval, al wat ons hoef te doen is om ontslae te raak van die i, 1787 01:20:13,010 --> 01:20:16,630 omdat ons nie die gebruik van i binne belangrikste nie. 1788 01:20:16,630 --> 01:20:19,860 Ons is net om dit te gebruik binne ons sub-roetine. 1789 01:20:19,860 --> 01:20:22,777 >> So laat red. 1790 01:20:22,777 --> 01:20:23,360 Ons sal terug te gaan. 1791 01:20:23,360 --> 01:20:26,760 1792 01:20:26,760 --> 01:20:28,630 En zoom in. 1793 01:20:28,630 --> 01:20:30,700 Ons sal nog een keer te maak bunny. 1794 01:20:30,700 --> 01:20:33,810 1795 01:20:33,810 --> 01:20:36,530 En weer daar is ons 10 rame. 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 >> Enige tyd wat jy gegee 'n procedure-- Ja. 1799 01:20:43,190 --> 01:20:44,690 SPREKER 33: Ek het a-- Ek is verward. 1800 01:20:44,690 --> 01:20:45,892 Kan jy terug na die kode gaan? 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 >> SPREKER 33: So, wanneer jy skryf jou prototipe, die argument wat jy 1804 01:20:54,367 --> 01:20:56,550 het dit die naam is howMany genoem? 1805 01:20:56,550 --> 01:20:57,540 Maar, below-- 1806 01:20:57,540 --> 01:20:57,640 >> BRIAN SCASSELLATI: O ja. 1807 01:20:57,640 --> 01:20:59,140 >> SPREKER 33: --called hulle iets anders, ek verstaan ​​nie. 1808 01:20:59,140 --> 01:21:00,240 >> BRIAN SCASSELLATI: Hoekom is hulle anders. 1809 01:21:00,240 --> 01:21:01,780 So dit is 'n groot vraag. 1810 01:21:01,780 --> 01:21:08,250 So die vraag is, tot hier het ek geskryf howMany, 1811 01:21:08,250 --> 01:21:12,380 en onder af, het ek geskryf howManyDots. 1812 01:21:12,380 --> 01:21:15,590 >> Die rede hiervoor is dat in jou prototipe, dit is eintlik nie aandag 1813 01:21:15,590 --> 01:21:17,090 om die name wat jy sit in. 1814 01:21:17,090 --> 01:21:20,530 Al wat dit regtig omgee oor is dat dit 'n heelgetal. 1815 01:21:20,530 --> 01:21:23,080 Dit wil die vorm weet van wat jy om in. 1816 01:21:23,080 --> 01:21:31,560 >> Nou stylistically-- oops-- wat ek moet nie, is ek graag hierdie wedstryd te maak. 1817 01:21:31,560 --> 01:21:33,150 OK. 1818 01:21:33,150 --> 01:21:36,430 Want dit sal hou dit makliker vir my om te onthou. 1819 01:21:36,430 --> 01:21:38,390 Maar dit was my fout Ja. 1820 01:21:38,390 --> 01:21:47,620 >> SPREKER 34: En so vir die prototipe te werk, net 1821 01:21:47,620 --> 01:21:50,510 skryf dat die lyn, die skryf van die prototipe, 1822 01:21:50,510 --> 01:21:53,932 kan daardie funksie wat kom reg onder dit om te gaan na die einde 1823 01:21:53,932 --> 01:21:55,140 en haal wat dit beteken? 1824 01:21:55,140 --> 01:21:58,480 >> BRIAN SCASSELLATI: Wat dit beteken is wanneer die samesteller gaan deur, 1825 01:21:58,480 --> 01:22:01,930 dit gaan van die top van jou kode aan die onderkant. 1826 01:22:01,930 --> 01:22:05,430 En wat dit prototipe is, is dit is basies 'n belofte. 1827 01:22:05,430 --> 01:22:09,570 >> Dit sê, daar gaan wees 'n funksie iewers gedefinieer. 1828 01:22:09,570 --> 01:22:11,880 Dit gaan 'n beroep printDots wees. 1829 01:22:11,880 --> 01:22:15,110 En dit gaan 'n argument te neem wat gaan om 'n heelgetal wees 1830 01:22:15,110 --> 01:22:18,590 en dit gaan om terug te keer niks, nietig tipe. 1831 01:22:18,590 --> 01:22:19,310 OK. 1832 01:22:19,310 --> 01:22:22,950 Ek belowe jou dit gaan wees iewers gedefinieer in die pad af. 1833 01:22:22,950 --> 01:22:25,590 Maar enige tyd wat jy sien dat as jy gaan af 1834 01:22:25,590 --> 01:22:28,710 deur die res van my hooffunksie, ek wil 1835 01:22:28,710 --> 01:22:33,800 jy behandel wat as 'n funksie wat neem een ​​heelgetal insette. 1836 01:22:33,800 --> 01:22:37,970 >> En so wanneer die samesteller gaan af deur middel van hierdie, is dit sien dat die belofte. 1837 01:22:37,970 --> 01:22:40,220 En wanneer dit af, hou gaan, gaan hou, 1838 01:22:40,220 --> 01:22:43,060 dit vind die eerste keer printDots genoem word. 1839 01:22:43,060 --> 01:22:46,910 En dit sê, O, jy gee my j. j is 'n heelgetal. 1840 01:22:46,910 --> 01:22:49,570 >> Wel, jy my belowe dat sou 'n heelgetal en dit is reg. 1841 01:22:49,570 --> 01:22:51,370 Dit is OK. 1842 01:22:51,370 --> 01:22:53,880 En dan uiteindelik, af aan die onderkant, 1843 01:22:53,880 --> 01:22:58,340 voordat ek by die einde van my lêer, Ek maak goed op my belofte 1844 01:22:58,340 --> 01:22:59,896 en ek definieer. 1845 01:22:59,896 --> 01:23:01,868 OK? 1846 01:23:01,868 --> 01:23:06,320 >> SPREKER 35: So, is dit die saves-- program sal oop ruimtes te red 1847 01:23:06,320 --> 01:23:09,570 dat dit gaan terug en vul aan die einde? 1848 01:23:09,570 --> 01:23:12,140 >> BRIAN SCASSELLATI: Dit is nie oor die geheue toekenning. 1849 01:23:12,140 --> 01:23:16,800 Dit is eintlik net oor wat tipe is wat jy verwag om te sien. 1850 01:23:16,800 --> 01:23:19,340 Moet hierdie ding het een argument, of vyf argumente? 1851 01:23:19,340 --> 01:23:23,590 Moet hê dit heelgetalle gegee word nie, of snare? 1852 01:23:23,590 --> 01:23:25,780 Dit is al wat dit is op soek te doen, is om seker te maak, 1853 01:23:25,780 --> 01:23:29,303 jy gee my die regte soort argument. 1854 01:23:29,303 --> 01:23:31,560 OK? 1855 01:23:31,560 --> 01:23:32,300 Alles reg. 1856 01:23:32,300 --> 01:23:38,570 >> Laat ek jou verlaat met een ander bietjie na te kyk. 1857 01:23:38,570 --> 01:23:44,850 ASCII art is nie die groot model animasie soos dit vandag is. 1858 01:23:44,850 --> 01:23:50,850 Maar sommige mense natuurlik dinge en hulle stoot dit aan hul uiterstes. 1859 01:23:50,850 --> 01:23:56,790 >> Dit is, soos David gedemonstreer in lesing, 'n stukkie van die kode 1860 01:23:56,790 --> 01:24:02,150 dat jy moet onder geen omstandighede probeer om julle te dupliseer. 1861 01:24:02,150 --> 01:24:05,260 Want dit is verskriklik stilisties. 1862 01:24:05,260 --> 01:24:11,180 In werklikheid, is dit ontwerp om te wees as moeilik as moontlik te lees. 1863 01:24:11,180 --> 01:24:11,680 OK. 1864 01:24:11,680 --> 01:24:16,210 >> So, om weer te doen, laat ons in zoom hier. 1865 01:24:16,210 --> 01:24:20,120 Ek gaan nou gaan, verandering gids. 1866 01:24:20,120 --> 01:24:24,050 Ek gaan om te gaan een vlak, terug na my werkplek. 1867 01:24:24,050 --> 01:24:29,760 Ek sal dan verander na hierdie gids ander gids wat ek gemaak het. 1868 01:24:29,760 --> 01:24:36,190 >> En dit is die International Verborge C Programming Contest. 1869 01:24:36,190 --> 01:24:40,650 Verborge middel so hard as moontlik te verstaan. 1870 01:24:40,650 --> 01:24:44,150 So asseblief, moenie bang wees nie as jy kyk op hierdie en gaan, kan ek nie lees nie. 1871 01:24:44,150 --> 01:24:46,350 Dit is die punt van dit. 1872 01:24:46,350 --> 01:24:47,700 OK? 1873 01:24:47,700 --> 01:24:52,770 >> Maar, ons het hierdie wonderlike program wat ek is 1874 01:24:52,770 --> 01:24:57,180 gaan om te kyk na deur net te tik meer. 1875 01:24:57,180 --> 01:25:01,890 En laat ons sien of ek uit kan zoom net 'n bietjie, sodat jy kan dit sien 1876 01:25:01,890 --> 01:25:03,940 >> En dit is die program. 1877 01:25:03,940 --> 01:25:08,080 Dit is vernoem endo.c. 1878 01:25:08,080 --> 01:25:14,850 En dit lyk soos hierdie emmer met soort van die letters F-L-U-I-D in. 1879 01:25:14,850 --> 01:25:16,440 >> Dit is eintlik 'n program. 1880 01:25:16,440 --> 01:25:20,260 Dit is geskryf in die mees obskure manier dat die skrywers kon moontlik 1881 01:25:20,260 --> 01:25:21,760 skryf dit. 1882 01:25:21,760 --> 01:25:29,210 Maar dit is 'n wonderlike stukkie wat genereer 'n model van vloeidinamika. 1883 01:25:29,210 --> 01:25:34,870 >> En so gaan ons om te gee dat die model 'n inset wat 1884 01:25:34,870 --> 01:25:42,520 lyk soos hierdie, van 'n staired stel van houers 1885 01:25:42,520 --> 01:25:45,820 met 'n paar vloeistof, 'n paar vloeistof, by die top. 1886 01:25:45,820 --> 01:25:48,790 En ons sal dit simuleer wat gebeur om dit te. 1887 01:25:48,790 --> 01:25:52,415 >> So ek sal dit funksie, endo. 1888 01:25:52,415 --> 01:25:59,000 En ek sal dit gee wat insette lêer wat ek gehad het. 1889 01:25:59,000 --> 01:26:02,830 En daar is ons toonbeeld van ASCII art. 1890 01:26:02,830 --> 01:26:08,960 'N Volledige vloeistof dinamiese simulator hardloop in net 'n paar reëls van die kode. 1891 01:26:08,960 --> 01:26:13,750 >> Nou wat is eintlik regtig ongelooflike oor hierdie klein program 1892 01:26:13,750 --> 01:26:17,280 is dat ek wil dit nou stop, so ek gaan om dit wat opdrag gebruik? 1893 01:26:17,280 --> 01:26:18,660 >> GEHOOR: Control-C. 1894 01:26:18,660 --> 01:26:20,390 >> BRIAN SCASSELLATI: Control-C. OK. 1895 01:26:20,390 --> 01:26:22,960 So sal ek Control-C te gebruik. C Dit sal dit stop. 1896 01:26:22,960 --> 01:26:25,330 Ek sal weer skoon te maak. 1897 01:26:25,330 --> 01:26:31,210 En nou gaan ek die beroep program, uit te voer die program, 1898 01:26:31,210 --> 01:26:33,740 gebruik van homself as insette. 1899 01:26:33,740 --> 01:26:36,760 1900 01:26:36,760 --> 01:26:42,700 >> En ons sal die vloeistof dinamiese sien simulasie van dit smelt. 1901 01:26:42,700 --> 01:26:43,830 OK. 1902 01:26:43,830 --> 01:26:48,180 Moet asseblief nie laat die program wees die ding wat jy verwar. 1903 01:26:48,180 --> 01:26:52,220 Dit is net so dat ons kan eindig op iets koel en interessante. 1904 01:26:52,220 --> 01:26:53,930 OK. 1905 01:26:53,930 --> 01:26:56,330 >> Sterkte met jou probleem stelle. 1906 01:26:56,330 --> 01:26:59,030 Ons sal gelukkig wees om te antwoord vrae na die klas. 1907 01:26:59,030 --> 01:27:01,180 Dankie baie, ouens. 1908 01:27:01,180 --> 01:27:02,793