1 00:00:00,000 --> 00:00:05,830 2 00:00:05,830 --> 00:00:08,650 >> JASON HIRSCHHORN: Velkommen til CS50 sektion, alle. 3 00:00:08,650 --> 00:00:11,430 Mit navn er Jason Hirschhorn. 4 00:00:11,430 --> 00:00:15,850 Jeg er en masse af jeres TFs, men en masse af folk vil forhåbentlig deltage os 5 00:00:15,850 --> 00:00:20,420 online, udvidelse eller studerende forsøger at se gennem sektion, hvis de 6 00:00:20,420 --> 00:00:22,830 savnede deres sektion, uge ​​eller bare fange op, hvis de ville 7 00:00:22,830 --> 00:00:24,510 at gennemgå noget materiale. 8 00:00:24,510 --> 00:00:30,060 >> Så som pr pensum, som alle af jer har læst, korrekt? 9 00:00:30,060 --> 00:00:31,390 Jeg ser en masse hoved nikker. 10 00:00:31,390 --> 00:00:34,220 Sektioner giver dig mulighed at udforske kursets 11 00:00:34,220 --> 00:00:37,420 materiale i en mere intim miljø, samt dykke ned 12 00:00:37,420 --> 00:00:38,810 hands-on aktiviteter. 13 00:00:38,810 --> 00:00:41,230 >> Så det er dybest set, hvad vi er vil gøre hver uge. 14 00:00:41,230 --> 00:00:45,090 Vi kommer til at gå igennem, hvad vi har bestemt til at være den vigtigste 15 00:00:45,090 --> 00:00:49,170 emnerne i foredrag, og dem sandsynligvis også mest nyttige og 16 00:00:49,170 --> 00:00:52,780 mest tilbøjelige til at komme op på problemet sæt og quizzer, og i din kodning 17 00:00:52,780 --> 00:00:53,970 liv uden for CS50. 18 00:00:53,970 --> 00:00:57,260 Så vi kommer til at gå ind i de emner, drøfte dem, gå over dem, 19 00:00:57,260 --> 00:01:00,660 besvare eventuelle spørgsmål du fyre har, og så vi kommer til at gøre en masse 20 00:01:00,660 --> 00:01:02,250 praksis problemer i kodning. 21 00:01:02,250 --> 00:01:04,239 >> Du alle bragt bærbare computere, som er fantastisk. 22 00:01:04,239 --> 00:01:05,710 Dette er et computer science klasse. 23 00:01:05,710 --> 00:01:10,070 Men en masse af de øvelser, vi gør, du behøver ikke din bærbare til. 24 00:01:10,070 --> 00:01:11,720 Du kan gøre dem på et ark papir. 25 00:01:11,720 --> 00:01:13,580 Det er, hvordan du kommer til at gøre dem på quizzer. 26 00:01:13,580 --> 00:01:16,450 Og ja, det er en fantastisk måde at virkelig vide, at du, hvordan du gør 27 00:01:16,450 --> 00:01:19,720 noget, hvis du ikke har check 50 til afhængige Eller Kom til at stole på, fortæller 28 00:01:19,720 --> 00:01:20,620 du har lavet nogen fejl. 29 00:01:20,620 --> 00:01:25,670 >> Så du er velkommen til at kode på apparat eller run.cs50.net, hvilket er 30 00:01:25,670 --> 00:01:29,770 andet værktøj, der giver dig mulighed for at kode online, men jeg ville også anbefale, hvis 31 00:01:29,770 --> 00:01:32,280 du ikke har prøvet det, ved hjælp af et ark papir og forsøger disse praksis 32 00:01:32,280 --> 00:01:33,640 problemer på et ark papir. 33 00:01:33,640 --> 00:01:35,330 Fordi igen, det er i sidste ende hvad du kommer til at være 34 00:01:35,330 --> 00:01:37,430 bedt om at gøre på quizzer. 35 00:01:37,430 --> 00:01:44,080 >> Så lad os starte med vores dagsordenen for i dag. 36 00:01:44,080 --> 00:01:47,710 Vi kommer til at gå over nogle normer for vores sektion, så vi kommer til at dykke 37 00:01:47,710 --> 00:01:51,180 i arrays, funktioner og kommandolinjen argumenter, hvilket er, hvad du fyre 38 00:01:51,180 --> 00:01:56,200 have dækket denne sidste uge i auditorium og derefter mandag, og hvad du vil dække 39 00:01:56,200 --> 00:01:57,330 mere i morgen. 40 00:01:57,330 --> 00:01:59,060 Og så endelig, vi vil at tale om pset2. 41 00:01:59,060 --> 00:02:03,640 Hvis jeg kunne få en håndsoprækning, hvis du har ikke set på problemet set to 42 00:02:03,640 --> 00:02:04,890 specifikation. 43 00:02:04,890 --> 00:02:07,060 44 00:02:07,060 --> 00:02:08,120 Vi siger alle. 45 00:02:08,120 --> 00:02:09,419 Fantastic. 46 00:02:09,419 --> 00:02:12,070 >> Vi taler om problemet sæt i en bit, men hvis du læser det problem sæt 47 00:02:12,070 --> 00:02:14,340 specifikationer, der er alt hvad du behøver at gøre. 48 00:02:14,340 --> 00:02:18,370 Hvis du læser det, før du kommer til klasse og sektion tirsdag vil du 49 00:02:18,370 --> 00:02:19,220 være en stor position. 50 00:02:19,220 --> 00:02:21,680 Vi kan gå igennem problemet sæt, hvilket er, hvad vi vil 51 00:02:21,680 --> 00:02:22,090 at gøre i slutningen. 52 00:02:22,090 --> 00:02:23,500 Vi kommer til at gå igennem logikken, sørg 53 00:02:23,500 --> 00:02:24,710 alle er på samme side. 54 00:02:24,710 --> 00:02:28,650 >> Jeg vil have dig til at være i stand til at forlade tirsdag føler meget komfortabel med, hvad du 55 00:02:28,650 --> 00:02:31,560 skal gøre for denne uges problem sæt, og hvis du ikke gør det, vil jeg med glæde 56 00:02:31,560 --> 00:02:33,050 bo efter og arbejde med dig. 57 00:02:33,050 --> 00:02:36,850 Men der er én ting, som du er nødt til at gøre, men jeg tror ville være rigtig smart, 58 00:02:36,850 --> 00:02:40,500 blot at læse problemet sæt specifikation af klassen på tirsdag 59 00:02:40,500 --> 00:02:42,640 som det lyder som en masse af jer gjorde. 60 00:02:42,640 --> 00:02:45,810 >> Jeg vil starte med en dagsorden hver klasse så du ved, hvor vi skal hen. 61 00:02:45,810 --> 00:02:49,520 Dette er også nyttigt for folk, der ser online, fordi hver sektion 62 00:02:49,520 --> 00:02:53,540 er farvekodede, så hvis du ønsker at komme tilbage og bare se 10 minutter i stedet 63 00:02:53,540 --> 00:02:56,950 end hele 90-minutters afsnit, du kan bare gå til farvekodede sektion 64 00:02:56,950 --> 00:02:57,890 og se på denne del. 65 00:02:57,890 --> 00:03:01,510 Så jeg har prøvet at bryde dem op i pæn moduler, der vil tillade dig at - 66 00:03:01,510 --> 00:03:03,960 hvis du ønsker at komme tilbage og gennemgå, eller andre studerende, der er lige 67 00:03:03,960 --> 00:03:05,350 ser et afsnit at gennemgå - 68 00:03:05,350 --> 00:03:08,130 at finde den specifikke ting, de ønsker at være opmærksom på 69 00:03:08,130 --> 00:03:10,480 og lære mere om. 70 00:03:10,480 --> 00:03:11,390 Sød. 71 00:03:11,390 --> 00:03:12,180 >> Normer. 72 00:03:12,180 --> 00:03:13,680 Jeg er FOP førende på campus. 73 00:03:13,680 --> 00:03:14,900 Jeg ved ikke, om nogen gjorde FOP. 74 00:03:14,900 --> 00:03:16,280 Gjorde nogen gøre FOP? 75 00:03:16,280 --> 00:03:17,100 Én person gjorde FOP. 76 00:03:17,100 --> 00:03:18,430 To mennesker gjorde FOP. 77 00:03:18,430 --> 00:03:19,250 Awesome. 78 00:03:19,250 --> 00:03:22,360 Så FOP er det første år Outdoor Orientering Program. 79 00:03:22,360 --> 00:03:27,240 Vi tager freshmen i skoven og gøre de mest magiske oplevelser af 80 00:03:27,240 --> 00:03:28,830 deres liv, korrekt? 81 00:03:28,830 --> 00:03:29,220 Ja. 82 00:03:29,220 --> 00:03:30,080 Lyde om ret. 83 00:03:30,080 --> 00:03:36,360 >> Så jeg ville bare starte vores allerførste afsnittet med at diskutere nogle normer 84 00:03:36,360 --> 00:03:38,860 for klassen og vores forhold fordi jeg tror 85 00:03:38,860 --> 00:03:40,010 de er meget vigtige. 86 00:03:40,010 --> 00:03:43,630 Først og fremmest som dem af jer, der er min afdeling har modtaget og 87 00:03:43,630 --> 00:03:47,150 er blevet drøftet i det email, jeg elsker dette. 88 00:03:47,150 --> 00:03:48,130 Dette er min favorit del af året. 89 00:03:48,130 --> 00:03:49,100 Jeg har været så spændt. 90 00:03:49,100 --> 00:03:50,040 Jeg har været her i flere timer i dag. 91 00:03:50,040 --> 00:03:54,560 Jeg har ikke forladt denne bygning, undtagen til gå spise, fordi jeg elsker CS50 sektion, jeg 92 00:03:54,560 --> 00:03:58,620 elsker undervisning, Jeg elsker at arbejde med jer. 93 00:03:58,620 --> 00:04:02,000 >> En af mine højeste prioriteter, hvis ikke min første prioritet, ikke kun for 94 00:04:02,000 --> 00:04:05,130 denne klasse, men inklusive min anden klasser og extracurriculars, er at 95 00:04:05,130 --> 00:04:09,350 støtte jer, og hjælpe jer, og gøre mit bedste for at sikre, at du 96 00:04:09,350 --> 00:04:13,780 fyre har en vidunderlig, sjov, produktiv, engagerende, spændende 97 00:04:13,780 --> 00:04:15,250 opleve i denne klasse. 98 00:04:15,250 --> 00:04:16,190 Det er, hvad jeg forpligtet til. 99 00:04:16,190 --> 00:04:17,959 Det er derfor jeg elsker at gøre dette. 100 00:04:17,959 --> 00:04:20,190 Det er mit nummer én ting, støtter jer. 101 00:04:20,190 --> 00:04:25,110 Hvis du har spørgsmål om foredrag, problemet sæt, sektion, 102 00:04:25,110 --> 00:04:28,830 liv, selv om du ønsker at tale om liv, er du velkommen til at nå ud. 103 00:04:28,830 --> 00:04:31,210 >> Du har min celle telefonnummer, du har min email 104 00:04:31,210 --> 00:04:32,910 adresse, du har min Gchat. 105 00:04:32,910 --> 00:04:37,540 Du kan kontakte mig på en eller alle dem, når, men sandsynligvis vil ikke få 106 00:04:37,540 --> 00:04:38,720 en reaktion, når. 107 00:04:38,720 --> 00:04:41,020 Jeg prøver og komme tilbage inden 24 timer. 108 00:04:41,020 --> 00:04:44,760 Ofte vil det være inden for 20 minutter eller 24 minutter. 109 00:04:44,760 --> 00:04:46,110 Jeg skulle have sagt, at at gøre det parallelt. 110 00:04:46,110 --> 00:04:48,840 Men du vil få et svar temmelig hurtigt. 111 00:04:48,840 --> 00:04:54,220 >> Hvis du tekst mig en time før Problemet set er på grund, vil jeg berolige dig 112 00:04:54,220 --> 00:04:57,660 ned og gøre dybe åndedrætsøvelser med dig, men hvis du ikke har startet, 113 00:04:57,660 --> 00:05:00,270 du sandsynligvis ikke kommer til slut, og Jeg kan ikke rigtig hjælpe dig derude 114 00:05:00,270 --> 00:05:01,710 selvom jeg vil prøve mit bedste. 115 00:05:01,710 --> 00:05:03,920 Så jeg vil gøre alt Jeg kan for at støtte dig. 116 00:05:03,920 --> 00:05:07,980 Du er velkommen til at nå ud af, om Det er i afsnit igen på Kontortid 117 00:05:07,980 --> 00:05:09,150 hvis du ser mig, eller endda udenfor. 118 00:05:09,150 --> 00:05:11,800 Jeg er glad for at oprette en tid til at mødes og arbejde gennem problemer 119 00:05:11,800 --> 00:05:14,410 med eller gå over materialet. 120 00:05:14,410 --> 00:05:15,990 Så det er nummer et, støtte. 121 00:05:15,990 --> 00:05:17,940 Jeg vil gøre alt, hvad jeg kan for at støtte dig. 122 00:05:17,940 --> 00:05:21,520 >> Nummer to, møde i midten. 123 00:05:21,520 --> 00:05:24,760 Så meget som jeg gerne vil være, er jeg ikke almægtig eller almægtig eller 124 00:05:24,760 --> 00:05:28,410 alvidende, så jeg kender ikke alle de tid, hvis det jeg gør er at få 125 00:05:28,410 --> 00:05:33,410 tværs, hvis den måde, jeg underviser på topic hjælper dig med at lære det, eller hvis du 126 00:05:33,410 --> 00:05:36,120 er forvirrede på et emne, men ikke hæve din hånd eller spørge mig 127 00:05:36,120 --> 00:05:37,390 eller send mig en mail. 128 00:05:37,390 --> 00:05:42,150 Eller selv hvis du, igen, er forvirret om noget på problemet sættet. 129 00:05:42,150 --> 00:05:44,240 Hvis du ikke nå ud til mig, Jeg kan ikke vide, at for sikker. 130 00:05:44,240 --> 00:05:46,950 Jeg har tænkt mig at gøre mit bedste for at tjekke ind på jer, sørg for alt er 131 00:05:46,950 --> 00:05:51,170 går godt, så prøv at lære tingene på en måde der vil være fremmende for de fleste af 132 00:05:51,170 --> 00:05:54,910 dine læringsstile, men hvis der er noget jeg kan gøre, så lad mig det vide. 133 00:05:54,910 --> 00:05:58,520 >> Langs disse linjer, hvis du vil have noget hjælp med problemet sæt, jeg mere 134 00:05:58,520 --> 00:05:59,700 end glade for at hjælpe dig med problemet sæt. 135 00:05:59,700 --> 00:06:02,300 Vi kommer til at gøre en masse at mod den anden 136 00:06:02,300 --> 00:06:03,460 halvdelen af ​​dette afsnit. 137 00:06:03,460 --> 00:06:06,040 Men hvis du ikke har læst problemet sætter tilbage og har ikke set den gåtur 138 00:06:06,040 --> 00:06:09,310 igennem og har ikke set shorts og forventer mig at lære dig 139 00:06:09,310 --> 00:06:13,260 alt, der er blevet videofilmet online eller som du kan finde på CS50 140 00:06:13,260 --> 00:06:16,720 Undersøgelsen, der er ikke rigtig fair at mig eller til dine andre jævnaldrende. 141 00:06:16,720 --> 00:06:20,440 142 00:06:20,440 --> 00:06:25,730 >> Så venligst, jeg er mere end glad for at hjælpe dig, men du fyre fik at møde mig i 143 00:06:25,730 --> 00:06:27,230 midten. 144 00:06:27,230 --> 00:06:30,100 Vi har tonsvis af ressourcer til du til rådighed på CS50. 145 00:06:30,100 --> 00:06:31,230 Jeg nævnte nogle af dem. 146 00:06:31,230 --> 00:06:32,960 Venligst tage fordel af dem. 147 00:06:32,960 --> 00:06:35,140 Hvis du er forvirret, er jeg mere end tilfreds at hjælpe dig med at forklare dem 148 00:06:35,140 --> 00:06:39,290 en anden måde, men det er ikke fair, hvis studerende møder op på kontortid, 149 00:06:39,290 --> 00:06:42,530 har ikke startet noget, og det er Torsdag aften, og de venter 150 00:06:42,530 --> 00:06:45,880 TF at gå dem igennem hver enkelt ting for problemet sæt grund 151 00:06:45,880 --> 00:06:47,140 ved middagstid den næste dag. 152 00:06:47,140 --> 00:06:48,300 Mening? 153 00:06:48,300 --> 00:06:50,890 Igen, skal du møde os i midten. 154 00:06:50,890 --> 00:06:53,230 >> Og endelig høje forventninger. 155 00:06:53,230 --> 00:06:58,010 Jeg har tænkt mig at blive grading alle, der er i min afdeling, scorer eller din 156 00:06:58,010 --> 00:06:59,020 problemområder sæt. 157 00:06:59,020 --> 00:07:01,240 Du har ikke gået tilbage problem sæt nul eller en endnu. 158 00:07:01,240 --> 00:07:02,250 Vi er kede af det. 159 00:07:02,250 --> 00:07:04,970 Det tog os et stykke tid at endelig bosætte sektioner, og nu 160 00:07:04,970 --> 00:07:05,560 vi kan begynde sortering. 161 00:07:05,560 --> 00:07:09,560 >> Jeg får dem tilbage til dig så hurtigt som muligt. 162 00:07:09,560 --> 00:07:11,890 Det er nogle af mine advisees derude. 163 00:07:11,890 --> 00:07:14,150 Jeg får dem tilbage til dig så hurtigt som muligt. 164 00:07:14,150 --> 00:07:18,046 Og for problemet sæt to, vil vi være på planlægge, og vi vil begynde at få dem 165 00:07:18,046 --> 00:07:20,440 til dig temmelig hurtigt efter du tænder dem i. 166 00:07:20,440 --> 00:07:24,130 >> Når du får dit problem sat tilbage, du får scoringer, som du kender fra 167 00:07:24,130 --> 00:07:28,150 læse pensum - korrekthed, design, rækkevidde, og stil scoringer. 168 00:07:28,150 --> 00:07:29,760 Du får også kommentarer. 169 00:07:29,760 --> 00:07:32,160 Kommentarerne er vigtigere end scoringer. 170 00:07:32,160 --> 00:07:33,780 Jeg synes, det er sikkert at sige, at. 171 00:07:33,780 --> 00:07:37,930 >> Scores er blot et tal et til fem. 172 00:07:37,930 --> 00:07:38,930 Det er svært at læse i dem. 173 00:07:38,930 --> 00:07:40,720 Det er svært at forbedre sig fra dem. 174 00:07:40,720 --> 00:07:44,460 Men kommentarerne vil påpege specifikke ting, du gjorde det godt eller områder 175 00:07:44,460 --> 00:07:48,360 du kan forbedre på og give dig nogle ideer til fremtiden eller alternative 176 00:07:48,360 --> 00:07:49,160 måder at gøre tingene på. 177 00:07:49,160 --> 00:07:52,270 >> Så please, please, bedes du læse gennem kommentarerne. 178 00:07:52,270 --> 00:07:54,190 Jeg sætter en masse tid på at disse bemærkninger. 179 00:07:54,190 --> 00:07:57,190 Læs venligst igennem dem, og ikke bare rulle ned til bunden af 180 00:07:57,190 --> 00:08:01,890 PDF, se efter din score, eller gå online og find din score, og derefter ignorere 181 00:08:01,890 --> 00:08:02,800 kommentarerne. 182 00:08:02,800 --> 00:08:03,910 Det er ikke, hvordan du er kommer til at få det bedre. 183 00:08:03,910 --> 00:08:06,550 Det er ikke, hvordan du kommer til at stige din score i sidste ende, bare 184 00:08:06,550 --> 00:08:07,340 ved at se på scores. 185 00:08:07,340 --> 00:08:08,760 Venligst se på disse bemærkninger. 186 00:08:08,760 --> 00:08:13,240 >> Og langs linjen for høje forventninger, igen, som jeg sagde, du 187 00:08:13,240 --> 00:08:14,260 kan scores fra én til fem. 188 00:08:14,260 --> 00:08:17,120 Toere, treere og firere er Langt størstedelen af ​​scores 189 00:08:17,120 --> 00:08:17,940 du kommer til at få. 190 00:08:17,940 --> 00:08:20,180 Ones og femmere er begge virkelig sjældne. 191 00:08:20,180 --> 00:08:21,720 Der er altid ting vi kan gøre bedre. 192 00:08:21,720 --> 00:08:23,490 Når jeg kode et program, der er altid noget jeg 193 00:08:23,490 --> 00:08:24,800 kunne have gjort bedre. 194 00:08:24,800 --> 00:08:28,740 >> Så snarere end at sige at du får en fem hele tiden på alt og gjorde 195 00:08:28,740 --> 00:08:31,960 alt perfekt, tror jeg ikke nogen af os mener virkelig, at vi - eller 196 00:08:31,960 --> 00:08:34,830 forhåbentlig, vi ikke gøre alt perfekt hele tiden. 197 00:08:34,830 --> 00:08:37,010 Så du skal ikke være bekymret, hvis du fik ikke en fem. 198 00:08:37,010 --> 00:08:40,470 En fem ikke kortlægge på en A, en fire ikke kortlægge på en B, en tre gør 199 00:08:40,470 --> 00:08:42,950 ikke kort på en C. Det er ikke hvordan scorerne virker. 200 00:08:42,950 --> 00:08:48,140 >> Ligesom David har sagt mange gange, på semester ende alle dine scores og 201 00:08:48,140 --> 00:08:53,390 input fra mig, din TF, kommer sammen og bestemme en endelig karakter for dig. 202 00:08:53,390 --> 00:08:56,760 Men igen, det er ikke fem, A, fire, B, et cetera. 203 00:08:56,760 --> 00:09:01,150 Så jeg har tænkt mig at have høje forventninger for jer. 204 00:09:01,150 --> 00:09:03,670 Jeg har tænkt mig at forvente gode problem sæt og jeg har tænkt mig at give 205 00:09:03,670 --> 00:09:05,010 dig feedback som sådan. 206 00:09:05,010 --> 00:09:07,430 Og det kommer ikke til at betyde, at du er vil få en dårligere kvalitet. 207 00:09:07,430 --> 00:09:09,760 Du er gradueret i forhold til dine fremskridt fra uge 208 00:09:09,760 --> 00:09:11,260 nul til kursus udgang. 209 00:09:11,260 --> 00:09:17,190 >> Og endelig, i form af et højt forventninger i klassen, jeg elsker når 210 00:09:17,190 --> 00:09:18,460 mennesker deltager. 211 00:09:18,460 --> 00:09:23,180 Jeg forstår nogle mennesker føler sig mere eller mindre behagelig deltagende. 212 00:09:23,180 --> 00:09:26,050 Andre mennesker deltager ikke ved at hæve deres hånd og 213 00:09:26,050 --> 00:09:27,320 taler hele tiden. 214 00:09:27,320 --> 00:09:30,570 Men vi i denne klasse vil være laver en masse små problemer, en masse 215 00:09:30,570 --> 00:09:33,770 af mini spørgsmål, og derefter nogle større kodning problemer. 216 00:09:33,770 --> 00:09:36,760 Så helt sikkert arbejde disse øvelser ud når vi gør dem på din computer eller på 217 00:09:36,760 --> 00:09:37,900 et ark papir. 218 00:09:37,900 --> 00:09:40,933 >> Men jeg vil også give dig lidt tid, før nogen nogensinde har at besvare nogle 219 00:09:40,933 --> 00:09:42,220 af de spørgsmål, jeg beder om. 220 00:09:42,220 --> 00:09:44,930 Så fordi jeg vil give dig lidt tid til at tænker over det, fordi vi vil 221 00:09:44,930 --> 00:09:49,380 at gøre tingene på partnerne tider, Jeg vil forvente, at alle 222 00:09:49,380 --> 00:09:52,150 at blive ansat noget. 223 00:09:52,150 --> 00:09:56,030 Og i mangel af et bedre udtryk, der vil sandsynligvis være cold calling, som 224 00:09:56,030 --> 00:09:59,045 er, hvor alle vil have en chance at tænke på svaret, og derefter 225 00:09:59,045 --> 00:10:01,150 Jeg ringer på dig, og derefter du vil sige svaret. 226 00:10:01,150 --> 00:10:05,200 >> Må ikke bekymre dig, eller være bange for det. 227 00:10:05,200 --> 00:10:08,610 Jeg har gjort det i fortiden, og vi har fundet at det er langt mere vellykket, 228 00:10:08,610 --> 00:10:11,810 også læse pædagogisk forskning på det at afgøre, hvorvidt det var en 229 00:10:11,810 --> 00:10:12,640 god taktik. 230 00:10:12,640 --> 00:10:15,790 Det er meget nyttigt, især hvis du give eleverne tid til at tænke over 231 00:10:15,790 --> 00:10:20,070 svar og ikke gør dem bare komme ud og sige det lige off the bat. 232 00:10:20,070 --> 00:10:22,620 Men hvis du ikke føler sig trygge besvare, er jeg også ret god til 233 00:10:22,620 --> 00:10:25,370 sensing ud af, og vi kommer ikke til at sætte dig på stedet, især på 234 00:10:25,370 --> 00:10:28,240 kameraet, selv om ingen af du er på kameraet lige nu. 235 00:10:28,240 --> 00:10:32,250 >> Så det er de normer, jeg har. 236 00:10:32,250 --> 00:10:34,670 En ting mere lighed at møde i midten. 237 00:10:34,670 --> 00:10:36,490 Jeg har tænkt mig at give jer en masse feedback. 238 00:10:36,490 --> 00:10:38,310 Kan du give mig feedback så godt. 239 00:10:38,310 --> 00:10:46,190 Der er en hjemmeside, sayat.me/cs50. 240 00:10:46,190 --> 00:10:48,380 Så det er en ærlig feedback. 241 00:10:48,380 --> 00:10:50,730 Hvis du ønsker at give det under afsnittet Jeg får en mail når det sker. 242 00:10:50,730 --> 00:10:53,820 Vi tager en pause i en bit, så jeg vil se gennem tilbagemeldinger dengang. 243 00:10:53,820 --> 00:10:55,970 Hvis du nogensinde har nogen feedback, bedes du give det til mig der. 244 00:10:55,970 --> 00:11:01,380 >> Hvis du giver mig feedback på Q, det er vidunderlig, men det er den vejledning 245 00:11:01,380 --> 00:11:02,570 at du gør i slutningen. 246 00:11:02,570 --> 00:11:05,690 Men det vil være i semesters ende, så Jeg vil ikke være i stand til at tage noget af det 247 00:11:05,690 --> 00:11:08,620 feedback og gøre det til undervisning jer bedre. 248 00:11:08,620 --> 00:11:11,020 Så venligst, hvis du har nogen feedback, give det til mig. 249 00:11:11,020 --> 00:11:12,010 Jeg elsker feedback. 250 00:11:12,010 --> 00:11:14,490 Back to FOP, vi får tilbagemeldinger hele tiden. 251 00:11:14,490 --> 00:11:18,610 >> Du kan give mig plusser, gode ting, deltaer, ting jeg kan forbedre på. 252 00:11:18,610 --> 00:11:20,600 Du kan kommentere på min outfits. 253 00:11:20,600 --> 00:11:24,170 Det vil ikke være så hjælpsom, men du er velkommen til at kommentere på alle, og 254 00:11:24,170 --> 00:11:24,570 alt. 255 00:11:24,570 --> 00:11:26,280 Venligst, bedes du give mig feedback. 256 00:11:26,280 --> 00:11:28,740 Jeg værdsætter det meget, og det betyder meget for mig. 257 00:11:28,740 --> 00:11:31,760 258 00:11:31,760 --> 00:11:33,280 >> Én mere normen, sjov. 259 00:11:33,280 --> 00:11:34,530 Vi kommer til at have en masse sjov. 260 00:11:34,530 --> 00:11:36,930 Forhåbentlig i dette kursus, vil du har en masse sjov. 261 00:11:36,930 --> 00:11:38,780 Vi vil have slik på sektionen. 262 00:11:38,780 --> 00:11:40,040 Vi vil have musik. 263 00:11:40,040 --> 00:11:45,510 Vi vil forhåbentlig komme til at kende anden noget godt, så jeg vil 264 00:11:45,510 --> 00:11:47,690 dette at være en sjov, engagerende oplevelse. 265 00:11:47,690 --> 00:11:50,890 >> Jeg kender nogle af jer er faldet i søvn i forelæsningerne du havde tidligere i dag, 266 00:11:50,890 --> 00:11:53,750 så forhåbentlig, der ikke vil være tilfældet nu. 267 00:11:53,750 --> 00:11:55,960 Og hvis det er tilfældet nu, bare ikke snorke, fordi det måske 268 00:11:55,960 --> 00:11:57,580 blive fanget på kamera. 269 00:11:57,580 --> 00:11:58,770 Sød. 270 00:11:58,770 --> 00:12:04,020 Eventuelle spørgsmål, kommentarer eller bekymringer inden jeg går videre om noget vi har 271 00:12:04,020 --> 00:12:05,270 talte om? 272 00:12:05,270 --> 00:12:08,620 273 00:12:08,620 --> 00:12:11,350 Store. 274 00:12:11,350 --> 00:12:14,830 >> Så vi kommer til at gå i arrays først. 275 00:12:14,830 --> 00:12:17,140 Dette er, hvordan du laver et array. 276 00:12:17,140 --> 00:12:18,410 Vi har set det før. 277 00:12:18,410 --> 00:12:21,830 Du har en datatype, har du en navn, og så har du en størrelse. 278 00:12:21,830 --> 00:12:24,430 Lige her, jeg oprette to arrays. 279 00:12:24,430 --> 00:12:30,360 Den første er en vifte af figurer, og det har 26 pladser. 280 00:12:30,360 --> 00:12:33,790 Den anden er en vifte af scoringer, og det har tre 281 00:12:33,790 --> 00:12:35,390 rum for tre heltal. 282 00:12:35,390 --> 00:12:35,827 Ja? 283 00:12:35,827 --> 00:12:38,200 >> STUDENT: Er alle disse dias tilgængelige et sted for os? 284 00:12:38,200 --> 00:12:38,850 >> JASON HIRSCHHORN: Great spørgsmål. 285 00:12:38,850 --> 00:12:40,650 Spørgsmålet var, er alle disse slides til rådighed? 286 00:12:40,650 --> 00:12:40,920 Ja. 287 00:12:40,920 --> 00:12:43,420 Alle disse slides vil være tilgængelige, og i fremtiden, vil jeg maile dem til 288 00:12:43,420 --> 00:12:44,640 dig, før sektion. 289 00:12:44,640 --> 00:12:47,340 Men i dag, fordi det er den første uge, vi havde en sen start. 290 00:12:47,340 --> 00:12:49,675 Så normalt, får du disse dias, men de vil være tilgængelige online og 291 00:12:49,675 --> 00:12:52,420 Jeg e-mailer dem til dig lige efter klasse. 292 00:12:52,420 --> 00:12:54,140 Andre spørgsmål? 293 00:12:54,140 --> 00:13:01,330 >> Så igen, arrays er kasser, i mangel af et bedre ord, der holder flere 294 00:13:01,330 --> 00:13:06,420 elementer af en datatype, og de er ved siden af ​​hinanden i hukommelsen. 295 00:13:06,420 --> 00:13:11,370 Og så igen, det er hvordan du kan lave to typer arrays. 296 00:13:11,370 --> 00:13:15,090 >> Så efter du har foretaget dit array med at første linje - int score, beslag 297 00:13:15,090 --> 00:13:17,430 tre, tæt konsol - du vil initialisere det. 298 00:13:17,430 --> 00:13:19,050 Du ønsker at sætte nogle værdier der. 299 00:13:19,050 --> 00:13:24,660 Og det er hvordan du sætte nogle værdier der, bare vælge indice og 300 00:13:24,660 --> 00:13:25,670 skrive nummeret. 301 00:13:25,670 --> 00:13:27,130 Lad os trække det på tavlen. 302 00:13:27,130 --> 00:13:28,270 Kan alle se det? 303 00:13:28,270 --> 00:13:29,030 Alle kan se. 304 00:13:29,030 --> 00:13:30,790 Sød. 305 00:13:30,790 --> 00:13:36,550 >> Så det kommer til at være min matrix kaldet Scores. 306 00:13:36,550 --> 00:13:37,730 Som du kan se, er det str. tre. 307 00:13:37,730 --> 00:13:39,210 Der er tre bokse derinde. 308 00:13:39,210 --> 00:13:43,120 Hver enkelt kan passe, hvad 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: Et heltal i denne. 311 00:13:45,250 --> 00:13:48,790 Vi skrev int score, og det første ord er den datatype, der kommer til at 312 00:13:48,790 --> 00:13:50,910 gå i kasserne i denne array. 313 00:13:50,910 --> 00:13:52,160 Så jeg kan passe tre. 314 00:13:52,160 --> 00:13:54,880 315 00:13:54,880 --> 00:13:57,000 Hvorfor har jeg nul op der på tavlen? 316 00:13:57,000 --> 00:13:59,240 Hvorfor siger den score nul er lig med 1? 317 00:13:59,240 --> 00:14:02,090 318 00:14:02,090 --> 00:14:03,180 Minder mig om dit navn. 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: Hvorfor? 323 00:14:04,920 --> 00:14:07,230 >> STUDENT: Fordi den første indeks er nul, begynder vi at tælle på nul. 324 00:14:07,230 --> 00:14:08,480 >> JASON HIRSCHHORN: Så vi starter optælling på nul. 325 00:14:08,480 --> 00:14:09,580 Det er helt rigtigt. 326 00:14:09,580 --> 00:14:12,340 Dette er den forvirrende del og vilje tur dig op, især når du er 327 00:14:12,340 --> 00:14:14,900 forsøger at gentage gennem arrays, som vi vil gøre i en smule. 328 00:14:14,900 --> 00:14:15,980 Vi begynder at tælle ved nul. 329 00:14:15,980 --> 00:14:19,170 Så hvis jeg vil henvise til den første box, det er ikke kasse et. 330 00:14:19,170 --> 00:14:22,290 Desværre, det er box nul. 331 00:14:22,290 --> 00:14:26,460 Den anden er æske en, og i dette tilfælde, den tredje er boks to. 332 00:14:26,460 --> 00:14:28,700 >> Hvad kasse tre? 333 00:14:28,700 --> 00:14:30,670 Hvor er kasse tre? 334 00:14:30,670 --> 00:14:34,750 Eller hvis jeg ønsker at gøre scoringer, beslag tre, tæt konsol, hvad er det? 335 00:14:34,750 --> 00:14:37,650 336 00:14:37,650 --> 00:14:39,760 Så du sagde den null-tegn. 337 00:14:39,760 --> 00:14:41,600 Alle andre tanker? 338 00:14:41,600 --> 00:14:44,590 Hvad er score beslag tre beslag? 339 00:14:44,590 --> 00:14:48,045 >> STUDENT: Det betyder egentlig ikke eksisterer, fordi du kun defineret som scoringer, 340 00:14:48,045 --> 00:14:49,370 beslag tre. 341 00:14:49,370 --> 00:14:51,400 >> JASON HIRSCHHORN: Så du siger det ikke rigtigt eksisterer. 342 00:14:51,400 --> 00:14:54,230 I nogle tilfælde, vi når at gøre med strygere, vi generelt vil sætte en null 343 00:14:54,230 --> 00:14:54,790 tegn i slutningen. 344 00:14:54,790 --> 00:14:56,100 Vi vil komme til at i et sekund. 345 00:14:56,100 --> 00:15:01,020 Men i dette tilfælde, er der er ingen tredje kasse her. 346 00:15:01,020 --> 00:15:06,390 Så den sidste kasse i enhver matrix er størrelse minus 1. 347 00:15:06,390 --> 00:15:11,310 Så hvis vi har en bred vifte af størrelse n den første kasse er på nul, den sidste er 348 00:15:11,310 --> 00:15:12,700 ved n minus 1. 349 00:15:12,700 --> 00:15:14,970 Og i dette tilfælde, betyder det ikke eksisterer. 350 00:15:14,970 --> 00:15:17,970 Der er noget her i hukommelse, men det er ikke vores. 351 00:15:17,970 --> 00:15:18,460 Vi ejer ikke det. 352 00:15:18,460 --> 00:15:19,570 Vi bad ikke om det. 353 00:15:19,570 --> 00:15:22,606 Så hvis vi forsøger at få adgang til det, som vi vil gøre i en smule, vi formentlig kommer til at 354 00:15:22,606 --> 00:15:24,970 komme i problemer. 355 00:15:24,970 --> 00:15:29,180 >> I dette tilfælde, jeg initialisering min array med tre variabler. 356 00:15:29,180 --> 00:15:36,195 Vi sætter en en i rubrik nul, en to i rubrik en, og en tre i boks to. 357 00:15:36,195 --> 00:15:39,280 Er der nogen har nogen spørgsmål om initialisering et array? 358 00:15:39,280 --> 00:15:44,540 359 00:15:44,540 --> 00:15:46,970 >> Så gik vi over dette blot nu. 360 00:15:46,970 --> 00:15:52,725 Scores, konsol tre, close beslag, der ikke eksisterer. 361 00:15:52,725 --> 00:15:58,130 Vi ved nul i datalogi, så vi begynder at tælle ved nul. 362 00:15:58,130 --> 00:16:01,860 Den sidste kasse til rådighed for os, er det det tredje felt, men det kaldes box 363 00:16:01,860 --> 00:16:03,110 nummer to. 364 00:16:03,110 --> 00:16:05,790 365 00:16:05,790 --> 00:16:09,710 >> Nede er dette et alternativ måde initialisering arrays. 366 00:16:09,710 --> 00:16:13,410 Så i stedet for at skabe array på én line, påfyldning den første boks, og derefter 367 00:16:13,410 --> 00:16:17,070 den anden boks, så den tredje boks, du kan gøre det hele på én linje. 368 00:16:17,070 --> 00:16:19,040 Så i denne linje. Begge arrays 369 00:16:19,040 --> 00:16:23,460 Dette skaber den samme nøjagtige array som hvad vi skabte lige her, men det 370 00:16:23,460 --> 00:16:24,710 bare gør det på én linje. 371 00:16:24,710 --> 00:16:29,740 372 00:16:29,740 --> 00:16:31,360 >> Nu har vi skabt vores array. 373 00:16:31,360 --> 00:16:34,100 Normalt når du opretter et array, du ønsker at gøre noget med det, uanset om 374 00:16:34,100 --> 00:16:38,430 der er fylde det eller få ting ud af det og printe dem ud på skærmen. 375 00:16:38,430 --> 00:16:42,270 I dette tilfælde vil vi gennem vores tabellen resultater, som vi initialiseret på 376 00:16:42,270 --> 00:16:44,740 den første linje op her i grå. 377 00:16:44,740 --> 00:16:49,600 Og så på den anden linje, begynder vi iteration gennem matrixen. 378 00:16:49,600 --> 00:16:52,640 Er der nogen har nogen spørgsmål om strukturen af ​​en for-løkke? 379 00:16:52,640 --> 00:16:55,250 380 00:16:55,250 --> 00:16:56,400 >> Så dette er for-løkken. 381 00:16:56,400 --> 00:16:59,530 Vi har vores indledende tilstand, og derefter vores endelige tilstand, og så har vi 382 00:16:59,530 --> 00:17:01,160 gentage, i, hver sløjfe. 383 00:17:01,160 --> 00:17:05,579 Og i de krøllede parenteser i dette for loop, hvad sker der hvis jeg skulle køre 384 00:17:05,579 --> 00:17:06,290 dette program? 385 00:17:06,290 --> 00:17:10,410 Kan nogen fortælle mig, hvad vi ville få? 386 00:17:10,410 --> 00:17:11,589 [? Matu? ?] 387 00:17:11,589 --> 00:17:13,819 >> Matu: Print alle de scores på hver linje. 388 00:17:13,819 --> 00:17:14,900 Det ville udskrive hver score på en separat linje. 389 00:17:14,900 --> 00:17:16,300 >> JASON HIRSCHHORN: Hvad der præcist ville det udskrive? 390 00:17:16,300 --> 00:17:19,790 >> STUDENT: Det ville udskrive én, så to, så tre. 391 00:17:19,790 --> 00:17:20,235 >> JASON HIRSCHHORN: Præcis. 392 00:17:20,235 --> 00:17:23,490 Det ville udskrive en, så to, så tre, hver på særskilte linier, fordi 393 00:17:23,490 --> 00:17:27,810 vi går gennem matrix, og du vil se, at andet printf 394 00:17:27,810 --> 00:17:29,275 opgørelse, scores Í. 395 00:17:29,275 --> 00:17:32,880 Så på den første runde gennem vores for loop, jeg er lig med nul, hvilket betyder, at vi 396 00:17:32,880 --> 00:17:34,640 få værdien ved score nul - 397 00:17:34,640 --> 00:17:36,900 som, hvis vi går tilbage til vores diagram er en - 398 00:17:36,900 --> 00:17:38,630 og udfylde - 399 00:17:38,630 --> 00:17:39,700 åh, det siger ca. 400 00:17:39,700 --> 00:17:41,680 Det burde være% d. 401 00:17:41,680 --> 00:17:43,970 Jeg vil fastsætte, at der i lidt når Jeg hånd, ud til jer. 402 00:17:43,970 --> 00:17:48,670 Men vi præsentere et heltal, så det bør være% d lige her, ikke% c. 403 00:17:48,670 --> 00:17:50,340 Hvad er% c til? 404 00:17:50,340 --> 00:17:50,790 >> STUDENT: Tegn. 405 00:17:50,790 --> 00:17:52,680 >> JASON HIRSCHHORN: Tegn, nøjagtigt. 406 00:17:52,680 --> 00:17:53,690 Hvad er den anden? 407 00:17:53,690 --> 00:17:56,260 Hvis du ikke ønsker at gøre% d for en heltal, hvad kan du ellers gøre? 408 00:17:56,260 --> 00:17:57,000 >> STUDENT: i. 409 00:17:57,000 --> 00:17:59,180 >> JASON HIRSCHHORN:% i, nøjagtigt. 410 00:17:59,180 --> 00:18:01,660 Så spørgsmål om iteration gennem array? 411 00:18:01,660 --> 00:18:05,500 412 00:18:05,500 --> 00:18:07,800 Så hvad sker der, hvis vi gør dette? 413 00:18:07,800 --> 00:18:10,290 Stedet for at gøre i er mindre end tre, vi i er mindre 414 00:18:10,290 --> 00:18:11,390 end eller lig med tre. 415 00:18:11,390 --> 00:18:13,420 Hvad sker der, når vi kører denne kode? 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: De kommer til at udskrive underlige ting på den fjerde linje. 419 00:18:22,030 --> 00:18:23,850 >> JASON HIRSCHHORN: Så du siger, det er kommer til at udskrive underlige ting på 420 00:18:23,850 --> 00:18:24,390 fjerde linje? 421 00:18:24,390 --> 00:18:25,750 Er der nogen har et svar på hendes spørgsmål? 422 00:18:25,750 --> 00:18:28,940 423 00:18:28,940 --> 00:18:33,160 Så oddsene er, at når vi kommer til - 424 00:18:33,160 --> 00:18:36,700 så på den fjerde runde gennem vores for loop, ligesom du troede, Annie, 425 00:18:36,700 --> 00:18:39,430 det vil være scoringer beslag tre, hvilket vi har allerede regnet ud, ikke 426 00:18:39,430 --> 00:18:41,990 findes, og vi vil forsøge og få adgang til at udskrive det 427 00:18:41,990 --> 00:18:43,350 ud, brug den anden måde. 428 00:18:43,350 --> 00:18:46,060 Så computeren vil formentlig blive vred på os. 429 00:18:46,060 --> 00:18:46,760 Du helt rigtige. 430 00:18:46,760 --> 00:18:48,830 >> Det kunne afslutte programmet helt. 431 00:18:48,830 --> 00:18:52,222 Det kan udskrive noget virkelig underligt. 432 00:18:52,222 --> 00:18:53,420 Du kan ikke sige med sikkerhed. 433 00:18:53,420 --> 00:18:56,210 Odds er det vil formentlig blive vred på dig og bare afslutte med det samme. 434 00:18:56,210 --> 00:19:00,100 >> Men dette er en almindelig fejl, du vil have hvor du bare ud ved en på 435 00:19:00,100 --> 00:19:05,110 enden, og det er en fejl, der vil plage dig hele din kodning. 436 00:19:05,110 --> 00:19:09,350 437 00:19:09,350 --> 00:19:14,150 En måde jeg kan lide at gøre, er bare på en whiteboard, gå igennem hver iteration 438 00:19:14,150 --> 00:19:18,190 af løkken på hånden eller på papir at se hvad der sker, og så 439 00:19:18,190 --> 00:19:20,440 generelt indser, oh vent, jeg skal ikke er gået til mindre end eller 440 00:19:20,440 --> 00:19:20,870 lig med tre. 441 00:19:20,870 --> 00:19:24,730 Jeg skulle have stoppet ved to, hvilket er hvad sker der hvis din tilstand er mindre 442 00:19:24,730 --> 00:19:26,206 end tre. 443 00:19:26,206 --> 00:19:29,120 Eventuelle spørgsmål indtil videre? 444 00:19:29,120 --> 00:19:31,010 Sød. 445 00:19:31,010 --> 00:19:33,360 >> Så du har alle dine computere åbne. 446 00:19:33,360 --> 00:19:36,760 Vi vil give dig 02:58 minutter at skrive et program, 447 00:19:36,760 --> 00:19:40,460 skaber et array med de hele tal én gennem fem og derefter udskrives hver 448 00:19:40,460 --> 00:19:41,720 heltal på en ny linje. 449 00:19:41,720 --> 00:19:44,330 450 00:19:44,330 --> 00:19:46,000 Og hvis du har spørgsmål, hæve din hånd. 451 00:19:46,000 --> 00:19:48,140 Jeg er glad for at komme forbi. 452 00:19:48,140 --> 00:19:50,630 Som jeg sagde, lad os tage tre minutter til at skrive dette. 453 00:19:50,630 --> 00:20:41,300 454 00:20:41,300 --> 00:20:45,110 Er alle OK, hvis jeg går til en nyt vindue og luk denne? 455 00:20:45,110 --> 00:22:13,420 456 00:22:13,420 --> 00:22:15,520 >> Jeg er ked af, hvis du ikke har haft en chance til slut, men vi vil gøre det 457 00:22:15,520 --> 00:22:17,310 sammen lige nu. 458 00:22:17,310 --> 00:22:23,640 Så op på skærmen, har jeg # include cs50.h, # include stdio.h. 459 00:22:23,640 --> 00:22:26,090 Kan nogen fortælle mig, hvad disse to linjer gøre? 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: De omfatter bibliotekerne at CS50 lavet og at Steve har 463 00:22:40,030 --> 00:22:44,210 gemt for dig at bruge til at gøre dit liv lettere. 464 00:22:44,210 --> 00:22:46,820 >> JASON HIRSCHHORN: Så du sagde, at de omfatte biblioteker, en, der CS50 465 00:22:46,820 --> 00:22:51,230 lavet, cs50.h, og en, der er bare standard, kommer med 466 00:22:51,230 --> 00:22:53,510 C pakken stdio.h. 467 00:22:53,510 --> 00:22:54,890 Hvad mener du medtage bibliotekerne, selvom? 468 00:22:54,890 --> 00:22:55,770 Kan du være lidt mere specifik? 469 00:22:55,770 --> 00:23:01,180 >> STUDENT: Det gør det, så du kan bruge bestemte kodeord at have en 470 00:23:01,180 --> 00:23:05,710 fungere ske uden at skulle gå og gøre funktionen c. selv. 471 00:23:05,710 --> 00:23:08,730 >> JASON HIRSCHHORN: Kan du give mig et eksempel? 472 00:23:08,730 --> 00:23:11,160 >> STUDENT: Ligesom printf er en du kan bruge. 473 00:23:11,160 --> 00:23:11,860 >> JASON HIRSCHHORN: printf. 474 00:23:11,860 --> 00:23:14,680 Så du sagde printf er en af ​​dem funktioner, hvor snarere end at skulle 475 00:23:14,680 --> 00:23:19,840 skriver printf på egen hånd, printf er medtaget faktisk i stdio.h, så du 476 00:23:19,840 --> 00:23:22,010 kan bare bruge det og påtage at det vil virke. 477 00:23:22,010 --> 00:23:28,270 I stdio.h, hvis du åbnet denne fil ville det omfatter hvor printf 478 00:23:28,270 --> 00:23:31,620 værker, alle af koden til printf? 479 00:23:31,620 --> 00:23:33,105 Hvorfor er du ryster på hovedet? 480 00:23:33,105 --> 00:23:35,710 >> STUDENT: Da header fil, blot omfatter funktionen erklæring. 481 00:23:35,710 --> 00:23:36,400 >> JASON HIRSCHHORN: Præcis højre. 482 00:23:36,400 --> 00:23:39,680 Den header fil, blot omfatter funktionen erklæring. 483 00:23:39,680 --> 00:23:42,950 Så dybest set, når du kompilere dette hit Make Count, som vi vil gøre i en 484 00:23:42,950 --> 00:23:48,070 sekund, compileren ved, at hvis du bruger printf, printf eksisterer. 485 00:23:48,070 --> 00:23:49,370 Det kommer til at være defineret et eller andet sted. 486 00:23:49,370 --> 00:23:51,200 Det er ikke et problem for dig at bruge det. 487 00:23:51,200 --> 00:23:55,490 Og så senere, vil den omfatte ettaller og nuller, der rent faktisk indeholder 488 00:23:55,490 --> 00:23:58,360 printf gennemførelse og flette dem med din kode. 489 00:23:58,360 --> 00:24:01,935 Hvordan kan du sørg for at det indeholder ettaller og nuller til, siger, få strengen? 490 00:24:01,935 --> 00:24:05,670 491 00:24:05,670 --> 00:24:07,210 >> STUDENT: Få streng er i cs50.h. 492 00:24:07,210 --> 00:24:07,830 >> JASON HIRSCHHORN: Right. 493 00:24:07,830 --> 00:24:11,110 Så det siger få strengen findes, funktionen erklæring. 494 00:24:11,110 --> 00:24:15,410 Men så ettaller og nuller, det binære fil, der faktisk indeholder 495 00:24:15,410 --> 00:24:17,370 implementering af get streng? 496 00:24:17,370 --> 00:24:19,310 Hvordan kan du sikre dig, at går med dit program? 497 00:24:19,310 --> 00:24:23,220 >> STUDENT: Pass linker i kommandolinjen argument. 498 00:24:23,220 --> 00:24:25,430 >> JASON HIRSCHHORN: Pass linker i kommandolinjen argument. 499 00:24:25,430 --> 00:24:26,700 Hvordan gør du det? 500 00:24:26,700 --> 00:24:29,730 >> STUDENT: Det er den-l linje i clang 501 00:24:29,730 --> 00:24:30,480 >> JASON HIRSCHHORN: Præcis højre. 502 00:24:30,480 --> 00:24:32,900 Du siger-l CS50, right? 503 00:24:32,900 --> 00:24:34,940 Det omfatter ettaller og nuller. 504 00:24:34,940 --> 00:24:36,460 >> STUDENT: Men Make gør det for dig, right? 505 00:24:36,460 --> 00:24:37,010 >> JASON HIRSCHHORN: Præcis. 506 00:24:37,010 --> 00:24:40,390 Gør gør det for dig, men til sidst, vil du ikke have Make eller 507 00:24:40,390 --> 00:24:43,220 du bliver nødt til at gøre en gøre på egen hånd, så det er en 508 00:24:43,220 --> 00:24:43,940 god ting at huske. 509 00:24:43,940 --> 00:24:47,350 Hvis du skulle bruge en af ​​disse andre biblioteker, ikke kun du har 510 00:24:47,350 --> 00:24:49,490 at skrive # include og derefter biblioteket. 511 00:24:49,490 --> 00:24:51,420 Du skal også til at linke det i. 512 00:24:51,420 --> 00:24:54,480 Og de to ting er forskellige. -L CS50 er anderledes 513 00:24:54,480 --> 00:24:59,260 end # include cs50.h. 514 00:24:59,260 --> 00:25:02,870 >> Så har vi int main void krøllede parenteser, og nu vi kommer til at kode 515 00:25:02,870 --> 00:25:03,590 inderste. 516 00:25:03,590 --> 00:25:07,090 Den første linje jeg har her er en kommentar der siger, skabe en række 517 00:25:07,090 --> 00:25:08,820 med int'er en gennem fem. 518 00:25:08,820 --> 00:25:12,600 Hvad er et godt ord til at beskrive, hvad jeg har lige nu på skærmen, bare 519 00:25:12,600 --> 00:25:14,170 kommentarer inde main? 520 00:25:14,170 --> 00:25:15,722 Hvad kalder vi det? 521 00:25:15,722 --> 00:25:16,820 >> STUDENT: pseudokode. 522 00:25:16,820 --> 00:25:17,840 >> JASON HIRSCHHORN: pseudokode. 523 00:25:17,840 --> 00:25:18,420 Tak, Jeffrey. 524 00:25:18,420 --> 00:25:19,540 Det er helt rigtigt. 525 00:25:19,540 --> 00:25:20,005 Pseudokoden. 526 00:25:20,005 --> 00:25:22,854 Har du fyre set pseudokoden før? 527 00:25:22,854 --> 00:25:28,340 Løft din hånd, hvis du har brugt pseudokode før problemet indstillet en sådan. 528 00:25:28,340 --> 00:25:29,400 Omkring halvdelen af ​​dig. 529 00:25:29,400 --> 00:25:32,700 >> Jeg vil stærkt anbefale at bruge pseudokode at nedbryde problemer i 530 00:25:32,700 --> 00:25:35,210 mindre, mere let at bide stykker. 531 00:25:35,210 --> 00:25:38,630 Også, hvis du gør det pseudokode, du har dine kommentarer, der allerede i vid udstrækning 532 00:25:38,630 --> 00:25:40,760 indbygget, så du ikke behøver at gå tilbage og prøve at finde ud 533 00:25:40,760 --> 00:25:42,450 hvad du lavede. 534 00:25:42,450 --> 00:25:44,730 Så kan nogen give mig denne første linie at skabe et array med int'er én 535 00:25:44,730 --> 00:25:45,980 gennem fem? 536 00:25:45,980 --> 00:25:48,700 537 00:25:48,700 --> 00:25:49,130 Du? 538 00:25:49,130 --> 00:25:53,350 >> STUDENT: Int og derefter kan du ringe uanset nummer og derefter firkantet 539 00:25:53,350 --> 00:25:54,830 beslag fem. 540 00:25:54,830 --> 00:25:57,820 >> JASON HIRSCHHORN: So int tal firkantede beslag fem. 541 00:25:57,820 --> 00:25:59,160 >> STUDENT: Lig og derefter krøllede parenteser. 542 00:25:59,160 --> 00:26:00,830 >> JASON HIRSCHHORN: Lig, krøllede parenteser. 543 00:26:00,830 --> 00:26:01,830 >> STUDENT: En, to, tre, fire. 544 00:26:01,830 --> 00:26:05,566 >> JASON HIRSCHHORN: En, to, tre, fire, fem. 545 00:26:05,566 --> 00:26:07,390 >> STUDENT: Og så krøllede parenteser og derefter semikolon. 546 00:26:07,390 --> 00:26:09,240 >> JASON HIRSCHHORN: Og krøllet seler og semikolon. 547 00:26:09,240 --> 00:26:10,330 Excellent. 548 00:26:10,330 --> 00:26:12,210 Print ud hver int på en ny linje. 549 00:26:12,210 --> 00:26:17,140 Kan nogen anden giver mig, at koden, please? 550 00:26:17,140 --> 00:26:17,530 [? Matu? ?] 551 00:26:17,530 --> 00:26:18,560 Gå fremad. 552 00:26:18,560 --> 00:26:20,440 >> STUDENT: Til ( 553 00:26:20,440 --> 00:26:21,750 >> JASON HIRSCHHORN: Til ( 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: Semikolon i mindre end fem. 557 00:26:28,190 --> 00:26:31,680 >> JASON HIRSCHHORN: Semikolon, Jeg mindre end 5. 558 00:26:31,680 --> 00:26:33,600 >> STUDENT: Semikolon, i + +. 559 00:26:33,600 --> 00:26:35,140 >> JASON HIRSCHHORN: Semikolon, i + +. 560 00:26:35,140 --> 00:26:37,720 >> STUDENT: Lukket parenteser åbn derefter bøjlen. 561 00:26:37,720 --> 00:26:39,410 >> JASON HIRSCHHORN: Lukket parenteser og to seler. 562 00:26:39,410 --> 00:26:40,510 Inde i seler? 563 00:26:40,510 --> 00:26:47,640 >> STUDENT: Og så printf "% d / n" 564 00:26:47,640 --> 00:26:48,695 >> JASON HIRSCHHORN: Beklager, hold fast. 565 00:26:48,695 --> 00:26:52,330 Printf "% d / n, lukket citat. 566 00:26:52,330 --> 00:26:55,980 >> STUDENT: Og så lukket tilbud, komma, count, konsol i. 567 00:26:55,980 --> 00:26:58,350 >> JASON HIRSCHHORN: Komma, count, beslag i. 568 00:26:58,350 --> 00:26:59,970 >> STUDENT: Beklager, tal beslag jeg. 569 00:26:59,970 --> 00:27:01,416 >> JASON HIRSCHHORN: Tal, konsol i. 570 00:27:01,416 --> 00:27:03,200 >> STUDENT: Undskyld. 571 00:27:03,200 --> 00:27:04,750 Og så lukkede parenteser semikolon. 572 00:27:04,750 --> 00:27:07,156 >> JASON HIRSCHHORN: Lukket parenteser, semikolon. 573 00:27:07,156 --> 00:27:08,680 Jeg har tænkt mig at redde denne. 574 00:27:08,680 --> 00:27:12,670 Vi kommer til at lave count. 575 00:27:12,670 --> 00:27:14,742 Og hvordan kører jeg tæller? 576 00:27:14,742 --> 00:27:16,470 >> STUDENT: Omvendt skråstreg. 577 00:27:16,470 --> 00:27:17,180 >> STUDENT: Dot skråstreg - 578 00:27:17,180 --> 00:27:18,050 >> JASON HIRSCHHORN:. / Tæller, nøjagtigt. 579 00:27:18,050 --> 00:27:19,380 Tak. . / Tæller. 580 00:27:19,380 --> 00:27:21,060 En, to, tre, fire, fem på nye strækninger. 581 00:27:21,060 --> 00:27:22,110 Ligner det virkede. 582 00:27:22,110 --> 00:27:23,200 Ja, Noah? 583 00:27:23,200 --> 00:27:26,660 >> STUDENT: Du kan også gøre mindre end eller svarende til fire, som jeg er mindre end 584 00:27:26,660 --> 00:27:27,630 eller lig med fire? 585 00:27:27,630 --> 00:27:31,190 Er der nogen fordel ved at gøre mindre end fem, eller bare en anden måde 586 00:27:31,190 --> 00:27:31,610 skrive det? 587 00:27:31,610 --> 00:27:35,280 >> JASON HIRSCHHORN: Så spørgsmålet er dig kunne have gjort i er mindre end eller 588 00:27:35,280 --> 00:27:37,450 lig med fire i stedet for Jeg er mindre end fem. 589 00:27:37,450 --> 00:27:38,935 Ville der har arbejdet det samme? 590 00:27:38,935 --> 00:27:39,760 >> STUDENT: Det burde det. 591 00:27:39,760 --> 00:27:39,860 >> JASON HIRSCHHORN: Ja. 592 00:27:39,860 --> 00:27:41,660 Det helt ville have arbejde det samme. 593 00:27:41,660 --> 00:27:44,780 Stilmæssigt er det generelt mindre end, og du vil se i en anden, når 594 00:27:44,780 --> 00:27:48,160 vi strenge, kan du bruge noget kaldet strlen, som du har set 595 00:27:48,160 --> 00:27:50,380 før, at få længden af strengen. 596 00:27:50,380 --> 00:27:54,090 Og du kan ikke gøre mindre, end eller lig strlen. 597 00:27:54,090 --> 00:27:56,500 Du kan gøre mindre end eller lig strlen minus én. 598 00:27:56,500 --> 00:27:59,260 Så det er bare pænere at gøre mindre end strlen. 599 00:27:59,260 --> 00:28:00,240 Ja? 600 00:28:00,240 --> 00:28:03,270 >> STUDENT: Og i selve quizzer, gør vi er nødt til at give kommentarer til vores 601 00:28:03,270 --> 00:28:04,620 kode så godt? 602 00:28:04,620 --> 00:28:06,130 >> JASON HIRSCHHORN: Spørgsmålet blev i quizzer, gør du 603 00:28:06,130 --> 00:28:07,760 nødt til at give kommentarer? 604 00:28:07,760 --> 00:28:12,050 Så vi vil tale mere om quizzer, når de kommer op, men generelt et godt 605 00:28:12,050 --> 00:28:14,530 tommelfingerregel er, når du er skrive kode, fremsætte bemærkninger. 606 00:28:14,530 --> 00:28:18,130 Hvis du får koden forkert, men kommentere højre, kan du få nogle 607 00:28:18,130 --> 00:28:22,280 kredit både fra mig, hvis jeg var sortering dig på et problem set eller på en quiz. 608 00:28:22,280 --> 00:28:24,660 Så kommentarer er altid god til at levere. 609 00:28:24,660 --> 00:28:25,040 Sød. 610 00:28:25,040 --> 00:28:25,460 Tæl. 611 00:28:25,460 --> 00:28:26,720 Fremragende stykke arbejde. 612 00:28:26,720 --> 00:28:28,570 Lad os komme videre. 613 00:28:28,570 --> 00:28:29,920 >> Strings. 614 00:28:29,920 --> 00:28:30,630 Strings. 615 00:28:30,630 --> 00:28:31,730 Vi har set det før i foredraget. 616 00:28:31,730 --> 00:28:33,390 Dette blæste mit sind, når jeg først fundet ud af det. 617 00:28:33,390 --> 00:28:37,240 Det sandsynligvis ikke blæse nogens imod her, men det er OK. 618 00:28:37,240 --> 00:28:41,260 >> Strenge er arrays af tegn og de ender med, som du sagde tidligere, 619 00:28:41,260 --> 00:28:45,710 null terminatoren, som er dette / 0 karakter. 620 00:28:45,710 --> 00:28:47,740 Hvis vi kommer til at tegne en streng på bord, vil vi trække det herovre. 621 00:28:47,740 --> 00:28:53,080 622 00:28:53,080 --> 00:28:56,420 Så hvor lang tid er denne streng? 623 00:28:56,420 --> 00:28:56,680 Undskyld. 624 00:28:56,680 --> 00:28:57,660 Hvor længe er denne streng? 625 00:28:57,660 --> 00:28:57,910 >> STUDENT: [uhørlig]. 626 00:28:57,910 --> 00:28:59,010 >> JASON HIRSCHHORN: Four? 627 00:28:59,010 --> 00:28:59,880 Hvorfor er det fire? 628 00:28:59,880 --> 00:29:02,240 >> STUDENT: Da femte stedet er for null-tegn. 629 00:29:02,240 --> 00:29:04,070 >> JASON HIRSCHHORN: Så den femte stedet er for null-tegn. 630 00:29:04,070 --> 00:29:07,130 Så hvis jeg skulle køre strlen om dette, ville det give mig fire. 631 00:29:07,130 --> 00:29:07,850 Ret. 632 00:29:07,850 --> 00:29:11,640 Og array, selv om, hvis jeg skulle initialisere dette array, hvor mange pladser 633 00:29:11,640 --> 00:29:13,444 ville jeg nødt til at bede om? 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 Jeg ville have til at bede om fem, men jeg kan kun sætte fire tegn på her 637 00:29:17,650 --> 00:29:19,750 fordi jeg har brug for at sætte denne null terminator for enden. 638 00:29:19,750 --> 00:29:25,260 Så vi kommer til at skrive i "ohai", og sætte null terminator i slutningen. 639 00:29:25,260 --> 00:29:31,820 640 00:29:31,820 --> 00:29:34,940 Vi sige dette er streng s lig dette. 641 00:29:34,940 --> 00:29:36,610 Hvad er s beslag nul? 642 00:29:36,610 --> 00:29:40,210 643 00:29:40,210 --> 00:29:41,550 s beslag 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, nøjagtigt. s beslag en? 646 00:29:45,400 --> 00:29:48,200 s beslag fem? 647 00:29:48,200 --> 00:29:52,670 648 00:29:52,670 --> 00:29:53,955 s beslag fem? 649 00:29:53,955 --> 00:29:54,740 >> STUDENT: Findes ikke. 650 00:29:54,740 --> 00:29:55,040 >> JASON HIRSCHHORN: Findes ikke. 651 00:29:55,040 --> 00:29:57,050 Helt rigtigt. 652 00:29:57,050 --> 00:29:57,940 Cool. 653 00:29:57,940 --> 00:30:03,120 Eventuelle spørgsmål om forståelse strenge som arrays af tegn? 654 00:30:03,120 --> 00:30:03,870 OK, da. 655 00:30:03,870 --> 00:30:05,440 Endnu program for jer. 656 00:30:05,440 --> 00:30:09,190 Skriv et program, der beder brugeren efter en streng og derefter udskriver hver 657 00:30:09,190 --> 00:30:11,880 tegn på en ny linje. 658 00:30:11,880 --> 00:30:14,160 Så lad os tage tre minutter til at skrive dette program, og så vil vi kode det 659 00:30:14,160 --> 00:30:15,410 som en gruppe. 660 00:30:15,410 --> 00:31:04,730 661 00:31:04,730 --> 00:31:04,830 >> Undskyld. 662 00:31:04,830 --> 00:31:06,470 Vidste du nødt til at se det? 663 00:31:06,470 --> 00:31:07,410 >> STUDENT: Nej 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 Lad os tage et minut at kode dette, eller i det mindste komme i gang med det. 667 00:31:40,605 --> 00:32:13,900 668 00:32:13,900 --> 00:32:17,020 >> Så du kan holde orden, men jeg har tænkt mig at begynde at gå igennem det. 669 00:32:17,020 --> 00:32:22,560 Så ligesom før, jeg har på skærmen # Include cs50.h, # include stdio.h. 670 00:32:22,560 --> 00:32:24,020 int main ugyldig. 671 00:32:24,020 --> 00:32:28,880 Inde Mains krøllede parenteser, jeg har to kommentarer, pseudokode. 672 00:32:28,880 --> 00:32:30,980 Én er bede om en streng fra brugeren. 673 00:32:30,980 --> 00:32:33,900 Den anden udskrive hver tegn på en ny linje. 674 00:32:33,900 --> 00:32:39,780 Så Anna, kan du give mig spørge efter en streng fra brugeren? 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: "Giv mig en streng. 681 00:32:49,300 --> 00:32:52,380 >> JASON HIRSCHHORN: "give mig en str - ups - 682 00:32:52,380 --> 00:32:53,710 streng. 683 00:32:53,710 --> 00:32:59,980 >> STUDENT: / n ") semikolon. 684 00:32:59,980 --> 00:33:02,300 >> JASON HIRSCHHORN: Afslut strengen, lukkede parenteser, semikolon. 685 00:33:02,300 --> 00:33:03,550 >> STUDENT: Ja. 686 00:33:03,550 --> 00:33:09,080 Og så næste linje, snor s = få strengen. 687 00:33:09,080 --> 00:33:11,240 >> JASON HIRSCHHORN: String s = få strengen. 688 00:33:11,240 --> 00:33:11,665 >> STUDENT: Ja. 689 00:33:11,665 --> 00:33:13,080 Og så () 690 00:33:13,080 --> 00:33:14,365 >> JASON HIRSCHHORN: () 691 00:33:14,365 --> 00:33:14,720 >> STUDENT: Semikolon. 692 00:33:14,720 --> 00:33:15,540 >> JASON HIRSCHHORN: semikolon. 693 00:33:15,540 --> 00:33:16,890 Fantastic. 694 00:33:16,890 --> 00:33:19,000 Så jeg har tænkt mig at få en snor og Jeg har tænkt mig at gemme det i hvad? 695 00:33:19,000 --> 00:33:21,830 Hvad er variabel kaldet som du har oprettet? 696 00:33:21,830 --> 00:33:23,290 >> STUDENT: String s. 697 00:33:23,290 --> 00:33:24,580 >> JASON HIRSCHHORN: Den variable er kaldet S. 698 00:33:24,580 --> 00:33:25,700 Det er typen streng. 699 00:33:25,700 --> 00:33:27,200 Præcis. 700 00:33:27,200 --> 00:33:30,080 Næste ting, vi ønsker til, er udskrive hvert tegn på en ny linje. 701 00:33:30,080 --> 00:33:31,710 Hvem kan give mig den kode? 702 00:33:31,710 --> 00:33:32,110 [Uhørligt]? 703 00:33:32,110 --> 00:33:33,000 Kan du give mig det? 704 00:33:33,000 --> 00:33:33,580 >> STUDENT: Sure. 705 00:33:33,580 --> 00:33:35,420 >> JASON HIRSCHHORN: Lad os gøre det. 706 00:33:35,420 --> 00:33:36,080 Og ked af det. 707 00:33:36,080 --> 00:33:38,896 Jeg kan ikke lide at gentage, hvad du siger fordi du får det rigtige, men jeg 708 00:33:38,896 --> 00:33:42,100 nødt til at gentage det, så når de transskribere dette, kan de få alle 709 00:33:42,100 --> 00:33:44,870 teksten ud på transskriptioner. 710 00:33:44,870 --> 00:33:47,180 Så du kan bare holde taler. 711 00:33:47,180 --> 00:33:48,590 Desværre har jeg at sige det over dig. 712 00:33:48,590 --> 00:33:49,510 Undskyld, men - 713 00:33:49,510 --> 00:33:50,610 >> STUDENT: Det er fint. 714 00:33:50,610 --> 00:33:53,010 For int i = 0 715 00:33:53,010 --> 00:33:54,170 >> JASON HIRSCHHORN: For int i = 0 716 00:33:54,170 --> 00:33:56,740 >> STUDENT: I ​​mindre end - 717 00:33:56,740 --> 00:33:58,206 >> JASON HIRSCHHORN: semikolon. 718 00:33:58,206 --> 00:34:00,650 >> STUDENT: Før dette, kan vi sætte en variabel, så du får int navn længde? 719 00:34:00,650 --> 00:34:01,870 >> JASON HIRSCHHORN: Åh, det gør du ikke ønsker at sætte semikolon? 720 00:34:01,870 --> 00:34:02,310 OK. 721 00:34:02,310 --> 00:34:05,120 Så hvad vil du gøre efter nul? 722 00:34:05,120 --> 00:34:09,340 >> STUDENT: Jeg ønsker at få streng længde s og 723 00:34:09,340 --> 00:34:10,410 indstille det til en variabel? 724 00:34:10,410 --> 00:34:11,760 >> JASON HIRSCHHORN: OK, så hvordan gør jeg det? 725 00:34:11,760 --> 00:34:17,636 >> STUDENT: Så du gør int længde = 726 00:34:17,636 --> 00:34:20,010 >> JASON HIRSCHHORN: Int længde = 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: Af sek. 730 00:34:25,380 --> 00:34:25,790 Parentes. 731 00:34:25,790 --> 00:34:27,920 >> JASON HIRSCHHORN: (r). 732 00:34:27,920 --> 00:34:33,040 >> STUDENT: Og så tror jeg du er nødt til at sætte et semikolon mellem de to ints. 733 00:34:33,040 --> 00:34:34,590 >> JASON HIRSCHHORN: Et semikolon efter nul? 734 00:34:34,590 --> 00:34:35,260 >> STUDENT: Ja. 735 00:34:35,260 --> 00:34:40,670 Derefter sætte et semikolon efter det, og du siger, jeg mindre end længden. 736 00:34:40,670 --> 00:34:43,250 Jeg mindre end længden, og som er variabel. 737 00:34:43,250 --> 00:34:44,590 >> STUDENT: Og så semikolon. 738 00:34:44,590 --> 00:34:45,790 >> JASON HIRSCHHORN: semikolon. 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 Der er vores for-løkken. 742 00:34:47,530 --> 00:34:48,860 OK, inde i løkken. 743 00:34:48,860 --> 00:34:51,670 >> STUDENT: Og derefter gøre printf. 744 00:34:51,670 --> 00:34:53,340 >> JASON HIRSCHHORN: printf. 745 00:34:53,340 --> 00:34:53,889 >> STUDENT: Beslag. 746 00:34:53,889 --> 00:34:55,130 >> JASON HIRSCHHORN: parenteser citater. 747 00:34:55,130 --> 00:34:59,930 >> STUDENT: Parenteser, citater,% 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: Lukket citater. 752 00:35:04,410 --> 00:35:05,270 >> JASON HIRSCHHORN: Lukket citater. 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: Bracket jeg. 758 00:35:08,690 --> 00:35:10,230 >> JASON HIRSCHHORN: Bracket I. 759 00:35:10,230 --> 00:35:11,520 >> STUDENT: og lukkes parenteser. 760 00:35:11,520 --> 00:35:12,540 >> JASON HIRSCHHORN: Lukket parenteser. 761 00:35:12,540 --> 00:35:13,660 >> STUDENT: Og så semikolon. 762 00:35:13,660 --> 00:35:13,770 >> JASON HIRSCHHORN: semikolon. 763 00:35:13,770 --> 00:35:14,380 Fantastic. 764 00:35:14,380 --> 00:35:16,890 Så lad os gemme denne. 765 00:35:16,890 --> 00:35:19,770 Foretag stave. 766 00:35:19,770 --> 00:35:20,040 Oh boy. 767 00:35:20,040 --> 00:35:22,275 Jeg har fået et par fejl. 768 00:35:22,275 --> 00:35:33,120 Første fejl på linie 11, det siger, forventede udtryk, og det er at give 769 00:35:33,120 --> 00:35:36,910 mig en fejl, at den anden int, der er fejlen. 770 00:35:36,910 --> 00:35:38,430 Der nogle fejl rundt der. 771 00:35:38,430 --> 00:35:41,060 Er der nogen vide, hvad fejl, der er? 772 00:35:41,060 --> 00:35:41,640 Kurt? 773 00:35:41,640 --> 00:35:44,108 >> STUDENT: Jeg tror det er meningen at være et komma og ikke et semikolon. 774 00:35:44,108 --> 00:35:46,010 >> JASON HIRSCHHORN: OK, et komma i stedet for et semikolon. 775 00:35:46,010 --> 00:35:47,340 Så, er, at alt, hvad vi har brug for at løse? 776 00:35:47,340 --> 00:35:47,655 >> STUDENT: Nej 777 00:35:47,655 --> 00:35:48,930 >> JASON HIRSCHHORN: Hvad andet har vi brug for at fastsætte? 778 00:35:48,930 --> 00:35:50,920 >> STUDENT: Vi er nødt til at medtage string.h. 779 00:35:50,920 --> 00:35:51,680 >> JASON HIRSCHHORN: Medtag string.h. 780 00:35:51,680 --> 00:35:53,730 Hvor har jeg brug for at optage det? 781 00:35:53,730 --> 00:35:57,085 >> STUDENT: Samme sted du herunder de andre ting, højre 782 00:35:57,085 --> 00:35:59,560 efter bl.a. stdio.h. 783 00:35:59,560 --> 00:36:01,610 >> JASON HIRSCHHORN: Lad os se, om det løber det første fordi generelt, jeg kan lide 784 00:36:01,610 --> 00:36:06,360 at fastsætte en ting først, og derefter køre det, og derefter se de fejl, vi får. 785 00:36:06,360 --> 00:36:11,620 Så vi kommer til at rydde terminalen med styring n, lad os gør magi. 786 00:36:11,620 --> 00:36:15,190 787 00:36:15,190 --> 00:36:18,770 Så en anden fejl på linie 11. 788 00:36:18,770 --> 00:36:20,540 Forventet semikolon. 789 00:36:20,540 --> 00:36:22,640 Og jeg er stadig få fejl på denne linje. 790 00:36:22,640 --> 00:36:25,270 Så det har ikke givet mig en fejl der siger det ikke forstår, hvad strlen er, 791 00:36:25,270 --> 00:36:28,980 men det giver mig fejl om dette linje, så hvad der ellers er der galt? 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: Har du nødt til at fjerne den anden int erklæring? 795 00:36:32,570 --> 00:36:34,990 >> JASON HIRSCHHORN: Fjern den anden int. 796 00:36:34,990 --> 00:36:35,710 Lad os prøve dette. 797 00:36:35,710 --> 00:36:37,600 Nu rydde terminalen. 798 00:36:37,600 --> 00:36:40,130 Foretag stave. 799 00:36:40,130 --> 00:36:40,490 Fejl. 800 00:36:40,490 --> 00:36:42,890 Implicit erklære bibliotek Funktionen strlen. 801 00:36:42,890 --> 00:36:44,270 Så nu er vi ser denne fejl. 802 00:36:44,270 --> 00:36:45,760 Hvad skal vi nødt til at inkludere? 803 00:36:45,760 --> 00:36:46,660 >> STUDENT: string.h. 804 00:36:46,660 --> 00:36:51,880 >> JASON HIRSCHHORN: Medtag string.h, Vi vil gøre # include string.h øverst 805 00:36:51,880 --> 00:36:52,920 af skærmen. 806 00:36:52,920 --> 00:36:55,450 Lad os gemme, gør stave. 807 00:36:55,450 --> 00:36:56,970 Nu kompileret. 808 00:36:56,970 --> 00:37:01,970 Så igen de ting, vi havde brug for Husk linje 12 i vores til løkken, når 809 00:37:01,970 --> 00:37:08,010 vi sætte den op, int i = 0, længde = strlen (r). 810 00:37:08,010 --> 00:37:09,350 >> Dette er en fantastisk strategi. 811 00:37:09,350 --> 00:37:12,590 Stilen i dette er stor, Udformningen af ​​dette er stor. 812 00:37:12,590 --> 00:37:15,620 Vi kan gå ind i disse grunde senere, men på denne måde behøver du kun at ringe 813 00:37:15,620 --> 00:37:19,040 strlen gang i stedet for hver eneste gang du kører gennem løkken. 814 00:37:19,040 --> 00:37:22,255 Men du nødt til at bruge et komma der og du behøver ikke int igen. 815 00:37:22,255 --> 00:37:24,180 Hvis du erklære både dem variabler samlet, du 816 00:37:24,180 --> 00:37:26,850 behøver ikke int igen. 817 00:37:26,850 --> 00:37:29,820 Og så hvis du vil bruge strlen, der er et andet bibliotek 818 00:37:29,820 --> 00:37:33,560 funktionen ikke inkluderet i stdio.h eller cs50.h, gør 819 00:37:33,560 --> 00:37:35,310 at du medtager string.h. 820 00:37:35,310 --> 00:37:35,900 Kurt? 821 00:37:35,900 --> 00:37:39,085 >> STUDENT: Så hvis du ikke behøver at sige, hvilken type længde er, betyder det 822 00:37:39,085 --> 00:37:40,290 mener det skal være en int? 823 00:37:40,290 --> 00:37:41,930 Du kunne ikke have to forskellige typer der? 824 00:37:41,930 --> 00:37:43,290 >> JASON HIRSCHHORN: Så du kunne have to forskellige typer. 825 00:37:43,290 --> 00:37:45,730 Længde er en int her, selv om. 826 00:37:45,730 --> 00:37:48,590 Længde er en int, fordi det er komma og derefter det samme. 827 00:37:48,590 --> 00:37:50,460 >> STUDENT: Så det forudsætter, at det går at være den samme som den første? 828 00:37:50,460 --> 00:37:52,423 >> JASON HIRSCHHORN: Præcis. 829 00:37:52,423 --> 00:37:54,970 Vi kommer ikke til at gøre det nu, men du kan omfatte to variabler om 830 00:37:54,970 --> 00:37:57,080 samme linje ved hjælp af en datatype. 831 00:37:57,080 --> 00:38:01,415 Så int x, ville y skabe to variabler. 832 00:38:01,415 --> 00:38:05,830 833 00:38:05,830 --> 00:38:10,770 Så int x, y, hvis vi gør det, det giver mig en ubrugt variabel x og y, fordi 834 00:38:10,770 --> 00:38:12,020 vi ikke bruge dem. 835 00:38:12,020 --> 00:38:17,950 836 00:38:17,950 --> 00:38:21,650 Så sætte tomrum før, er bare en fancy trick, hvis du ikke bruger 837 00:38:21,650 --> 00:38:22,810 noget, at bruge det. 838 00:38:22,810 --> 00:38:26,300 Men som du kan se, jeg skaber x og y på samme linie med et komma. 839 00:38:26,300 --> 00:38:28,450 Det er at skabe to heltal lige der. 840 00:38:28,450 --> 00:38:31,560 Så ja, helt muligt at skabe to ting på samme linje 841 00:38:31,560 --> 00:38:33,720 adskilt af et komma. 842 00:38:33,720 --> 00:38:35,470 Lad os slippe af dem, selv om. 843 00:38:35,470 --> 00:38:36,370 >> Så der er magi. 844 00:38:36,370 --> 00:38:39,200 Tak fyrene for kodning det for os. 845 00:38:39,200 --> 00:38:43,040 Lad os gøre det en gang mere, køre den. 846 00:38:43,040 --> 00:38:44,580 Giv mig en streng. 847 00:38:44,580 --> 00:38:45,580 [Uhørlig] du gjorde det meste af det. 848 00:38:45,580 --> 00:38:47,910 Hvad er strengen? 849 00:38:47,910 --> 00:38:48,250 >> STUDENT: Hello. 850 00:38:48,250 --> 00:38:50,110 >> JASON HIRSCHHORN: Hello. 851 00:38:50,110 --> 00:38:52,810 H-E-L-L-O, hver karakter på én linie. 852 00:38:52,810 --> 00:38:53,700 Ser godt ud. 853 00:38:53,700 --> 00:38:54,750 Lad os køre den igen. 854 00:38:54,750 --> 00:38:56,050 Altid vil kontrollere for hjørne sager. 855 00:38:56,050 --> 00:38:57,750 Hvad er en god hjørne tilfælde at kontrollere? 856 00:38:57,750 --> 00:39:00,250 857 00:39:00,250 --> 00:39:00,890 >> STUDENT: En række? 858 00:39:00,890 --> 00:39:02,240 >> JASON HIRSCHHORN: En række. 859 00:39:02,240 --> 00:39:06,580 Så jeg vil sætte i 1. og den udskriver 1.. 860 00:39:06,580 --> 00:39:08,970 Det er ikke beder om breve, så det ser ud som numre arbejde. 861 00:39:08,970 --> 00:39:09,890 Godt hjørne tilfælde at kontrollere. 862 00:39:09,890 --> 00:39:11,740 Hvad er en anden god hjørne tilfælde til at kontrollere? 863 00:39:11,740 --> 00:39:12,420 >> STUDENT: En tom streng. 864 00:39:12,420 --> 00:39:12,910 >> JASON HIRSCHHORN: Hm? 865 00:39:12,910 --> 00:39:13,880 >> STUDENT: Ligesom en tom streng. 866 00:39:13,880 --> 00:39:14,400 >> JASON HIRSCHHORN: Tom streng. 867 00:39:14,400 --> 00:39:16,730 Så lad os ikke sætte i noget. 868 00:39:16,730 --> 00:39:18,660 Og hvad bliver udskrevet? 869 00:39:18,660 --> 00:39:19,090 >> STUDENT: Ingenting. 870 00:39:19,090 --> 00:39:19,870 >> JASON HIRSCHHORN: Nothing. 871 00:39:19,870 --> 00:39:20,555 Synes ligesom det virker. 872 00:39:20,555 --> 00:39:23,790 Du kan prøve flere hjørne tilfælde, men generelt tal, en anden data 873 00:39:23,790 --> 00:39:26,160 store at prøve, samt er intet. 874 00:39:26,160 --> 00:39:29,180 Intet, nul, negativer er altid store ting at prøve og ting, du 875 00:39:29,180 --> 00:39:33,140 bør test, tingene sikkert vi vil teste for og Check 50 vil teste for. 876 00:39:33,140 --> 00:39:34,720 Eventuelle spørgsmål om spell.c? 877 00:39:34,720 --> 00:39:37,752 878 00:39:37,752 --> 00:39:39,310 >> OK, lad os hovedet tilbage. 879 00:39:39,310 --> 00:39:42,420 Jeg har endnu et program for jer at skrive. 880 00:39:42,420 --> 00:39:44,700 Det hedder students.c. 881 00:39:44,700 --> 00:39:49,020 Dette er et program, der beder brugeren om fem navne, så tilfældigt vælger 882 00:39:49,020 --> 00:39:51,600 og udskriver et af navnene. 883 00:39:51,600 --> 00:39:54,840 Dette program er en lille smule mere involveret end de sidste to skrev vi, 884 00:39:54,840 --> 00:39:58,080 så hvorfor ikke vi tager fem minutter at kode det individuelt, og så vil vi 885 00:39:58,080 --> 00:40:00,130 kode det som en gruppe. 886 00:40:00,130 --> 00:40:03,795 >> Dette program også inddrage nogle ting du måske ikke har set før, så hvis 887 00:40:03,795 --> 00:40:06,390 du har et spørgsmål om, hvordan man gør Jeg gør det, hæve din hånd. 888 00:40:06,390 --> 00:40:08,530 Jeg kommer over og pege dig i den rigtige retning. 889 00:40:08,530 --> 00:40:10,820 Men vi gør det også, fordi det vil være en god måde at introducere nogle 890 00:40:10,820 --> 00:40:12,070 emner, der er tricky. 891 00:40:12,070 --> 00:44:14,600 892 00:44:14,600 --> 00:44:15,560 >> Så det virker, right? 893 00:44:15,560 --> 00:44:17,580 >> STUDENT: Ja. 894 00:44:17,580 --> 00:44:19,180 >> JASON HIRSCHHORN: Når du tænder på en Problemet sæt, er der mange måder at gøre 895 00:44:19,180 --> 00:44:20,790 det, men nogle er mere elegant end andre. 896 00:44:20,790 --> 00:44:29,000 897 00:44:29,000 --> 00:44:31,110 Lad os dykke i. 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 tomrum, krøllede parenteser. 901 00:44:37,240 --> 00:44:39,430 Inde i krøllede parenteser, Jeg har to bemærkninger. 902 00:44:39,430 --> 00:44:41,500 Den første er, spørger bruger fem navne. 903 00:44:41,500 --> 00:44:46,580 Den anden er, tilfældigt vælge og udskrive et af navnene. 904 00:44:46,580 --> 00:44:50,250 Så lad os gøre det første, så spørg brugeren om fem navne. 905 00:44:50,250 --> 00:44:53,730 Hvem har bedt brugeren om fem navne og kan fortælle mig hvordan man gør det? 906 00:44:53,730 --> 00:44:56,760 907 00:44:56,760 --> 00:44:58,570 Kun to mennesker gjorde den første del. 908 00:44:58,570 --> 00:45:00,150 Tre mennesker gjorde den første del. 909 00:45:00,150 --> 00:45:00,670 Fire, fem. 910 00:45:00,670 --> 00:45:03,140 Tom, hvordan gør du det? 911 00:45:03,140 --> 00:45:09,940 >> STUDENT: Du ville erklære en streng og derefter navn, beslag fem. 912 00:45:09,940 --> 00:45:12,070 >> JASON HIRSCHHORN: String nævne beslag fem. 913 00:45:12,070 --> 00:45:15,350 Så hvad er denne linje laver, string name beslag fem? 914 00:45:15,350 --> 00:45:17,800 >> STUDENT: Du ville erklære et array af strenge. 915 00:45:17,800 --> 00:45:19,000 >> JASON HIRSCHHORN: Dette er et array af strenge. 916 00:45:19,000 --> 00:45:21,590 Hvor mange strenge går at passe ind her? 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 Vi kommer til at kalde det navne, fordi vi kommer til at få flere virksomheder. 921 00:45:26,360 --> 00:45:27,790 OK, det næste? 922 00:45:27,790 --> 00:45:29,270 >> STUDENT: Og så skal du har en for-løkke - 923 00:45:29,270 --> 00:45:30,060 >> JASON HIRSCHHORN: For loop. 924 00:45:30,060 --> 00:45:33,035 >> STUDENT: - for i = 0. 925 00:45:33,035 --> 00:45:37,040 >> JASON HIRSCHHORN: for (int i = 0. 926 00:45:37,040 --> 00:45:38,270 >> STUDENT: Semikolon. 927 00:45:38,270 --> 00:45:38,880 >> JASON HIRSCHHORN: semikolon. 928 00:45:38,880 --> 00:45:39,790 >> STUDENT: Jeg mindre end fem. 929 00:45:39,790 --> 00:45:41,310 >> JASON HIRSCHHORN: Jeg mindre end fem. 930 00:45:41,310 --> 00:45:42,230 >> STUDENT: Semikolon. 931 00:45:42,230 --> 00:45:42,560 >> JASON HIRSCHHORN: semikolon. 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: og lukkes parenteser. 935 00:45:47,100 --> 00:45:48,600 >> JASON HIRSCHHORN: Lukket parenteser og derefter nogle krøllede parenteser. 936 00:45:48,600 --> 00:45:50,050 Inde i krøllede parenteser? 937 00:45:50,050 --> 00:45:51,423 >> STUDENT: Og så printf. 938 00:45:51,423 --> 00:45:52,535 >> JASON HIRSCHHORN: printf. 939 00:45:52,535 --> 00:45:56,200 >> STUDENT: Åbne parenteser, navn% d. 940 00:45:56,200 --> 00:45:57,090 >> JASON HIRSCHHORN: Undskyld? 941 00:45:57,090 --> 00:45:57,660 >> STUDENT: Navn. 942 00:45:57,660 --> 00:45:58,200 >> JASON HIRSCHHORN: Navn. 943 00:45:58,200 --> 00:46:01,700 >> STUDENT: Og så mellemrum og derefter% d. 944 00:46:01,700 --> 00:46:02,950 >> JASON HIRSCHHORN: Navn, rum,% d. 945 00:46:02,950 --> 00:46:05,630 946 00:46:05,630 --> 00:46:10,820 >> STUDENT: Og så / n, og derefter lukket. 947 00:46:10,820 --> 00:46:15,070 >> JASON HIRSCHHORN: So navn, plads, % D / n, lukkede parenteser. 948 00:46:15,070 --> 00:46:17,730 >> STUDENT: Komma, i + 1. 949 00:46:17,730 --> 00:46:19,390 Undskyld. 950 00:46:19,390 --> 00:46:21,040 Lukket citat og derefter komma, i +1. 951 00:46:21,040 --> 00:46:24,400 >> JASON HIRSCHHORN: Lukket citat, komma, i +1. 952 00:46:24,400 --> 00:46:25,850 >> STUDENT: Ja. 953 00:46:25,850 --> 00:46:27,650 Og så den næste linje - 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 Og så det næste dias er navne beslag jeg. 957 00:46:36,440 --> 00:46:39,000 >> JASON HIRSCHHORN: Next linie er navne beslag jeg. 958 00:46:39,000 --> 00:46:41,360 >> STUDENT: = få streng. 959 00:46:41,360 --> 00:46:43,460 >> JASON HIRSCHHORN: = Get - 960 00:46:43,460 --> 00:46:44,510 kapital G-E-T - 961 00:46:44,510 --> 00:46:45,530 streng. 962 00:46:45,530 --> 00:46:47,800 Ups, undskyld. 963 00:46:47,800 --> 00:46:49,050 >> STUDENT: åben, lukket parenteser og derefter - 964 00:46:49,050 --> 00:46:50,940 >> JASON HIRSCHHORN: Åben, lukket parantes. 965 00:46:50,940 --> 00:46:51,030 >> STUDENT: Semikolon. 966 00:46:51,030 --> 00:46:52,500 >> JASON HIRSCHHORN: semikolon. 967 00:46:52,500 --> 00:46:57,545 OK, så du initialisere den vifte af strygere, navne, og derefter gå gennem en 968 00:46:57,545 --> 00:47:02,720 for loop, og fem gange udskrive nogle beder til brugeren og derefter gemme 969 00:47:02,720 --> 00:47:03,360 fem strenge. 970 00:47:03,360 --> 00:47:08,090 Er der nogen, der har nogen tilpasninger af denne? 971 00:47:08,090 --> 00:47:10,030 Tom, jeg tror, ​​at alle er enig med dig. 972 00:47:10,030 --> 00:47:10,880 Det ser godt ud. 973 00:47:10,880 --> 00:47:11,660 OK. 974 00:47:11,660 --> 00:47:14,830 Hvorfor gjorde du i +1, selv? 975 00:47:14,830 --> 00:47:18,000 >> STUDENT: Jeg mener, ikke har at være, men i +1, således at det er 976 00:47:18,000 --> 00:47:19,700 navn ene at nævne fem. 977 00:47:19,700 --> 00:47:21,930 Ellers ville det være navn nul at nævne fire. 978 00:47:21,930 --> 00:47:24,400 >> JASON HIRSCHHORN: Så du gjorde i +1 fordi det ellers ville have 979 00:47:24,400 --> 00:47:27,060 udskrives nul gennem fire fordi det er, hvordan computere tror, ​​men mennesker 980 00:47:27,060 --> 00:47:28,530 ikke rigtig læst sådan. 981 00:47:28,530 --> 00:47:30,190 Det er en anden ting du støder. 982 00:47:30,190 --> 00:47:33,210 Nogle gange, når du udskriver noget til brugeren, vil du ønsker at gøre det til en 983 00:47:33,210 --> 00:47:35,733 lidt kønnere, og gør i +1 i dette tilfælde er en 984 00:47:35,733 --> 00:47:37,430 måde at gøre det smukkere. 985 00:47:37,430 --> 00:47:41,380 >> Jeg kan også se fem gange, string navn er fem, jeg er mindre end fem. 986 00:47:41,380 --> 00:47:42,430 Jeg ved, hvor du fik det fem. 987 00:47:42,430 --> 00:47:44,890 Du fik det fra mig fortælle dig fem navne. 988 00:47:44,890 --> 00:47:49,000 Men hvis vi ønskede at gøre koden a lidt mere robust, én ting, vi 989 00:47:49,000 --> 00:47:53,110 kunne gøre, er herude, uden for int, vi kunne gøre noget som dette, 990 00:47:53,110 --> 00:47:57,070 # Define, og vi kunne gøre NAVNE 5.. 991 00:47:57,070 --> 00:48:01,580 992 00:48:01,580 --> 00:48:05,390 >> Så dybest set, hvor jeg skriver kapital N, hovedstaden A, kapital M, hovedstaden E 993 00:48:05,390 --> 00:48:08,890 kapital S, denne streng, vil det erstatte at med 5 i koden. 994 00:48:08,890 --> 00:48:11,530 995 00:48:11,530 --> 00:48:13,445 Eller lad os bare kalde det - vi vil bare kalde det nummer. 996 00:48:13,445 --> 00:48:17,190 Så jeg definere alle hætter NUMMER at være 5. 997 00:48:17,190 --> 00:48:22,830 >> Så nu hvor jeg har det nummer 5, jeg kan erstatte det alle hætter NUMMER. 998 00:48:22,830 --> 00:48:26,880 Og nu, hvis jeg ønsker at ændre antallet navne, er alt jeg behøver at gøre 999 00:48:26,880 --> 00:48:31,350 denne ene linje, linie fire, hvor jeg har # Define nummer 5, ændre det til 10, 1000 00:48:31,350 --> 00:48:34,340 eller ændre det til 4.. 1001 00:48:34,340 --> 00:48:37,400 Når din kode bliver længere, er du ikke kommer til at huske alle de steder, du 1002 00:48:37,400 --> 00:48:41,630 sætte, hvor mange navne du ville, og For at du ikke at gå glip af en, det er 1003 00:48:41,630 --> 00:48:45,490 en god måde at gøre det, for at finde noget op øverst og så bare bruge den sætning 1004 00:48:45,490 --> 00:48:46,400 overalt i hele din kode. 1005 00:48:46,400 --> 00:48:46,780 Marcus? 1006 00:48:46,780 --> 00:48:49,780 >> STUDENT: Er der stilistisk foretrukne end globalt definerer en 1007 00:48:49,780 --> 00:48:51,270 konstante n? 1008 00:48:51,270 --> 00:48:53,760 >> JASON HIRSCHHORN: So, er, at stilistisk foretrukket end globalt 1009 00:48:53,760 --> 00:48:54,980 definerer en konstant n? 1010 00:48:54,980 --> 00:48:59,036 Så du siger du kunne gøre, int nummer = 5? 1011 00:48:59,036 --> 00:49:01,300 >> STUDENT: Har de konsonanter i C eller nej? 1012 00:49:01,300 --> 00:49:02,720 >> JASON HIRSCHHORN: Eller const - i lige. 1013 00:49:02,720 --> 00:49:04,275 Så du siger bare en global variabel? 1014 00:49:04,275 --> 00:49:04,990 >> STUDENT: Ja. 1015 00:49:04,990 --> 00:49:08,670 >> JASON HIRSCHHORN: So stilistisk, der er ingen nødvendigvis én rettighed 1016 00:49:08,670 --> 00:49:12,050 besvare, men begge af dem er bedre end bare at smide disse tilfældige 1017 00:49:12,050 --> 00:49:12,960 numre i hele din kode. 1018 00:49:12,960 --> 00:49:14,650 Vi kalder dem magiske tal. 1019 00:49:14,650 --> 00:49:16,450 Når jeg ser på din kode, eller når nogens læsning gennem det, de 1020 00:49:16,450 --> 00:49:18,790 ønsker ikke blot disse tilfældige tal der ikke giver mening. 1021 00:49:18,790 --> 00:49:22,420 Selv antallet 26, som generelt er antallet af bogstaver i alfabetet, 1022 00:49:22,420 --> 00:49:28,870 det er bedre at definere ALPHABET op øverst og gemme nummeret 26 i denne streng, 1023 00:49:28,870 --> 00:49:29,550 hvis det giver mening. 1024 00:49:29,550 --> 00:49:33,210 >> Eller på problemet angive én, snarere end - igen, vi ikke taler om dette på 1025 00:49:33,210 --> 00:49:37,020 den tid, men i stedet for bare at smide i en 25 overalt eller 10, kan du 1026 00:49:37,020 --> 00:49:41,860 gemme nummeret 25 som fjerdedel eller 10 som DIME, og det gør det lettere for 1027 00:49:41,860 --> 00:49:44,140 hvem der læser gennem din kode til forstå, hvorfor du har valgt dette nummer. 1028 00:49:44,140 --> 00:49:46,540 Og også for dig, at hvis du nogensinde vil opdatere din kode, det gør det lidt 1029 00:49:46,540 --> 00:49:47,290 mere robust. 1030 00:49:47,290 --> 00:49:48,070 Ja? 1031 00:49:48,070 --> 00:49:50,830 >> STUDENT: Er denne kode også vil at være til rådighed for os efter? 1032 00:49:50,830 --> 00:49:52,453 >> JASON HIRSCHHORN: Alle disse koder at vi har skrevet sammen er 1033 00:49:52,453 --> 00:49:54,620 vil blive sendt til dig fyre og tilgængelige. 1034 00:49:54,620 --> 00:49:55,740 Ja. 1035 00:49:55,740 --> 00:49:58,040 Så spørg brugeren om fem navne. 1036 00:49:58,040 --> 00:50:00,280 Tilfældigt vælge og udskrive et af de navne. 1037 00:50:00,280 --> 00:50:00,940 Hvem gjorde denne linje? 1038 00:50:00,940 --> 00:50:02,230 Dette er den vanskeligste linje her. 1039 00:50:02,230 --> 00:50:02,450 Undskyld, Tom. 1040 00:50:02,450 --> 00:50:05,510 Du gjorde et virkelig godt stykke arbejde, men dette er en smule mere indviklet. 1041 00:50:05,510 --> 00:50:06,600 Marcus, gå videre. 1042 00:50:06,600 --> 00:50:10,180 >> STUDENT: Godt første, du kommer til at behovet for at medtage stdlib.h og time.h. 1043 00:50:10,180 --> 00:50:13,200 >> JASON HIRSCHHORN: Så du siger på toppen, indeholde to biblioteker. 1044 00:50:13,200 --> 00:50:18,830 Du vil have mig til at omfatte S-T-D-L-I-B dot H, Standard Bibliotek, og hvad 1045 00:50:18,830 --> 00:50:19,760 var den anden? 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 Så det er to flere biblioteker. 1050 00:50:29,470 --> 00:50:31,790 Jeg antager nu vi kommer til at bruge funktioner, der er indeholdt i disse 1051 00:50:31,790 --> 00:50:34,240 to, hvilket er hvorfor du brug for at inkludere dem? 1052 00:50:34,240 --> 00:50:36,980 >> STUDENT: Så først er du lyst til at skrive srand. 1053 00:50:36,980 --> 00:50:38,770 >> JASON HIRSCHHORN: Srand. 1054 00:50:38,770 --> 00:50:42,070 >> STUDENT: (tid (0) 1055 00:50:42,070 --> 00:50:42,700 >> JASON HIRSCHHORN: Undskyld. 1056 00:50:42,700 --> 00:50:45,580 Srand (tid ( 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:)), semikolon. 1060 00:50:49,990 --> 00:50:51,320 >> JASON HIRSCHHORN: Endnu lukket parentes? 1061 00:50:51,320 --> 00:50:51,650 Semikolon. 1062 00:50:51,650 --> 00:50:53,610 Jeg har tænkt mig at bare erstatte Deres nul med NULL. 1063 00:50:53,610 --> 00:50:55,980 Det vil gøre ved det samme, men generelt, vil du se NULL, hvilket 1064 00:50:55,980 --> 00:50:57,720 vi vil tale om dette linje i et sekund. 1065 00:50:57,720 --> 00:50:58,580 >> STUDENT: Stilistisk bedre? 1066 00:50:58,580 --> 00:51:02,240 >> JASON HIRSCHHORN: Generelt, folk højre NULL, men samme ting. 1067 00:51:02,240 --> 00:51:05,010 >> STUDENT: Og så int navn. 1068 00:51:05,010 --> 00:51:06,490 >> JASON HIRSCHHORN: Int navn. 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: Hvad er modulo? 1077 00:51:14,310 --> 00:51:14,970 Tegnet? 1078 00:51:14,970 --> 00:51:16,000 Den procentvise karakter? 1079 00:51:16,000 --> 00:51:17,790 >> STUDENT: Percent karakter. 1080 00:51:17,790 --> 00:51:19,521 Modulo nummer, som du definerede op øverst. 1081 00:51:19,521 --> 00:51:22,030 >> JASON HIRSCHHORN: Modulo NUMMER. 1082 00:51:22,030 --> 00:51:24,052 >> STUDENT: Og så semikolon. 1083 00:51:24,052 --> 00:51:24,660 >> JASON HIRSCHHORN: semikolon. 1084 00:51:24,660 --> 00:51:27,820 >> STUDENT: Og så ny linje, 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, rum navne. 1095 00:51:43,540 --> 00:51:44,350 >> JASON HIRSCHHORN: Space - 1096 00:51:44,350 --> 00:51:46,300 >> STUDENT: Åh, jeg gætte, hvad vi kalder det her? 1097 00:51:46,300 --> 00:51:48,640 >> JASON HIRSCHHORN: Vi kaldte det navne. 1098 00:51:48,640 --> 00:51:52,360 >> STUDENT: Åben konsol navn. 1099 00:51:52,360 --> 00:51:55,090 >> JASON HIRSCHHORN: Åbent beslag, navn. 1100 00:51:55,090 --> 00:51:55,850 >> STUDENT: Lukket beslag. 1101 00:51:55,850 --> 00:51:56,490 >> JASON HIRSCHHORN: Lukket beslag. 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: Semikolon. 1105 00:51:59,440 --> 00:52:00,410 >> JASON HIRSCHHORN: semikolon. 1106 00:52:00,410 --> 00:52:01,500 OK, lad os gemme. 1107 00:52:01,500 --> 00:52:04,410 Lad os gøre denne kode. 1108 00:52:04,410 --> 00:52:06,365 Studerende. 1109 00:52:06,365 --> 00:52:07,100 Lad os køre denne kode. 1110 00:52:07,100 --> 00:52:08,480 Studerende. 1111 00:52:08,480 --> 00:52:11,630 Ikke. / Elev. . / Studerende. 1112 00:52:11,630 --> 00:52:12,870 Navn én. 1113 00:52:12,870 --> 00:52:15,490 Vi siger David. 1114 00:52:15,490 --> 00:52:18,070 Name to, RJ. 1115 00:52:18,070 --> 00:52:20,561 Nævn tre, Rob. 1116 00:52:20,561 --> 00:52:22,490 Navn fire, Lucas. 1117 00:52:22,490 --> 00:52:26,060 Navn fem, Joseph. 1118 00:52:26,060 --> 00:52:28,850 Og så udskriver Joseph igen. 1119 00:52:28,850 --> 00:52:31,730 >> Så lad mig køre det igen. 1120 00:52:31,730 --> 00:52:32,460 Lad mig gøre de samme navne. 1121 00:52:32,460 --> 00:52:39,760 David, RJ, Rob, Lucas, Joseph. 1122 00:52:39,760 --> 00:52:41,070 Og det gav mig David denne gang. 1123 00:52:41,070 --> 00:52:43,030 Så jeg gjorde det samme, men det gav mig en anden ting, og det er 1124 00:52:43,030 --> 00:52:45,410 grund, selvfølgelig, beder vi til et tilfældigt navn. 1125 00:52:45,410 --> 00:52:50,950 Så jeg tror, ​​baseret ud af mig vandre rundt i lokalet, at de fleste mennesker 1126 00:52:50,950 --> 00:52:55,960 sandsynligvis fået den første del til højre, etablering at array og derefter få 1127 00:52:55,960 --> 00:52:56,430 alle navnene. 1128 00:52:56,430 --> 00:52:59,320 Jeg taler om linjer 10 gennem 16.. 1129 00:52:59,320 --> 00:53:02,150 Men ledningerne 18 gennem 21 er formentlig nogle ting, du ikke har set før, 1130 00:53:02,150 --> 00:53:03,750 så lad os gå igennem dem. 1131 00:53:03,750 --> 00:53:10,390 >> Denne linje, srand tid NULL er væsentlige - 1132 00:53:10,390 --> 00:53:14,300 sorry, lad os springe ned en linje, rand (). 1133 00:53:14,300 --> 00:53:17,320 Det giver dig et tilfældigt tal, et tilfældigt heltal. 1134 00:53:17,320 --> 00:53:19,630 Og hvis du rammer mand rand, hvilket en masse af jer gjorde - 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 i terminalen som dette, M-A-N space R-A-N-D, tryk Enter. 1137 00:53:25,910 --> 00:53:30,490 Du ville komme op til den manuelle og ville være i stand til at læse, at rand 1138 00:53:30,490 --> 00:53:34,260 kommando udgange num pseudo tilfældige bytes efter såning af tilfældige tal 1139 00:53:34,260 --> 00:53:35,510 generator gang. 1140 00:53:35,510 --> 00:53:38,450 1141 00:53:38,450 --> 00:53:39,700 >> Så det er en beskrivelse. 1142 00:53:39,700 --> 00:53:43,860 1143 00:53:43,860 --> 00:53:46,800 Det er, hvad Rand gør, giver du et tilfældigt tal, når 1144 00:53:46,800 --> 00:53:48,610 du kalder denne funktion. 1145 00:53:48,610 --> 00:53:53,140 Desværre, det er ikke rigtig tilfældige fordi hvis du bare kalde tilfældige 1146 00:53:53,140 --> 00:53:55,970 uden at få det nogle frø, nogle udgangspunkt vil det altid vælge 1147 00:53:55,970 --> 00:53:59,100 det samme, og det bruger en formel at bestemme den næste. 1148 00:53:59,100 --> 00:54:01,730 Så hvis du kalder rand, det vil bare give dig det samme. 1149 00:54:01,730 --> 00:54:02,610 Det vil være meget forudsigelig. 1150 00:54:02,610 --> 00:54:03,790 Det faktisk ikke vil være tilfældige. 1151 00:54:03,790 --> 00:54:09,610 >> Så hvad vi skal gøre, pr Marcus ' instrukser til mig, var frø rand 1152 00:54:09,610 --> 00:54:13,810 med noget andet, hvilket er, hvad Den srand funktionen gør. 1153 00:54:13,810 --> 00:54:18,055 Det frø rand med noget lidt mere tilfældig end den samme ting, og 1154 00:54:18,055 --> 00:54:23,360 han såning det med tiden NULL, hvilket er, bare ved konvention, den nuværende 1155 00:54:23,360 --> 00:54:24,650 tid i sekunder. 1156 00:54:24,650 --> 00:54:29,790 >> Så du antager, at alle ikke er vil køre koden på det nøjagtige 1157 00:54:29,790 --> 00:54:33,620 samme sekund, så det er en sikker satsning, at tid NULL vil være anderledes 1158 00:54:33,620 --> 00:54:35,250 hver gang denne kode køres. 1159 00:54:35,250 --> 00:54:39,020 Sikker satsning, at dermed, srand vil skabe grobund rand med noget andet hver 1160 00:54:39,020 --> 00:54:39,990 eneste gang. 1161 00:54:39,990 --> 00:54:44,110 Så ved konvention, ønsker, når vi gør en tilfældige tal, vi skriver denne linje, 1162 00:54:44,110 --> 00:54:50,540 srand tid NULL, at give os en meget mere random seed, og så løber vi 1163 00:54:50,540 --> 00:54:52,080 rand, hvilket giver os et tilfældigt tal. 1164 00:54:52,080 --> 00:54:52,840 Ja? 1165 00:54:52,840 --> 00:54:54,140 >> STUDENT: Kan du sige, hvad du mener med frø? 1166 00:54:54,140 --> 00:54:55,630 >> JASON HIRSCHHORN: Seed som - 1167 00:54:55,630 --> 00:54:58,730 så rand kommer til at vælge nogle og det kommer til at bruge nogle 1168 00:54:58,730 --> 00:55:00,060 formel til at komme der. 1169 00:55:00,060 --> 00:55:03,250 Så det kommer til at starte med noget og derefter gøre det til grundlag noget 1170 00:55:03,250 --> 00:55:03,890 off af denne formel. 1171 00:55:03,890 --> 00:55:06,090 Hvis du altid give det de samme ting, det altid kommer til at dreje den i 1172 00:55:06,090 --> 00:55:06,790 samme ting. 1173 00:55:06,790 --> 00:55:08,450 Så første ting du giver det er frø. 1174 00:55:08,450 --> 00:55:10,880 Så du ønsker at give det noget anderledes at starte ud med, og så det 1175 00:55:10,880 --> 00:55:12,610 vil gøre det til noget andet. 1176 00:55:12,610 --> 00:55:15,840 >> Og så endelig, linie 20, denne% kaldes 1177 00:55:15,840 --> 00:55:17,470 modulo, og det er forvirrende. 1178 00:55:17,470 --> 00:55:19,850 Det er noget, der er en lille smule anderledes her, at du ikke rigtig 1179 00:55:19,850 --> 00:55:22,240 har i det virkelige liv matematik. 1180 00:55:22,240 --> 00:55:27,430 Men det væsentlige, når du tager en kæmpe nummer, og du opdele i C, hvad 1181 00:55:27,430 --> 00:55:29,482 sker med resten? 1182 00:55:29,482 --> 00:55:30,510 >> STUDENT: Det bliver afkortet. 1183 00:55:30,510 --> 00:55:31,220 >> JASON HIRSCHHORN: Det bliver afkortet. 1184 00:55:31,220 --> 00:55:35,200 Så 20 divideret med 3 er hvad? 1185 00:55:35,200 --> 00:55:37,950 Hvad betyder det at vende tilbage til dig, 20 divideret med 3. 1186 00:55:37,950 --> 00:55:39,260 Beklager, 10 divideret med 3. 1187 00:55:39,260 --> 00:55:41,062 Hvad betyder det at vende tilbage til dig? 1188 00:55:41,062 --> 00:55:41,540 >> STUDENT: [uhørlig]. 1189 00:55:41,540 --> 00:55:45,170 >> JASON HIRSCHHORN: 10 divideret med 3 lige returnerer 3, ikke 3 resterende 1. 1190 00:55:45,170 --> 00:55:51,490 Så hvad 10 modulo 3 returnerer er bare resten, 1.. 1191 00:55:51,490 --> 00:55:54,020 Så hvis du ønsker at vide, hvad 10 divideret med 3 faktisk var, ville du 1192 00:55:54,020 --> 00:55:58,950 gøre 10 divideret med 3, ville du få din 3. og så ville du gøre 10 modulo 3, og 1193 00:55:58,950 --> 00:55:59,860 du ville få en 1. 1194 00:55:59,860 --> 00:56:04,630 Så du ville indse, at 10 divideret med 3 er 3, resten 1.. 1195 00:56:04,630 --> 00:56:07,990 >> Og i denne linje, kunne rand være vilkårligt heltal væsentlige. 1196 00:56:07,990 --> 00:56:12,660 Så modulo siger, dividere det med nummer, der er i dette tilfælde 5. 1197 00:56:12,660 --> 00:56:16,420 Og hvis du nogensinde dividere med et tal, heltal skal altid være mindre end 1198 00:56:16,420 --> 00:56:17,590 dette nummer. 1199 00:56:17,590 --> 00:56:22,200 Så hvis du dividere med et nummer 5, resten altid vil være 1200 00:56:22,200 --> 00:56:23,396 nul gennem fire. 1201 00:56:23,396 --> 00:56:25,520 Det er bare, hvordan matematik fungerer. 1202 00:56:25,520 --> 00:56:29,700 >> Så et stort antal moduloed af en mindre nummer vil altid vende tilbage 1203 00:56:29,700 --> 00:56:33,530 resten og vil altid returnere nogle nummer, der er mindre end det antal, du 1204 00:56:33,530 --> 00:56:34,693 divideret med. 1205 00:56:34,693 --> 00:56:37,920 Er der nogen har nogen spørgsmål om modulo, fordi det vil komme i meget, 1206 00:56:37,920 --> 00:56:41,450 meget praktisk, så jeg vil være sikker på alle forstår det? 1207 00:56:41,450 --> 00:56:43,710 Cool. 1208 00:56:43,710 --> 00:56:46,000 Og vi så, at dette program virkede. 1209 00:56:46,000 --> 00:56:50,280 OK, bevæger sig på. 1210 00:56:50,280 --> 00:56:52,970 >> Så næste, vi kommer til at gå ind funktioner, og vi kommer til at gå 1211 00:56:52,970 --> 00:56:55,580 gennem resten af ​​denne ting pretty hurtigt, fordi jeg ønsker at komme til 1212 00:56:55,580 --> 00:56:57,150 kommandolinjeargumenter. 1213 00:56:57,150 --> 00:57:00,330 Så funktioner er væsentlige, som du har set, sorte bokse. 1214 00:57:00,330 --> 00:57:04,290 De tager tingene i kaldet parametre, de gør noget for dem, enten 1215 00:57:04,290 --> 00:57:06,990 ændre dem eller oprette nogle bivirkninger, og endelig, de spytter 1216 00:57:06,990 --> 00:57:09,530 ud af noget, som er returværdien. 1217 00:57:09,530 --> 00:57:12,495 Kan nogen give mig en grund Derfor vil vi bruge funktioner? 1218 00:57:12,495 --> 00:57:15,870 1219 00:57:15,870 --> 00:57:16,360 Nogen? 1220 00:57:16,360 --> 00:57:19,360 En af grundene til at vi ville bruge funktioner? 1221 00:57:19,360 --> 00:57:21,280 Nogen? 1222 00:57:21,280 --> 00:57:22,700 Jeg så to hænder. 1223 00:57:22,700 --> 00:57:23,590 Hvad er en god grund? 1224 00:57:23,590 --> 00:57:24,930 Marcus? 1225 00:57:24,930 --> 00:57:27,730 >> STUDENT: Hvis du har til at kalde den samme stykke kode flere gange. 1226 00:57:27,730 --> 00:57:29,150 >> JASON HIRSCHHORN: OK, hvis du har brug at kalde den samme bid af 1227 00:57:29,150 --> 00:57:30,040 kode flere gange. 1228 00:57:30,040 --> 00:57:32,470 Jeff, havde du en anden grund? 1229 00:57:32,470 --> 00:57:34,230 >> STUDENT: Lige så du kan kode mindre. 1230 00:57:34,230 --> 00:57:35,070 >> JASON HIRSCHHORN: Du kan kode mindre. 1231 00:57:35,070 --> 00:57:35,320 Right. 1232 00:57:35,320 --> 00:57:38,720 Hvis du ønsker at gøre noget meget - 1233 00:57:38,720 --> 00:57:41,720 i den foregående kode, kunne jeg have skrevet få strengen fem gange, men en 1234 00:57:41,720 --> 00:57:44,620 for-løkke gør det ser pænere og du nødt til at skrive mindre kode. 1235 00:57:44,620 --> 00:57:45,760 Funktioner er en lignende idé. 1236 00:57:45,760 --> 00:57:48,720 Hvis jeg ønsker at gøre det samme en masse, flytte det til en funktion, og kalde det 1237 00:57:48,720 --> 00:57:49,610 fungere hver gang. 1238 00:57:49,610 --> 00:57:51,190 Det vil gøre det noget for dig. 1239 00:57:51,190 --> 00:57:53,740 Det er en stor grund at bruge funktioner. 1240 00:57:53,740 --> 00:57:54,870 >> Så anatomi af en funktion. 1241 00:57:54,870 --> 00:57:56,670 En funktion vil generelt se sådan ud. 1242 00:57:56,670 --> 00:57:59,280 Det vil starte med returtype, så vil du få navnet. 1243 00:57:59,280 --> 00:58:02,935 Det vil tage argumenterne, ellers kendt som de parametre, og inde 1244 00:58:02,935 --> 00:58:05,290 disse krøllede parenteser, vil du skrive din kode. 1245 00:58:05,290 --> 00:58:07,150 >> Vi har set én funktion en masse. 1246 00:58:07,150 --> 00:58:09,160 Det er main. 1247 00:58:09,160 --> 00:58:13,820 Her er main overlejret på at anatomi jeg havde tidligere. 1248 00:58:13,820 --> 00:58:15,525 Hvad int lige her betyde? 1249 00:58:15,525 --> 00:58:18,534 1250 00:58:18,534 --> 00:58:19,450 Hvad betyder int betyder? 1251 00:58:19,450 --> 00:58:21,026 Når jeg skriver int main (void). 1252 00:58:21,026 --> 00:58:21,740 >> STUDENT: Return type? 1253 00:58:21,740 --> 00:58:22,350 >> JASON HIRSCHHORN: Undskyld? 1254 00:58:22,350 --> 00:58:23,170 >> STUDENT: Afkastet type. 1255 00:58:23,170 --> 00:58:24,820 >> JASON HIRSCHHORN: Int er returnere typen helt rigtigt. 1256 00:58:24,820 --> 00:58:25,870 Main returnerer en int. 1257 00:58:25,870 --> 00:58:28,678 Hvad er vigtigste? 1258 00:58:28,678 --> 00:58:29,510 >> STUDENT: Funktion navn. 1259 00:58:29,510 --> 00:58:30,800 >> JASON HIRSCHHORN: Main er den funktionens navn. 1260 00:58:30,800 --> 00:58:31,510 Helt rigtigt. 1261 00:58:31,510 --> 00:58:31,840 Og ugyldig? 1262 00:58:31,840 --> 00:58:33,190 Hvad er ugyldig i parentes? 1263 00:58:33,190 --> 00:58:36,650 1264 00:58:36,650 --> 00:58:42,030 >> STUDENT: Det tager ikke eventuelle eksterne værdi. 1265 00:58:42,030 --> 00:58:42,930 >> JASON HIRSCHHORN: So tomrum - 1266 00:58:42,930 --> 00:58:43,240 højre. 1267 00:58:43,240 --> 00:58:45,940 Inde i parentes, satte vi parametre eller argumenter de 1268 00:58:45,940 --> 00:58:48,480 funktion tager, hvad der går inde i det sorte boks. 1269 00:58:48,480 --> 00:58:50,760 Når du skriver ugyldige, du siger dette tager intet i. 1270 00:58:50,760 --> 00:58:53,802 Så int main void betyder main s ikke at tage noget i. 1271 00:58:53,802 --> 00:58:56,950 >> Inde i krøllede parenteser, har vi nogle kode, og så må vi se, i slutningen 1272 00:58:56,950 --> 00:58:57,640 returnere nul. 1273 00:58:57,640 --> 00:59:01,220 Hvad betyder afkast nul betyder? 1274 00:59:01,220 --> 00:59:02,470 Nå, vi talte om returtype. 1275 00:59:02,470 --> 00:59:03,780 Main nødt til at returnere en int. 1276 00:59:03,780 --> 00:59:04,960 Det er, hvad denne linje gør. 1277 00:59:04,960 --> 00:59:07,330 Den returnerer en int, nul. 1278 00:59:07,330 --> 00:59:13,600 >> Selvfølgelig har vi ikke set, at en masse fordi programmeringen vi gør med 1279 00:59:13,600 --> 00:59:16,070 de maskiner, vi gør, og de compilere vi bruger i dag, du 1280 00:59:16,070 --> 00:59:16,990 har ikke brug for denne linje. 1281 00:59:16,990 --> 00:59:20,070 Main er speciel nok, at det kender når du når til slutningen af ​​main, bare 1282 00:59:20,070 --> 00:59:22,060 returnere nul, hvis alt gik godt. 1283 00:59:22,060 --> 00:59:25,560 I virkeligheden, hvis noget ikke går godt main vil ofte returnere en anden 1284 00:59:25,560 --> 00:59:28,500 tal signalerer, at noget gik galt med dit program. 1285 00:59:28,500 --> 00:59:32,470 >> Så generelt, når du ser koden, du ikke skrive tilbage nul, men det er godt 1286 00:59:32,470 --> 00:59:34,770 at vide, at det sker bag scener fordi når du skriver 1287 00:59:34,770 --> 00:59:36,370 en anden type af funktion, du vil få brug for at 1288 00:59:36,370 --> 00:59:37,400 omfatte en returledning. 1289 00:59:37,400 --> 00:59:39,710 Hvis du siger jeg har tænkt mig at returnere en int, er du nødt til 1290 00:59:39,710 --> 00:59:41,250 skrive returnere noget. 1291 00:59:41,250 --> 00:59:45,160 Hvis du siger ugyldig op her på begyndelsen void main ugyldig for 1292 00:59:45,160 --> 00:59:48,670 eksempel, så er det ikke vender tilbage noget - void betyder intet - 1293 00:59:48,670 --> 00:59:50,320 så du behøver ikke at returledningen. 1294 00:59:50,320 --> 00:59:53,610 Men du nogensinde skrive noget, der ikke er ugyldig for tilbagesendelse typen, du har brug for 1295 00:59:53,610 --> 00:59:55,950 en linje, der siger afkast, og du nødt til at sætte noget der 1296 00:59:55,950 --> 00:59:57,650 der matcher den type. 1297 00:59:57,650 --> 00:59:58,900 Eventuelle spørgsmål om det? 1298 00:59:58,900 --> 01:00:03,110 1299 01:00:03,110 --> 01:00:04,680 Sød. 1300 01:00:04,680 --> 01:00:05,930 >> Scope. 1301 01:00:05,930 --> 01:00:07,360 Det er noget, vi har inde på så godt. 1302 01:00:07,360 --> 01:00:10,720 Hver variabel, som vi ved, har en bestemt omfang, og det er dybest set 1303 01:00:10,720 --> 01:00:14,160 taler om hvor variablen kan eller ikke kan refereres. 1304 01:00:14,160 --> 01:00:16,310 Og jeg vil gerne sige, hvad der sker i krøllede parenteser forbliver 1305 01:00:16,310 --> 01:00:18,000 inde i krøllede parenteser. 1306 01:00:18,000 --> 01:00:21,490 Så for eksempel, hvis vi ser på denne kode, vi definerer en global variabel 1307 01:00:21,490 --> 01:00:24,510 uden for main, int a, op her på toppen. 1308 01:00:24,510 --> 01:00:27,380 Vi kalder en anden int en indvendig main. 1309 01:00:27,380 --> 01:00:29,760 Vi har nogle mere krøllede parenteser og vi kalder en anden int a. 1310 01:00:29,760 --> 01:00:31,690 >> Vi har tre A'er i kode. 1311 01:00:31,690 --> 01:00:32,550 Disse er ikke de samme ting. 1312 01:00:32,550 --> 01:00:34,880 Jeg har oprettet tre forskellige variabler. 1313 01:00:34,880 --> 01:00:39,370 Derefter inde i disse indre krøllet seler, jeg siger en = 4. 1314 01:00:39,370 --> 01:00:44,130 Hvilket et er, at vi taler om det første, den anden, 1315 01:00:44,130 --> 01:00:47,045 eller den tredje? 1316 01:00:47,045 --> 01:00:47,920 >> STUDENT: Den tredje. 1317 01:00:47,920 --> 01:00:49,320 >> JASON HIRSCHHORN: Det taler om den tredje. 1318 01:00:49,320 --> 01:00:52,850 Alle dem en er faktisk kan være talte om i dette særlige 1319 01:00:52,850 --> 01:00:58,660 eksempel fordi deres anvendelsesområde alt går ind i disse inderste krøllede parenteser. 1320 01:00:58,660 --> 01:01:02,360 Men når du kalder tingene på samme navn, der er noget, der hedder at skjule. 1321 01:01:02,360 --> 01:01:09,670 Så du kun beskæftige sig med eller fastsætte eller bruge seneste variabel, eller den ene 1322 01:01:09,670 --> 01:01:11,090 tættest på dig. 1323 01:01:11,090 --> 01:01:14,760 Så herinde, er denne tredje en nærmest denne linje, en = 4, så det 1324 01:01:14,760 --> 01:01:16,550 påvirker den tredje. 1325 01:01:16,550 --> 01:01:19,890 Og den sidste linje, a = 2, som en er , at tale om det første, andet, 1326 01:01:19,890 --> 01:01:20,805 eller tredje en? 1327 01:01:20,805 --> 01:01:22,530 >> STUDENT: Anden. 1328 01:01:22,530 --> 01:01:24,430 >> JASON HIRSCHHORN: Det taler om den anden en. 1329 01:01:24,430 --> 01:01:27,970 Selvfølgelig, et tredje er tættest på det i koden, men den tredje en 1330 01:01:27,970 --> 01:01:30,200 eksisterer ikke udenfor de krøllede parenteser. 1331 01:01:30,200 --> 01:01:32,650 Når du kommer til dette lukkede krøllet bandage, det er ligesom det er gået, 1332 01:01:32,650 --> 01:01:33,570 væsentligt. 1333 01:01:33,570 --> 01:01:36,150 Så den eneste to, du har tilbage, er dem to første, og selvfølgelig nu 1334 01:01:36,150 --> 01:01:37,960 det er tættest på den anden. 1335 01:01:37,960 --> 01:01:39,410 >> Så det er en god ting at huske om rækkevidde. 1336 01:01:39,410 --> 01:01:42,900 For eksempel er jeg sikker på du er stødt på dette i en gøre, mens løkke. 1337 01:01:42,900 --> 01:01:46,680 Hvis du initialiserer variablen indeni do while-løkken, og så skal du prøve at 1338 01:01:46,680 --> 01:01:50,360 adgang til det udenfor, har du sandsynligvis fik nogle advarsel som dette 1339 01:01:50,360 --> 01:01:51,680 variabel findes ikke. 1340 01:01:51,680 --> 01:01:54,370 Det er på grund af omfanget idé, at tingene eksisterer kun 1341 01:01:54,370 --> 01:01:55,320 inden for disse krøllede parenteser. 1342 01:01:55,320 --> 01:01:59,320 Krøllede parenteser er som en kæmpe knus, at du giver din kode, er en anden 1343 01:01:59,320 --> 01:02:01,380 måde at tænke på det. 1344 01:02:01,380 --> 01:02:05,280 >> Så dette er en anden funktion, noget for jer til koden, hellofunction.c. 1345 01:02:05,280 --> 01:02:08,240 Vi kommer til at springe, at for nu, men det er noget jeg opfordre dig til 1346 01:02:08,240 --> 01:02:09,740 øve på egen hånd. 1347 01:02:09,740 --> 01:02:12,510 Skriv et program, hvor de vigtigste opkald en anden funktion, der udskriver en 1348 01:02:12,510 --> 01:02:13,750 hilsen til brugeren. 1349 01:02:13,750 --> 01:02:17,750 Det er hovedsageligt tager hej verden og abstrahere, at printf ind 1350 01:02:17,750 --> 01:02:18,680 en anden funktion. 1351 01:02:18,680 --> 01:02:22,360 Men vi kommer ikke til at gøre det lige nu fordi vi ikke har så meget tid 1352 01:02:22,360 --> 01:02:23,350 venstre som jeg kunne have ønsket. 1353 01:02:23,350 --> 01:02:26,250 >> Så funktionen erklæring. 1354 01:02:26,250 --> 01:02:28,080 Vi har set dette før så godt. 1355 01:02:28,080 --> 01:02:31,180 Hvis du ønsker at skrive en anden funktion, du nødt til at lade computeren vide og 1356 01:02:31,180 --> 01:02:32,600 main ved, at det eksisterer. 1357 01:02:32,600 --> 01:02:37,140 Så hvad vi er over main, vi skriver afkastet type, navn og 1358 01:02:37,140 --> 01:02:42,970 parametre, og derefter ned under main, hernede, vi faktisk kopiere denne linje 1359 01:02:42,970 --> 01:02:45,080 og derefter skrive den faktiske kode. 1360 01:02:45,080 --> 01:02:50,990 Så på denne måde, hvis du kalder funktionen i main i toppen, ved main som 1361 01:02:50,990 --> 01:02:54,650 hej eksisterer, for eksempel, hvis jeg var at kalde hej, og så er det ser ud til at 1362 01:02:54,650 --> 01:02:56,710 gennemførelsen ned nedenfor. 1363 01:02:56,710 --> 01:02:59,680 Hvad sker der, hvis jeg ikke medtage denne line up top, ugyldiggøre hej (void)? 1364 01:02:59,680 --> 01:03:03,820 1365 01:03:03,820 --> 01:03:06,560 >> Hvis jeg ikke medtage denne linje og de vigtigste opkald Hej, jeg er 1366 01:03:06,560 --> 01:03:07,640 kommer til at få en fejl. 1367 01:03:07,640 --> 01:03:10,090 Jeg har tænkt mig at få en fejl, fordi compileren ikke kender 1368 01:03:10,090 --> 01:03:13,070 at denne ting eksisterer. 1369 01:03:13,070 --> 01:03:16,680 Dette svarer til, hvorfor vi gør # include cs50.h. 1370 01:03:16,680 --> 01:03:21,390 Hvad det væsentlige cs50.h gør er at sætte få strengen deroppe. 1371 01:03:21,390 --> 01:03:23,120 Det er at sætte få int derop. 1372 01:03:23,120 --> 01:03:26,570 Det er at sætte alle disse funktioner prototyper op før main så når 1373 01:03:26,570 --> 01:03:29,900 du kalder dem i hoved, vigtigste ved at disse ting eksisterer. 1374 01:03:29,900 --> 01:03:31,630 Det er, hvad disse. H-filer gør. 1375 01:03:31,630 --> 01:03:33,850 Og så hvis du vil lave din egen funktion, du har lært at sørge 1376 01:03:33,850 --> 01:03:36,690 du sætte denne prototype deroppe. 1377 01:03:36,690 --> 01:03:38,380 Eventuelle spørgsmål vedrørende denne hidtil? 1378 01:03:38,380 --> 01:03:41,630 1379 01:03:41,630 --> 01:03:42,490 >> Kommandolinjeargumenter. 1380 01:03:42,490 --> 01:03:44,780 Dette er, hvad vi kommer til at afslutte , og derefter forhåbentlig vil vi 1381 01:03:44,780 --> 01:03:46,180 klemme i nogle Pset. 1382 01:03:46,180 --> 01:03:48,700 Jeg ved ikke, om vi vil være i stand til at presse at i grund af den tid, men 1383 01:03:48,700 --> 01:03:51,560 med jer, der er her, og hvis du fyre ønsker at sige efter for lidt, vi 1384 01:03:51,560 --> 01:03:54,290 kan gå over det udenfor. 1385 01:03:54,290 --> 01:03:56,020 Men vi kommer til at slutte af med kommandolinjeargumenter 1386 01:03:56,020 --> 01:03:58,510 i de sidste 15 minutter. 1387 01:03:58,510 --> 01:03:59,930 Vi vågne, Michael? 1388 01:03:59,930 --> 01:04:01,180 Du er vågen? 1389 01:04:01,180 --> 01:04:01,660 Godt. 1390 01:04:01,660 --> 01:04:03,760 Jeg ved ikke, hvis du sover med lukkede øjne. 1391 01:04:03,760 --> 01:04:05,800 Det ville være en vanskelig opgave. 1392 01:04:05,800 --> 01:04:07,180 >> Kommandolinjeargumenter. 1393 01:04:07,180 --> 01:04:10,430 Det er en måde at videregive oplysninger i et program. 1394 01:04:10,430 --> 01:04:12,780 Til sidst vil vi støder andre. 1395 01:04:12,780 --> 01:04:15,600 Men det væsentlige, vi kommer til at stoppe skriver int main (void), hvis vi ønsker at 1396 01:04:15,600 --> 01:04:16,720 tage nogle kommandolinjeargumenter. 1397 01:04:16,720 --> 01:04:19,850 Vi kommer til at skrive denne ting kaldet int main (int argc, 1398 01:04:19,850 --> 01:04:22,430 string argv, parentes. 1399 01:04:22,430 --> 01:04:23,710 Det er forvirrende. 1400 01:04:23,710 --> 01:04:26,070 Det er en masse af bogstaver, der ikke er i human engelsk, så vi kommer til at 1401 01:04:26,070 --> 01:04:27,680 pakke dem lige nu. 1402 01:04:27,680 --> 01:04:30,450 >> Argc står for argument count - 1403 01:04:30,450 --> 01:04:32,600 og igen, alle disse vil være tilgængelige online - 1404 01:04:32,600 --> 01:04:34,280 og det er antallet af argumenter. 1405 01:04:34,280 --> 01:04:37,940 Argv står for argumentet vektor og det er de argumenter, selv. 1406 01:04:37,940 --> 01:04:38,830 Det er en bred vifte af strenge. 1407 01:04:38,830 --> 01:04:40,880 Vi har faktisk set et array af strenge før dag. 1408 01:04:40,880 --> 01:04:44,390 Vi skabte en i sidste program, vi kodet. 1409 01:04:44,390 --> 01:04:45,720 >> Så her er et eksempel. 1410 01:04:45,720 --> 01:04:50,230 Jeg skriver. / Ohai CS50 sektion på min kommandolinje. 1411 01:04:50,230 --> 01:04:54,090 Argc i dette tilfælde er lig med 3.. 1412 01:04:54,090 --> 01:05:01,170 Argv beslag 0 er ohai, argv beslag 1 er CS50, argv beslag 2 er sektion. 1413 01:05:01,170 --> 01:05:05,160 Igen argc er antallet af argumenter, og til at rejse dig op lidt 1414 01:05:05,160 --> 01:05:08,710 bit, vi altid regne navnet på den funktion som det første argument. 1415 01:05:08,710 --> 01:05:12,350 Så i dette tilfælde, er der tre argumenter, navnet på funktionen 1416 01:05:12,350 --> 01:05:14,590 og så de to, som jeg har skrevet i. 1417 01:05:14,590 --> 01:05:18,900 >> Næste, vi kommer til at spare dem argumenter selv i argv. 1418 01:05:18,900 --> 01:05:22,690 Og igen, ligesom vi så før, vi gjorde dette i sidste program, vi kodet. 1419 01:05:22,690 --> 01:05:27,110 Du kan flytte gennem den vifte af argv og få de strenge. 1420 01:05:27,110 --> 01:05:28,830 Det er væsentligt, hvad vi gjorde ved slutningen af ​​vores sidste program. 1421 01:05:28,830 --> 01:05:33,190 Vi har plukket et tilfældigt navn, og derefter gik til navne beslag uanset og udskrives 1422 01:05:33,190 --> 01:05:34,580 ud strengen placeret der. 1423 01:05:34,580 --> 01:05:39,870 1424 01:05:39,870 --> 01:05:43,670 >> Oven på blot én array, fordi strenge selv er arrays, som 1425 01:05:43,670 --> 01:05:46,320 talte om, kan du få arrays af arrays, som er 1426 01:05:46,320 --> 01:05:48,530 væsentligt, hvad argv er. 1427 01:05:48,530 --> 01:05:51,370 En måde du kan tænke dette er rækker og kolonner. 1428 01:05:51,370 --> 01:05:54,750 Jeg kan trække det lige nu. 1429 01:05:54,750 --> 01:05:57,370 Så argv - 1430 01:05:57,370 --> 01:05:58,630 det er ikke sletning. 1431 01:05:58,630 --> 01:05:59,880 Lad os trække under ohai. 1432 01:05:59,880 --> 01:06:09,320 1433 01:06:09,320 --> 01:06:12,490 >> Så hvis jeg skrev i, ohai CS50 sektion, Jeg har tænkt mig at afkorte 1434 01:06:12,490 --> 01:06:14,520 sektion for dette eksempel. 1435 01:06:14,520 --> 01:06:29,026 Men det væsentlige, min multi-dimensional array, ohai CS50, 1436 01:06:29,026 --> 01:06:32,200 vi kommer til at gøre sekt. 1437 01:06:32,200 --> 01:06:34,610 Så her kan jeg få adgang til - 1438 01:06:34,610 --> 01:06:40,930 1439 01:06:40,930 --> 01:06:45,710 hvis jeg bare give argv ét nummer - 1440 01:06:45,710 --> 01:06:46,390 dette er forkert. 1441 01:06:46,390 --> 01:06:49,020 Hvad er der galt i dette diagram? 1442 01:06:49,020 --> 01:06:49,690 >> STUDENT: Start på nul. 1443 01:06:49,690 --> 01:06:50,350 >> JASON HIRSCHHORN: Det skal starte med nul. 1444 01:06:50,350 --> 01:06:52,940 Jeg bør nok også rotere det, men da jeg allerede har tegnet det på, er jeg 1445 01:06:52,940 --> 01:06:54,120 kommer til at forlade det på der for nu. 1446 01:06:54,120 --> 01:06:55,160 Men det starter ved nul. 1447 01:06:55,160 --> 01:06:56,410 Det er rigtigt. 1448 01:06:56,410 --> 01:06:58,980 1449 01:06:58,980 --> 01:07:00,120 Undskyld, hvis det er lille. 1450 01:07:00,120 --> 01:07:01,370 Kan du fyre slags ser? 1451 01:07:01,370 --> 01:07:03,620 1452 01:07:03,620 --> 01:07:06,670 Så hvis jeg gør argv 0, jeg vil få alle ohai. 1453 01:07:06,670 --> 01:07:08,555 Hvis jeg gør argv 1, vil jeg få alle CS50. 1454 01:07:08,555 --> 01:07:10,720 Hvis jeg gør argv 2, vil jeg få alle sekt. 1455 01:07:10,720 --> 01:07:13,370 >> Men nu, hvor vi sagde, strygere er arrays selv. 1456 01:07:13,370 --> 01:07:19,740 Så hvad jeg kan gøre, er jeg kan behandle denne som en multi-dimensional array, I og 1457 01:07:19,740 --> 01:07:24,190 kan gøre noget i retning af argv 0, 0, hvilket giver mig bare 1458 01:07:24,190 --> 01:07:25,400 tegn 0. 1459 01:07:25,400 --> 01:07:28,760 Argv 0, 1, hvilket giver mig bare timer. 1460 01:07:28,760 --> 01:07:33,960 Argv 1, 3, hvilket giver mig bare denne 0 hernede i CS50. 1461 01:07:33,960 --> 01:07:37,690 >> Så fordi strings selv er arrays, vi sætter 1462 01:07:37,690 --> 01:07:38,540 at i en anden matrix. 1463 01:07:38,540 --> 01:07:42,850 Vi har nu array af arrays, og vi kan indekset i vores første array og 1464 01:07:42,850 --> 01:07:44,840 derefter indekset i vores andet array. 1465 01:07:44,840 --> 01:07:48,650 Og som du ville forvente, vi gør det ved blot at sætte de to - 1466 01:07:48,650 --> 01:07:51,760 vi gør de firkantede parenteser bare lige ved siden af ​​hinanden. 1467 01:07:51,760 --> 01:07:58,930 Så i dette eksempel, er argv 1 CS50 og argv 1, 2, som vi sagde, er kun 5. 1468 01:07:58,930 --> 01:08:02,120 Er der nogen har nogen spørgsmål om flerdimensionale arrays? 1469 01:08:02,120 --> 01:08:05,090 1470 01:08:05,090 --> 01:08:06,380 Du fyre laver awesome. 1471 01:08:06,380 --> 01:08:07,750 Sød. 1472 01:08:07,750 --> 01:08:11,980 >> Så vi har et andet program lige her, og dette er den sidste ting, vi er 1473 01:08:11,980 --> 01:08:13,690 kommer til at gøre lige nu. 1474 01:08:13,690 --> 01:08:18,160 Så jeg vil have dig til at skrive et program, der tager en brugers fulde navn, to og kun 1475 01:08:18,160 --> 01:08:21,649 to kommandolinjeargumenter, og endelig, udskrive en hilsen til 1476 01:08:21,649 --> 01:08:24,180 bruger, der omfatter deres fornavn. 1477 01:08:24,180 --> 01:08:27,800 Så hvorfor tager du ikke tre eller fire minutter til at gøre dette, og så vil vi gå 1478 01:08:27,800 --> 01:08:29,870 over det som en gruppe, og så vil vi wrap up? 1479 01:08:29,870 --> 01:09:44,189 1480 01:09:44,189 --> 01:09:48,084 >> Og igen, her når vi siger tage en brugerens fulde navn pr beskrivelsen 1481 01:09:48,084 --> 01:09:54,473 af dette problem, bør det være kommando line argumenter ikke bruger får streng. 1482 01:09:54,473 --> 01:09:55,450 Ja, Marcus? 1483 01:09:55,450 --> 01:09:58,260 >> STUDENT: Så når du siger to kommando linie argumenter, er at ud over 1484 01:09:58,260 --> 01:10:00,000 . det / løbe - eller 1485 01:10:00,000 --> 01:10:02,980 >> JASON HIRSCHHORN: Godt spørgsmål. 1486 01:10:02,980 --> 01:10:05,995 Do, herunder. / Run, tre kommandolinjeargumenter. 1487 01:10:05,995 --> 01:10:08,550 1488 01:10:08,550 --> 01:10:11,320 Eller inklusive. / Personlig, i denne sag, da det er den 1489 01:10:11,320 --> 01:10:12,360 navnet på denne fil. 1490 01:10:12,360 --> 01:10:13,300 Så argc ville være tre. 1491 01:10:13,300 --> 01:10:19,480 Men jeg vil kun to argumenter givet til programmet. 1492 01:10:19,480 --> 01:10:20,400 Jeg skal præcisere, at. 1493 01:10:20,400 --> 01:10:23,380 Jeg vil foretage denne ændring, før jeg sender disse og sende dem til jer. 1494 01:10:23,380 --> 01:10:32,747 1495 01:10:32,747 --> 01:10:34,740 >> STUDENT: Hvad hvis du har et mellemnavn? 1496 01:10:34,740 --> 01:10:36,800 >> JASON HIRSCHHORN: Hvis du har et mellemnavn navn, du er ude af lykke. 1497 01:10:36,800 --> 01:10:38,050 Undskyld. 1498 01:10:38,050 --> 01:10:40,320 1499 01:10:40,320 --> 01:10:43,744 Eller hvis du kun gå af Shakira, du også ud af held. 1500 01:10:43,744 --> 01:10:55,672 1501 01:10:55,672 --> 01:10:56,425 Ja? 1502 01:10:56,425 --> 01:11:00,760 >> STUDENT: Så når folk ikke har cs50.h, de definerer argv 1503 01:11:00,760 --> 01:11:03,450 som char stjerne argv? 1504 01:11:03,450 --> 01:11:05,160 Eller er det stadig kaldes string argv? 1505 01:11:05,160 --> 01:11:07,430 >> JASON HIRSCHHORN: Ja. 1506 01:11:07,430 --> 01:11:10,480 Så streng, vi igen maske over, hvad præcis der sker der. 1507 01:11:10,480 --> 01:11:14,040 Det kommer til at blive pakket ud måske på onsdag, snart, men. 1508 01:11:14,040 --> 01:11:16,380 Det er ligesom støttehjul. 1509 01:11:16,380 --> 01:11:18,370 Fordi væsentlige, det er det samme. 1510 01:11:18,370 --> 01:11:37,040 1511 01:11:37,040 --> 01:11:42,560 >> Så lad os tage et minut til at programmere dette, og så vil vi gå over 1512 01:11:42,560 --> 01:11:45,130 det som en gruppe og derefter som jeg sagde, wrap up. 1513 01:11:45,130 --> 01:11:47,770 Og jeg tror, ​​de er stadig ekstra slik, så du fyre vil forhåbentlig tage 1514 01:11:47,770 --> 01:11:49,790 det, eller skal du tage det. 1515 01:11:49,790 --> 01:12:20,380 1516 01:12:20,380 --> 01:12:22,560 >> Undskyld hvis du stadig skriver, men jeg ønsker at dykke i, og vi 1517 01:12:22,560 --> 01:12:24,010 kan afslutte det sammen. 1518 01:12:24,010 --> 01:12:30,470 Så jeg har skrevet i, # include cs50.h, # include stdio.h. 1519 01:12:30,470 --> 01:12:33,970 int main (void), klammeparentes, krøllet klampe, inde tre linjer 1520 01:12:33,970 --> 01:12:38,760 pseudokode, tage en brugers fulde navn, to og kun to kommandolinje 1521 01:12:38,760 --> 01:12:42,670 argumenter, udskrive en hilsen til bruger, der omfatter deres fornavn. 1522 01:12:42,670 --> 01:12:45,810 >> Så den første, tage en brugers fulde navn. 1523 01:12:45,810 --> 01:12:47,290 Hvem kan hjælpe mig tage en brugers fulde navn? 1524 01:12:47,290 --> 01:12:50,882 1525 01:12:50,882 --> 01:12:52,780 Hvordan gør jeg, at en del? 1526 01:12:52,780 --> 01:12:57,685 1527 01:12:57,685 --> 01:12:59,500 Vidste du fyre gøre det første del? 1528 01:12:59,500 --> 01:13:02,587 1529 01:13:02,587 --> 01:13:03,894 Tag en brugers fulde navn. 1530 01:13:03,894 --> 01:13:05,860 Tja, for at den ene kommandolinje argument, hvad skal jeg skrive? 1531 01:13:05,860 --> 01:13:09,624 Hvad skal jeg ændre på min funktion erklæring? 1532 01:13:09,624 --> 01:13:11,140 >> STUDENT: Du ønsker ikke det at være ugyldig længere. 1533 01:13:11,140 --> 01:13:11,410 >> JASON HIRSCHHORN: Præcis. 1534 01:13:11,410 --> 01:13:12,385 Jeg ønsker ikke at være ugyldig. 1535 01:13:12,385 --> 01:13:13,630 Hvad skal jeg have det at være? 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: Bracket, beslag. 1541 01:13:19,705 --> 01:13:20,070 >> JASON HIRSCHHORN: Bracket, konsol. 1542 01:13:20,070 --> 01:13:21,780 Det er helt rigtigt, og det er faktisk, hvordan jeg har tænkt mig at få 1543 01:13:21,780 --> 01:13:22,820 en brugers fulde navn. 1544 01:13:22,820 --> 01:13:24,070 De kommer til at sætte det i der. 1545 01:13:24,070 --> 01:13:27,720 1546 01:13:27,720 --> 01:13:28,780 Så man er færdig. 1547 01:13:28,780 --> 01:13:30,780 Så nu vil jeg to og kun to kommandolinjeargumenter. 1548 01:13:30,780 --> 01:13:35,065 Så Noah, hvad en måde jeg kan kontrollere antallet af kommandoen 1549 01:13:35,065 --> 01:13:36,315 line argumenter, jeg har? 1550 01:13:36,315 --> 01:13:39,676 1551 01:13:39,676 --> 01:13:40,725 >> STUDENT: Du gør en if-sætning. 1552 01:13:40,725 --> 01:13:42,270 >> JASON HIRSCHHORN: Hvis der erklæring, nøjagtigt. 1553 01:13:42,270 --> 01:13:44,830 Hvad ønsker jeg som den tilstand? 1554 01:13:44,830 --> 01:13:48,370 >> STUDENT: Hvis der argc større end 3. 1555 01:13:48,370 --> 01:13:52,485 >> JASON HIRSCHHORN: Hvis argc er større end 3. 1556 01:13:52,485 --> 01:13:58,430 Hvis argc større end 3, hvad gør jeg? 1557 01:13:58,430 --> 01:13:59,400 >> STUDENT: Return 1.. 1558 01:13:59,400 --> 01:14:01,856 >> JASON HIRSCHHORN: Tilbage 1.. 1559 01:14:01,856 --> 01:14:04,050 Vil det sikre, at jeg har to og kun to? 1560 01:14:04,050 --> 01:14:07,280 1561 01:14:07,280 --> 01:14:07,820 >> STUDENT: Nej 1562 01:14:07,820 --> 01:14:13,110 Hvis argc er større end 3 og mindre end 2. 1563 01:14:13,110 --> 01:14:17,770 >> JASON HIRSCHHORN: Hvis argc er større end 3 og argc er mindre end 2. 1564 01:14:17,770 --> 01:14:21,540 Hvad er en måde jeg kan skrive det på bare én linje, eller uden at bruge det 1565 01:14:21,540 --> 01:14:23,890 og Boolean operatør? 1566 01:14:23,890 --> 01:14:25,942 >> STUDENT: Det er ikke lig med 2. 1567 01:14:25,942 --> 01:14:28,790 >> JASON HIRSCHHORN: Hvis argc er ikke lig med 2. 1568 01:14:28,790 --> 01:14:29,260 Præcis. 1569 01:14:29,260 --> 01:14:34,890 Så hvis argc er ikke lig med 2, at vil give mig dette program, 1570 01:14:34,890 --> 01:14:37,250 personlig, når jeg kører det, og der vil give mig, hvor mange 1571 01:14:37,250 --> 01:14:38,740 kommandolinjeargumenter? 1572 01:14:38,740 --> 01:14:42,110 Hvor mange vil jeg tjekke for? 1573 01:14:42,110 --> 01:14:42,370 >> Undskyld. 1574 01:14:42,370 --> 01:14:43,400 Lad mig omformulere det. 1575 01:14:43,400 --> 01:14:46,620 Hvis argc = 2, hvor mange ting gjorde brugeren skriver ind i den linje? 1576 01:14:46,620 --> 01:14:47,500 >> STUDENT: One. 1577 01:14:47,500 --> 01:14:49,120 >> JASON HIRSCHHORN: Blot én. 1578 01:14:49,120 --> 01:14:50,430 Så før, du havde ret, Noah. 1579 01:14:50,430 --> 01:14:52,192 Hvad skal jeg faktisk nødt til at sætte der? 1580 01:14:52,192 --> 01:14:53,640 >> STUDENT: Det svarer 3.. 1581 01:14:53,640 --> 01:14:55,970 >> JASON HIRSCHHORN: argc ikke er lig 3.. 1582 01:14:55,970 --> 01:15:00,250 Jeg ønsker at være lig 3, fordi jeg vil personlig plus de to andre. 1583 01:15:00,250 --> 01:15:02,560 Så hvis argc ikke gør lige 3 tilbage 1. 1584 01:15:02,560 --> 01:15:04,475 Hvorfor sagde du det tilbage 1? 1585 01:15:04,475 --> 01:15:06,180 >> STUDENT: Fordi det betyder, at det er forkert. 1586 01:15:06,180 --> 01:15:08,420 >> JASON HIRSCHHORN: Det betyder, at det er forkert, Og hvad er det kommer til at gøre? 1587 01:15:08,420 --> 01:15:10,360 >> STUDENT: Re-bede brugeren. 1588 01:15:10,360 --> 01:15:11,940 >> JASON HIRSCHHORN: Det kommer til at holde op programmet, så det vil have til at køre 1589 01:15:11,940 --> 01:15:14,520 igen, men vi har ikke noget her for at bede om dem igen. 1590 01:15:14,520 --> 01:15:14,840 Jeg bad ikke om det. 1591 01:15:14,840 --> 01:15:15,990 Så det er helt rigtigt. 1592 01:15:15,990 --> 01:15:17,680 Retur 1 bare afslutter programmet. 1593 01:15:17,680 --> 01:15:18,520 Store. 1594 01:15:18,520 --> 01:15:21,600 >> Og udskrive en hilsen til brugeren der omfatter deres fornavn. 1595 01:15:21,600 --> 01:15:24,010 Hvordan kan jeg gøre det? 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: "Hej 1602 01:15:31,600 --> 01:15:33,210 >> JASON HIRSCHHORN: "Hej 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: Undskyld? 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: Klammer 1.. 1614 01:15:50,190 --> 01:15:51,230 >> JASON HIRSCHHORN: Kantede parenteser? 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: Og) semikolon. 1618 01:15:55,850 --> 01:15:58,290 >> JASON HIRSCHHORN:) semikolon. 1619 01:15:58,290 --> 01:16:00,250 Lad os køre dette. 1620 01:16:00,250 --> 01:16:03,730 Foretag personlig. 1621 01:16:03,730 --> 01:16:06,392 . / Personlig. 1622 01:16:06,392 --> 01:16:07,420 Det bare holde op. 1623 01:16:07,420 --> 01:16:10,390 Hvorfor skulle det holde op? 1624 01:16:10,390 --> 01:16:11,310 >> STUDENT: Du har ikke sat nogen argumenter. 1625 01:16:11,310 --> 01:16:12,560 >> JASON HIRSCHHORN: Jeg gjorde ikke sætte eventuelle argumenter i. 1626 01:16:12,560 --> 01:16:16,360 1627 01:16:16,360 --> 01:16:16,920 Ser godt ud. 1628 01:16:16,920 --> 01:16:18,130 Du fyre naglet det. 1629 01:16:18,130 --> 01:16:22,420 Så igen, gik ind i argv og du kontrolleres i begyndelsen argc. 1630 01:16:22,420 --> 01:16:24,390 Det er to vigtige ting at huske. 1631 01:16:24,390 --> 01:16:29,250 Så i vores sidste to minutter før vi forlader, vil vi ikke komme til Pset to, men 1632 01:16:29,250 --> 01:16:33,585 som jeg sagde, hvis du ønsker at bo efter i 10 minutter, ville jeg han glad for at gå 1633 01:16:33,585 --> 01:16:35,710 over med jer logikken for disse problemområder sæt. 1634 01:16:35,710 --> 01:16:37,930 Vi havde en masse at dække i dag så jeg ikke komme til dem. 1635 01:16:37,930 --> 01:16:39,820 Generelt, jeg kan lide at medtage at der ved udgangen. 1636 01:16:39,820 --> 01:16:42,150 Så hvis du ønsker at holde sig omkring, holde sig rundt i 10 minutter. 1637 01:16:42,150 --> 01:16:42,990 Vi vil gøre det. 1638 01:16:42,990 --> 01:16:46,250 >> Så, som jeg nævnte i starten, Pset nul og én, vi får at 1639 01:16:46,250 --> 01:16:48,040 tilbagemeldinger tilbage til dig så snarest muligt. 1640 01:16:48,040 --> 01:16:51,260 Målet er at få Pset en feedback, kommentarerne del, 1641 01:16:51,260 --> 01:16:52,850 før Pset to er forfalden. 1642 01:16:52,850 --> 01:16:56,730 Så hvis du har lavet nogle fejl eller stilistisk, kunne tingene blive bedre, 1643 01:16:56,730 --> 01:17:01,330 du har disse oplysninger, så du vil ikke gøre de samme ting i Pset to. 1644 01:17:01,330 --> 01:17:06,140 Og så i fremtiden, får du alle din Pset feedback og kommentarer 1645 01:17:06,140 --> 01:17:08,190 tilbage, før den næste er forfalden. 1646 01:17:08,190 --> 01:17:12,695 >> Endelig, hvis jeg kunne sætte i en anden stik til feedback. 1647 01:17:12,695 --> 01:17:13,935 Dette er dit første afsnit. 1648 01:17:13,935 --> 01:17:15,920 Det var min første sektion undervisning i år. 1649 01:17:15,920 --> 01:17:16,930 Derned. 1650 01:17:16,930 --> 01:17:19,800 Skriv ting, gode og dårlige, og jeg vil bruge det til at gøre 1651 01:17:19,800 --> 01:17:21,320 sektionen bedre næste gang. 1652 01:17:21,320 --> 01:17:24,870 Og sidst, igen, hvis du har brug noget, så lad mig det vide. 1653 01:17:24,870 --> 01:17:26,410 Jeg er mere end glad for at hjælpe jer. 1654 01:17:26,410 --> 01:17:28,420 Hvis du bare vil have slik, jeg vil have ekstra slik. 1655 01:17:28,420 --> 01:17:29,800 Jeg er glad for at bringe det til dig. 1656 01:17:29,800 --> 01:17:31,190 >> Dette vil være en fantastisk kursus. 1657 01:17:31,190 --> 01:17:34,900 Dette er en af, hvis ikke min favorit Selvfølgelig har jeg taget i hele mit liv, 1658 01:17:34,900 --> 01:17:37,220 og jeg håber, at det vil være, at vidunderligt for dig. 1659 01:17:37,220 --> 01:17:40,090 Så jeg ønsker at gøre alt i min magt at gøre det så fantastisk for dig. 1660 01:17:40,090 --> 01:17:46,590 Jeg har tænkt mig at sende en e-mail, hvis du er i min sektion eller Noa og 1661 01:17:46,590 --> 01:17:50,310 vil forsøge at planlægge med hver af jer en tid til at tjekke ind over 1662 01:17:50,310 --> 01:17:53,820 næste par uger, så jeg kan få en fornemmelse af, hvad din CS baggrunden er, 1663 01:17:53,820 --> 01:17:58,170 og det vil også hjælpe mig skræddersy disse sektioner passer bedre til dine behov. 1664 01:17:58,170 --> 01:17:59,740 Så det er hvad jeg har linet op. 1665 01:17:59,740 --> 01:18:02,260 Igen, jeg ser dig udenfor hvis du ønsker at være der. 1666 01:18:02,260 --> 01:18:03,700 Dette var uge to afsnit. 1667 01:18:03,700 --> 01:18:04,950 Tak fyrene så meget. 1668 01:18:04,950 --> 01:18:09,067