1 00:00:00,000 --> 00:00:05,830 2 00:00:05,830 --> 00:00:08,650 >> JASON HIRSCHHORN: Welkom op CS50 sectie, iedereen. 3 00:00:08,650 --> 00:00:11,430 Mijn naam is Jason Hirschhorn. 4 00:00:11,430 --> 00:00:15,850 Ik ben heel veel van jou TFs, maar veel mensen zullen hopelijk worden bij ons 5 00:00:15,850 --> 00:00:20,420 online, uitbreiding studenten of studenten proberen te kijken door afdeling, indien zij 6 00:00:20,420 --> 00:00:22,830 misten hun afdeling die week of gewoon inhalen als ze wilden 7 00:00:22,830 --> 00:00:24,510 om wat materiaal. 8 00:00:24,510 --> 00:00:30,060 >> Dus volgens de syllabus, waarin alle van u hebben gelezen, te corrigeren? 9 00:00:30,060 --> 00:00:31,390 Ik zie veel van het hoofd knikt. 10 00:00:31,390 --> 00:00:34,220 Secties bieden u mogelijkheden om te verkennen van de cursus 11 00:00:34,220 --> 00:00:37,420 materiaal in een meer intieme omgeving, evenals duiken in 12 00:00:37,420 --> 00:00:38,810 hands-on activiteiten. 13 00:00:38,810 --> 00:00:41,230 >> Dus dat is eigenlijk wat we gaat elke week te doen. 14 00:00:41,230 --> 00:00:45,090 We gaan om te gaan door wat we hebben bepaald de meest belangrijke zijn 15 00:00:45,090 --> 00:00:49,170 onderwerpen die in college, en degenen waarschijnlijk ook meest bruikbare en 16 00:00:49,170 --> 00:00:52,780 de meeste kans om te komen op probleem sets en in quizzen, en in uw codering 17 00:00:52,780 --> 00:00:53,970 leven buiten CS50. 18 00:00:53,970 --> 00:00:57,260 Dus we gaan om te gaan in deze onderwerpen, bespreken, gaat over hen, 19 00:00:57,260 --> 00:01:00,660 beantwoorden alle vragen die jullie hebben, en Vervolgens gaan we een hoop te doen 20 00:01:00,660 --> 00:01:02,250 praktijk problemen coderen. 21 00:01:02,250 --> 00:01:04,239 >> Je bracht alle laptops, die is fantastisch. 22 00:01:04,239 --> 00:01:05,710 Dit is een computer wetenschap klasse. 23 00:01:05,710 --> 00:01:10,070 Echter, veel van de oefeningen die we doen, zult u niet uw laptop nodig voor. 24 00:01:10,070 --> 00:01:11,720 Je kan ze doen op een vel papier. 25 00:01:11,720 --> 00:01:13,580 Dat is hoe je gaat doen ze op de quizzen. 26 00:01:13,580 --> 00:01:16,450 En inderdaad, dat is een geweldige manier om echt weet dat je hoe dat te doen 27 00:01:16,450 --> 00:01:19,720 iets als je niet hoeft te controleren 50 vertrouwen op of maken te vertrouwen op, vertellen 28 00:01:19,720 --> 00:01:20,620 u fouten gemaakt. 29 00:01:20,620 --> 00:01:25,670 >> Dus je bent welkom om code op de apparaat of run.cs50.net, dat is 30 00:01:25,670 --> 00:01:29,770 een andere tool die u toelaat om te coderen online, maar ik ook zou aanraden, als 31 00:01:29,770 --> 00:01:32,280 je niet hebt geprobeerd, met behulp van een vel papier en proberen deze praktijk 32 00:01:32,280 --> 00:01:33,640 problemen op een vel papier. 33 00:01:33,640 --> 00:01:35,330 Want nogmaals, dat is uiteindelijk wat je gaat worden 34 00:01:35,330 --> 00:01:37,430 gevraagd te doen op quizzen. 35 00:01:37,430 --> 00:01:44,080 >> Dus laten we beginnen met onze agenda voor vandaag. 36 00:01:44,080 --> 00:01:47,710 We gaan gaan over een aantal normen voor onze afdeling, dan gaan we duiken 37 00:01:47,710 --> 00:01:51,180 in arrays, functies, en de command line argumenten, dat is wat jullie 38 00:01:51,180 --> 00:01:56,200 hebben deze afgelopen week behandeld in college en dan maandag, en wat je te dekken 39 00:01:56,200 --> 00:01:57,330 meer van morgen. 40 00:01:57,330 --> 00:01:59,060 En dan tot slot, we gaan om te praten over pset2. 41 00:01:59,060 --> 00:02:03,640 Als ik een show van de handen kon krijgen als je heb niet gekeken naar het probleem set twee 42 00:02:03,640 --> 00:02:04,890 specificatie. 43 00:02:04,890 --> 00:02:07,060 44 00:02:07,060 --> 00:02:08,120 We zullen iedereen zeggen. 45 00:02:08,120 --> 00:02:09,419 Fantastisch. 46 00:02:09,419 --> 00:02:12,070 >> We zullen over probleem sets praten een beetje, maar als je het probleem set gelezen 47 00:02:12,070 --> 00:02:14,340 specificatie dat alles wat je moet doen. 48 00:02:14,340 --> 00:02:18,370 Als je leest dat voordat je naar klas en sectie op dinsdag vindt u 49 00:02:18,370 --> 00:02:19,220 zijn een geweldige positie. 50 00:02:19,220 --> 00:02:21,680 We kunnen gaan door het probleem set, dat is wat we gaan 51 00:02:21,680 --> 00:02:22,090 te doen aan het eind. 52 00:02:22,090 --> 00:02:23,500 We gaan om te gaan door de logica, zorg ervoor 53 00:02:23,500 --> 00:02:24,710 iedereen is op dezelfde pagina. 54 00:02:24,710 --> 00:02:28,650 >> Ik wil dat je in staat zijn om dinsdag vertrekken voelt zeer comfortabel met wat je 55 00:02:28,650 --> 00:02:31,560 moeten doen voor deze week probleem set, en als je dat niet doet, doe ik het graag 56 00:02:31,560 --> 00:02:33,050 blijven na en werken met je. 57 00:02:33,050 --> 00:02:36,850 Maar dat is een ding dat je moet doen, maar ik denk echt slim zou zijn, 58 00:02:36,850 --> 00:02:40,500 alleen maar om het probleem set gelezen specificatie per klasse op dinsdag, 59 00:02:40,500 --> 00:02:42,640 die het klinkt als een Veel van jullie deden. 60 00:02:42,640 --> 00:02:45,810 >> Ik zal beginnen met een agenda elke klasse zodat je weet waar we heen gaan. 61 00:02:45,810 --> 00:02:49,520 Dit is ook nuttig voor mensen kijken online omdat elke sectie 62 00:02:49,520 --> 00:02:53,540 is kleur gecodeerd, dus als je wilt komen terug en gewoon kijken naar 10 minuten eerder 63 00:02:53,540 --> 00:02:56,950 dan de hele 90 minuten sectie, u kan gewoon naar de kleur gecodeerde sectie 64 00:02:56,950 --> 00:02:57,890 en kijk naar dat deel. 65 00:02:57,890 --> 00:03:01,510 Dus ik heb geprobeerd om ze te breken in nice modules die u zal toestaan ​​om - 66 00:03:01,510 --> 00:03:03,960 als je wilt om terug te komen en te beoordelen, of andere studenten die net 67 00:03:03,960 --> 00:03:05,350 kijken naar een sectie te herzien - 68 00:03:05,350 --> 00:03:08,130 aan de specifieke zaak vinden ze willen aandacht besteden aan 69 00:03:08,130 --> 00:03:10,480 en meer te leren over. 70 00:03:10,480 --> 00:03:11,390 Sweet. 71 00:03:11,390 --> 00:03:12,180 >> Normen. 72 00:03:12,180 --> 00:03:13,680 Ik ben een FOP leider op de campus. 73 00:03:13,680 --> 00:03:14,900 Ik weet niet of iemand wel FOP. 74 00:03:14,900 --> 00:03:16,280 Heeft iemand doen FOP? 75 00:03:16,280 --> 00:03:17,100 Een persoon deed FOP. 76 00:03:17,100 --> 00:03:18,430 Twee mensen deden FOP. 77 00:03:18,430 --> 00:03:19,250 Geweldig. 78 00:03:19,250 --> 00:03:22,360 Dus FOP is het eerste jaar Outdoor Orientation Program. 79 00:03:22,360 --> 00:03:27,240 We nemen eerstejaars in de bossen en maken de meest magische ervaringen van 80 00:03:27,240 --> 00:03:28,830 hun leven, juist? 81 00:03:28,830 --> 00:03:29,220 Yeah. 82 00:03:29,220 --> 00:03:30,080 Geluiden over recht. 83 00:03:30,080 --> 00:03:36,360 >> Dus ik wilde alleen maar om te beginnen met onze allereerste hoofdstuk met een bespreking van een aantal normen 84 00:03:36,360 --> 00:03:38,860 voor de klas en onze relatie omdat ik denk 85 00:03:38,860 --> 00:03:40,010 ze zijn erg belangrijk. 86 00:03:40,010 --> 00:03:43,630 Eerst en vooral, als die van u die zijn mijn sectie hebben ontvangen en 87 00:03:43,630 --> 00:03:47,150 dat is besproken e-mail, ik hou van deze. 88 00:03:47,150 --> 00:03:48,130 Dit is mijn favoriete deel van het jaar. 89 00:03:48,130 --> 00:03:49,100 Ik heb zo opgewonden. 90 00:03:49,100 --> 00:03:50,040 Ik heb hier vandaag al uren. 91 00:03:50,040 --> 00:03:54,560 Ik heb niet verlaten dit gebouw behalve om gaan eten want ik hou CS50 sectie, I 92 00:03:54,560 --> 00:03:58,620 hou van lesgeven, ik hou van werken met jullie. 93 00:03:58,620 --> 00:04:02,000 >> Een van mijn hoogste prioriteiten, zo niet mijn nummer een prioriteit, niet alleen voor 94 00:04:02,000 --> 00:04:05,130 deze klasse, maar ook mijn andere klassen en extracurriculars, is te 95 00:04:05,130 --> 00:04:09,350 ondersteuning van jullie, en jullie helpen, en doe mijn best om ervoor te zorgen dat u 96 00:04:09,350 --> 00:04:13,780 jongens hebben een prachtige, leuke, productieve, boeiende, spannende 97 00:04:13,780 --> 00:04:15,250 ervaring in deze klasse. 98 00:04:15,250 --> 00:04:16,190 Dat is wat ik ben toegewijd aan. 99 00:04:16,190 --> 00:04:17,959 Dat is waarom ik hou van om dit te doen. 100 00:04:17,959 --> 00:04:20,190 Dat is mijn nummer een ding, ondersteunen van jullie. 101 00:04:20,190 --> 00:04:25,110 Als u vragen hebt over hoorcollege, het probleem set, sectie, 102 00:04:25,110 --> 00:04:28,830 leven, zelfs als je wilt praten over leven, aarzel dan niet om uit te reiken. 103 00:04:28,830 --> 00:04:31,210 >> Je hebt mijn mobiele nummer, je mijn email hebt 104 00:04:31,210 --> 00:04:32,910 adres, je hebt mijn Gchat. 105 00:04:32,910 --> 00:04:37,540 U kunt contact met mij op een of alle van die wanneer, maar waarschijnlijk niet zal krijgen 106 00:04:37,540 --> 00:04:38,720 een antwoord wanneer. 107 00:04:38,720 --> 00:04:41,020 Ik probeer en krijg binnen 24 uur terug. 108 00:04:41,020 --> 00:04:44,760 Vaak zal het binnen 20 minuten of 24 minuten. 109 00:04:44,760 --> 00:04:46,110 Ik had moeten zeggen dat om het parallel maken. 110 00:04:46,110 --> 00:04:48,840 Maar je zult een antwoord krijgen vrij snel. 111 00:04:48,840 --> 00:04:54,220 >> Als u Tekst me een uur voor de probleem set is te wijten, zal ik je tot rust 112 00:04:54,220 --> 00:04:57,660 naar beneden en doe diepe ademhalingsoefeningen met u, maar als u nog niet begonnen, 113 00:04:57,660 --> 00:05:00,270 je bent waarschijnlijk niet van plan om te voltooien, en Ik kan niet echt helpen daar 114 00:05:00,270 --> 00:05:01,710 hoewel ik zal mijn best doen. 115 00:05:01,710 --> 00:05:03,920 Dus ik zal er alles aan doen Ik kan om u te ondersteunen. 116 00:05:03,920 --> 00:05:07,980 Aarzel dan niet om uit te reiken of het is in de sectie weer, bij Office Hours 117 00:05:07,980 --> 00:05:09,150 als je me ziet, of zelfs buiten. 118 00:05:09,150 --> 00:05:11,800 Ik ben blij om een ​​keer te ontmoeten en werk door problemen 119 00:05:11,800 --> 00:05:14,410 met of gaan over materiaal. 120 00:05:14,410 --> 00:05:15,990 Dus dat is nummer een, ondersteuning. 121 00:05:15,990 --> 00:05:17,940 Ik zal alles doen wat ik kunnen om u te ondersteunen. 122 00:05:17,940 --> 00:05:21,520 >> Nummer twee, vergadering in het midden. 123 00:05:21,520 --> 00:05:24,760 Zo veel als ik zou willen zijn, ben ik niet almachtig of almachtig of 124 00:05:24,760 --> 00:05:28,410 alwetend, dus ik weet niet alle tijd als wat ik doe wordt steeds 125 00:05:28,410 --> 00:05:33,410 over, als de manier waarop ik het onderwijzen van de onderwerp helpt u bij het leren, of als u 126 00:05:33,410 --> 00:05:36,120 zijn in de war over een onderwerp, maar niet steek je hand of vraag me 127 00:05:36,120 --> 00:05:37,390 of stuur me een e-mail. 128 00:05:37,390 --> 00:05:42,150 Of zelfs als je, nogmaals, zijn verward over iets op het probleem set. 129 00:05:42,150 --> 00:05:44,240 Als je niet uit te reiken naar mij, Ik kan niet weten dat zeker. 130 00:05:44,240 --> 00:05:46,950 Ik ga mijn best doen om te controleren op jullie, zorg ervoor dat alles is 131 00:05:46,950 --> 00:05:51,170 goed gaat, proberen om dingen te leren op een manier die bevorderlijk meeste zullen 132 00:05:51,170 --> 00:05:54,910 uw leerstijlen, maar als er iets wat ik kan doen, laat het me weten. 133 00:05:54,910 --> 00:05:58,520 >> Langs deze lijnen, als je wilt wat hulp met het probleem set, ik ben meer 134 00:05:58,520 --> 00:05:59,700 dan blij om u te helpen de probleemstelling. 135 00:05:59,700 --> 00:06:02,300 We gaan een hoop te doen dat naar de tweede 136 00:06:02,300 --> 00:06:03,460 helft van deze sectie. 137 00:06:03,460 --> 00:06:06,040 Maar als u het probleem niet hebt gelezen sets terug en hebben niet de wandeling keek 138 00:06:06,040 --> 00:06:09,310 door en hebben niet keek naar de korte broek en verwacht dat ik om je te leren 139 00:06:09,310 --> 00:06:13,260 alles wat er gefilmd online, of dat u kunt vinden op CS50 140 00:06:13,260 --> 00:06:16,720 studie, dat is niet echt eerlijk om mij of naar uw andere collega's. 141 00:06:16,720 --> 00:06:20,440 142 00:06:20,440 --> 00:06:25,730 >> Dus alsjeblieft, ik ben meer dan blij om te helpen jullie, maar jullie moet me ontmoeten in 143 00:06:25,730 --> 00:06:27,230 het midden. 144 00:06:27,230 --> 00:06:30,100 Wij hebben ton van middelen voor u beschikbaar op de CS50. 145 00:06:30,100 --> 00:06:31,230 Ik noemde een aantal van hen. 146 00:06:31,230 --> 00:06:32,960 Haal uw voordeel met hen. 147 00:06:32,960 --> 00:06:35,140 Als je in de war bent, ik ben meer dan tevreden om u te helpen uit te leggen in 148 00:06:35,140 --> 00:06:39,290 een andere manier, maar het is niet eerlijk als studenten opdagen op kantooruren, 149 00:06:39,290 --> 00:06:42,530 nog niet begonnen met niets, en het is Donderdagavond en ze verwachten 150 00:06:42,530 --> 00:06:45,880 de TF om ze lopen door elke ding voor het probleem te stellen als gevolg van 151 00:06:45,880 --> 00:06:47,140 s middags de volgende dag. 152 00:06:47,140 --> 00:06:48,300 Zinvol? 153 00:06:48,300 --> 00:06:50,890 Nogmaals, gelieve ons te ontmoeten in het midden. 154 00:06:50,890 --> 00:06:53,230 >> En tot slot, hoge verwachtingen. 155 00:06:53,230 --> 00:06:58,010 Ik ga grading iedereen die zijn te in mijn sectie, of het maken van uw 156 00:06:58,010 --> 00:06:59,020 probleem sets. 157 00:06:59,020 --> 00:07:01,240 Je hebt niet terug gegaan probleem set nul of een nog niet. 158 00:07:01,240 --> 00:07:02,250 Het spijt ons daarover. 159 00:07:02,250 --> 00:07:04,970 Het kostte ons een tijdje om eindelijk vestigen secties, en nu 160 00:07:04,970 --> 00:07:05,560 we kunnen beginnen grading. 161 00:07:05,560 --> 00:07:09,560 >> Ik zal ze contact met u op zo spoedig mogelijk. 162 00:07:09,560 --> 00:07:11,890 Dat zijn enkele van mijn advisees die er zijn. 163 00:07:11,890 --> 00:07:14,150 Ik zal ze contact met u op zo spoedig mogelijk. 164 00:07:14,150 --> 00:07:18,046 En voor het probleem set twee, zullen we op plannen en we beginnen met het krijgen van hen 165 00:07:18,046 --> 00:07:20,440 om u vrij snel na u ze inch 166 00:07:20,440 --> 00:07:24,130 >> Wanneer je je probleem terug te zetten, je zal krijgen scores, zoals u weet uit 167 00:07:24,130 --> 00:07:28,150 het lezen van de syllabus - correctheid, ontwerp, omvang en stijl scores. 168 00:07:28,150 --> 00:07:29,760 U krijgt ook commentaar. 169 00:07:29,760 --> 00:07:32,160 De commentaren zijn belangrijker dan de scores. 170 00:07:32,160 --> 00:07:33,780 Ik denk dat het veilig is om te zeggen dat. 171 00:07:33,780 --> 00:07:37,930 >> Scores zijn slechts een aantal een tot vijf. 172 00:07:37,930 --> 00:07:38,930 Het is moeilijk om te lezen in deze. 173 00:07:38,930 --> 00:07:40,720 Het is moeilijk om te verbeteren van die. 174 00:07:40,720 --> 00:07:44,460 Maar de opmerkingen zullen wijzen op specifieke dingen die je goed of gebieden deed 175 00:07:44,460 --> 00:07:48,360 u kunt verbeteren en sommige geven je ideeën voor de toekomst of alternatieve 176 00:07:48,360 --> 00:07:49,160 manieren om dingen te doen. 177 00:07:49,160 --> 00:07:52,270 >> Dus alsjeblieft, alsjeblieft, lees door de opmerkingen. 178 00:07:52,270 --> 00:07:54,190 Ik heb veel tijd in deze opmerkingen. 179 00:07:54,190 --> 00:07:57,190 Lees via hen en niet alleen omlaag naar de bodem van de 180 00:07:57,190 --> 00:08:01,890 PDF, kijk voor je score, of ga online en vind je score, en dan negeer 181 00:08:01,890 --> 00:08:02,800 de opmerkingen. 182 00:08:02,800 --> 00:08:03,910 Dat is niet hoe je bent gaan beter. 183 00:08:03,910 --> 00:08:06,550 Dat is niet hoe je gaat om te vergroten uw scores uiteindelijk, net 184 00:08:06,550 --> 00:08:07,340 door te kijken naar de scores. 185 00:08:07,340 --> 00:08:08,760 Kijk dan op deze opmerkingen. 186 00:08:08,760 --> 00:08:13,240 >> En langs de lijn van hoge verwachtingen, nogmaals, zoals ik al zei, je 187 00:08:13,240 --> 00:08:14,260 gescoord kunnen worden van een tot vijf. 188 00:08:14,260 --> 00:08:17,120 Twee, drie, en fours zijn de meeste scores 189 00:08:17,120 --> 00:08:17,940 je gaat krijgen. 190 00:08:17,940 --> 00:08:20,180 Enen en vijven zijn allebei echt zeldzaam. 191 00:08:20,180 --> 00:08:21,720 Er is altijd wel dingen we beter kunnen doen. 192 00:08:21,720 --> 00:08:23,490 Wanneer ik code van een programma, is er altijd iets wat ik 193 00:08:23,490 --> 00:08:24,800 beter had kunnen doen. 194 00:08:24,800 --> 00:08:28,740 >> Dus in plaats van te zeggen dat je een vijf de hele tijd op alles en deed 195 00:08:28,740 --> 00:08:31,960 alles perfect, ik denk niet dat elke van ons echt geloven dat we - of 196 00:08:31,960 --> 00:08:34,830 hopelijk doen we niet alles doen perfect de hele tijd. 197 00:08:34,830 --> 00:08:37,010 Dus wees niet ongerust als je kreeg niet een vijf. 198 00:08:37,010 --> 00:08:40,470 Een vijf niet in kaart op een A, een vier niet in kaart op een B, een drie doet 199 00:08:40,470 --> 00:08:42,950 geen kaart op een C. Dat is niet hoe de scores werken. 200 00:08:42,950 --> 00:08:48,140 >> Net als David heeft vele malen, op genoemde end semester al uw scores en 201 00:08:48,140 --> 00:08:53,390 input van mij, uw TF, bij elkaar komen en het bepalen van een eindcijfer voor u. 202 00:08:53,390 --> 00:08:56,760 Maar nogmaals, het is niet vijf, A, vier, B, et cetera. 203 00:08:56,760 --> 00:09:01,150 Dus ga ik hoge verwachtingen hebben voor jullie. 204 00:09:01,150 --> 00:09:03,670 Ik ga goed probleem verwachten sets en ik ga geven 205 00:09:03,670 --> 00:09:05,010 u feedback als zodanig. 206 00:09:05,010 --> 00:09:07,430 En het gaat niet om dat je bent ga een slechtere kwaliteit krijgen. 207 00:09:07,430 --> 00:09:09,760 U wordt ingedeeld in termen van uw vooruitgang van week 208 00:09:09,760 --> 00:09:11,260 nul tot einde cursus. 209 00:09:11,260 --> 00:09:17,190 >> Tenslotte zijn wat betreft verwachtingen in de klas, ik hou van toen 210 00:09:17,190 --> 00:09:18,460 mensen deelnemen. 211 00:09:18,460 --> 00:09:23,180 Ik begrijp sommige mensen voelen zich meer of minder comfortabel deelnemen. 212 00:09:23,180 --> 00:09:26,050 Andere mensen nemen deel niet door het verhogen van hun hand en 213 00:09:26,050 --> 00:09:27,320 praten de hele tijd. 214 00:09:27,320 --> 00:09:30,570 Maar wij in deze klasse gaat worden het doen van een hoop kleine problemen, veel 215 00:09:30,570 --> 00:09:33,770 van mini vragen, en vervolgens een aantal grotere codering problemen. 216 00:09:33,770 --> 00:09:36,760 Dus zeker werken deze oefeningen uit als we dat doen ze op uw computer of op 217 00:09:36,760 --> 00:09:37,900 een vel papier. 218 00:09:37,900 --> 00:09:40,933 >> Maar ik zal ook u enige tijd voordat iemand ooit heeft om wat te beantwoorden 219 00:09:40,933 --> 00:09:42,220 van de vragen die ik stel. 220 00:09:42,220 --> 00:09:44,930 Dus omdat ik zal je wat tijd geven om over nadenken, want we gaan 221 00:09:44,930 --> 00:09:49,380 om dingen te doen in partners soms, Ik zal verwachten dat iedereen 222 00:09:49,380 --> 00:09:52,150 enigszins ingeschakeld. 223 00:09:52,150 --> 00:09:56,030 En bij gebrek aan een betere term is er zal cold calling, die waarschijnlijk 224 00:09:56,030 --> 00:09:59,045 is waar iedereen een kans zal hebben na te denken over het antwoord, en dan 225 00:09:59,045 --> 00:10:01,150 Ik roep u op, en dan U zult zeggen dat het antwoord. 226 00:10:01,150 --> 00:10:05,200 >> Maak je geen zorgen of bang over. 227 00:10:05,200 --> 00:10:08,610 Ik heb het gedaan in het verleden en we hebben gevonden dat het veel meer succes, 228 00:10:08,610 --> 00:10:11,810 Lees ook onderwijsonderzoek op het om bepalen of het een 229 00:10:11,810 --> 00:10:12,640 goede tactiek. 230 00:10:12,640 --> 00:10:15,790 Het is zeer nuttig, vooral als u geven studenten de tijd om na te denken over de 231 00:10:15,790 --> 00:10:20,070 antwoorden en laat hen niet alleen maar komen uit en zeg het recht uit de vleermuis. 232 00:10:20,070 --> 00:10:22,620 Maar als je niet comfortabel voelt beantwoorden, ben ik ook vrij goed in 233 00:10:22,620 --> 00:10:25,370 sensing dat uit, en we gaan niet naar zet je op de plek, met name op 234 00:10:25,370 --> 00:10:28,240 de camera, ook al heeft geen van U bent nu op de camera. 235 00:10:28,240 --> 00:10:32,250 >> Dus dat zijn de normen die ik heb. 236 00:10:32,250 --> 00:10:34,670 Nog een ding in de trant van de vergadering in het midden. 237 00:10:34,670 --> 00:10:36,490 Ik ga jullie geven veel feedback. 238 00:10:36,490 --> 00:10:38,310 Geef me feedback ook. 239 00:10:38,310 --> 00:10:46,190 Er is een website, sayat.me/cs50. 240 00:10:46,190 --> 00:10:48,380 Dus het is een eerlijke feedback. 241 00:10:48,380 --> 00:10:50,730 Als je wilt om het te geven tijdens sectie, Ik krijg een e-mail wanneer het gebeurt. 242 00:10:50,730 --> 00:10:53,820 We nemen een pauze in een beetje te nemen, dus ik zal kijk door de feedback dan. 243 00:10:53,820 --> 00:10:55,970 Als je ooit hebt geen feedback, geef het aan mij daar. 244 00:10:55,970 --> 00:11:01,380 >> Als je me feedback over de Q, dat is prachtig, maar dat is de gids 245 00:11:01,380 --> 00:11:02,570 dat je aan het eind. 246 00:11:02,570 --> 00:11:05,690 Maar dat zal aan het eind semester's zo Ik zal niet in staat zijn om elk van die rekening 247 00:11:05,690 --> 00:11:08,620 feedback en zet hem in het onderwijs jullie beter. 248 00:11:08,620 --> 00:11:11,020 Dus alstublieft, als u een feedback, geef het aan mij. 249 00:11:11,020 --> 00:11:12,010 Ik hou van feedback. 250 00:11:12,010 --> 00:11:14,490 Terug naar FOP, krijgen we feedback hele tijd. 251 00:11:14,490 --> 00:11:18,610 >> Je kan me plussen, goede dingen, delta's, dingen die ik kan verbeteren. 252 00:11:18,610 --> 00:11:20,600 U kunt commentaar geven op mijn outfits. 253 00:11:20,600 --> 00:11:24,170 Dat zal niet zo nuttig, maar je bent welkom om te reageren op een en 254 00:11:24,170 --> 00:11:24,570 alles. 255 00:11:24,570 --> 00:11:26,280 Alstublieft, geef me feedback. 256 00:11:26,280 --> 00:11:28,740 Ik hecht waarde aan het veel en het betekent veel voor me. 257 00:11:28,740 --> 00:11:31,760 258 00:11:31,760 --> 00:11:33,280 >> Nog een norm, fun. 259 00:11:33,280 --> 00:11:34,530 We gaan veel plezier hebben. 260 00:11:34,530 --> 00:11:36,930 Hopelijk in deze cursus, zul je hebben veel plezier. 261 00:11:36,930 --> 00:11:38,780 We zullen snoep hebben ten deel. 262 00:11:38,780 --> 00:11:40,040 We zullen muziek hebben. 263 00:11:40,040 --> 00:11:45,510 We zullen hopelijk krijgen tot men weten nog enigszins goed, dus ik wil 264 00:11:45,510 --> 00:11:47,690 dit naar een leuke, boeiende ervaring zijn. 265 00:11:47,690 --> 00:11:50,890 >> Ik weet dat sommigen van jullie in slaap gevallen in de lezingen wat je eerder vandaag had, 266 00:11:50,890 --> 00:11:53,750 dus hopelijk dat niet wil zijn nu het geval is. 267 00:11:53,750 --> 00:11:55,960 En als het het geval is, enkel snurk niet, want dat zou kunnen 268 00:11:55,960 --> 00:11:57,580 worden gevangen op de camera. 269 00:11:57,580 --> 00:11:58,770 Sweet. 270 00:11:58,770 --> 00:12:04,020 Heeft u vragen, opmerkingen of problemen voordat ik verder over alles wat we hebben 271 00:12:04,020 --> 00:12:05,270 over gesproken? 272 00:12:05,270 --> 00:12:08,620 273 00:12:08,620 --> 00:12:11,350 Geweldig. 274 00:12:11,350 --> 00:12:14,830 >> Dus we gaan om te gaan in arrays eerste. 275 00:12:14,830 --> 00:12:17,140 Dit is hoe je een array te maken. 276 00:12:17,140 --> 00:12:18,410 We hebben dit eerder gezien. 277 00:12:18,410 --> 00:12:21,830 Je hebt een data type, heb je een naam, en dan heb je een grootte. 278 00:12:21,830 --> 00:12:24,430 Hier, ik maak twee arrays. 279 00:12:24,430 --> 00:12:30,360 De eerste is een array van karakters, en heeft 26 ruimten. 280 00:12:30,360 --> 00:12:33,790 De tweede is een array van scores, en heeft drie 281 00:12:33,790 --> 00:12:35,390 ruimte voor drie getallen. 282 00:12:35,390 --> 00:12:35,827 Ja? 283 00:12:35,827 --> 00:12:38,200 >> STUDENT: Zijn al deze dia's ergens beschikbaar voor ons? 284 00:12:38,200 --> 00:12:38,850 >> JASON HIRSCHHORN: Grote vraag. 285 00:12:38,850 --> 00:12:40,650 De vraag was, zijn al deze slides beschikbaar? 286 00:12:40,650 --> 00:12:40,920 Ja. 287 00:12:40,920 --> 00:12:43,420 Al deze slides beschikbaar zullen zijn, en in de toekomst, zal ik ze e-mailen naar 288 00:12:43,420 --> 00:12:44,640 je eerder sectie. 289 00:12:44,640 --> 00:12:47,340 Maar vandaag, want dit is de eerste week, hadden we een late start. 290 00:12:47,340 --> 00:12:49,675 Dus meestal, krijg je deze dia's, maar ze zullen online en beschikbaar zijn 291 00:12:49,675 --> 00:12:52,420 Ik zal ze e-mailen naar je direct na de les. 292 00:12:52,420 --> 00:12:54,140 Andere vragen? 293 00:12:54,140 --> 00:13:01,330 >> Dus nogmaals, arrays zijn dozen, bij gebrek aan een beter woord, dat meerdere vasthouden 294 00:13:01,330 --> 00:13:06,420 elementen van een data type, en ze zijn naast elkaar in het geheugen. 295 00:13:06,420 --> 00:13:11,370 En dus nogmaals, dit is hoe je kunt maken twee soorten arrays. 296 00:13:11,370 --> 00:13:15,090 >> Dus nadat u uw array hebt gemaakt met die eerste lijn - int scores, beugel 297 00:13:15,090 --> 00:13:17,430 drie, haakje sluiten - u wil het initialiseren. 298 00:13:17,430 --> 00:13:19,050 U wilt een aantal waarden in daar te zetten. 299 00:13:19,050 --> 00:13:24,660 En dit is hoe je een aantal waarden in daar, alleen het kiezen van de indice en 300 00:13:24,660 --> 00:13:25,670 schrijven van het nummer. 301 00:13:25,670 --> 00:13:27,130 Laten we trekken dit op het bord. 302 00:13:27,130 --> 00:13:28,270 Kan iedereen zien? 303 00:13:28,270 --> 00:13:29,030 Iedereen kan zien. 304 00:13:29,030 --> 00:13:30,790 Sweet. 305 00:13:30,790 --> 00:13:36,550 >> Dus dat gaat zijn mijn array met de naam Scores. 306 00:13:36,550 --> 00:13:37,730 Zoals je kunt zien, is het formaat drie. 307 00:13:37,730 --> 00:13:39,210 Er zijn drie dozen in. 308 00:13:39,210 --> 00:13:43,120 Een ieder kan passen wat type data type? 309 00:13:43,120 --> 00:13:43,790 >> STUDENT: Integer. 310 00:13:43,790 --> 00:13:45,250 >> JASON HIRSCHHORN: Een geheel getal in deze. 311 00:13:45,250 --> 00:13:48,790 We schreven int scores, en het eerste woord is het type gegevens dat gaat 312 00:13:48,790 --> 00:13:50,910 gaan in de dozen in die array. 313 00:13:50,910 --> 00:13:52,160 Zodat ik kan passen drie. 314 00:13:52,160 --> 00:13:54,880 315 00:13:54,880 --> 00:13:57,000 Waarom heb ik nul up er op het bord? 316 00:13:57,000 --> 00:13:59,240 Waarom staat er score nul is gelijk aan 1? 317 00:13:59,240 --> 00:14:02,090 318 00:14:02,090 --> 00:14:03,180 Doet me denken aan je naam. 319 00:14:03,180 --> 00:14:03,470 >> STUDENT: Kurt. 320 00:14:03,470 --> 00:14:04,070 >> JASON HIRSCHHORN: Kurt. 321 00:14:04,070 --> 00:14:04,480 >> STUDENT: Ja. 322 00:14:04,480 --> 00:14:04,920 >> JASON HIRSCHHORN: Waarom? 323 00:14:04,920 --> 00:14:07,230 >> STUDENT: Omdat de eerste index is nul, we beginnen te tellen bij nul. 324 00:14:07,230 --> 00:14:08,480 >> JASON HIRSCHHORN: Dus we beginnen tellen bij nul. 325 00:14:08,480 --> 00:14:09,580 Zo is het precies. 326 00:14:09,580 --> 00:14:12,340 Dit is het verwarrende gedeelte en wil trip je, vooral als je 327 00:14:12,340 --> 00:14:14,900 proberen te doorlopen arrays, die we doen in een beetje. 328 00:14:14,900 --> 00:14:15,980 We beginnen te tellen bij nul. 329 00:14:15,980 --> 00:14:19,170 Dus als ik wil verwijzen naar het eerste doos, het is niet een doos. 330 00:14:19,170 --> 00:14:22,290 Helaas, het is doos nul. 331 00:14:22,290 --> 00:14:26,460 De tweede is een box, en in dit geval het derde vak is twee. 332 00:14:26,460 --> 00:14:28,700 >> Hoe zit het doosje drie? 333 00:14:28,700 --> 00:14:30,670 Waar is de doos drie? 334 00:14:30,670 --> 00:14:34,750 Of als ik wil scores, beugel doen drie, haakje sluiten, wat is dat? 335 00:14:34,750 --> 00:14:37,650 336 00:14:37,650 --> 00:14:39,760 Dus je zei dat de nul-karakter. 337 00:14:39,760 --> 00:14:41,600 Elke andere gedachten? 338 00:14:41,600 --> 00:14:44,590 Wat is score beugel drie beugel? 339 00:14:44,590 --> 00:14:48,045 >> STUDENT: Het maakt eigenlijk niet bestaan ​​omdat u alleen gedefinieerd als scores, 340 00:14:48,045 --> 00:14:49,370 beugel drie. 341 00:14:49,370 --> 00:14:51,400 >> JASON HIRSCHHORN: Dus je zegt het bestaat niet echt. 342 00:14:51,400 --> 00:14:54,230 In sommige gevallen, wanneer we te maken hebben met strings, meestal zullen we een nul zetten 343 00:14:54,230 --> 00:14:54,790 karakter aan het eind. 344 00:14:54,790 --> 00:14:56,100 We krijgen aan dat in een tweede. 345 00:14:56,100 --> 00:15:01,020 Maar in dit geval is er is hier geen derde vak. 346 00:15:01,020 --> 00:15:06,390 Dus de laatste doos in een matrix is size minus 1. 347 00:15:06,390 --> 00:15:11,310 Dus als we een array van grootte n, de eerste vak is op nul, de laatste is 348 00:15:11,310 --> 00:15:12,700 bij n minus 1. 349 00:15:12,700 --> 00:15:14,970 En in dit geval, bestaat niet. 350 00:15:14,970 --> 00:15:17,970 Er is hier iets in geheugen, maar het is niet de onze. 351 00:15:17,970 --> 00:15:18,460 Wij niet zelf het. 352 00:15:18,460 --> 00:15:19,570 We hadden niet om vragen. 353 00:15:19,570 --> 00:15:22,606 Dus als we het proberen te openen, die we zullen doen in een beetje, we waarschijnlijk gaan om 354 00:15:22,606 --> 00:15:24,970 in de problemen komen. 355 00:15:24,970 --> 00:15:29,180 >> In dit geval ben ik het initialiseren van mijn array met drie variabelen. 356 00:15:29,180 --> 00:15:36,195 We zetten een in doos nul, een twee in doos ene, en een drie in doos twee. 357 00:15:36,195 --> 00:15:39,280 Heeft iemand enig vragen over het initialiseren een array? 358 00:15:39,280 --> 00:15:44,540 359 00:15:44,540 --> 00:15:46,970 >> Dus gingen we juist nu meer dan dit. 360 00:15:46,970 --> 00:15:52,725 Scores, beugel drie, haakje sluiten, die niet bestaat. 361 00:15:52,725 --> 00:15:58,130 We nul geïndexeerd in de informatica, dus beginnen we te tellen bij nul. 362 00:15:58,130 --> 00:16:01,860 Het laatste vak beschikbaar voor ons, het is het derde vak, maar het vak heet 363 00:16:01,860 --> 00:16:03,110 nummer twee. 364 00:16:03,110 --> 00:16:05,790 365 00:16:05,790 --> 00:16:09,710 >> Beneden is een alternatief manier initialiseren arrays. 366 00:16:09,710 --> 00:16:13,410 Dus in plaats van de array op een lijn, het vullen van het eerste vak, dan 367 00:16:13,410 --> 00:16:17,070 het tweede vak, dan is het derde vak, je kunt het allemaal in een lijn. 368 00:16:17,070 --> 00:16:19,040 Dus in die lijn, beide arrays. 369 00:16:19,040 --> 00:16:23,460 Dit creëert exact dezelfde matrix als wat we gemaakt hier, maar het 370 00:16:23,460 --> 00:16:24,710 doet het in een lijn net. 371 00:16:24,710 --> 00:16:29,740 372 00:16:29,740 --> 00:16:31,360 >> Nu hebben we ons aanbod gecreëerd. 373 00:16:31,360 --> 00:16:34,100 Meestal als je eenmaal een array maken, moet u iets willen doen met het, of 374 00:16:34,100 --> 00:16:38,430 dat is vullen of dingen uit te halen en print ze uit op het scherm. 375 00:16:38,430 --> 00:16:42,270 In dit geval gaan we via onze scores array, die wij geïnitialiseerd op 376 00:16:42,270 --> 00:16:44,740 de eerste line-up hier in grijs. 377 00:16:44,740 --> 00:16:49,600 En dan op de tweede regel, we beginnen itereren door de array. 378 00:16:49,600 --> 00:16:52,640 Heeft iemand nog vragen hebben over de structuur van een lus? 379 00:16:52,640 --> 00:16:55,250 380 00:16:55,250 --> 00:16:56,400 >> Dus dit is de lus. 381 00:16:56,400 --> 00:16:59,530 We hebben onze oorspronkelijke toestand, en vervolgens onze laatste voorwaarde, en dan hebben we 382 00:16:59,530 --> 00:17:01,160 herhalen, ik, elke lus. 383 00:17:01,160 --> 00:17:05,579 En in de accolades in deze voor lus, wat gebeurt er als ik te lopen 384 00:17:05,579 --> 00:17:06,290 dit programma? 385 00:17:06,290 --> 00:17:10,410 Kan iemand mij vertellen wat we zouden krijgen? 386 00:17:10,410 --> 00:17:11,589 [? Matu? ?] 387 00:17:11,589 --> 00:17:13,819 >> MATU: Druk alle scores op elke lijn. 388 00:17:13,819 --> 00:17:14,900 Het zou elke score afdrukken op een aparte regel. 389 00:17:14,900 --> 00:17:16,300 >> JASON HIRSCHHORN: Wat is precies zou het af te drukken? 390 00:17:16,300 --> 00:17:19,790 >> STUDENT: Het zou een af ​​te drukken, dan twee, dan drie. 391 00:17:19,790 --> 00:17:20,235 >> JASON HIRSCHHORN: Precies. 392 00:17:20,235 --> 00:17:23,490 Het zou een, dan twee, dan print drie, elk op aparte regels, omdat 393 00:17:23,490 --> 00:17:27,810 we gaan door de array en u zult zien dat tweede, de printf 394 00:17:27,810 --> 00:17:29,275 verklaring, scores i. 395 00:17:29,275 --> 00:17:32,880 Dus op de eerste ronde door ons voor lus, i gelijk is aan nul, wat betekent dat we 396 00:17:32,880 --> 00:17:34,640 het verkrijgen van de waarde op nul score - 397 00:17:34,640 --> 00:17:36,900 die, als we terug gaan naar ons diagram, is een - 398 00:17:36,900 --> 00:17:38,630 en in te vullen - 399 00:17:38,630 --> 00:17:39,700 oh, het zegt c. 400 00:17:39,700 --> 00:17:41,680 Dat moet% d zijn. 401 00:17:41,680 --> 00:17:43,970 Ik zal vast dat in een beetje bij Ik hand die uit naar jullie. 402 00:17:43,970 --> 00:17:48,670 Maar we presenteren een geheel getal, dus het moet% d zijn hier, niet% c. 403 00:17:48,670 --> 00:17:50,340 Wat is% c voor? 404 00:17:50,340 --> 00:17:50,790 >> STUDENT: Karakter. 405 00:17:50,790 --> 00:17:52,680 >> JASON HIRSCHHORN: Karakter, precies. 406 00:17:52,680 --> 00:17:53,690 Wat is de andere? 407 00:17:53,690 --> 00:17:56,260 Als u niet wilt% d te doen voor een integer, wat kun je doen? 408 00:17:56,260 --> 00:17:57,000 >> STUDENT: i. 409 00:17:57,000 --> 00:17:59,180 >> JASON HIRSCHHORN:% i, precies. 410 00:17:59,180 --> 00:18:01,660 Dus vragen over iteratie door de array? 411 00:18:01,660 --> 00:18:05,500 412 00:18:05,500 --> 00:18:07,800 Dus wat gebeurt er als we dit doen? 413 00:18:07,800 --> 00:18:10,290 In plaats van i kleiner is dan drie, we do i minder 414 00:18:10,290 --> 00:18:11,390 dan of gelijk aan drie. 415 00:18:11,390 --> 00:18:13,420 Wat gebeurt er als we deze code uitvoeren? 416 00:18:13,420 --> 00:18:17,510 417 00:18:17,510 --> 00:18:18,940 Ja, Annie? 418 00:18:18,940 --> 00:18:22,030 >> STUDENT: Ze gaan om uit te printen rare dingen op de vierde regel. 419 00:18:22,030 --> 00:18:23,850 >> JASON HIRSCHHORN: Dus u zegt, is het ga uitprinten rare dingen op de 420 00:18:23,850 --> 00:18:24,390 vierde regel? 421 00:18:24,390 --> 00:18:25,750 Heeft iemand een antwoord op haar vraag? 422 00:18:25,750 --> 00:18:28,940 423 00:18:28,940 --> 00:18:33,160 Dus de kansen zijn dat wanneer we krijgen aan de - 424 00:18:33,160 --> 00:18:36,700 dus op de vierde ronde door ons voor lus, net als je dacht, Annie, 425 00:18:36,700 --> 00:18:39,430 het zal scores beugel drie, die we hebben al bedacht niet 426 00:18:39,430 --> 00:18:41,990 bestaan, en we gaan proberen en toegang tot die, print het 427 00:18:41,990 --> 00:18:43,350 uit, gebruik het een of andere manier. 428 00:18:43,350 --> 00:18:46,060 Dus de computer zal waarschijnlijk boos op ons. 429 00:18:46,060 --> 00:18:46,760 Je hebt helemaal gelijk. 430 00:18:46,760 --> 00:18:48,830 >> Het zou het programma helemaal te stoppen. 431 00:18:48,830 --> 00:18:52,222 Het is misschien iets afdrukken echt raar. 432 00:18:52,222 --> 00:18:53,420 Je kunt niet met zekerheid zeggen. 433 00:18:53,420 --> 00:18:56,210 Kansen zijn het zal waarschijnlijk boos op u en gewoon stoppen meteen. 434 00:18:56,210 --> 00:19:00,100 >> Maar dit is een veel voorkomende fout die je zult moeten waar je bent gewoon uit door een op 435 00:19:00,100 --> 00:19:05,110 het einde, en dit is een bug die zal pest u gedurende uw codering. 436 00:19:05,110 --> 00:19:09,350 437 00:19:09,350 --> 00:19:14,150 Een manier die ik graag doe is gewoon op een whiteboard, gaan door elke iteratie 438 00:19:14,150 --> 00:19:18,190 van de lus op de hand of op papier te zien wat er gebeurt, en dan heb je 439 00:19:18,190 --> 00:19:20,440 algemeen besef, oh wacht, ik moet niet gegaan tot minder dan of 440 00:19:20,440 --> 00:19:20,870 gelijk aan drie. 441 00:19:20,870 --> 00:19:24,730 Ik had moeten stoppen bij twee, dat is wat gebeurt er als uw toestand is minder 442 00:19:24,730 --> 00:19:26,206 dan drie. 443 00:19:26,206 --> 00:19:29,120 Eventuele vragen tot nu toe? 444 00:19:29,120 --> 00:19:31,010 Sweet. 445 00:19:31,010 --> 00:19:33,360 >> Zodat u al uw computers geopend. 446 00:19:33,360 --> 00:19:36,760 We gaan je geven 02:58 minuten om een ​​programma te schrijven dat 447 00:19:36,760 --> 00:19:40,460 een array met integers een door vijf en dan drukt elke 448 00:19:40,460 --> 00:19:41,720 integer op een nieuwe regel. 449 00:19:41,720 --> 00:19:44,330 450 00:19:44,330 --> 00:19:46,000 En als je vragen hebt, steek je hand. 451 00:19:46,000 --> 00:19:48,140 Ik ben blij om langs te komen. 452 00:19:48,140 --> 00:19:50,630 Zoals ik al zei, laten we eens drie minuten om dit te schrijven. 453 00:19:50,630 --> 00:20:41,300 454 00:20:41,300 --> 00:20:45,110 Is iedereen OK als ik naar een nieuw venster en sluit dit? 455 00:20:45,110 --> 00:22:13,420 456 00:22:13,420 --> 00:22:15,520 >> Het spijt me als je de kans niet hebben gehad te eindigen, maar we gaan het doen 457 00:22:15,520 --> 00:22:17,310 elkaar nu. 458 00:22:17,310 --> 00:22:23,640 Zo op het scherm, heb ik # include cs50.h, # include stdio.h. 459 00:22:23,640 --> 00:22:26,090 Kan iemand mij vertellen wat die twee lijnen doen? 460 00:22:26,090 --> 00:22:32,250 461 00:22:32,250 --> 00:22:33,155 Michael? 462 00:22:33,155 --> 00:22:40,030 >> STUDENT: Zij omvatten de bibliotheken dat CS50 gemaakt en dat Steve heeft 463 00:22:40,030 --> 00:22:44,210 opgeslagen die u kunt gebruiken om uw leven gemakkelijker maken. 464 00:22:44,210 --> 00:22:46,820 >> JASON HIRSCHHORN: Dus u zegt dat ze onder meer de bibliotheken, een die CS50 465 00:22:46,820 --> 00:22:51,230 gemaakt cs50.h en een die gewoon standaard, wordt geleverd met 466 00:22:51,230 --> 00:22:53,510 de C-pakket, stdio.h. 467 00:22:53,510 --> 00:22:54,890 Hoezo zijn de bibliotheken, hoewel? 468 00:22:54,890 --> 00:22:55,770 Kun je iets specifieker? 469 00:22:55,770 --> 00:23:01,180 >> STUDENT: Het maakt het zo dat je kunt gebruik maken van bepaalde codewoorden een hebben 470 00:23:01,180 --> 00:23:05,710 functioneren gebeuren zonder te gaan en maak de functie c zelf. 471 00:23:05,710 --> 00:23:08,730 >> JASON HIRSCHHORN: Kunt u me een voorbeeld geven? 472 00:23:08,730 --> 00:23:11,160 >> STUDENT: Net als printf is degene die je kunt gebruiken. 473 00:23:11,160 --> 00:23:11,860 >> JASON HIRSCHHORN: Printf. 474 00:23:11,860 --> 00:23:14,680 Dus je zegt printf is een van die functies waar in plaats van te 475 00:23:14,680 --> 00:23:19,840 Schrijf printf op uw eigen, printf is daadwerkelijk in stdio.h, zodat u 476 00:23:19,840 --> 00:23:22,010 kan gewoon gebruiken en veronderstellen dat het zal werken. 477 00:23:22,010 --> 00:23:28,270 In stdio.h, als je opende dat bestand, zou het onder meer hoe printf 478 00:23:28,270 --> 00:23:31,620 werken, alle van de code voor printf? 479 00:23:31,620 --> 00:23:33,105 Waarom schud je hoofd? 480 00:23:33,105 --> 00:23:35,710 >> STUDENT: Omdat de header file net omvat de functie declaratie. 481 00:23:35,710 --> 00:23:36,400 >> JASON HIRSCHHORN: Precies goed. 482 00:23:36,400 --> 00:23:39,680 De header-bestand bevat alleen de functie declaratie. 483 00:23:39,680 --> 00:23:42,950 Dus eigenlijk, als je dit samen te stellen, hit Maak Graaf, die wij zullen doen in een 484 00:23:42,950 --> 00:23:48,070 ten tweede, de compiler weet dat als u printf gebruiken, printf bestaat. 485 00:23:48,070 --> 00:23:49,370 Het zal ergens worden gedefinieerd. 486 00:23:49,370 --> 00:23:51,200 Het is niet een probleem voor u het gebruik ervan. 487 00:23:51,200 --> 00:23:55,490 En dan later op, het zijn de enen en nullen die daadwerkelijk bevatten 488 00:23:55,490 --> 00:23:58,360 printf's implementatie en voeg ze samen met uw code. 489 00:23:58,360 --> 00:24:01,935 Hoe zorg je ervoor dat het omvat de enen en nullen voor, zeg, krijg touwtje? 490 00:24:01,935 --> 00:24:05,670 491 00:24:05,670 --> 00:24:07,210 >> STUDENT: Get string in cs50.h. 492 00:24:07,210 --> 00:24:07,830 >> JASON HIRSCHHORN: Right. 493 00:24:07,830 --> 00:24:11,110 Dus dat zegt krijg snaar bestaat, de functie declaratie. 494 00:24:11,110 --> 00:24:15,410 Maar toen de enen en nullen, de binaire bestand dat eigenlijk omvat de 495 00:24:15,410 --> 00:24:17,370 uitvoering van get touwtje? 496 00:24:17,370 --> 00:24:19,310 Hoe zorg je ervoor dat gaat met uw programma? 497 00:24:19,310 --> 00:24:23,220 >> STUDENT: Steek de linker in de command line argument. 498 00:24:23,220 --> 00:24:25,430 >> JASON HIRSCHHORN: Steek de linker in de command line argument. 499 00:24:25,430 --> 00:24:26,700 Hoe doe je dat? 500 00:24:26,700 --> 00:24:29,730 >> STUDENT: Het is de-l lijn in het wapengekletter 501 00:24:29,730 --> 00:24:30,480 >> JASON HIRSCHHORN: Precies goed. 502 00:24:30,480 --> 00:24:32,900 U zegt-l CS50, toch? 503 00:24:32,900 --> 00:24:34,940 Dat geldt ook voor de enen en nullen. 504 00:24:34,940 --> 00:24:36,460 >> STUDENT: Maar Make doet dat voor je, toch? 505 00:24:36,460 --> 00:24:37,010 >> JASON HIRSCHHORN: Precies. 506 00:24:37,010 --> 00:24:40,390 Zorg dat voor je doet, maar uiteindelijk, zul je niet hebt Make, of 507 00:24:40,390 --> 00:24:43,220 je zult moeten maken een maken op uw eigen, dus dat is een 508 00:24:43,220 --> 00:24:43,940 goede ding om te onthouden. 509 00:24:43,940 --> 00:24:47,350 Als je naar een van deze te gebruiken andere bibliotheken, niet alleen heb je 510 00:24:47,350 --> 00:24:49,490 om te schrijven # include en dan is de bibliotheek. 511 00:24:49,490 --> 00:24:51,420 Je moet ook om het te koppelen inch 512 00:24:51,420 --> 00:24:54,480 En die twee dingen zijn anders. -L CS50 is anders 513 00:24:54,480 --> 00:24:59,260 dan # include cs50.h. 514 00:24:59,260 --> 00:25:02,870 >> Dan hebben we int main leegte accolades, en nu gaan we naar code 515 00:25:02,870 --> 00:25:03,590 binnenkant belangrijkste. 516 00:25:03,590 --> 00:25:07,090 De eerste lijn die ik hier heb is een reactie dat zegt, een array maken 517 00:25:07,090 --> 00:25:08,820 met ints een tot vijf. 518 00:25:08,820 --> 00:25:12,600 Wat is een goed woord om te beschrijven wat ik hebben op dit moment op het scherm, net 519 00:25:12,600 --> 00:25:14,170 reacties binnen main? 520 00:25:14,170 --> 00:25:15,722 Wat doen we dat noemen? 521 00:25:15,722 --> 00:25:16,820 >> STUDENT: Pseudocode. 522 00:25:16,820 --> 00:25:17,840 >> JASON HIRSCHHORN: Pseudocode. 523 00:25:17,840 --> 00:25:18,420 Dank je, Jeffrey. 524 00:25:18,420 --> 00:25:19,540 Dat is precies goed. 525 00:25:19,540 --> 00:25:20,005 Pseudocode. 526 00:25:20,005 --> 00:25:22,854 Hebben jullie gezien pseudocode eerder? 527 00:25:22,854 --> 00:25:28,340 Steek je hand op als je hebt gebruikt pseudocode voordat probleem set een. 528 00:25:28,340 --> 00:25:29,400 Ongeveer de helft van jullie. 529 00:25:29,400 --> 00:25:32,700 >> Ik zou sterk aanbevelen gebruik pseudocode te breken problemen in 530 00:25:32,700 --> 00:25:35,210 kleinere, meer makkelijk af te bijten stukken. 531 00:25:35,210 --> 00:25:38,630 Ook als je de pseudocode, u hebben al grotendeels uw commentaar 532 00:25:38,630 --> 00:25:40,760 ingebouwd, zodat je niet hoeft te ga terug en probeer te achterhalen 533 00:25:40,760 --> 00:25:42,450 wat je aan het doen waren. 534 00:25:42,450 --> 00:25:44,730 Dus kan iemand mij dit eerste lijn om een ​​array te maken met ints een 535 00:25:44,730 --> 00:25:45,980 door vijf? 536 00:25:45,980 --> 00:25:48,700 537 00:25:48,700 --> 00:25:49,130 U? 538 00:25:49,130 --> 00:25:53,350 >> STUDENT: Int en dan kunt u bellen ongeacht het aantal, en dan vierkant 539 00:25:53,350 --> 00:25:54,830 bracket vijf. 540 00:25:54,830 --> 00:25:57,820 >> JASON HIRSCHHORN: Dus int nummers, square bracket vijf. 541 00:25:57,820 --> 00:25:59,160 >> STUDENT: gelijk, en vervolgens accolades. 542 00:25:59,160 --> 00:26:00,830 >> JASON HIRSCHHORN: Is gelijk aan, accolades. 543 00:26:00,830 --> 00:26:01,830 >> STUDENT: Een, twee, drie, vier. 544 00:26:01,830 --> 00:26:05,566 >> JASON HIRSCHHORN: Een, twee, drie, vier, vijf. 545 00:26:05,566 --> 00:26:07,390 >> STUDENT: En dan accolades en dan puntkomma. 546 00:26:07,390 --> 00:26:09,240 >> JASON HIRSCHHORN: En krullend accolades en puntkomma. 547 00:26:09,240 --> 00:26:10,330 Excellent. 548 00:26:10,330 --> 00:26:12,210 Uitprinten elk int op een nieuwe regel. 549 00:26:12,210 --> 00:26:17,140 Kan iemand anders geven me die code, alsjeblieft? 550 00:26:17,140 --> 00:26:17,530 [? Matu? ?] 551 00:26:17,530 --> 00:26:18,560 Ga je gang. 552 00:26:18,560 --> 00:26:20,440 >> STUDENT: Voor ( 553 00:26:20,440 --> 00:26:21,750 >> JASON HIRSCHHORN: Voor ( 554 00:26:21,750 --> 00:26:23,740 >> STUDENT: Int i = 0 555 00:26:23,740 --> 00:26:26,070 >> JASON HIRSCHHORN: Int i = 0 556 00:26:26,070 --> 00:26:28,190 >> STUDENT: Puntkomma i minder dan vijf. 557 00:26:28,190 --> 00:26:31,680 >> JASON HIRSCHHORN: Puntkomma, i minder dan 5. 558 00:26:31,680 --> 00:26:33,600 >> STUDENT: Puntkomma, i + +. 559 00:26:33,600 --> 00:26:35,140 >> JASON HIRSCHHORN: Puntkomma, i + +. 560 00:26:35,140 --> 00:26:37,720 >> STUDENT: Gesloten haakjes, open vervolgens brace. 561 00:26:37,720 --> 00:26:39,410 >> JASON HIRSCHHORN: Gesloten haakjes en twee beugels. 562 00:26:39,410 --> 00:26:40,510 Binnen de beugel? 563 00:26:40,510 --> 00:26:47,640 >> STUDENT: En dan printf "% d / n" 564 00:26:47,640 --> 00:26:48,695 >> JASON HIRSCHHORN: Sorry, wacht even. 565 00:26:48,695 --> 00:26:52,330 Printf "% d / n, gesloten citaat. 566 00:26:52,330 --> 00:26:55,980 >> STUDENT: En dan gesloten citaat, komma, telling, beugel i. 567 00:26:55,980 --> 00:26:58,350 >> JASON HIRSCHHORN: Komma, tellen, beugel i. 568 00:26:58,350 --> 00:26:59,970 >> STUDENT: Sorry, aantallen beugel i. 569 00:26:59,970 --> 00:27:01,416 >> JASON HIRSCHHORN: Numbers, beugel i. 570 00:27:01,416 --> 00:27:03,200 >> STUDENT: Sorry. 571 00:27:03,200 --> 00:27:04,750 En dan gesloten haakjes, puntkomma. 572 00:27:04,750 --> 00:27:07,156 >> JASON HIRSCHHORN: Gesloten haakjes, puntkomma. 573 00:27:07,156 --> 00:27:08,680 Ik ga redden dat. 574 00:27:08,680 --> 00:27:12,670 We gaan tellen. 575 00:27:12,670 --> 00:27:14,742 En hoe kan ik tellen draaien? 576 00:27:14,742 --> 00:27:16,470 >> STUDENT: Backslash. 577 00:27:16,470 --> 00:27:17,180 >> STUDENT: Dot slash - 578 00:27:17,180 --> 00:27:18,050 >> JASON HIRSCHHORN:. / Tellen, precies. 579 00:27:18,050 --> 00:27:19,380 Dank u. . / Tellen. 580 00:27:19,380 --> 00:27:21,060 Een, twee, drie, vier, vijf nieuwe lijnen. 581 00:27:21,060 --> 00:27:22,110 Lijkt alsof het werkte. 582 00:27:22,110 --> 00:27:23,200 Ja, Noah? 583 00:27:23,200 --> 00:27:26,660 >> STUDENT: Je zou ook kleiner dan of doen gelijk aan vier, net als ik minder dan 584 00:27:26,660 --> 00:27:27,630 of gelijk is aan vier? 585 00:27:27,630 --> 00:27:31,190 Is er enig voordeel aan minder te doen dan vijf, of gewoon een andere manier van 586 00:27:31,190 --> 00:27:31,610 schrijven? 587 00:27:31,610 --> 00:27:35,280 >> JASON HIRSCHHORN: Dus de vraag is dat je zou hebben gedaan i kleiner is dan of 588 00:27:35,280 --> 00:27:37,450 gelijk aan vier in plaats van i is minder dan vijf. 589 00:27:37,450 --> 00:27:38,935 Zou dat dezelfde hebben gewerkt? 590 00:27:38,935 --> 00:27:39,760 >> STUDENT: Het moet. 591 00:27:39,760 --> 00:27:39,860 >> JASON HIRSCHHORN: Ja. 592 00:27:39,860 --> 00:27:41,660 Het geheel zou hebben werken hetzelfde. 593 00:27:41,660 --> 00:27:44,780 Stilistisch, het is over het algemeen minder dan, en je ziet in een seconde wanneer 594 00:27:44,780 --> 00:27:48,160 we strijkers, kunt u iets gebruiken genaamd strlen, die je gezien hebt 595 00:27:48,160 --> 00:27:50,380 voor, om de lengte te krijgen van de string. 596 00:27:50,380 --> 00:27:54,090 En je kan niet minder doen dan of gelijk strlen. 597 00:27:54,090 --> 00:27:56,500 Je zou van minder dan of doen gelijk strlen min een. 598 00:27:56,500 --> 00:27:59,260 Dus het is gewoon leuker om minder doen dan strlen. 599 00:27:59,260 --> 00:28:00,240 Ja? 600 00:28:00,240 --> 00:28:03,270 >> STUDENT: En in de feitelijke quizzen, doen we moeten opmerkingen over onze zorgen 601 00:28:03,270 --> 00:28:04,620 code ook? 602 00:28:04,620 --> 00:28:06,130 >> JASON HIRSCHHORN: De vraag werd in quizzen, doe je 603 00:28:06,130 --> 00:28:07,760 moeten commentaar geven? 604 00:28:07,760 --> 00:28:12,050 Dus we meer praten over quizzen wanneer ze komen, maar over het algemeen een goede 605 00:28:12,050 --> 00:28:14,530 vuistregel is wanneer u onderweg bent het schrijven van code, bieden opmerkingen. 606 00:28:14,530 --> 00:28:18,130 Als u de code verkeerd, maar het krijgt commentaar rechts, misschien krijg je een aantal 607 00:28:18,130 --> 00:28:22,280 krediet zowel van mij als ik de indeling u op een probleem set of op een quiz. 608 00:28:22,280 --> 00:28:24,660 Dus opmerkingen zijn altijd goed om te geven. 609 00:28:24,660 --> 00:28:25,040 Sweet. 610 00:28:25,040 --> 00:28:25,460 Tellen. 611 00:28:25,460 --> 00:28:26,720 Uitstekend werk geleverd. 612 00:28:26,720 --> 00:28:28,570 Laten we verder gaan. 613 00:28:28,570 --> 00:28:29,920 >> Snaren. 614 00:28:29,920 --> 00:28:30,630 Snaren. 615 00:28:30,630 --> 00:28:31,730 We hebben dit al eerder in collegezalen gezien. 616 00:28:31,730 --> 00:28:33,390 Deze blies mijn gedachten toen ik eerst vond dit uit. 617 00:28:33,390 --> 00:28:37,240 Waarschijnlijk deden klap niemands erg vinden om hier, maar dat is OK. 618 00:28:37,240 --> 00:28:41,260 >> Strings zijn arrays van karakters, en ze eindigen met, zoals je al eerder zei, 619 00:28:41,260 --> 00:28:45,710 de null-terminator, die is dit / 0 karakter. 620 00:28:45,710 --> 00:28:47,740 Als we gaan een string op het vestigen boord, we zullen het trekken hierheen. 621 00:28:47,740 --> 00:28:53,080 622 00:28:53,080 --> 00:28:56,420 Hoe lang is deze string? 623 00:28:56,420 --> 00:28:56,680 Sorry. 624 00:28:56,680 --> 00:28:57,660 Hoe lang is deze string? 625 00:28:57,660 --> 00:28:57,910 >> STUDENT: [onverstaanbaar]. 626 00:28:57,910 --> 00:28:59,010 >> JASON HIRSCHHORN: Four? 627 00:28:59,010 --> 00:28:59,880 Waarom is het vier? 628 00:28:59,880 --> 00:29:02,240 >> STUDENT: Omdat de vijfde plek is voor de nul-karakter. 629 00:29:02,240 --> 00:29:04,070 >> JASON HIRSCHHORN: Dus de vijfde plek is voor de nul-karakter. 630 00:29:04,070 --> 00:29:07,130 Dus als ik was om te draaien strlen op Dit zou het me vier. 631 00:29:07,130 --> 00:29:07,850 Corrigeren. 632 00:29:07,850 --> 00:29:11,640 En de array, hoewel, als ik initialiseren deze array, hoeveel plaatsen 633 00:29:11,640 --> 00:29:13,444 zou ik moeten vragen? 634 00:29:13,444 --> 00:29:13,821 >> STUDENT: Five. 635 00:29:13,821 --> 00:29:14,200 >> JASON HIRSCHHORN: Five. 636 00:29:14,200 --> 00:29:17,650 Ik zou moeten vragen voor vijf, maar ik kan alleen zet vier personages in hier 637 00:29:17,650 --> 00:29:19,750 want ik moet dat null zetten terminator aan het uiteinde. 638 00:29:19,750 --> 00:29:25,260 Dus we gaan om te schrijven in "ohai" en zet de null-terminator op het einde. 639 00:29:25,260 --> 00:29:31,820 640 00:29:31,820 --> 00:29:34,940 We zullen zeggen dat dit koord s is gelijk aan deze. 641 00:29:34,940 --> 00:29:36,610 Wat is s beugel nul? 642 00:29:36,610 --> 00:29:40,210 643 00:29:40,210 --> 00:29:41,550 s beugel nul, Annie? 644 00:29:41,550 --> 00:29:41,950 >> STUDENT: O. 645 00:29:41,950 --> 00:29:45,400 >> JASON HIRSCHHORN: O, precies. s beugel ene? 646 00:29:45,400 --> 00:29:48,200 s beugel vijf? 647 00:29:48,200 --> 00:29:52,670 648 00:29:52,670 --> 00:29:53,955 s beugel vijf? 649 00:29:53,955 --> 00:29:54,740 >> STUDENT: Bestaat niet. 650 00:29:54,740 --> 00:29:55,040 >> JASON HIRSCHHORN: Bestaat niet. 651 00:29:55,040 --> 00:29:57,050 Precies goed. 652 00:29:57,050 --> 00:29:57,940 Cool. 653 00:29:57,940 --> 00:30:03,120 Heeft u vragen over het begrip strings als arrays van karakters? 654 00:30:03,120 --> 00:30:03,870 OK, dan. 655 00:30:03,870 --> 00:30:05,440 Nog een programma voor jullie. 656 00:30:05,440 --> 00:30:09,190 Schrijf een programma dat de gebruiker vraagt voor een string dan drukt elke 657 00:30:09,190 --> 00:30:11,880 karakter op een nieuwe regel. 658 00:30:11,880 --> 00:30:14,160 Dus laten we eens drie minuten om te schrijven dit programma, en dan zullen we het code 659 00:30:14,160 --> 00:30:15,410 als groep. 660 00:30:15,410 --> 00:31:04,730 661 00:31:04,730 --> 00:31:04,830 >> Sorry. 662 00:31:04,830 --> 00:31:06,470 Heb je nodig om dit te zien? 663 00:31:06,470 --> 00:31:07,410 >> STUDENT: Nee. 664 00:31:07,410 --> 00:31:08,660 >> JASON HIRSCHHORN: OK. 665 00:31:08,660 --> 00:31:36,390 666 00:31:36,390 --> 00:31:40,605 Laten we nog een minuut om dit te coderen, of in ieder geval aan de slag op het. 667 00:31:40,605 --> 00:32:13,900 668 00:32:13,900 --> 00:32:17,020 >> Zodat u kunt blijven werken, maar ik ga om te beginnen gaan doorheen. 669 00:32:17,020 --> 00:32:22,560 Dus als voorheen, ik heb op het scherm # Include cs50.h, # include stdio.h. 670 00:32:22,560 --> 00:32:24,020 int main leegte. 671 00:32:24,020 --> 00:32:28,880 Binnen belangrijkste's accolades, ik heb twee reacties, pseudocode. 672 00:32:28,880 --> 00:32:30,980 Men is vragen om een ​​string van de gebruiker. 673 00:32:30,980 --> 00:32:33,900 De tweede is uit te printen elke karakter op een nieuwe regel. 674 00:32:33,900 --> 00:32:39,780 Dus Anna, kunt u mij vraagt een reeks van de gebruiker? 675 00:32:39,780 --> 00:32:41,970 >> STUDENT: Printf. 676 00:32:41,970 --> 00:32:42,720 >> JASON HIRSCHHORN: Printf? 677 00:32:42,720 --> 00:32:45,050 >> STUDENT: Ja. 678 00:32:45,050 --> 00:32:46,165 ( 679 00:32:46,165 --> 00:32:47,610 >> JASON HIRSCHHORN: ( 680 00:32:47,610 --> 00:32:49,300 >> STUDENT: "geef me een string. 681 00:32:49,300 --> 00:32:52,380 >> JASON HIRSCHHORN: "geef mij een str - oeps - 682 00:32:52,380 --> 00:32:53,710 string. 683 00:32:53,710 --> 00:32:59,980 >> STUDENT: / n ") puntkomma. 684 00:32:59,980 --> 00:33:02,300 >> JASON HIRSCHHORN: Beëindig de string, gesloten haakjes, puntkomma. 685 00:33:02,300 --> 00:33:03,550 >> STUDENT: Ja. 686 00:33:03,550 --> 00:33:09,080 En dan volgende regel, touwtje s = krijgen string. 687 00:33:09,080 --> 00:33:11,240 >> JASON HIRSCHHORN: String s = krijgen string. 688 00:33:11,240 --> 00:33:11,665 >> STUDENT: Ja. 689 00:33:11,665 --> 00:33:13,080 En dan () 690 00:33:13,080 --> 00:33:14,365 >> JASON HIRSCHHORN: () 691 00:33:14,365 --> 00:33:14,720 >> STUDENT: Puntkomma. 692 00:33:14,720 --> 00:33:15,540 >> JASON HIRSCHHORN: Puntkomma. 693 00:33:15,540 --> 00:33:16,890 Fantastisch. 694 00:33:16,890 --> 00:33:19,000 Dus ik ga naar een string te krijgen en Ik ga het in wat te redden? 695 00:33:19,000 --> 00:33:21,830 Wat is de variabele genaamd die u hebt gemaakt? 696 00:33:21,830 --> 00:33:23,290 >> STUDENT: String s. 697 00:33:23,290 --> 00:33:24,580 >> JASON HIRSCHHORN: De variabele heet s. 698 00:33:24,580 --> 00:33:25,700 Het is het type string. 699 00:33:25,700 --> 00:33:27,200 Precies. 700 00:33:27,200 --> 00:33:30,080 Volgende dat we willen is uit te printen elk teken op een nieuwe regel. 701 00:33:30,080 --> 00:33:31,710 Wie kan mij die code geven? 702 00:33:31,710 --> 00:33:32,110 [Onverstaanbaar]? 703 00:33:32,110 --> 00:33:33,000 Kan je het aan mij? 704 00:33:33,000 --> 00:33:33,580 >> STUDENT: Tuurlijk. 705 00:33:33,580 --> 00:33:35,420 >> JASON HIRSCHHORN: Laten we het doen. 706 00:33:35,420 --> 00:33:36,080 En sorry. 707 00:33:36,080 --> 00:33:38,896 Ik hou niet te herhalen wat je zegt want je hebt gelijk krijgt, maar ik 708 00:33:38,896 --> 00:33:42,100 hebben om het zo te herhalen dat wanneer ze transcriberen dit, kunnen ze allemaal krijgen 709 00:33:42,100 --> 00:33:44,870 de tekst op de transcripties. 710 00:33:44,870 --> 00:33:47,180 Dus je kunt gewoon blijven praten. 711 00:33:47,180 --> 00:33:48,590 Helaas, ik heb om het te zeggen over je heen. 712 00:33:48,590 --> 00:33:49,510 Het spijt me, maar - 713 00:33:49,510 --> 00:33:50,610 >> STUDENT: Dat is prima. 714 00:33:50,610 --> 00:33:53,010 Voor int i = 0 715 00:33:53,010 --> 00:33:54,170 >> JASON HIRSCHHORN: Voor int i = 0 716 00:33:54,170 --> 00:33:56,740 >> STUDENT: Ik minder dan - 717 00:33:56,740 --> 00:33:58,206 >> JASON HIRSCHHORN: Puntkomma. 718 00:33:58,206 --> 00:34:00,650 >> STUDENT: Voordat deze, kunnen we een variabele zodat je int naam lengte? 719 00:34:00,650 --> 00:34:01,870 >> JASON HIRSCHHORN: Oh, doe je niet willen de puntkomma te zetten? 720 00:34:01,870 --> 00:34:02,310 OK. 721 00:34:02,310 --> 00:34:05,120 Dus wat wil je doen na nul? 722 00:34:05,120 --> 00:34:09,340 >> STUDENT: Ik wil het krijgen snaar lengte van s en 723 00:34:09,340 --> 00:34:10,410 ingesteld die een variabele? 724 00:34:10,410 --> 00:34:11,760 >> JASON HIRSCHHORN: OK, dus hoe moet ik dat doen? 725 00:34:11,760 --> 00:34:17,636 >> STUDENT: Dus je doet int lengte = 726 00:34:17,636 --> 00:34:20,010 >> JASON HIRSCHHORN: Int lengte = 727 00:34:20,010 --> 00:34:22,230 >> STUDENT: S-T-R-L-E-N. 728 00:34:22,230 --> 00:34:24,260 >> JASON HIRSCHHORN: S-T-R-L-E-N - 729 00:34:24,260 --> 00:34:25,380 >> STUDENT: Van s. 730 00:34:25,380 --> 00:34:25,790 Beugels. 731 00:34:25,790 --> 00:34:27,920 >> JASON HIRSCHHORN: (s). 732 00:34:27,920 --> 00:34:33,040 >> STUDENT: En dan denk ik dat je moet zet een puntkomma tussen de twee ints. 733 00:34:33,040 --> 00:34:34,590 >> JASON HIRSCHHORN: A puntkomma na de nul? 734 00:34:34,590 --> 00:34:35,260 >> STUDENT: Yeah. 735 00:34:35,260 --> 00:34:40,670 Zet dan een puntkomma na dat, en je zegt, ik minder dan lengte. 736 00:34:40,670 --> 00:34:43,250 i minder dan lengte, die is de variabele. 737 00:34:43,250 --> 00:34:44,590 >> STUDENT: En dan puntkomma. 738 00:34:44,590 --> 00:34:45,790 >> JASON HIRSCHHORN: Puntkomma. 739 00:34:45,790 --> 00:34:46,290 >> STUDENT: i + +. 740 00:34:46,290 --> 00:34:46,909 >> JASON HIRSCHHORN: i + +. 741 00:34:46,909 --> 00:34:47,530 Daar is onze voor loop. 742 00:34:47,530 --> 00:34:48,860 OK, binnen de lus. 743 00:34:48,860 --> 00:34:51,670 >> STUDENT: En dan printf doen. 744 00:34:51,670 --> 00:34:53,340 >> JASON HIRSCHHORN: Printf. 745 00:34:53,340 --> 00:34:53,889 >> STUDENT: Beugels. 746 00:34:53,889 --> 00:34:55,130 >> JASON HIRSCHHORN: Haakjes, quotes. 747 00:34:55,130 --> 00:34:59,930 >> STUDENT: Haakjes, citaten,% c / n. 748 00:34:59,930 --> 00:35:00,760 >> JASON HIRSCHHORN:% c, OK. 749 00:35:00,760 --> 00:35:01,670 >> STUDENT: / n. 750 00:35:01,670 --> 00:35:03,470 >> JASON HIRSCHHORN: / n. 751 00:35:03,470 --> 00:35:04,410 >> STUDENT: Gesloten quotes. 752 00:35:04,410 --> 00:35:05,270 >> JASON HIRSCHHORN: Gesloten quotes. 753 00:35:05,270 --> 00:35:05,810 >> STUDENT: Komma. 754 00:35:05,810 --> 00:35:06,860 >> JASON HIRSCHHORN: Komma. 755 00:35:06,860 --> 00:35:07,800 >> STUDENT: S. 756 00:35:07,800 --> 00:35:08,070 >> JASON HIRSCHHORN: S. 757 00:35:08,070 --> 00:35:08,690 >> STUDENT: Beugel i. 758 00:35:08,690 --> 00:35:10,230 >> JASON HIRSCHHORN: Beugel i. 759 00:35:10,230 --> 00:35:11,520 >> STUDENT: En dan gesloten haakjes. 760 00:35:11,520 --> 00:35:12,540 >> JASON HIRSCHHORN: Gesloten haakjes. 761 00:35:12,540 --> 00:35:13,660 >> STUDENT: En dan puntkomma. 762 00:35:13,660 --> 00:35:13,770 >> JASON HIRSCHHORN: Puntkomma. 763 00:35:13,770 --> 00:35:14,380 Fantastisch. 764 00:35:14,380 --> 00:35:16,890 Dus laten we slaan dit. 765 00:35:16,890 --> 00:35:19,770 Maken spellen. 766 00:35:19,770 --> 00:35:20,040 Oh boy. 767 00:35:20,040 --> 00:35:22,275 Ik heb een paar fouten. 768 00:35:22,275 --> 00:35:33,120 Eerste fout op lijn 11, het zegt, verwacht meningsuiting, en het geeft 769 00:35:33,120 --> 00:35:36,910 me een fout dat de tweede int, is er de fout. 770 00:35:36,910 --> 00:35:38,430 Er een fout daar rond. 771 00:35:38,430 --> 00:35:41,060 Weet iemand wat er fout is dat? 772 00:35:41,060 --> 00:35:41,640 Kurt? 773 00:35:41,640 --> 00:35:44,108 >> STUDENT: Ik denk dat het zou moeten een komma en niet een puntkomma. 774 00:35:44,108 --> 00:35:46,010 >> JASON HIRSCHHORN: OK, een komma in plaats van een puntkomma. 775 00:35:46,010 --> 00:35:47,340 Zo is dat alles wat we nodig hebben om te herstellen? 776 00:35:47,340 --> 00:35:47,655 >> STUDENT: Nee. 777 00:35:47,655 --> 00:35:48,930 >> JASON HIRSCHHORN: Wat anders hebben we nodig om te herstellen? 778 00:35:48,930 --> 00:35:50,920 >> STUDENT: We moeten string.h omvatten. 779 00:35:50,920 --> 00:35:51,680 >> JASON HIRSCHHORN: Include string.h. 780 00:35:51,680 --> 00:35:53,730 Waar moet ik onder andere dat? 781 00:35:53,730 --> 00:35:57,085 >> STUDENT: Zelfde plaats je ook bent de andere dingen, rechts 782 00:35:57,085 --> 00:35:59,560 na zijn stdio.h. 783 00:35:59,560 --> 00:36:01,610 >> JASON HIRSCHHORN: Eens kijken of dit werkt ten eerste omdat het algemeen, ik wil 784 00:36:01,610 --> 00:36:06,360 een ding eerst repareren, en dan lopen het, en dan zien de fouten die we krijgen. 785 00:36:06,360 --> 00:36:11,620 Dus we gaan naar de terminal te wissen met controle n, laten we het doen maken spreuk. 786 00:36:11,620 --> 00:36:15,190 787 00:36:15,190 --> 00:36:18,770 Dus een andere fout op lijn 11. 788 00:36:18,770 --> 00:36:20,540 Verwacht puntkomma. 789 00:36:20,540 --> 00:36:22,640 En ik ben nog steeds fouten op deze lijn. 790 00:36:22,640 --> 00:36:25,270 Dus het is niet me een fout zeggend het gegeven begrijpt niet wat strlen is, 791 00:36:25,270 --> 00:36:28,980 maar het geeft me fouten op deze lijn, dus wat er mis is? 792 00:36:28,980 --> 00:36:29,690 Mark? 793 00:36:29,690 --> 00:36:30,940 Marcus. 794 00:36:30,940 --> 00:36:32,570 >> STUDENT: Moet je verwijderen de tweede int verklaring? 795 00:36:32,570 --> 00:36:34,990 >> JASON HIRSCHHORN: Verwijder de tweede int. 796 00:36:34,990 --> 00:36:35,710 Laten we proberen dit. 797 00:36:35,710 --> 00:36:37,600 Nu duidelijk de terminal. 798 00:36:37,600 --> 00:36:40,130 Maken spellen. 799 00:36:40,130 --> 00:36:40,490 Fout. 800 00:36:40,490 --> 00:36:42,890 Impliciet verklaren bibliotheek functie strlen. 801 00:36:42,890 --> 00:36:44,270 Dus nu zien we dat fout. 802 00:36:44,270 --> 00:36:45,760 Wat hebben we nodig om te omvatten? 803 00:36:45,760 --> 00:36:46,660 >> STUDENT: string.h. 804 00:36:46,660 --> 00:36:51,880 >> JASON HIRSCHHORN: Include string.h, we zullen doen # include string.h aan de top 805 00:36:51,880 --> 00:36:52,920 van het scherm. 806 00:36:52,920 --> 00:36:55,450 Laten we het redden, maken spellen. 807 00:36:55,450 --> 00:36:56,970 Nu gecompileerd. 808 00:36:56,970 --> 00:37:01,970 Dus nogmaals, de dingen die we nodig hadden om herinner lijn 12 in onze voor lus als 809 00:37:01,970 --> 00:37:08,010 we zijn het instelt, int i = 0, lengte = strlen (s). 810 00:37:08,010 --> 00:37:09,350 >> Dit is een fantastische strategie. 811 00:37:09,350 --> 00:37:12,590 De stijl van dit is geweldig, het ontwerp van dit is geweldig. 812 00:37:12,590 --> 00:37:15,620 We kunnen later ingaan op deze redenen, maar op deze manier hoeft u alleen maar te bellen 813 00:37:15,620 --> 00:37:19,040 strlen eens in plaats van elke keer dat je loopt door de lus. 814 00:37:19,040 --> 00:37:22,255 Echter, moet je een komma daar te gebruiken en je hoeft niet int weer nodig. 815 00:37:22,255 --> 00:37:24,180 Als je het verklaren van deze beide variabelen samen, je 816 00:37:24,180 --> 00:37:26,850 niet int weer nodig. 817 00:37:26,850 --> 00:37:29,820 En dan als je gaat strlen gebruiken, die andere bibliotheek 818 00:37:29,820 --> 00:37:33,560 functie niet opgenomen in stdio.h of cs50.h, maken 819 00:37:33,560 --> 00:37:35,310 ervoor dat u ook string.h. 820 00:37:35,310 --> 00:37:35,900 Kurt? 821 00:37:35,900 --> 00:37:39,085 >> STUDENT: Dus dan als je niet hoeft te zeggen wat voor soort lengte is, doet dat 822 00:37:39,085 --> 00:37:40,290 dat het moet een int zijn? 823 00:37:40,290 --> 00:37:41,930 Je kan niet twee verschillende types daar? 824 00:37:41,930 --> 00:37:43,290 >> JASON HIRSCHHORN: Dus je kon twee verschillende types. 825 00:37:43,290 --> 00:37:45,730 Lengte is een int hier, dat wel. 826 00:37:45,730 --> 00:37:48,590 Lengte is een int, want het is komma en dan het zelfde ding. 827 00:37:48,590 --> 00:37:50,460 >> STUDENT: Dus het gaat ervan uit dat het gaat hetzelfde te zijn als de eerste zijn? 828 00:37:50,460 --> 00:37:52,423 >> JASON HIRSCHHORN: Precies. 829 00:37:52,423 --> 00:37:54,970 We gaan niet om dit nu te doen, maar je kunnen bestaan ​​twee variabelen op 830 00:37:54,970 --> 00:37:57,080 dezelfde lijn met een data type. 831 00:37:57,080 --> 00:38:01,415 Dus int x, y zou creëren twee variabelen. 832 00:38:01,415 --> 00:38:05,830 833 00:38:05,830 --> 00:38:10,770 Dus int x, y, als we dat, geeft me een ongebruikte variabele x en y omdat 834 00:38:10,770 --> 00:38:12,020 we ze niet gebruiken. 835 00:38:12,020 --> 00:38:17,950 836 00:38:17,950 --> 00:38:21,650 Dus zetten leegte voordat is gewoon een mooie truc als je het niet gebruikt 837 00:38:21,650 --> 00:38:22,810 iets te gebruiken. 838 00:38:22,810 --> 00:38:26,300 Maar zoals je ziet, ik maak x en y op dezelfde lijn met een komma. 839 00:38:26,300 --> 00:38:28,450 Het creëren van twee gehele getallen daar. 840 00:38:28,450 --> 00:38:31,560 Zo ja, perfect mogelijk te maken twee dingen op dezelfde lijn 841 00:38:31,560 --> 00:38:33,720 gescheiden door een komma. 842 00:38:33,720 --> 00:38:35,470 Laten we te ontdoen van die, dat wel. 843 00:38:35,470 --> 00:38:36,370 >> Dus er is betovering. 844 00:38:36,370 --> 00:38:39,200 Dank jullie voor het coderen van het voor ons. 845 00:38:39,200 --> 00:38:43,040 Laten we het nog een keer, voer het uit. 846 00:38:43,040 --> 00:38:44,580 Geef me een string. 847 00:38:44,580 --> 00:38:45,580 [Onverstaanbaar], je deed het meeste. 848 00:38:45,580 --> 00:38:47,910 Wat is de string? 849 00:38:47,910 --> 00:38:48,250 >> STUDENT: Hallo. 850 00:38:48,250 --> 00:38:50,110 >> JASON HIRSCHHORN: Hallo. 851 00:38:50,110 --> 00:38:52,810 H-E-L-L-O, elk teken op een regel. 852 00:38:52,810 --> 00:38:53,700 Ziet er geweldig uit. 853 00:38:53,700 --> 00:38:54,750 Laten we lopen het opnieuw. 854 00:38:54,750 --> 00:38:56,050 Altijd gaan om te controleren voor hoek gevallen. 855 00:38:56,050 --> 00:38:57,750 Wat is een goede hoek zaak aan het inchecken? 856 00:38:57,750 --> 00:39:00,250 857 00:39:00,250 --> 00:39:00,890 >> STUDENT: Een getal? 858 00:39:00,890 --> 00:39:02,240 >> JASON HIRSCHHORN: Een getal. 859 00:39:02,240 --> 00:39:06,580 Dus ik zet in 1, en het drukt uit 1. 860 00:39:06,580 --> 00:39:08,970 Het is niet vragen om brieven, dus het lijkt alsof nummers te werken. 861 00:39:08,970 --> 00:39:09,890 Goede hoek zaak te controleren. 862 00:39:09,890 --> 00:39:11,740 Wat is een goede hoek zaak te controleren? 863 00:39:11,740 --> 00:39:12,420 >> STUDENT: Een lege string. 864 00:39:12,420 --> 00:39:12,910 >> JASON HIRSCHHORN: Hm? 865 00:39:12,910 --> 00:39:13,880 >> STUDENT: Net als een lege string. 866 00:39:13,880 --> 00:39:14,400 >> JASON HIRSCHHORN: Lege string. 867 00:39:14,400 --> 00:39:16,730 Dus laten we niet in alles te stoppen. 868 00:39:16,730 --> 00:39:18,660 En wat er wordt afgedrukt? 869 00:39:18,660 --> 00:39:19,090 >> STUDENT: Niets. 870 00:39:19,090 --> 00:39:19,870 >> JASON HIRSCHHORN: Niets. 871 00:39:19,870 --> 00:39:20,555 Lijkt alsof het werkt. 872 00:39:20,555 --> 00:39:23,790 Kon je meer hoek gevallen proberen, maar algemeen getallen, een ander data 873 00:39:23,790 --> 00:39:26,160 geweldig om te proberen, maar ook niets. 874 00:39:26,160 --> 00:39:29,180 Niets, nul, negatieven zijn altijd grote dingen te proberen en dingen die je 875 00:39:29,180 --> 00:39:33,140 moeten testen, dingen zeker zullen we testen voor en controleren 50 zal testen voor. 876 00:39:33,140 --> 00:39:34,720 Heeft u vragen over spell.c? 877 00:39:34,720 --> 00:39:37,752 878 00:39:37,752 --> 00:39:39,310 >> OK, laten we het hoofd terug. 879 00:39:39,310 --> 00:39:42,420 Ik heb nog een programma voor jullie te schrijven. 880 00:39:42,420 --> 00:39:44,700 Het students.c heet. 881 00:39:44,700 --> 00:39:49,020 Dit is een programma dat de gebruiker om vraagt vijf namen, dan kiest willekeurig 882 00:39:49,020 --> 00:39:51,600 en drukt een van de namen. 883 00:39:51,600 --> 00:39:54,840 Dit programma is een beetje meer betrokken dan de laatste twee schreven we, 884 00:39:54,840 --> 00:39:58,080 dus waarom niet we nemen vijf minuten om coderen is individueel, en dan zullen we 885 00:39:58,080 --> 00:40:00,130 coderen het als een groep. 886 00:40:00,130 --> 00:40:03,795 >> Dit programma ook een aantal dingen te betrekken je mag niet eerder hebben gezien, dus als 887 00:40:03,795 --> 00:40:06,390 heb je een vraag over, hoe Ik doe dat, steek je hand. 888 00:40:06,390 --> 00:40:08,530 Ik zal langskomen en u wijzen in de goede richting. 889 00:40:08,530 --> 00:40:10,820 Maar we doen het ook omdat deze zal een goede manier om wat te introduceren 890 00:40:10,820 --> 00:40:12,070 onderwerpen die zijn lastig. 891 00:40:12,070 --> 00:44:14,600 892 00:44:14,600 --> 00:44:15,560 >> Dus het werkt, toch? 893 00:44:15,560 --> 00:44:17,580 >> STUDENT: Yeah. 894 00:44:17,580 --> 00:44:19,180 >> JASON HIRSCHHORN: Wanneer u zich in een probleem set, er is veel manieren om te doen 895 00:44:19,180 --> 00:44:20,790 het, maar sommige zijn meer elegant dan anderen. 896 00:44:20,790 --> 00:44:29,000 897 00:44:29,000 --> 00:44:31,110 Laten we duiken inch 898 00:44:31,110 --> 00:44:32,880 # Include cs50.h. 899 00:44:32,880 --> 00:44:34,250 # Include stdio.h. 900 00:44:34,250 --> 00:44:37,240 int main leegte, accolades. 901 00:44:37,240 --> 00:44:39,430 Binnen de accolades, Ik heb twee opmerkingen. 902 00:44:39,430 --> 00:44:41,500 De eerste is, vraagt ​​de gebruiker voor vijf namen. 903 00:44:41,500 --> 00:44:46,580 De tweede is, willekeurig te kiezen en print een van de namen. 904 00:44:46,580 --> 00:44:50,250 Dus laten we de eerste, vraag de gebruiker voor vijf namen. 905 00:44:50,250 --> 00:44:53,730 Wie heeft de gebruiker gevraagd om vijf namen en kan mij vertellen hoe dat te doen? 906 00:44:53,730 --> 00:44:56,760 907 00:44:56,760 --> 00:44:58,570 Slechts twee mensen deden het eerste deel. 908 00:44:58,570 --> 00:45:00,150 Drie mensen deden het eerste deel. 909 00:45:00,150 --> 00:45:00,670 Vier, vijf. 910 00:45:00,670 --> 00:45:03,140 Tom, hoe doe je dat? 911 00:45:03,140 --> 00:45:09,940 >> STUDENT: Je zou verklaren een string en dan naam, beugel vijf. 912 00:45:09,940 --> 00:45:12,070 >> JASON HIRSCHHORN: String noem beugel vijf. 913 00:45:12,070 --> 00:45:15,350 Dus wat is deze lijn te doen, tekenreeksnaam beugel vijf? 914 00:45:15,350 --> 00:45:17,800 >> STUDENT: Je zou verklaren een array van strings. 915 00:45:17,800 --> 00:45:19,000 >> JASON HIRSCHHORN: Dit is een array van strings. 916 00:45:19,000 --> 00:45:21,590 Hoeveel snaren gaan te passen in hier? 917 00:45:21,590 --> 00:45:22,010 >> STUDENT: Five. 918 00:45:22,010 --> 00:45:22,320 >> JASON HIRSCHHORN: Five. 919 00:45:22,320 --> 00:45:22,660 Excellent. 920 00:45:22,660 --> 00:45:26,360 We gaan het Names omdat noemen we gaan om meerdere tanden te krijgen. 921 00:45:26,360 --> 00:45:27,790 OK, de volgende stap? 922 00:45:27,790 --> 00:45:29,270 >> STUDENT: En dan moet je hebben een lus - 923 00:45:29,270 --> 00:45:30,060 >> JASON HIRSCHHORN: For-lus. 924 00:45:30,060 --> 00:45:33,035 >> STUDENT: - voor i = 0. 925 00:45:33,035 --> 00:45:37,040 >> JASON HIRSCHHORN: Voor (int i = 0. 926 00:45:37,040 --> 00:45:38,270 >> STUDENT: Puntkomma. 927 00:45:38,270 --> 00:45:38,880 >> JASON HIRSCHHORN: Puntkomma. 928 00:45:38,880 --> 00:45:39,790 >> STUDENT: Ik minder dan vijf. 929 00:45:39,790 --> 00:45:41,310 >> JASON HIRSCHHORN: ik minder dan vijf. 930 00:45:41,310 --> 00:45:42,230 >> STUDENT: Puntkomma. 931 00:45:42,230 --> 00:45:42,560 >> JASON HIRSCHHORN: Puntkomma. 932 00:45:42,560 --> 00:45:43,380 >> STUDENT: i + +. 933 00:45:43,380 --> 00:45:46,050 >> JASON HIRSCHHORN: i + +. 934 00:45:46,050 --> 00:45:47,100 >> STUDENT: En dan gesloten haakjes. 935 00:45:47,100 --> 00:45:48,600 >> JASON HIRSCHHORN: Gesloten haakjes, en vervolgens een aantal accolades. 936 00:45:48,600 --> 00:45:50,050 Binnen de accolades? 937 00:45:50,050 --> 00:45:51,423 >> STUDENT: En dan printf. 938 00:45:51,423 --> 00:45:52,535 >> JASON HIRSCHHORN: Printf. 939 00:45:52,535 --> 00:45:56,200 >> STUDENT: Open haakjes, naam% d. 940 00:45:56,200 --> 00:45:57,090 >> JASON HIRSCHHORN: Sorry? 941 00:45:57,090 --> 00:45:57,660 >> STUDENT: Naam. 942 00:45:57,660 --> 00:45:58,200 >> JASON HIRSCHHORN: Naam. 943 00:45:58,200 --> 00:46:01,700 >> STUDENT: En dan spatie en% d. 944 00:46:01,700 --> 00:46:02,950 >> JASON HIRSCHHORN: Naam, ruimte,% d. 945 00:46:02,950 --> 00:46:05,630 946 00:46:05,630 --> 00:46:10,820 >> STUDENT: En dan / n, en vervolgens gesloten. 947 00:46:10,820 --> 00:46:15,070 >> JASON HIRSCHHORN: Dus naam, ruimte, % D / n, gesloten haakjes. 948 00:46:15,070 --> 00:46:17,730 >> STUDENT: Komma, i + 1. 949 00:46:17,730 --> 00:46:19,390 Het spijt me. 950 00:46:19,390 --> 00:46:21,040 Gesloten citaat, en vervolgens komma, i 1. 951 00:46:21,040 --> 00:46:24,400 >> JASON HIRSCHHORN: Gesloten citaat, komma, i 1. 952 00:46:24,400 --> 00:46:25,850 >> STUDENT: Ja. 953 00:46:25,850 --> 00:46:27,650 En dan de volgende regel - 954 00:46:27,650 --> 00:46:29,400 >> JASON HIRSCHHORN: i + 1. 955 00:46:29,400 --> 00:46:31,600 >> STUDENT: Ja. 956 00:46:31,600 --> 00:46:36,440 En dan de volgende dia is namen beugel i. 957 00:46:36,440 --> 00:46:39,000 >> JASON HIRSCHHORN: Volgende regel is namen beugel i. 958 00:46:39,000 --> 00:46:41,360 >> STUDENT: = krijg string. 959 00:46:41,360 --> 00:46:43,460 >> JASON HIRSCHHORN: = Get - 960 00:46:43,460 --> 00:46:44,510 hoofdletter G-E-T - 961 00:46:44,510 --> 00:46:45,530 string. 962 00:46:45,530 --> 00:46:47,800 Oeps, sorry. 963 00:46:47,800 --> 00:46:49,050 >> STUDENT: Open, gesloten haakjes en dan - 964 00:46:49,050 --> 00:46:50,940 >> JASON HIRSCHHORN: Open, gesloten Paren. 965 00:46:50,940 --> 00:46:51,030 >> STUDENT: Puntkomma. 966 00:46:51,030 --> 00:46:52,500 >> JASON HIRSCHHORN: Puntkomma. 967 00:46:52,500 --> 00:46:57,545 OK, dus je de array van initialiseren strijkers, namen, en ga dan door een 968 00:46:57,545 --> 00:47:02,720 voor de lus, en vijf keer uit te printen sommige vraagt ​​aan de gebruiker en vervolgens op te slaan 969 00:47:02,720 --> 00:47:03,360 vijf snaren. 970 00:47:03,360 --> 00:47:08,090 Heeft iemand enig aanpassingen aan dit? 971 00:47:08,090 --> 00:47:10,030 Tom, ik denk dat iedereen het met u eens. 972 00:47:10,030 --> 00:47:10,880 Ziet er goed uit. 973 00:47:10,880 --> 00:47:11,660 OK. 974 00:47:11,660 --> 00:47:14,830 Waarom heb je i +1, hoewel? 975 00:47:14,830 --> 00:47:18,000 >> STUDENT: Ik bedoel, niet over te zijn, maar ik 1, zodat het 976 00:47:18,000 --> 00:47:19,700 Naam van een tot vijf noemen. 977 00:47:19,700 --> 00:47:21,930 Anders zou het zijn naam nul tot vier noemen. 978 00:47:21,930 --> 00:47:24,400 >> JASON HIRSCHHORN: Dus je deed i 1 want anders zou 979 00:47:24,400 --> 00:47:27,060 uitgeprint nul tot vier omdat dat is hoe computers denken, maar de mens 980 00:47:27,060 --> 00:47:28,530 niet echt lezen als dat. 981 00:47:28,530 --> 00:47:30,190 Dat is een ander ding u zult tegenkomen. 982 00:47:30,190 --> 00:47:33,210 Soms als je iets afdrukken aan de gebruiker, wil je er een te maken 983 00:47:33,210 --> 00:47:35,733 beetje mooier, en het doen van i 1 is in dit geval een 984 00:47:35,733 --> 00:47:37,430 manier om het mooier te maken. 985 00:47:37,430 --> 00:47:41,380 >> Ik zie ook vijf keer, tekenreeksnaam is vijf, i is minder dan vijf. 986 00:47:41,380 --> 00:47:42,430 Ik weet waar je de vijf. 987 00:47:42,430 --> 00:47:44,890 Je kreeg het van mij te vertellen je vijf namen. 988 00:47:44,890 --> 00:47:49,000 Maar als we wilden de code maken beetje robuuster, een ding dat we 989 00:47:49,000 --> 00:47:53,110 kon doen is hier, buiten int, we iets doen als dit, 990 00:47:53,110 --> 00:47:57,070 # Define, en we konden NAMEN doen 5. 991 00:47:57,070 --> 00:48:01,580 992 00:48:01,580 --> 00:48:05,390 >> Dus eigenlijk, waar ik schrijf hoofdstad N, hoofdletter A, hoofdletter M, hoofdletter E, 993 00:48:05,390 --> 00:48:08,890 hoofdletter S, die string, zal deze vervangen die met 5 in de code. 994 00:48:08,890 --> 00:48:11,530 995 00:48:11,530 --> 00:48:13,445 Of laten we noemen het gewoon - we zullen noemen het NUMMER. 996 00:48:13,445 --> 00:48:17,190 Dus ik ben het definiëren van alle doppen NUMBER te zijn 5. 997 00:48:17,190 --> 00:48:22,830 >> Dus nu waar ik heb het nummer 5, I kan deze vervangen door alle doppen NUMBER. 998 00:48:22,830 --> 00:48:26,880 En nu, als ik wil het nummer te wijzigen van namen, alles wat ik moet doen is 999 00:48:26,880 --> 00:48:31,350 deze ene lijn, lijn vier, waar ik # Define nummer 5, dat veranderen naar 10, 1000 00:48:31,350 --> 00:48:34,340 of veranderen naar 4. 1001 00:48:34,340 --> 00:48:37,400 Wanneer uw code meer krijgt, je bent niet gaan naar alle plaatsen herinneren u 1002 00:48:37,400 --> 00:48:41,630 zet hoeveel namen je wilde, en in Om voor u niet een missen, dit is 1003 00:48:41,630 --> 00:48:45,490 een goede manier om het te doen, om iets te vinden up top en dan gewoon gebruik maken van die uitdrukking 1004 00:48:45,490 --> 00:48:46,400 overal in uw code. 1005 00:48:46,400 --> 00:48:46,780 Marcus? 1006 00:48:46,780 --> 00:48:49,780 >> STUDENT: Is dat stilistisch geprefereerde dan globaal definiëren van een 1007 00:48:49,780 --> 00:48:51,270 constante n? 1008 00:48:51,270 --> 00:48:53,760 >> JASON HIRSCHHORN: Dus is dat stilistisch liever dan wereldwijd 1009 00:48:53,760 --> 00:48:54,980 het definiëren van een constante n? 1010 00:48:54,980 --> 00:48:59,036 Dus je zegt dat je kon doen, int aantal = 5? 1011 00:48:59,036 --> 00:49:01,300 >> STUDENT: Hebben ze medeklinkers in C of nee? 1012 00:49:01,300 --> 00:49:02,720 >> JASON HIRSCHHORN: Of const - in gelijke. 1013 00:49:02,720 --> 00:49:04,275 Dus je bent gewoon te zeggen een globale variabele? 1014 00:49:04,275 --> 00:49:04,990 >> STUDENT: Yeah. 1015 00:49:04,990 --> 00:49:08,670 >> JASON HIRSCHHORN: So stilistisch, er is geen noodzakelijk een juiste 1016 00:49:08,670 --> 00:49:12,050 beantwoorden, maar deze beide zijn beter dan alleen het gooien van deze willekeurige 1017 00:49:12,050 --> 00:49:12,960 nummers in uw code. 1018 00:49:12,960 --> 00:49:14,650 We noemen ze magische getallen. 1019 00:49:14,650 --> 00:49:16,450 Als ik kijk naar de code of wanneer wie leest er doorheen, ze 1020 00:49:16,450 --> 00:49:18,790 willen niet alleen deze willekeurige getallen dat niet zinvol. 1021 00:49:18,790 --> 00:49:22,420 Zelfs het nummer 26, die meestal het aantal letters in het alfabet, 1022 00:49:22,420 --> 00:49:28,870 het is beter om ALFABET top definiëren maximaal en sla het nummer 26 in die string, 1023 00:49:28,870 --> 00:49:29,550 als dat zinvol is. 1024 00:49:29,550 --> 00:49:33,210 >> Of op probleem set een, in plaats van - nogmaals, hebben we niet over praten bij 1025 00:49:33,210 --> 00:49:37,020 de tijd, maar in plaats van alleen het gooien in een 25 overal of een 10, kunt u 1026 00:49:37,020 --> 00:49:41,860 sla het nummer 25 als KWARTAAL of 10 als DIME, en dat maakt het makkelijker voor 1027 00:49:41,860 --> 00:49:44,140 wie leest via uw code te begrijpen waarom je dat nummer gekozen. 1028 00:49:44,140 --> 00:49:46,540 En ook voor jou, als je ooit wilt update uw code, het maakt het een beetje 1029 00:49:46,540 --> 00:49:47,290 robuuster. 1030 00:49:47,290 --> 00:49:48,070 Yeah? 1031 00:49:48,070 --> 00:49:50,830 >> STUDENT: Is deze code ook gaan beschikbaar te zijn voor ons na? 1032 00:49:50,830 --> 00:49:52,453 >> JASON HIRSCHHORN: Al deze codes die we samen hebben geschreven zijn 1033 00:49:52,453 --> 00:49:54,620 gaat worden naar u gemaild jongens en beschikbaar. 1034 00:49:54,620 --> 00:49:55,740 Ja. 1035 00:49:55,740 --> 00:49:58,040 Dus vraag van de gebruiker voor vijf namen. 1036 00:49:58,040 --> 00:50:00,280 Willekeurig te kiezen en af ​​te drukken een van de namen. 1037 00:50:00,280 --> 00:50:00,940 Wie heeft deze lijn? 1038 00:50:00,940 --> 00:50:02,230 Dit is hier de lastigste lijn. 1039 00:50:02,230 --> 00:50:02,450 Sorry, Tom. 1040 00:50:02,450 --> 00:50:05,510 Je deed het echt een goede baan, maar Dit is een beetje lastiger. 1041 00:50:05,510 --> 00:50:06,600 Marcus, ga je gang. 1042 00:50:06,600 --> 00:50:10,180 >> STUDENT: Nou eerste, je gaat moeten stdlib.h en time.h. omvatten 1043 00:50:10,180 --> 00:50:13,200 >> JASON HIRSCHHORN: Dus je zegt tegen de top bevatten twee bibliotheken. 1044 00:50:13,200 --> 00:50:18,830 Je wilt dat ik S-T-D-L-I-B zijn dot H, Standard Library, en wat 1045 00:50:18,830 --> 00:50:19,760 was de andere? 1046 00:50:19,760 --> 00:50:21,010 >> STUDENT: Time.h. 1047 00:50:21,010 --> 00:50:25,130 1048 00:50:25,130 --> 00:50:27,840 >> JASON HIRSCHHORN: # include time.h. 1049 00:50:27,840 --> 00:50:29,470 Dit zijn dus twee meer bibliotheken. 1050 00:50:29,470 --> 00:50:31,790 Ik neem nu gaan we worden met behulp van functies die in deze 1051 00:50:31,790 --> 00:50:34,240 twee, dat is waarom je nodig op te nemen? 1052 00:50:34,240 --> 00:50:36,980 >> STUDENT: Zo dan, eerst ben je gaat willen srand schrijven. 1053 00:50:36,980 --> 00:50:38,770 >> JASON HIRSCHHORN: srand. 1054 00:50:38,770 --> 00:50:42,070 >> STUDENT: (tijd (0) 1055 00:50:42,070 --> 00:50:42,700 >> JASON HIRSCHHORN: Sorry. 1056 00:50:42,700 --> 00:50:45,580 Srand (tijd ( 1057 00:50:45,580 --> 00:50:46,890 >> STUDENT: 0. 1058 00:50:46,890 --> 00:50:47,230 >> JASON HIRSCHHORN: 0. 1059 00:50:47,230 --> 00:50:49,990 >> STUDENT:)), puntkomma. 1060 00:50:49,990 --> 00:50:51,320 >> JASON HIRSCHHORN: Nog een gesloten haakje? 1061 00:50:51,320 --> 00:50:51,650 Puntkomma. 1062 00:50:51,650 --> 00:50:53,610 Ik ga gewoon vervangen je nul met NULL. 1063 00:50:53,610 --> 00:50:55,980 Het zal doen over het zelfde ding, maar het algemeen, zie je NULL, die 1064 00:50:55,980 --> 00:50:57,720 we praten over dit lijn in een seconde. 1065 00:50:57,720 --> 00:50:58,580 >> STUDENT: Stilistisch beter? 1066 00:50:58,580 --> 00:51:02,240 >> JASON HIRSCHHORN: algemeen, mensen rechts NULL, maar hetzelfde. 1067 00:51:02,240 --> 00:51:05,010 >> STUDENT: En dan int naam. 1068 00:51:05,010 --> 00:51:06,490 >> JASON HIRSCHHORN: Int naam. 1069 00:51:06,490 --> 00:51:07,280 >> STUDENT: = 1070 00:51:07,280 --> 00:51:07,780 >> JASON HIRSCHHORN: = 1071 00:51:07,780 --> 00:51:08,580 >> STUDENT: Rand. 1072 00:51:08,580 --> 00:51:09,340 >> JASON HIRSCHHORN: Rand. 1073 00:51:09,340 --> 00:51:10,420 >> STUDENT: () 1074 00:51:10,420 --> 00:51:11,500 >> JASON HIRSCHHORN: () 1075 00:51:11,500 --> 00:51:12,850 >> STUDENT: Modulo nummer. 1076 00:51:12,850 --> 00:51:14,310 >> JASON HIRSCHHORN: Wat is modulo? 1077 00:51:14,310 --> 00:51:14,970 Het karakter? 1078 00:51:14,970 --> 00:51:16,000 Het procent teken? 1079 00:51:16,000 --> 00:51:17,790 >> STUDENT: Procent karakter. 1080 00:51:17,790 --> 00:51:19,521 Modulo NUMMER dat je boven gedefinieerd. 1081 00:51:19,521 --> 00:51:22,030 >> JASON HIRSCHHORN: Modulo NUMBER. 1082 00:51:22,030 --> 00:51:24,052 >> STUDENT: En dan puntkomma. 1083 00:51:24,052 --> 00:51:24,660 >> JASON HIRSCHHORN: Puntkomma. 1084 00:51:24,660 --> 00:51:27,820 >> STUDENT: En dan nieuwe lijn, printf. 1085 00:51:27,820 --> 00:51:28,460 >> JASON HIRSCHHORN: Printf. 1086 00:51:28,460 --> 00:51:29,730 >> STUDENT: ( 1087 00:51:29,730 --> 00:51:30,620 >> JASON HIRSCHHORN: ( 1088 00:51:30,620 --> 00:51:31,650 >> STUDENT: " 1089 00:51:31,650 --> 00:51:32,630 >> JASON HIRSCHHORN: " 1090 00:51:32,630 --> 00:51:35,320 >> STUDENT:% s / n 1091 00:51:35,320 --> 00:51:37,220 >> JASON HIRSCHHORN:% s / n 1092 00:51:37,220 --> 00:51:38,420 >> STUDENT: " 1093 00:51:38,420 --> 00:51:40,640 >> JASON HIRSCHHORN:% s / n " 1094 00:51:40,640 --> 00:51:43,540 >> STUDENT: Komma, namen ruimte. 1095 00:51:43,540 --> 00:51:44,350 >> JASON HIRSCHHORN: Space - 1096 00:51:44,350 --> 00:51:46,300 >> STUDENT: Oh, ik denk, wat hebben we het hier noemen? 1097 00:51:46,300 --> 00:51:48,640 >> JASON HIRSCHHORN: We noemden het namen. 1098 00:51:48,640 --> 00:51:52,360 >> STUDENT: Open beugel, naam. 1099 00:51:52,360 --> 00:51:55,090 >> JASON HIRSCHHORN: Open beugel, naam. 1100 00:51:55,090 --> 00:51:55,850 >> STUDENT: Gesloten beugel. 1101 00:51:55,850 --> 00:51:56,490 >> JASON HIRSCHHORN: Gesloten beugel. 1102 00:51:56,490 --> 00:51:57,460 >> STUDENT:) 1103 00:51:57,460 --> 00:51:58,800 >> JASON HIRSCHHORN:) 1104 00:51:58,800 --> 00:51:59,440 >> STUDENT: Puntkomma. 1105 00:51:59,440 --> 00:52:00,410 >> JASON HIRSCHHORN: Puntkomma. 1106 00:52:00,410 --> 00:52:01,500 OK, laten we het redden. 1107 00:52:01,500 --> 00:52:04,410 Laten we deze code. 1108 00:52:04,410 --> 00:52:06,365 Studenten. 1109 00:52:06,365 --> 00:52:07,100 Laten we lopen deze code. 1110 00:52:07,100 --> 00:52:08,480 Studenten. 1111 00:52:08,480 --> 00:52:11,630 Niet. / Student. . / Studenten. 1112 00:52:11,630 --> 00:52:12,870 Naam een. 1113 00:52:12,870 --> 00:52:15,490 We zeggen David. 1114 00:52:15,490 --> 00:52:18,070 Noem twee, RJ. 1115 00:52:18,070 --> 00:52:20,561 Noem drie, Rob. 1116 00:52:20,561 --> 00:52:22,490 Naam vier, Lucas. 1117 00:52:22,490 --> 00:52:26,060 Noem vijf, Joseph. 1118 00:52:26,060 --> 00:52:28,850 En dan drukt Jozef weer. 1119 00:52:28,850 --> 00:52:31,730 >> Dus laat me dit opnieuw uit te voeren. 1120 00:52:31,730 --> 00:52:32,460 Laat mij dezelfde namen. 1121 00:52:32,460 --> 00:52:39,760 David, RJ, Rob, Lucas, Joseph. 1122 00:52:39,760 --> 00:52:41,070 En het gaf me David deze keer. 1123 00:52:41,070 --> 00:52:43,030 Dus ik deed het zelfde ding, maar het gaf me een ander ding, en dat is 1124 00:52:43,030 --> 00:52:45,410 omdat, natuurlijk, vragen we voor een willekeurige naam. 1125 00:52:45,410 --> 00:52:50,950 Dus denk ik, op basis van me zwerven door de kamer, dat de meeste mensen 1126 00:52:50,950 --> 00:52:55,960 Waarschijnlijk kreeg het eerste deel rechts, opzetten die array en dan krijgen 1127 00:52:55,960 --> 00:52:56,430 alle namen. 1128 00:52:56,430 --> 00:52:59,320 Ik heb het over lijnen 10 tot en met 16. 1129 00:52:59,320 --> 00:53:02,150 Maar lijnen 18 tot en met 21 zijn waarschijnlijk sommige dingen die je niet eerder hebben gezien, 1130 00:53:02,150 --> 00:53:03,750 dus laten we gaan door die. 1131 00:53:03,750 --> 00:53:10,390 >> Deze lijn, srand tijd NULL wezen - 1132 00:53:10,390 --> 00:53:14,300 sorry, laten we dit overslaan een lijn, rand (). 1133 00:53:14,300 --> 00:53:17,320 Dat geeft je een willekeurig getal, een geheel toevalsgetal. 1134 00:53:17,320 --> 00:53:19,630 En als je man rand geraakt, waarvan veel van u - 1135 00:53:19,630 --> 00:53:21,530 M-A-N space R-A-N-D - 1136 00:53:21,530 --> 00:53:25,910 in de terminal als deze, M-A-N space R-A-N-D, drukt u op Enter. 1137 00:53:25,910 --> 00:53:30,490 U zou komen om de handleiding en staat te lezen dat de rand zou zijn 1138 00:53:30,490 --> 00:53:34,260 commando outputs num pseudo random bytes na zaaien het toevalsgetal 1139 00:53:34,260 --> 00:53:35,510 generator keer. 1140 00:53:35,510 --> 00:53:38,450 1141 00:53:38,450 --> 00:53:39,700 >> Dus dat is een omschrijving. 1142 00:53:39,700 --> 00:53:43,860 1143 00:53:43,860 --> 00:53:46,800 Dat is wat rand doet, geeft u een willekeurig getal als 1144 00:53:46,800 --> 00:53:48,610 je die functie noemen. 1145 00:53:48,610 --> 00:53:53,140 Helaas, het is niet echt willekeurig want als je gewoon bellen willekeurige 1146 00:53:53,140 --> 00:53:55,970 zonder dat er wat zaad, sommige uitgangspunt, het zal altijd kiezen 1147 00:53:55,970 --> 00:53:59,100 het zelfde en het gebruikt een formule het bepalen van de volgende. 1148 00:53:59,100 --> 00:54:01,730 Dus als je rand noemen, het zal gewoon geven u het zelfde ding. 1149 00:54:01,730 --> 00:54:02,610 Het zal zeer voorspelbaar. 1150 00:54:02,610 --> 00:54:03,790 Het zal in feite niet willekeurig. 1151 00:54:03,790 --> 00:54:09,610 >> Dus wat we moeten doen, per Marcus's instructies voor mij, waren zaad rand 1152 00:54:09,610 --> 00:54:13,810 met iets anders, dat is wat het srand functie doet. 1153 00:54:13,810 --> 00:54:18,055 Het zaad rand met iets een beetje meer willekeurig dan het zelfde ding, en 1154 00:54:18,055 --> 00:54:23,360 hij zaaien het met de tijd NULL, die is, alleen volgens afspraak, de huidige 1155 00:54:23,360 --> 00:54:24,650 tijd in seconden. 1156 00:54:24,650 --> 00:54:29,790 >> Dus je bent in de veronderstelling dat iedereen is niet gaat de code uit te voeren op het exacte 1157 00:54:29,790 --> 00:54:33,620 dezelfde seconde, dus het is een veilige gok dat tijd NULL gaat om anders te zijn 1158 00:54:33,620 --> 00:54:35,250 elke keer dat deze code wordt uitgevoerd. 1159 00:54:35,250 --> 00:54:39,020 Veilige gok dat dus, srand zal zaad rand met iets anders elke 1160 00:54:39,020 --> 00:54:39,990 enkele keer. 1161 00:54:39,990 --> 00:54:44,110 Dus volgens afspraak, wanneer we willen een willekeurig getal, schrijven we deze lijn, 1162 00:54:44,110 --> 00:54:50,540 srand tijd NULL, om ons een veel meer random seed, en dan lopen we 1163 00:54:50,540 --> 00:54:52,080 rand, dat geeft ons een willekeurig getal. 1164 00:54:52,080 --> 00:54:52,840 Yeah? 1165 00:54:52,840 --> 00:54:54,140 >> STUDENT: Kan je zeggen wat bedoel je met zaad? 1166 00:54:54,140 --> 00:54:55,630 >> JASON HIRSCHHORN: Zaad als in - 1167 00:54:55,630 --> 00:54:58,730 zodat rand gaat om wat nummer halen en het gaat om wat te gebruiken 1168 00:54:58,730 --> 00:55:00,060 formule om er te komen. 1169 00:55:00,060 --> 00:55:03,250 Dus het gaat om te beginnen met iets en zet hem dan in iets gebaseerd 1170 00:55:03,250 --> 00:55:03,890 off van die formule. 1171 00:55:03,890 --> 00:55:06,090 Als u het altijd het zelfde ding, Het gaat altijd om te zetten in de 1172 00:55:06,090 --> 00:55:06,790 hetzelfde. 1173 00:55:06,790 --> 00:55:08,450 Zodat eerste wat je geef het is het zaad. 1174 00:55:08,450 --> 00:55:10,880 Dus je wilt dat het iets te geven anders om te beginnen met, en dus het 1175 00:55:10,880 --> 00:55:12,610 zal het veranderen in iets anders. 1176 00:55:12,610 --> 00:55:15,840 >> En dan tot slot, lijn 20, Dit% wordt de 1177 00:55:15,840 --> 00:55:17,470 modulo, en dat is verwarrend. 1178 00:55:17,470 --> 00:55:19,850 Dat is iets dat een beetje hier anders dat je niet echt 1179 00:55:19,850 --> 00:55:22,240 hebben in het echte leven wiskunde. 1180 00:55:22,240 --> 00:55:27,430 Maar in wezen, als je een gigantische nemen nummer en je verdelen in C, wat 1181 00:55:27,430 --> 00:55:29,482 gebeurt er met de rest? 1182 00:55:29,482 --> 00:55:30,510 >> STUDENT: Het wordt afgekapt. 1183 00:55:30,510 --> 00:55:31,220 >> JASON HIRSCHHORN: Het wordt afgekapt. 1184 00:55:31,220 --> 00:55:35,200 Dus 20 gedeeld door 3 is wat? 1185 00:55:35,200 --> 00:55:37,950 Wat betekent dat terugkeert naar u, 20 gedeeld door 3. 1186 00:55:37,950 --> 00:55:39,260 Sorry, 10 gedeeld door 3. 1187 00:55:39,260 --> 00:55:41,062 Wat betekent dat u terug? 1188 00:55:41,062 --> 00:55:41,540 >> STUDENT: [onverstaanbaar]. 1189 00:55:41,540 --> 00:55:45,170 >> JASON HIRSCHHORN: 10 gedeeld door 3 net rendementen 3, niet 3 rest 1. 1190 00:55:45,170 --> 00:55:51,490 Dus wat 10 modulo 3 rendementen is gewoon de rest, 1. 1191 00:55:51,490 --> 00:55:54,020 Dus als je wilde weten wat er 10 verdeeld door 3 eigenlijk was, zou je 1192 00:55:54,020 --> 00:55:58,950 do 10 gedeeld door 3, zou je je 3 krijgen, en dan zou je doen 10 modulo 3, en 1193 00:55:58,950 --> 00:55:59,860 je zou krijgen een 1. 1194 00:55:59,860 --> 00:56:04,630 Dus zou je realiseert dat 10 gedeeld 3 is door 3, rest 1. 1195 00:56:04,630 --> 00:56:07,990 >> En in deze lijn, zou rand worden een geheel getal wezen. 1196 00:56:07,990 --> 00:56:12,660 Dus modulo zegt, deel dit door nummer, dat is in dit geval 5. 1197 00:56:12,660 --> 00:56:16,420 En als je ooit delen door een getal, de integer moet altijd kleiner zijn dan 1198 00:56:16,420 --> 00:56:17,590 dat nummer. 1199 00:56:17,590 --> 00:56:22,200 Dus als je te delen door een getal 5, de rest wordt altijd zal zijn 1200 00:56:22,200 --> 00:56:23,396 nul tot vier. 1201 00:56:23,396 --> 00:56:25,520 Dat is gewoon hoe de wiskunde werkt. 1202 00:56:25,520 --> 00:56:29,700 >> Dus vele moduloed een kleiner nummer zal altijd terugkeren 1203 00:56:29,700 --> 00:56:33,530 rest en zal altijd terugkeren sommige nummer dat is minder dan het nummer dat u 1204 00:56:33,530 --> 00:56:34,693 gedeeld door. 1205 00:56:34,693 --> 00:56:37,920 Heeft iemand nog vragen hebben over modulo, want het zal komen in zeer, 1206 00:56:37,920 --> 00:56:41,450 erg handig, dus ik wil ervoor zorgen iedereen begrijpt het? 1207 00:56:41,450 --> 00:56:43,710 Cool. 1208 00:56:43,710 --> 00:56:46,000 En we zagen dat dit programma gewerkt. 1209 00:56:46,000 --> 00:56:50,280 OK, bewegen op. 1210 00:56:50,280 --> 00:56:52,970 >> Dus de volgende, we gaan om te gaan in functies, en we gaan om te gaan 1211 00:56:52,970 --> 00:56:55,580 door de rest van dit spul vrij snel want ik wil naar 1212 00:56:55,580 --> 00:56:57,150 command line argumenten. 1213 00:56:57,150 --> 00:57:00,330 Dus functies wezen zoals u hebt gezien, zwarte dozen. 1214 00:57:00,330 --> 00:57:04,290 Ze nemen dingen in genoemd parameters, ze iets doen om hen, hetzij 1215 00:57:04,290 --> 00:57:06,990 ze te veranderen of maak een aantal bijwerkingen, en tot slot, ze spugen 1216 00:57:06,990 --> 00:57:09,530 iets uit, dat is de return waarde. 1217 00:57:09,530 --> 00:57:12,495 Kan iemand mij een reden Daarom hebben wij functies zouden gebruiken? 1218 00:57:12,495 --> 00:57:15,870 1219 00:57:15,870 --> 00:57:16,360 Anybody? 1220 00:57:16,360 --> 00:57:19,360 Een van de redenen waarom we functies zou gebruiken? 1221 00:57:19,360 --> 00:57:21,280 Anyone? 1222 00:57:21,280 --> 00:57:22,700 Ik zag twee handen. 1223 00:57:22,700 --> 00:57:23,590 Wat is een goede reden? 1224 00:57:23,590 --> 00:57:24,930 Marcus? 1225 00:57:24,930 --> 00:57:27,730 >> STUDENT: Als je moet dezelfde bellen stuk code meerdere keren. 1226 00:57:27,730 --> 00:57:29,150 >> JASON HIRSCHHORN: OK, als je nodig hebt om dezelfde brok van bellen 1227 00:57:29,150 --> 00:57:30,040 code meerdere malen. 1228 00:57:30,040 --> 00:57:32,470 Jeff, heb je een andere reden? 1229 00:57:32,470 --> 00:57:34,230 >> STUDENT: Gewoon zodat je kunt minder coderen. 1230 00:57:34,230 --> 00:57:35,070 >> JASON HIRSCHHORN: U kunt minder coderen. 1231 00:57:35,070 --> 00:57:35,320 Rechts. 1232 00:57:35,320 --> 00:57:38,720 Als je iets wilt doen veel - 1233 00:57:38,720 --> 00:57:41,720 in de vorige code, kon ik heb schriftelijke krijg touwtje vijf keer, maar een 1234 00:57:41,720 --> 00:57:44,620 for-lus maakt het er mooier en moet je minder code te schrijven. 1235 00:57:44,620 --> 00:57:45,760 Functies zijn een soortgelijk idee. 1236 00:57:45,760 --> 00:57:48,720 Als ik wil hetzelfde doen veel, verplaatsen naar een functie en noemen dat 1237 00:57:48,720 --> 00:57:49,610 functioneren elke keer. 1238 00:57:49,610 --> 00:57:51,190 Dat zal dat ding voor je doen. 1239 00:57:51,190 --> 00:57:53,740 Dat is een goede reden te gebruiken functies. 1240 00:57:53,740 --> 00:57:54,870 >> Dus anatomie van een functie. 1241 00:57:54,870 --> 00:57:56,670 Een functie zal in het algemeen zo uitzien. 1242 00:57:56,670 --> 00:57:59,280 Het zal beginnen met de return type, dan zul je de naam te krijgen. 1243 00:57:59,280 --> 00:58:02,935 Het zal de argumenten te nemen, anders bekend als de parameters en binnen 1244 00:58:02,935 --> 00:58:05,290 die accolades, zul je schrijf uw code. 1245 00:58:05,290 --> 00:58:07,150 >> We hebben een functie veel gezien. 1246 00:58:07,150 --> 00:58:09,160 Dat is de belangrijkste. 1247 00:58:09,160 --> 00:58:13,820 Hier is de belangrijkste gesuperponeerd op dat anatomie had ik eerder. 1248 00:58:13,820 --> 00:58:15,525 Wat betekent int hier betekenen? 1249 00:58:15,525 --> 00:58:18,534 1250 00:58:18,534 --> 00:58:19,450 Wat betekent int bedoel? 1251 00:58:19,450 --> 00:58:21,026 Als ik schrijf int main (void). 1252 00:58:21,026 --> 00:58:21,740 >> STUDENT: soort Return? 1253 00:58:21,740 --> 00:58:22,350 >> JASON HIRSCHHORN: Sorry? 1254 00:58:22,350 --> 00:58:23,170 >> STUDENT: The return type. 1255 00:58:23,170 --> 00:58:24,820 >> JASON HIRSCHHORN: Int is de soort terug, precies goed. 1256 00:58:24,820 --> 00:58:25,870 Belangrijkste retourneert een int. 1257 00:58:25,870 --> 00:58:28,678 Wat is het belangrijkste? 1258 00:58:28,678 --> 00:58:29,510 >> STUDENT: Functie naam. 1259 00:58:29,510 --> 00:58:30,800 >> JASON HIRSCHHORN: Main is de naam van de functie. 1260 00:58:30,800 --> 00:58:31,510 Precies goed. 1261 00:58:31,510 --> 00:58:31,840 En nietig? 1262 00:58:31,840 --> 00:58:33,190 Wat is leegte tussen de haakjes? 1263 00:58:33,190 --> 00:58:36,650 1264 00:58:36,650 --> 00:58:42,030 >> STUDENT: Het duurt niet eventuele externe waarde. 1265 00:58:42,030 --> 00:58:42,930 >> JASON HIRSCHHORN: So leegte - 1266 00:58:42,930 --> 00:58:43,240 rechts. 1267 00:58:43,240 --> 00:58:45,940 Tussen haakjes, hebben we de parameters of de argumenten van de 1268 00:58:45,940 --> 00:58:48,480 functie neemt, wat er in de zwarte doos. 1269 00:58:48,480 --> 00:58:50,760 Wanneer je leegte schrijft, je zegt dit neemt niets inch 1270 00:58:50,760 --> 00:58:53,802 Dus int main leegte betekent dat de belangrijkste's niets neemt inch 1271 00:58:53,802 --> 00:58:56,950 >> Binnen de accolades, hebben we een aantal code, en dan zien we aan het eind 1272 00:58:56,950 --> 00:58:57,640 nul terug. 1273 00:58:57,640 --> 00:59:01,220 Wat betekent terugkeer nul betekenen? 1274 00:59:01,220 --> 00:59:02,470 Nou, spraken we over return type. 1275 00:59:02,470 --> 00:59:03,780 Belangrijkste moet een int terug. 1276 00:59:03,780 --> 00:59:04,960 Dat is wat deze lijn doet. 1277 00:59:04,960 --> 00:59:07,330 Het geeft een int, nul. 1278 00:59:07,330 --> 00:59:13,600 >> Natuurlijk hebben we niet gezien dat er veel want in de programmering we doen met 1279 00:59:13,600 --> 00:59:16,070 de machines die wij doen en de compilers we tegenwoordig gebruiken, je 1280 00:59:16,070 --> 00:59:16,990 hoeft die lijn niet nodig. 1281 00:59:16,990 --> 00:59:20,070 Belangrijkste is bijzonder genoeg dat het weet wanneer u het einde van de belangrijkste, maar bereiken 1282 00:59:20,070 --> 00:59:22,060 terug nul als alles goed is gegaan. 1283 00:59:22,060 --> 00:59:25,560 In feite, als er iets niet goed gaat, belangrijkste zal vaak terug een andere 1284 00:59:25,560 --> 00:59:28,500 nummer betekent dat er iets ging er mis met uw programma. 1285 00:59:28,500 --> 00:59:32,470 >> Dus over het algemeen als je code, je niet schrijven terugkeer nul, maar het is goed 1286 00:59:32,470 --> 00:59:34,770 te weten dat het gebeurt achter de scènes want als je schrijft 1287 00:59:34,770 --> 00:59:36,370 ander soort functie, je gaat nodig hebben om 1288 00:59:36,370 --> 00:59:37,400 onder andere een retourleiding. 1289 00:59:37,400 --> 00:59:39,710 Als je zegt ik ga terug een int, moet je 1290 00:59:39,710 --> 00:59:41,250 schrijven terug iets. 1291 00:59:41,250 --> 00:59:45,160 Als je leegte hier aan het zeggen begin, void main nietig, voor 1292 00:59:45,160 --> 00:59:48,670 Zo, dan is het niet terugkeren iets - leegte betekent niets - 1293 00:59:48,670 --> 00:59:50,320 dus je hoeft niet dat retourleiding. 1294 00:59:50,320 --> 00:59:53,610 Maar je wel eens iets dat niet schrijven ongeldig voor de return type, moet je 1295 00:59:53,610 --> 00:59:55,950 een lijn die terugkeer en u zegt: nodig om daar iets te zetten 1296 00:59:55,950 --> 00:59:57,650 die overeenkomt met het type. 1297 00:59:57,650 --> 00:59:58,900 Heeft u vragen over dat? 1298 00:59:58,900 --> 01:00:03,110 1299 01:00:03,110 --> 01:00:04,680 Sweet. 1300 01:00:04,680 --> 01:00:05,930 >> Scope. 1301 01:00:05,930 --> 01:00:07,360 Dit is iets wat we hebben aangestipt als goed. 1302 01:00:07,360 --> 01:00:10,720 Elke variabele, zoals we weten, heeft een bepaalde omvang, en dat is eigenlijk 1303 01:00:10,720 --> 01:00:14,160 praten over waar de variabele al dan niet optreden. 1304 01:00:14,160 --> 01:00:16,310 En ik willen zeggen wat er gebeurt in accolades blijft 1305 01:00:16,310 --> 01:00:18,000 binnen de accolades. 1306 01:00:18,000 --> 01:00:21,490 Dus bijvoorbeeld, als we kijken naar deze code, we zijn het definiëren van een globale variabele 1307 01:00:21,490 --> 01:00:24,510 buiten de belangrijkste, int a, hier aan de top. 1308 01:00:24,510 --> 01:00:27,380 We zijn nog bellen int een binnenkant belangrijkste. 1309 01:00:27,380 --> 01:00:29,760 We hebben wat meer accolades, en bellen we een ander int a. 1310 01:00:29,760 --> 01:00:31,690 >> We hebben drie a's in de code. 1311 01:00:31,690 --> 01:00:32,550 Deze zijn niet hetzelfde. 1312 01:00:32,550 --> 01:00:34,880 Ik heb gemaakt drie verschillende variabelen. 1313 01:00:34,880 --> 01:00:39,370 Vervolgens binnen deze innerlijke krullend braces, ik zeg a = 4. 1314 01:00:39,370 --> 01:00:44,130 Waarvan een is dat het over, de eerste, de tweede, 1315 01:00:44,130 --> 01:00:47,045 of de derde? 1316 01:00:47,045 --> 01:00:47,920 >> STUDENT: De derde. 1317 01:00:47,920 --> 01:00:49,320 >> JASON HIRSCHHORN: Het praat over de derde. 1318 01:00:49,320 --> 01:00:52,850 Al die a's daadwerkelijk kan worden over gesproken in dit specifieke 1319 01:00:52,850 --> 01:00:58,660 Bijvoorbeeld omdat hun omvang al gaat in deze binnenste accolades. 1320 01:00:58,660 --> 01:01:02,360 Echter, als je dingen hetzelfde noemen naam, er is iets genaamd verbergt. 1321 01:01:02,360 --> 01:01:09,670 Zodat u alleen behandelen of oplossen of gebruik de laatste variabele, of de ene 1322 01:01:09,670 --> 01:01:11,090 het dichtst bij je. 1323 01:01:11,090 --> 01:01:14,760 Dus binnen hier, is deze derde een dichtst om die lijn, a = 4, dus het 1324 01:01:14,760 --> 01:01:16,550 beïnvloedt de derde. 1325 01:01:16,550 --> 01:01:19,890 En de laatste regel, a = 2, die een is dat over de eerste, tweede, 1326 01:01:19,890 --> 01:01:20,805 of derde een? 1327 01:01:20,805 --> 01:01:22,530 >> STUDENT: Second. 1328 01:01:22,530 --> 01:01:24,430 >> JASON HIRSCHHORN: Het praat over de tweede een. 1329 01:01:24,430 --> 01:01:27,970 Natuurlijk, de derde een het dichtst bij het in de code, maar de derde een 1330 01:01:27,970 --> 01:01:30,200 niet buiten bestaat die accolades. 1331 01:01:30,200 --> 01:01:32,650 Zodra u aan dat gesloten krullend brace, het is zoals het is gegaan, 1332 01:01:32,650 --> 01:01:33,570 wezen. 1333 01:01:33,570 --> 01:01:36,150 Dus de enige twee die je nog hebt zijn die eerste twee, en natuurlijk, nu 1334 01:01:36,150 --> 01:01:37,960 het is het dichtst bij de tweede. 1335 01:01:37,960 --> 01:01:39,410 >> Dus dat is een goede zaak om onthouden over scope. 1336 01:01:39,410 --> 01:01:42,900 Bijvoorbeeld, ik weet zeker dat je bent tegengekomen Dit in een doen terwijl lus. 1337 01:01:42,900 --> 01:01:46,680 Als u de variabele in te initialiseren het doen terwijl de lus en dan moet je proberen om 1338 01:01:46,680 --> 01:01:50,360 toegang tot het buiten, heb je waarschijnlijk kreeg een aantal waarschuwing als, dit 1339 01:01:50,360 --> 01:01:51,680 variabele bestaat niet. 1340 01:01:51,680 --> 01:01:54,370 Dat is vanwege de omvang idee, dat de dingen alleen bestaan 1341 01:01:54,370 --> 01:01:55,320 binnen die accolades. 1342 01:01:55,320 --> 01:01:59,320 Accolades zijn als een gigantische knuffel die u geeft aan uw code, is een andere 1343 01:01:59,320 --> 01:02:01,380 manier over na te denken. 1344 01:02:01,380 --> 01:02:05,280 >> Dus dit is een andere functie, wat voor jullie om code, hellofunction.c. 1345 01:02:05,280 --> 01:02:08,240 We gaan slaan dat voor nu, maar dit is iets wat ik je aan 1346 01:02:08,240 --> 01:02:09,740 oefenen op je eigen. 1347 01:02:09,740 --> 01:02:12,510 Schrijf een programma waarin de belangrijkste oproepen een andere functie die drukt een 1348 01:02:12,510 --> 01:02:13,750 groet aan de gebruiker. 1349 01:02:13,750 --> 01:02:17,750 Het is in wezen het nemen van hello wereld en abstraheren dat printf in 1350 01:02:17,750 --> 01:02:18,680 andere functie. 1351 01:02:18,680 --> 01:02:22,360 Maar we gaan niet om dat recht te doen nu want we hebben niet zoveel tijd 1352 01:02:22,360 --> 01:02:23,350 vertrokken als ik zou hebben gewild. 1353 01:02:23,350 --> 01:02:26,250 >> Dus functiedeclaratie. 1354 01:02:26,250 --> 01:02:28,080 We hebben dit eerder ook gezien. 1355 01:02:28,080 --> 01:02:31,180 Als je wilt naar een andere functie te schrijven, moet u de computer laten weten en 1356 01:02:31,180 --> 01:02:32,600 hoofd weet dat het bestaat. 1357 01:02:32,600 --> 01:02:37,140 Dus wat we doen is boven de belangrijkste, we schrijven de return type, de naam en de 1358 01:02:37,140 --> 01:02:42,970 parameters, en dan beneden belangrijkste, hier beneden, we eigenlijk kopiëren die lijn 1359 01:02:42,970 --> 01:02:45,080 en schrijf dan de eigenlijke code. 1360 01:02:45,080 --> 01:02:50,990 Dus op deze manier, als je de functie aanroept in hoofd bovenaan belangrijkste weet dat 1361 01:02:50,990 --> 01:02:54,650 hello bestaat, bijvoorbeeld, als ik te roepen hallo, en dan ziet het aan 1362 01:02:54,650 --> 01:02:56,710 de uitvoering beneden. 1363 01:02:56,710 --> 01:02:59,680 Wat gebeurt er als ik niet dat deze ook line-up top, vervallen hello (void)? 1364 01:02:59,680 --> 01:03:03,820 1365 01:03:03,820 --> 01:03:06,560 >> Als ik niet onder deze lijn en de belangrijkste gesprekken hallo, ik ben 1366 01:03:06,560 --> 01:03:07,640 gaat om een ​​fout te krijgen. 1367 01:03:07,640 --> 01:03:10,090 Ik ga een fout omdat krijgen de compiler niet weet 1368 01:03:10,090 --> 01:03:13,070 dat dit ding bestaat. 1369 01:03:13,070 --> 01:03:16,680 Dit is vergelijkbaar met wat we denk # include cs50.h. 1370 01:03:16,680 --> 01:03:21,390 Wat in wezen cs50.h doet zet krijg snaar daarboven. 1371 01:03:21,390 --> 01:03:23,120 Het zet krijg int daarboven. 1372 01:03:23,120 --> 01:03:26,570 Het zetten van al die functie prototypes up voordat belangrijkste zodat wanneer 1373 01:03:26,570 --> 01:03:29,900 je ze belt in de belangrijkste, main weet dat deze dingen bestaan. 1374 01:03:29,900 --> 01:03:31,630 Dat is wat deze. H-bestanden doen. 1375 01:03:31,630 --> 01:03:33,850 En dus als je gaat om je eigen te maken functie, je moet ervoor zorgen dat 1376 01:03:33,850 --> 01:03:36,690 je zet dat prototype daarboven. 1377 01:03:36,690 --> 01:03:38,380 Heeft u vragen over deze tot nu toe? 1378 01:03:38,380 --> 01:03:41,630 1379 01:03:41,630 --> 01:03:42,490 >> Command line argumenten. 1380 01:03:42,490 --> 01:03:44,780 Dit is wat we gaan eindigen op, en dan hopelijk zullen we 1381 01:03:44,780 --> 01:03:46,180 knijpen in sommige pset. 1382 01:03:46,180 --> 01:03:48,700 Ik weet niet of we in staat zijn te knijpen dat door de tijd, maar 1383 01:03:48,700 --> 01:03:51,560 met jullie die hier zijn, en als je jongens willen zeggen na het voor een beetje, we 1384 01:03:51,560 --> 01:03:54,290 kan gaan dan het buiten. 1385 01:03:54,290 --> 01:03:56,020 Maar we gaan om te eindigen met command line argumenten 1386 01:03:56,020 --> 01:03:58,510 voor de laatste 15 minuten. 1387 01:03:58,510 --> 01:03:59,930 We wakker, Michael? 1388 01:03:59,930 --> 01:04:01,180 Je bent wakker? 1389 01:04:01,180 --> 01:04:01,660 Goed. 1390 01:04:01,660 --> 01:04:03,760 Ik weet niet of je slaapt met je ogen dicht. 1391 01:04:03,760 --> 01:04:05,800 Het zou lastig zijn. 1392 01:04:05,800 --> 01:04:07,180 >> Command line argumenten. 1393 01:04:07,180 --> 01:04:10,430 Die zijn een manier om informatie door te geven in een programma. 1394 01:04:10,430 --> 01:04:12,780 Uiteindelijk zullen we nog meer tegenkomen. 1395 01:04:12,780 --> 01:04:15,600 Maar in wezen, we gaan stoppen schrijven int main (void) als we willen 1396 01:04:15,600 --> 01:04:16,720 neem wat command line argumenten. 1397 01:04:16,720 --> 01:04:19,850 We gaan dit ding te schrijven genaamd int main (int argc, 1398 01:04:19,850 --> 01:04:22,430 snaar argv, beugels. 1399 01:04:22,430 --> 01:04:23,710 Dat is verwarrend. 1400 01:04:23,710 --> 01:04:26,070 Dat is een heleboel brieven die niet in menselijke Engels, dus we gaan naar 1401 01:04:26,070 --> 01:04:27,680 pak ze nu. 1402 01:04:27,680 --> 01:04:30,450 >> Argc staat voor argument count - 1403 01:04:30,450 --> 01:04:32,600 en opnieuw al deze zullen zijn online beschikbaar - 1404 01:04:32,600 --> 01:04:34,280 en dat is het aantal argumenten. 1405 01:04:34,280 --> 01:04:37,940 Argv staat voor argumenten vector, en dat zijn de argumenten zelf. 1406 01:04:37,940 --> 01:04:38,830 Het is een array van strings. 1407 01:04:38,830 --> 01:04:40,880 We hebben eigenlijk een array gezien snaren voor vandaag. 1408 01:04:40,880 --> 01:04:44,390 We creëerden een in de laatste programma dat we gecodeerd. 1409 01:04:44,390 --> 01:04:45,720 >> Dus hier is een voorbeeld. 1410 01:04:45,720 --> 01:04:50,230 Ik schrijf. / Ohai CS50 sectie op mijn commandoregel. 1411 01:04:50,230 --> 01:04:54,090 Argc in dit geval gelijk aan 3. 1412 01:04:54,090 --> 01:05:01,170 Argv beugel 0 is ohai, argv beugel 1 is CS50, argv beugel 2 is sectie. 1413 01:05:01,170 --> 01:05:05,160 Nogmaals, argc is het aantal argumenten, en reis je een beetje 1414 01:05:05,160 --> 01:05:08,710 beetje, we optellen altijd de naam van de functie als eerste argument. 1415 01:05:08,710 --> 01:05:12,350 Dus in dit geval zijn er drie argumenten, de naam van de functie 1416 01:05:12,350 --> 01:05:14,590 en dan die twee die ik intikt: 1417 01:05:14,590 --> 01:05:18,900 >> Vervolgens gaan we die bewaren argumenten zich in argv. 1418 01:05:18,900 --> 01:05:22,690 En opnieuw, net zoals we eerder zagen, we deden dit in het laatste programma we gecodeerd. 1419 01:05:22,690 --> 01:05:27,110 U kunt door de reeks argv en krijgt die strijkers. 1420 01:05:27,110 --> 01:05:28,830 Dat is in wezen wat we deden op het einde van onze laatste programma. 1421 01:05:28,830 --> 01:05:33,190 We kozen een willekeurige naam en ging toen naar namen beugel wat en afgedrukt 1422 01:05:33,190 --> 01:05:34,580 uit de string er gevestigd. 1423 01:05:34,580 --> 01:05:39,870 1424 01:05:39,870 --> 01:05:43,670 >> Bovenop slechts de ene array, omdat snaren zelf zijn arrays, zoals 1425 01:05:43,670 --> 01:05:46,320 sprak over, kunt u arrays arrays, die 1426 01:05:46,320 --> 01:05:48,530 wezen wat argv is. 1427 01:05:48,530 --> 01:05:51,370 Een manier kunt u denken aan Dit is rijen en kolommen. 1428 01:05:51,370 --> 01:05:54,750 Kan ik dat recht te trekken nu. 1429 01:05:54,750 --> 01:05:57,370 Dus argv - 1430 01:05:57,370 --> 01:05:58,630 dat is niet wissen. 1431 01:05:58,630 --> 01:05:59,880 Laten we trekken onder ohai. 1432 01:05:59,880 --> 01:06:09,320 1433 01:06:09,320 --> 01:06:12,490 >> Dus als ik schreef in, ohai CS50 sectie, Ik ga afkappen 1434 01:06:12,490 --> 01:06:14,520 gedeelte voor dit voorbeeld. 1435 01:06:14,520 --> 01:06:29,026 Maar in wezen, mijn multidimensionale array, ohai CS50, 1436 01:06:29,026 --> 01:06:32,200 we gaan sekte doen. 1437 01:06:32,200 --> 01:06:34,610 Dus hier kan ik toegang - 1438 01:06:34,610 --> 01:06:40,930 1439 01:06:40,930 --> 01:06:45,710 als ik geef gewoon argv een nummer - 1440 01:06:45,710 --> 01:06:46,390 Dit is verkeerd. 1441 01:06:46,390 --> 01:06:49,020 Wat is er mis in dit diagram? 1442 01:06:49,020 --> 01:06:49,690 >> STUDENT: Begin bij nul. 1443 01:06:49,690 --> 01:06:50,350 >> JASON HIRSCHHORN: Het moet met nul begint. 1444 01:06:50,350 --> 01:06:52,940 Ik moet waarschijnlijk ook draaien, maar aangezien ik het al heb getrokken op, ik ben 1445 01:06:52,940 --> 01:06:54,120 gaan om het te laten op daar voor nu. 1446 01:06:54,120 --> 01:06:55,160 Maar begint bij nul. 1447 01:06:55,160 --> 01:06:56,410 Dat klopt. 1448 01:06:56,410 --> 01:06:58,980 1449 01:06:58,980 --> 01:07:00,120 Het spijt me als dit klein is. 1450 01:07:00,120 --> 01:07:01,370 Kunnen jullie soort te zien? 1451 01:07:01,370 --> 01:07:03,620 1452 01:07:03,620 --> 01:07:06,670 Dus als ik het doe argv 0, ik zal krijgt alle van ohai. 1453 01:07:06,670 --> 01:07:08,555 Als ik dat doe argv 1, zal ik al CS50 krijgen. 1454 01:07:08,555 --> 01:07:10,720 Als ik dat doe argv 2, zal ik al sekte te krijgen. 1455 01:07:10,720 --> 01:07:13,370 >> Maar nu, zoals we al zeiden, strijkers zijn arrays zelf. 1456 01:07:13,370 --> 01:07:19,740 Dus wat ik kan doen is dat ik kan behandelen dit als een meerdimensionale array, en ik 1457 01:07:19,740 --> 01:07:24,190 iets kan doen in de trant van argv 0, 0, wat me net het geeft 1458 01:07:24,190 --> 01:07:25,400 karakter 0. 1459 01:07:25,400 --> 01:07:28,760 Argv 0, 1, die geeft me gewoon h. 1460 01:07:28,760 --> 01:07:33,960 Argv 1, 3, die mij net geeft Dit 0 hier in CS50. 1461 01:07:33,960 --> 01:07:37,690 >> Dus omdat de snaren zelf zijn arrays, we zetten 1462 01:07:37,690 --> 01:07:38,540 dat andere array. 1463 01:07:38,540 --> 01:07:42,850 We hebben nu reeks arrays, en we kan indexeren in onze eerste matrix en 1464 01:07:42,850 --> 01:07:44,840 vervolgens index in onze tweede matrix. 1465 01:07:44,840 --> 01:07:48,650 En zoals je zou verwachten, doen we dat door gewoon te zetten die twee - 1466 01:07:48,650 --> 01:07:51,760 wij doen de vierkante haakjes gewoon naast elkaar. 1467 01:07:51,760 --> 01:07:58,930 In dit voorbeeld, argv 1 is en CS50 argv 1, 2, zoals we al zeiden, is slechts 5. 1468 01:07:58,930 --> 01:08:02,120 Heeft iemand nog vragen hebben over multidimensionale arrays? 1469 01:08:02,120 --> 01:08:05,090 1470 01:08:05,090 --> 01:08:06,380 Jullie doen geweldig. 1471 01:08:06,380 --> 01:08:07,750 Sweet. 1472 01:08:07,750 --> 01:08:11,980 >> We hebben dus een ander programma hier, en dit is het laatste wat we 1473 01:08:11,980 --> 01:08:13,690 ga nu meteen doen. 1474 01:08:13,690 --> 01:08:18,160 Dus ik wil dat je een programma te schrijven dat neemt de volledige naam van een gebruiker, twee en alleen 1475 01:08:18,160 --> 01:08:21,649 twee command line argumenten, en tot slot, uitprinten een groet aan de 1476 01:08:21,649 --> 01:08:24,180 gebruiker dat hun voornaam omvat. 1477 01:08:24,180 --> 01:08:27,800 Dus waarom ga je niet nemen drie of vier minuten om dit te doen, en dan gaan we 1478 01:08:27,800 --> 01:08:29,870 meer dan het als een groep, en dan zullen we wrap up? 1479 01:08:29,870 --> 01:09:44,189 1480 01:09:44,189 --> 01:09:48,084 >> En nogmaals, hier, als we zeggen neem een volledige naam van de gebruiker per de beschrijving 1481 01:09:48,084 --> 01:09:54,473 van dit probleem, moet het commando line argumenten, niet met behulp van krijgen string. 1482 01:09:54,473 --> 01:09:55,450 Ja, Marcus? 1483 01:09:55,450 --> 01:09:58,260 >> STUDENT: Dus als je zegt twee commando argumenten, dat naast 1484 01:09:58,260 --> 01:10:00,000 . de / run, of - 1485 01:10:00,000 --> 01:10:02,980 >> JASON HIRSCHHORN: Goede vraag. 1486 01:10:02,980 --> 01:10:05,995 Doen, waaronder de. / Run, drie command line argumenten. 1487 01:10:05,995 --> 01:10:08,550 1488 01:10:08,550 --> 01:10:11,320 Of met de. / Gepersonaliseerd, in dit geval, want dat is de 1489 01:10:11,320 --> 01:10:12,360 naam van dit bestand. 1490 01:10:12,360 --> 01:10:13,300 Dus argc zou drie. 1491 01:10:13,300 --> 01:10:19,480 Maar ik wil slechts twee argumenten aan het programma. 1492 01:10:19,480 --> 01:10:20,400 Ik moet specificeren dat. 1493 01:10:20,400 --> 01:10:23,380 Ik zal die verandering te maken voordat ik post deze en stuur ze naar jullie. 1494 01:10:23,380 --> 01:10:32,747 1495 01:10:32,747 --> 01:10:34,740 >> STUDENT: Wat als je hebben een tweede naam? 1496 01:10:34,740 --> 01:10:36,800 >> JASON HIRSCHHORN: Als je een middelbare naam, je je pech. 1497 01:10:36,800 --> 01:10:38,050 Het spijt me. 1498 01:10:38,050 --> 01:10:40,320 1499 01:10:40,320 --> 01:10:43,744 Of als u alleen gaat door Shakira, je bent ook pech. 1500 01:10:43,744 --> 01:10:55,672 1501 01:10:55,672 --> 01:10:56,425 Yeah? 1502 01:10:56,425 --> 01:11:00,760 >> STUDENT: Dus als mensen niet hebben cs50.h, doen ze argv definiëren 1503 01:11:00,760 --> 01:11:03,450 als char ster argv? 1504 01:11:03,450 --> 01:11:05,160 Of is het nog steeds heet touwtje argv? 1505 01:11:05,160 --> 01:11:07,430 >> JASON HIRSCHHORN: Ja. 1506 01:11:07,430 --> 01:11:10,480 Dus touwtje, nogmaals, we maskeren over wat precies daar gebeurt. 1507 01:11:10,480 --> 01:11:14,040 Dat gaat misschien worden uitgepakt op woensdag, maar al snel. 1508 01:11:14,040 --> 01:11:16,380 Het is net als zijwieltjes. 1509 01:11:16,380 --> 01:11:18,370 Want in wezen, het is hetzelfde. 1510 01:11:18,370 --> 01:11:37,040 1511 01:11:37,040 --> 01:11:42,560 >> Dus laten we eens een minuut te programmeren dit, en dan zullen we gaan over 1512 01:11:42,560 --> 01:11:45,130 het als een groep, en vervolgens zoals ik al zei, inpakken. 1513 01:11:45,130 --> 01:11:47,770 En ik denk dat ze nog extra snoep, dus moeten jullie hopelijk nemen 1514 01:11:47,770 --> 01:11:49,790 dat, of neem die. 1515 01:11:49,790 --> 01:12:20,380 1516 01:12:20,380 --> 01:12:22,560 >> Sorry als je nog steeds schrijven, maar ik wil om te duiken in en wij 1517 01:12:22,560 --> 01:12:24,010 kan het af samen. 1518 01:12:24,010 --> 01:12:30,470 Dus ik heb geschreven in, # include cs50.h, # include stdio.h. 1519 01:12:30,470 --> 01:12:33,970 int main (void), accolade, krullend brace, binnen drie regels van 1520 01:12:33,970 --> 01:12:38,760 pseudocode, neem de volledige naam van een gebruiker, twee en slechts twee command line 1521 01:12:38,760 --> 01:12:42,670 argumenten, afdrukken van een groet aan de gebruiker dat hun voornaam omvat. 1522 01:12:42,670 --> 01:12:45,810 >> Dus de eerste, neem volledige naam van een gebruiker. 1523 01:12:45,810 --> 01:12:47,290 Wie kan me helpen volledige naam van een gebruiker? 1524 01:12:47,290 --> 01:12:50,882 1525 01:12:50,882 --> 01:12:52,780 Hoe doe ik dat deel? 1526 01:12:52,780 --> 01:12:57,685 1527 01:12:57,685 --> 01:12:59,500 Hebben jullie doen dat eerste deel? 1528 01:12:59,500 --> 01:13:02,587 1529 01:13:02,587 --> 01:13:03,894 Neem de volledige naam van een gebruiker. 1530 01:13:03,894 --> 01:13:05,860 Nou, voor die ene opdrachtregel argument, wat moet ik schrijven? 1531 01:13:05,860 --> 01:13:09,624 Wat moet ik veranderen aan mijn functie verklaring? 1532 01:13:09,624 --> 01:13:11,140 >> STUDENT: Je wilt niet het nietig meer zijn. 1533 01:13:11,140 --> 01:13:11,410 >> JASON HIRSCHHORN: Precies. 1534 01:13:11,410 --> 01:13:12,385 Ik wil het niet nietig zou zijn. 1535 01:13:12,385 --> 01:13:13,630 Wat wil ik dat het wordt? 1536 01:13:13,630 --> 01:13:14,650 >> STUDENT: Int argc. 1537 01:13:14,650 --> 01:13:15,720 >> JASON HIRSCHHORN: Int argc. 1538 01:13:15,720 --> 01:13:17,430 >> STUDENT: String argv. 1539 01:13:17,430 --> 01:13:19,055 >> JASON HIRSCHHORN: String argv. 1540 01:13:19,055 --> 01:13:19,705 >> STUDENT: Beugel, beugel. 1541 01:13:19,705 --> 01:13:20,070 >> JASON HIRSCHHORN: Beugel, beugel. 1542 01:13:20,070 --> 01:13:21,780 Dat is precies goed, en dat is eigenlijk hoe ik ga krijgen 1543 01:13:21,780 --> 01:13:22,820 volledige naam van een gebruiker. 1544 01:13:22,820 --> 01:13:24,070 Ze gaan om het daar te zetten. 1545 01:13:24,070 --> 01:13:27,720 1546 01:13:27,720 --> 01:13:28,780 Zodat men gedaan heeft. 1547 01:13:28,780 --> 01:13:30,780 Dus nu wil ik twee en slechts twee command line argumenten. 1548 01:13:30,780 --> 01:13:35,065 Dus Noah, wat is een manier kan ik Controleer het aantal commando 1549 01:13:35,065 --> 01:13:36,315 line argumenten heb ik? 1550 01:13:36,315 --> 01:13:39,676 1551 01:13:39,676 --> 01:13:40,725 >> STUDENT: Je doet een if-statement. 1552 01:13:40,725 --> 01:13:42,270 >> JASON HIRSCHHORN: Als verklaring, precies. 1553 01:13:42,270 --> 01:13:44,830 Wat wil ik als de conditie? 1554 01:13:44,830 --> 01:13:48,370 >> STUDENT: Als argc groter is dan 3. 1555 01:13:48,370 --> 01:13:52,485 >> JASON HIRSCHHORN: Als argc groter is dan 3. 1556 01:13:52,485 --> 01:13:58,430 Als argc groter dan 3, wat moet ik doen? 1557 01:13:58,430 --> 01:13:59,400 >> STUDENT: Return 1. 1558 01:13:59,400 --> 01:14:01,856 >> JASON HIRSCHHORN: Return 1. 1559 01:14:01,856 --> 01:14:04,050 Zal dat ervoor zorgen dat ik twee en slechts twee? 1560 01:14:04,050 --> 01:14:07,280 1561 01:14:07,280 --> 01:14:07,820 >> STUDENT: Nee. 1562 01:14:07,820 --> 01:14:13,110 Als argc groter is dan 3 en minder dan 2. 1563 01:14:13,110 --> 01:14:17,770 >> JASON HIRSCHHORN: Als argc is groter dan 3 en argc is minder dan 2. 1564 01:14:17,770 --> 01:14:21,540 Wat is een manier waarop ik kan dit in gewoon schrijven een regel, of zonder gebruik van die 1565 01:14:21,540 --> 01:14:23,890 en Booleaanse operator? 1566 01:14:23,890 --> 01:14:25,942 >> STUDENT: Het is niet gelijk aan 2. 1567 01:14:25,942 --> 01:14:28,790 >> JASON HIRSCHHORN: Als argc is gelijk aan 2. 1568 01:14:28,790 --> 01:14:29,260 Precies. 1569 01:14:29,260 --> 01:14:34,890 Als argc niet gelijk is aan 2, dat me dit programma zal geven, 1570 01:14:34,890 --> 01:14:37,250 gepersonaliseerd, toen ik voer het uit, en , dat geeft mij hoeveel 1571 01:14:37,250 --> 01:14:38,740 command line argumenten? 1572 01:14:38,740 --> 01:14:42,110 Hoeveel zal ik controleren? 1573 01:14:42,110 --> 01:14:42,370 >> Sorry. 1574 01:14:42,370 --> 01:14:43,400 Laat me herformuleren dat. 1575 01:14:43,400 --> 01:14:46,620 Als argc = 2, hoeveel dingen deed de gebruiker schrijven in de lijn? 1576 01:14:46,620 --> 01:14:47,500 >> STUDENT: One. 1577 01:14:47,500 --> 01:14:49,120 >> JASON HIRSCHHORN: Eentje maar. 1578 01:14:49,120 --> 01:14:50,430 Dus voordat, je had gelijk, Noah. 1579 01:14:50,430 --> 01:14:52,192 Wat heb ik echt nodig om daar te zetten? 1580 01:14:52,192 --> 01:14:53,640 >> STUDENT: Dat is gelijk aan 3. 1581 01:14:53,640 --> 01:14:55,970 >> JASON HIRSCHHORN: argc niet gelijk 3. 1582 01:14:55,970 --> 01:15:00,250 Ik wil evenaren 3 want ik wil gepersonaliseerd plus de andere twee. 1583 01:15:00,250 --> 01:15:02,560 Dus als argc niet gelijk is aan 3, terug 1. 1584 01:15:02,560 --> 01:15:04,475 Waarom zei je dat terug 1? 1585 01:15:04,475 --> 01:15:06,180 >> STUDENT: Omdat dat betekent dat het verkeerd is. 1586 01:15:06,180 --> 01:15:08,420 >> JASON HIRSCHHORN: Dat betekent dat het verkeerd is, en wat dat gaat doen? 1587 01:15:08,420 --> 01:15:10,360 >> STUDENT: Re-prompt van de gebruiker. 1588 01:15:10,360 --> 01:15:11,940 >> JASON HIRSCHHORN: Het gaat om te stoppen het programma, dus het zal moeten draaien 1589 01:15:11,940 --> 01:15:14,520 weer, maar we hebben niets hier opnieuw te vragen voor hen. 1590 01:15:14,520 --> 01:15:14,840 Ik heb niet om die. 1591 01:15:14,840 --> 01:15:15,990 Dus dat is precies goed. 1592 01:15:15,990 --> 01:15:17,680 Return 1 gewoon stopt het programma. 1593 01:15:17,680 --> 01:15:18,520 Geweldig. 1594 01:15:18,520 --> 01:15:21,600 >> En print een groet aan de gebruiker dat hun voornaam omvat. 1595 01:15:21,600 --> 01:15:24,010 Hoe kan ik dat doen? 1596 01:15:24,010 --> 01:15:25,990 Anna? 1597 01:15:25,990 --> 01:15:26,580 >> STUDENT: Printf. 1598 01:15:26,580 --> 01:15:27,785 >> JASON HIRSCHHORN: Printf. 1599 01:15:27,785 --> 01:15:28,640 >> STUDENT: (" 1600 01:15:28,640 --> 01:15:30,460 >> JASON HIRSCHHORN: ( 1601 01:15:30,460 --> 01:15:31,600 >> STUDENT: "hello 1602 01:15:31,600 --> 01:15:33,210 >> JASON HIRSCHHORN: "hello 1603 01:15:33,210 --> 01:15:34,800 >> STUDENT:% s 1604 01:15:34,800 --> 01:15:37,230 >> JASON HIRSCHHORN:% s 1605 01:15:37,230 --> 01:15:38,840 >> STUDENT: / n 1606 01:15:38,840 --> 01:15:41,030 >> JASON HIRSCHHORN: / n 1607 01:15:41,030 --> 01:15:43,120 >> STUDENT: ", 1608 01:15:43,120 --> 01:15:45,130 >> JASON HIRSCHHORN: ", 1609 01:15:45,130 --> 01:15:46,620 >> STUDENT: ArGV 1610 01:15:46,620 --> 01:15:47,080 >> JASON HIRSCHHORN: Sorry? 1611 01:15:47,080 --> 01:15:47,750 >> STUDENT: ArGV 1612 01:15:47,750 --> 01:15:48,840 >> JASON HIRSCHHORN: ARGV 1613 01:15:48,840 --> 01:15:50,190 >> STUDENT: Vierkante haken 1. 1614 01:15:50,190 --> 01:15:51,230 >> JASON HIRSCHHORN: Vierkante haken? 1615 01:15:51,230 --> 01:15:51,870 >> STUDENT: 1. 1616 01:15:51,870 --> 01:15:54,050 >> JASON HIRSCHHORN: 1. 1617 01:15:54,050 --> 01:15:55,850 >> STUDENT: En) puntkomma. 1618 01:15:55,850 --> 01:15:58,290 >> JASON HIRSCHHORN:) puntkomma. 1619 01:15:58,290 --> 01:16:00,250 Laten we dit uit te voeren. 1620 01:16:00,250 --> 01:16:03,730 Maken gepersonaliseerde. 1621 01:16:03,730 --> 01:16:06,392 . / Gepersonaliseerd. 1622 01:16:06,392 --> 01:16:07,420 Het gewoon stoppen. 1623 01:16:07,420 --> 01:16:10,390 Waarom is het gestopt? 1624 01:16:10,390 --> 01:16:11,310 >> STUDENT: U heeft geen argumenten. 1625 01:16:11,310 --> 01:16:12,560 >> JASON HIRSCHHORN: Ik heb niet zet alle argumenten inch 1626 01:16:12,560 --> 01:16:16,360 1627 01:16:16,360 --> 01:16:16,920 Ziet er geweldig uit. 1628 01:16:16,920 --> 01:16:18,130 Jullie genageld het. 1629 01:16:18,130 --> 01:16:22,420 Dus nogmaals, je ging naar argv en je gecontroleerd aan het begin argc. 1630 01:16:22,420 --> 01:16:24,390 Dat zijn twee belangrijke dingen om te onthouden. 1631 01:16:24,390 --> 01:16:29,250 Dus in onze laatste twee minuten voordat we vertrekken, zullen we niet krijgen om PSET twee, maar 1632 01:16:29,250 --> 01:16:33,585 zoals ik al zei, als je wilt blijven na gedurende 10 minuten, ik zou hij blij om te gaan 1633 01:16:33,585 --> 01:16:35,710 dan met jullie de logica voor deze problemen sets. 1634 01:16:35,710 --> 01:16:37,930 We hadden veel om vandaag te dekken dus ik heb niet naar hen. 1635 01:16:37,930 --> 01:16:39,820 In het algemeen, ik wil zijn dat aan het eind. 1636 01:16:39,820 --> 01:16:42,150 Dus als je wilt om te blijven, stok rond voor 10 minuten. 1637 01:16:42,150 --> 01:16:42,990 We zullen dat doen. 1638 01:16:42,990 --> 01:16:46,250 >> Dan, zoals ik al zei in het begin, pset nul en een, zullen we dat 1639 01:16:46,250 --> 01:16:48,040 terugkoppeling naar u terug als spoedig mogelijk. 1640 01:16:48,040 --> 01:16:51,260 Het doel is om pset een feedback te krijgen, het commentaar gedeelte, 1641 01:16:51,260 --> 01:16:52,850 voordat pset twee is het gevolg. 1642 01:16:52,850 --> 01:16:56,730 Dus als je wat fouten of gemaakt stilistisch, zou het beter zijn, 1643 01:16:56,730 --> 01:17:01,330 je zult die gegevens zodat u zal niet dezelfde dingen doen in pset twee. 1644 01:17:01,330 --> 01:17:06,140 En dan in de toekomst, zul je allemaal van uw pset feedback en reacties 1645 01:17:06,140 --> 01:17:08,190 terug voor de volgende is verschuldigd. 1646 01:17:08,190 --> 01:17:12,695 >> Tot slot, als ik in een andere kon zetten plug voor feedback. 1647 01:17:12,695 --> 01:17:13,935 Dit is je eerste sectie. 1648 01:17:13,935 --> 01:17:15,920 Het was mijn eerste sectie onderwijzen van dit jaar. 1649 01:17:15,920 --> 01:17:16,930 Ga daar. 1650 01:17:16,930 --> 01:17:19,800 Schrijf materiaal, goed en slecht, en ik zal het gebruiken om te maken 1651 01:17:19,800 --> 01:17:21,320 sectie de volgende keer beter. 1652 01:17:21,320 --> 01:17:24,870 En als laatste, nogmaals, als je nodig hebt iets, laat het me weten. 1653 01:17:24,870 --> 01:17:26,410 Ik ben meer dan blij om te helpen jullie. 1654 01:17:26,410 --> 01:17:28,420 Als u wilt gewoon snoep, I zal hebben extra snoep. 1655 01:17:28,420 --> 01:17:29,800 Ik ben blij om het aan u te brengen. 1656 01:17:29,800 --> 01:17:31,190 >> Dit gaat om een ​​geweldig natuurlijk. 1657 01:17:31,190 --> 01:17:34,900 Dit is een van de, zo niet mijn favoriet Natuurlijk, ik heb genomen in mijn hele leven, 1658 01:17:34,900 --> 01:17:37,220 en ik hoop dat het zal zijn dat geweldig voor je. 1659 01:17:37,220 --> 01:17:40,090 Dus ik wil alles doen wat in mijn macht op toe dat geweldig voor jou. 1660 01:17:40,090 --> 01:17:46,590 Ik ga voor het verzenden van een e-mail als je in mijn sectie of Noah, en 1661 01:17:46,590 --> 01:17:50,310 gaan proberen en te plannen met elk van u een tijd om in te checken op de jongens 1662 01:17:50,310 --> 01:17:53,820 komende paar weken, dus ik kan krijgen een gevoel van wat je CS achtergrond is, 1663 01:17:53,820 --> 01:17:58,170 en het zal ook helpen me tailor deze secties om beter aan uw behoeften. 1664 01:17:58,170 --> 01:17:59,740 Dus dat is wat ik nog heb opgesteld. 1665 01:17:59,740 --> 01:18:02,260 Nogmaals, ik zie je buiten als je wilt om daar te zijn. 1666 01:18:02,260 --> 01:18:03,700 Dit was week twee sectie. 1667 01:18:03,700 --> 01:18:04,950 Dank jullie zoveel. 1668 01:18:04,950 --> 01:18:09,067