1 00:00:00,000 --> 00:00:11,375 2 00:00:11,375 --> 00:00:14,430 >> DAVID MALAN: Dette er CS50, og dette er starten på ugen en. 3 00:00:14,430 --> 00:00:17,930 Og hvad vi troede, vi ville gøre, er at trække sig tilbage tæppet af en anordning, som mange 4 00:00:17,930 --> 00:00:20,970 af jer sikkert har gået forbi nu i år, men måske aldrig helt 5 00:00:20,970 --> 00:00:22,280 vidst, hvad det er. 6 00:00:22,280 --> 00:00:26,000 Så denne enhed vil sandsynligvis se velkendt for de fleste af jer ved nu. 7 00:00:26,000 --> 00:00:32,972 >> [VIDEO AFSPIL] 8 00:00:32,972 --> 00:00:36,150 >> -A triumf matematiske og mekanisk færdighed er denne store nye 9 00:00:36,150 --> 00:00:39,120 automatisk regnemaskine på Harvard University. 10 00:00:39,120 --> 00:00:43,220 Indviklede problemer i matematik sætte gennem maskinen i kodet form på 11 00:00:43,220 --> 00:00:47,840 tape er nøjagtigt løses i et minut brøkdel af den tid, der kræves for 12 00:00:47,840 --> 00:00:49,090 menneskelig beregning. 13 00:00:49,090 --> 00:01:00,090 14 00:01:00,090 --> 00:01:04,080 >> Designet til at fremskynde alle former for matematisk og videnskabelig forskning, 15 00:01:04,080 --> 00:01:07,860 den gigantiske mekaniske hjerne vil arbejde for USA 16 00:01:07,860 --> 00:01:09,180 Flåde indtil krigens slutning. 17 00:01:09,180 --> 00:01:18,180 18 00:01:18,180 --> 00:01:18,600 >> [END VIDEOAFSPILNING] 19 00:01:18,600 --> 00:01:21,980 >> DAVID MALAN: Så det er hvad du ser i Science Center, som er der, hvor 20 00:01:21,980 --> 00:01:23,540 denne maskine er nu opstaldet. 21 00:01:23,540 --> 00:01:25,910 Du faktisk kun se en del af det. 22 00:01:25,910 --> 00:01:28,800 Kun en del er i øjeblikket på displayet, og det er en enhed kaldet 23 00:01:28,800 --> 00:01:31,970 Mark I, og det var hovedsagelig en virkelig enorme lommeregner. 24 00:01:31,970 --> 00:01:36,250 Det blev efterfulgt af Mark II, og det er fra Mark II, at vi faktisk 25 00:01:36,250 --> 00:01:39,210 få lidt af leksikon. 26 00:01:39,210 --> 00:01:43,780 >> Dette er den første registrerede tilfælde af noget du er ved at blive alt 27 00:01:43,780 --> 00:01:45,860 alt for bekendt med over løbet af semesteret - 28 00:01:45,860 --> 00:01:48,460 nemlig en fejl. 29 00:01:48,460 --> 00:01:52,030 Så det viste sig på et tidspunkt Mark II-enhed fungerer ikke 30 00:01:52,030 --> 00:01:55,930 ordentligt, og ved nærmere eftersyn, der faktisk var en fejl - et møl - 31 00:01:55,930 --> 00:01:56,910 at møl - 32 00:01:56,910 --> 00:01:57,610 indeni. 33 00:01:57,610 --> 00:02:03,130 Og lige siden har vi nævnt fejl i programmer som bugs. 34 00:02:03,130 --> 00:02:05,330 Så mere om det at komme. 35 00:02:05,330 --> 00:02:08,919 >> Apropos video så godt, hvis du ikke allerede ved, at CS50 er 36 00:02:08,919 --> 00:02:09,669 tydeligvis filmet. 37 00:02:09,669 --> 00:02:13,330 Forelæsningerne typisk gå op lige efter klasse i en slags pre-release 38 00:02:13,330 --> 00:02:17,240 uredigerede format, og derefter en dag eller to senere, vi udbudt en højere opløsning 39 00:02:17,240 --> 00:02:18,490 og højere kvalitet version. 40 00:02:18,490 --> 00:02:21,800 Du husker måske Vanessa, der havde formue på at spille med Google Glass, 41 00:02:21,800 --> 00:02:23,540 som jeg huskede at oplade denne gang. 42 00:02:23,540 --> 00:02:26,450 Så hvis du ønsker at komme op efter klassen og spille, de skal arbejde i dag. 43 00:02:26,450 --> 00:02:30,816 Og hvis du gerne vil se, hvad Vanessa oplevede den anden dag, hvad du vil se 44 00:02:30,816 --> 00:02:35,260 her - lad mig hæve lydstyrken her på min bærbare computer. 45 00:02:35,260 --> 00:02:35,690 >> [VIDEO AFSPIL] 46 00:02:35,690 --> 00:02:37,620 >> -Så lad mig kø dette er op. 47 00:02:37,620 --> 00:02:38,070 Ok. 48 00:02:38,070 --> 00:02:40,930 Så røre ved dette. 49 00:02:40,930 --> 00:02:41,720 Ok. 50 00:02:41,720 --> 00:02:43,470 OK, Glass. 51 00:02:43,470 --> 00:02:44,720 Optag en video. 52 00:02:44,720 --> 00:02:47,240 53 00:02:47,240 --> 00:02:48,640 >> Ok. 54 00:02:48,640 --> 00:02:50,446 Vanessa? 55 00:02:50,446 --> 00:02:50,870 >> [END VIDEOAFSPILNING] 56 00:02:50,870 --> 00:02:53,485 >> DAVID MALAN: Okay, så grunden at det ikke virker for de fleste af jer ved 57 00:02:53,485 --> 00:02:56,540 I slutningen af ​​klassen var fordi jeg fortsatte at optage en time af det 58 00:02:56,540 --> 00:02:59,505 optagelser peger på mig selv efter Jeg sætter brillerne ned. 59 00:02:59,505 --> 00:03:04,010 Så i dag, jeg vil lade dem ud, men tak dig til Vanessa for at være sådan en 60 00:03:04,010 --> 00:03:05,420 god sport. 61 00:03:05,420 --> 00:03:08,330 >> I mellemtiden, et par annonceringer inden vi mase dag. 62 00:03:08,330 --> 00:03:11,120 Så en, CS50 har en tradition for at gøre hvad vi kan for at forsøge at gøre en meget 63 00:03:11,120 --> 00:03:12,630 stor klasse føler mindre. 64 00:03:12,630 --> 00:03:16,640 Og mod herpå fleste hver fredag vi samles på en restaurant i 65 00:03:16,640 --> 00:03:20,160 pladsen, Fire and Ice, med 30 eller 40 af dine klassekammerater, mig selv, og nogle af 66 00:03:20,160 --> 00:03:22,520 lærerstaben, og vi bare har en meget afslappet frokost. 67 00:03:22,520 --> 00:03:26,280 Vi har ofte invitere venner fra industrien, alumni af klassen, alumni af 68 00:03:26,280 --> 00:03:30,340 college, virkelig bare at chatte hver anden op, tale om livet efter 69 00:03:30,340 --> 00:03:32,260 college, livet i college, og lignende. 70 00:03:32,260 --> 00:03:35,570 Så hvis du gerne vil deltage i dette første sådanne frokost denne fredag ​​på 71 00:03:35,570 --> 00:03:38,640 13:15, hoved til at URL på et tidspunkt. 72 00:03:38,640 --> 00:03:40,830 >> Pladsen er begrænset, så vi vil gøre først til mølle. 73 00:03:40,830 --> 00:03:43,880 Men vi vil gøre det igen på et tilbagevendende basis, så ikke at bekymre dig, hvis du ikke 74 00:03:43,880 --> 00:03:45,800 gør det i denne første parti. 75 00:03:45,800 --> 00:03:48,960 >> Nu, i forhold til de ressourcer, forudsat curricularly af kurset, 76 00:03:48,960 --> 00:03:51,500 der er en hel masse, og hvis du ikke har trukket op kursets hjemmeside 77 00:03:51,500 --> 00:03:54,310 allerede, navnlig under foredrag du opdage, at alt 78 00:03:54,310 --> 00:03:57,070 vi gjorde i sidste uge er der, både i video og en slags 79 00:03:57,070 --> 00:03:58,435 af elektronisk formular. 80 00:03:58,435 --> 00:04:01,210 Men ud over de videoer, vil du finde at der nu er fuldtekst 81 00:04:01,210 --> 00:04:03,290 transskriptioner, for eksempel, i hver forelæsning. 82 00:04:03,290 --> 00:04:08,260 >> Så hvis vi faktisk gå tilbage til denne skærm her med Vanessa og navigere 83 00:04:08,260 --> 00:04:12,010 til det nederste hjørne af skærmen, du opdage, at der faktisk, ikke for 84 00:04:12,010 --> 00:04:15,060 Fredagens forelæsning, men hvis vi går tilbage til Onsdag da denne funktion tager en 85 00:04:15,060 --> 00:04:17,870 par dage, vil du opdage, at du kan faktisk trække op, for bedre eller 86 00:04:17,870 --> 00:04:22,260 værre, hvert ord, som jeg eller en frivillig på scenen sagde. 87 00:04:22,260 --> 00:04:23,270 Og mere end netop det. 88 00:04:23,270 --> 00:04:25,700 Du kan faktisk søge det, kan du klik på nogen af ​​disse sætninger, hoppe 89 00:04:25,700 --> 00:04:29,250 til det punkt i videoen, mod alle og slutningen af ​​gøre materialet alle 90 00:04:29,250 --> 00:04:30,620 mere sejlbar. 91 00:04:30,620 --> 00:04:34,550 >> Men hvis du hellere vil ikke følge det så detaljeret, vil du finde, for 92 00:04:34,550 --> 00:04:39,710 Eksempelvis denne lille menu her 1.5x hastighed, 2x hastighed eller i f jeg allerede 93 00:04:39,710 --> 00:04:42,100 tale for hurtigt for dig, 0,75 x hastighed. 94 00:04:42,100 --> 00:04:45,190 Så indser alt dette er tilgængelige der for dig. 95 00:04:45,190 --> 00:04:49,120 >> Men ud over dette, til foredrag, indser at vi også gør disse ressourcer 96 00:04:49,120 --> 00:04:50,530 tilgængelige samt. 97 00:04:50,530 --> 00:04:55,240 Slides, eksempel kode, noget, som jeg gøre på scenen eller i forvejen klassen, 98 00:04:55,240 --> 00:04:58,160 vi vil sende der, så du kan spille sammen hjemme eller på Sanders. 99 00:04:58,160 --> 00:05:01,280 Men hvad vi også troede, vi ville gøre dette år for første gang er også 100 00:05:01,280 --> 00:05:04,240 give dig walkthroughs af disse eksempler. 101 00:05:04,240 --> 00:05:08,120 I stigende grad som jeg har afspejlet på Værdien af ​​CS50 foredrag, har jeg begyndt 102 00:05:08,120 --> 00:05:11,450 at sætte spørgsmålstegn ved, hvor nyttigt det er for du fyre til at sidde der, for mig at stå 103 00:05:11,450 --> 00:05:15,020 her og for mig at tale på dig, især da det materiale, 104 00:05:15,020 --> 00:05:17,020 eksempler, får mere komplekse. 105 00:05:17,020 --> 00:05:20,790 Fordi uvægerligt, efter lidt antallet af minutter, nogen vil zone ud, og 106 00:05:20,790 --> 00:05:24,310 så du går glip af nogle vigtige indblik i nogle eksempel, og så er du hovedsageligt 107 00:05:24,310 --> 00:05:27,720 gået for den resterende del af klassen, hvilket ikke er den bedste udnyttelse af 108 00:05:27,720 --> 00:05:31,330 din tid, eller, virkelig, vores kollektivt som en klasse. 109 00:05:31,330 --> 00:05:33,920 >> Og så, hvad vi troede, vi ville forsøge at gøre, navnlig for nogle af de mere 110 00:05:33,920 --> 00:05:37,700 komplekse eksempler, som jeg ikke kan gøre retfærdighed til i klassen, at vi måske ikke 111 00:05:37,700 --> 00:05:41,560 har tid til i klassen, eller du kan bare zone i løbet, er vi producerer 112 00:05:41,560 --> 00:05:45,500 en række walkthroughs disse eksempler, så hvis du går til, for 113 00:05:45,500 --> 00:05:51,410 Eksempelvis sidste fredag ​​videosiden her under eksempler, vil du se, at 114 00:05:51,410 --> 00:05:54,050 for fredag, er der nu dette linke til walkthroughs. 115 00:05:54,050 --> 00:05:55,780 Og formatet af disse vil ændre sig over tid. 116 00:05:55,780 --> 00:05:58,080 For nu, bruger vi en simpel YouTube afspilningsliste. 117 00:05:58,080 --> 00:06:00,980 >> Men hvad jeg gjorde med vores produktion team bagefter var gå igennem hver 118 00:06:00,980 --> 00:06:04,480 og hver eneste af disse eksempler igen, forhåbentlig pege i meget større 119 00:06:04,480 --> 00:06:07,550 klarhed præcis, hvad grillbarer kunne eller burde være fra hver. 120 00:06:07,550 --> 00:06:10,560 Så du kan finde, for eksempel, fra sidste uge, alle scratch eksempler 121 00:06:10,560 --> 00:06:12,950 Vi gik gennem er færdig lineært i denne mode. 122 00:06:12,950 --> 00:06:15,840 Så velkommen til at engagere sig eller ej engagere sig i dette materiale. 123 00:06:15,840 --> 00:06:19,140 Virkelig et tema for denne særlige kursus er, at der er nok mere 124 00:06:19,140 --> 00:06:21,870 i vejen for ressourcer, end du kunne muligvis opsuge over 125 00:06:21,870 --> 00:06:23,260 løbet af et semester. 126 00:06:23,260 --> 00:06:23,980 >> Men det er bevidst. 127 00:06:23,980 --> 00:06:26,990 Det er meningen at være så, at du som enkelte elever kan selv vælge 128 00:06:26,990 --> 00:06:28,070 baseret på din læringsstil. 129 00:06:28,070 --> 00:06:29,790 Så hvis forelæsninger virker for dig, stor. 130 00:06:29,790 --> 00:06:31,090 Hvis dele arbejde for dig, stor. 131 00:06:31,090 --> 00:06:32,930 Hvis walkthroughs arbejder for dig bedre, stor. 132 00:06:32,930 --> 00:06:36,980 Det er virkelig vil være op til dig at vælge hvilke ressourcer fungerer bedst for dig. 133 00:06:36,980 --> 00:06:40,380 >> Endelig, takket være en elev af Selvfølgelig tilbyder vi også en kanonisk 134 00:06:40,380 --> 00:06:41,890 sæt skriftklog noter. 135 00:06:41,890 --> 00:06:46,270 Så snarere end at have jer hoveder ned i foredrag skrible ned 136 00:06:46,270 --> 00:06:49,880 ting, der kommer op i klassen, vi, de personale, vil give dig, hvad vi 137 00:06:49,880 --> 00:06:53,410 føler er en kanonisk sæt noter til frigøre dig af denne distraktion, således at 138 00:06:53,410 --> 00:06:57,150 hvis du er her og engageret, er du virkelig engageret med, hvad der foregår, 139 00:06:57,150 --> 00:07:00,110 med dine klassekammerater gør op på scene, med hvad der er på skærmen, 140 00:07:00,110 --> 00:07:03,570 og ikke blot at skrive ned ordret hvad der skete at have været sagt. 141 00:07:03,570 --> 00:07:06,730 Så realisere alle disse ressourcer er tilgængelige for dig. 142 00:07:06,730 --> 00:07:09,210 >> Sektionering, som svar på en FAQ, vil begynde denne onsdag. 143 00:07:09,210 --> 00:07:12,050 Vi hovedsagelig vente til efter de fleste andre klasser er færdig, så vi kan 144 00:07:12,050 --> 00:07:14,420 minimere antallet af ændringer at vi er nødt til at gøre. 145 00:07:14,420 --> 00:07:20,010 Men kommer op i denne weekend, startende Søndag, vil være en én gang forekomst af 146 00:07:20,010 --> 00:07:21,360 hvad vi kalder super sektioner. 147 00:07:21,360 --> 00:07:23,990 Disse vil blive filmet til dem, der ikke kan deltage og i det væsentlige, at 148 00:07:23,990 --> 00:07:28,880 kursets hoveder vil gå os gennem nogle af C-delen af ​​selvfølgelig, 149 00:07:28,880 --> 00:07:32,330 mod en ende af problemet sæt ene, som vil være vores første baseret C 150 00:07:32,330 --> 00:07:33,140 Problemet sæt. 151 00:07:33,140 --> 00:07:36,240 Og disse vil bare være valgfri sektioner i forventning om, hvad der vil 152 00:07:36,240 --> 00:07:40,010 bliver tilbagevendende førte sektioner af kursets 50 plus 153 00:07:40,010 --> 00:07:41,600 undervisning stipendiater ugentligt. 154 00:07:41,600 --> 00:07:45,130 På søndage eller mandage eller tirsdage, vi har 90 minutter sektioner i en meget 155 00:07:45,130 --> 00:07:48,020 traditionel forstand, hvilket vil blive muligheder for hands on og mere 156 00:07:48,020 --> 00:07:50,800 intime gennemgang af kursets materiale. 157 00:07:50,800 --> 00:07:53,820 >> Uden videre, så lad mig introducere kursets hoveder, der er 158 00:07:53,820 --> 00:07:57,380 bag kulisserne med mig, gør alt ske. 159 00:07:57,380 --> 00:08:02,670 Hvis de her i dag kunne slutte mig, Rob og Lauren og Josef og Lucas, alt 160 00:08:02,670 --> 00:08:05,770 af dem har været med i selvfølgelig i nogen tid. 161 00:08:05,770 --> 00:08:08,450 RJ er det tredje medlem af vores team. 162 00:08:08,450 --> 00:08:11,720 Han kunne ikke være her i dag, men han bad mig om at vise et billede af ham. 163 00:08:11,720 --> 00:08:14,600 Jeg er ikke sikker på, han ønskede denne en, men der er han. 164 00:08:14,600 --> 00:08:18,350 >> Og lad mig lige give holdet til at sige goddag og præsentere sig selv, så 165 00:08:18,350 --> 00:08:22,260 du kommer til at kende dem så godt som dit egen undervisning stipendiat udtrykket. 166 00:08:22,260 --> 00:08:23,490 >> LAUREN CARVALHO: Hej. 167 00:08:23,490 --> 00:08:24,740 Mit navn er Lauren Carvalho. 168 00:08:24,740 --> 00:08:26,900 Jeg er bosiddende tutor i Leverett House. 169 00:08:26,900 --> 00:08:31,120 Jeg er også super glade for at være en head TV for CS50 dette år. 170 00:08:31,120 --> 00:08:35,830 >> CS50 er en meget udfordrende klasse samt som en meget stor klasse, hvis så du 171 00:08:35,830 --> 00:08:38,780 har nogen bekymringer, hvis du har lyst du falder bagud, er du velkommen til 172 00:08:38,780 --> 00:08:43,840 nå ud til nogen af ​​os på heads@cs50.het eller til mig, hvis du vil 173 00:08:43,840 --> 00:08:46,330 lide at lege med min gyldne retriever hvalp. 174 00:08:46,330 --> 00:08:48,060 Her er Lucas. 175 00:08:48,060 --> 00:08:48,560 >> LUCAS FREITAS: Hey, gutter. 176 00:08:48,560 --> 00:08:49,330 Mit navn er Lucas Freitas. 177 00:08:49,330 --> 00:08:51,880 Jeg er en junior [uhørlig] 178 00:08:51,880 --> 00:08:53,630 datalogi og lingvistik. 179 00:08:53,630 --> 00:08:58,030 Jeg er faktisk fra Brasilien, og jeg har også realisere østasiatiske studier. 180 00:08:58,030 --> 00:09:00,740 Så hvis du har spørgsmål om datalogi eller sprog eller 181 00:09:00,740 --> 00:09:01,870 noget, bare lad mig det vide. 182 00:09:01,870 --> 00:09:05,630 Eller CS50, især. 183 00:09:05,630 --> 00:09:05,880 >> JOSEPH ONG: Hej. 184 00:09:05,880 --> 00:09:06,265 Jeg er Josef. 185 00:09:06,265 --> 00:09:11,360 Jeg er en senior studere computer videnskab i Elliott House. 186 00:09:11,360 --> 00:09:13,500 Så lad os se. 187 00:09:13,500 --> 00:09:16,530 Du vil se mig omkring transporterer en af ​​disse enorme kameraer. 188 00:09:16,530 --> 00:09:21,110 Jeg er den bosiddende personale fotograf for 50 så godt, og de studerende ofte 189 00:09:21,110 --> 00:09:25,140 sommetider forveksler mig med en asiatisk turist. 190 00:09:25,140 --> 00:09:29,220 >> Så hvis du ser mig med et kamera, ikke løbe væk. 191 00:09:29,220 --> 00:09:32,960 Bare smile og vær ikke genert. 192 00:09:32,960 --> 00:09:34,870 Og jeg håber du nyder 50 år. 193 00:09:34,870 --> 00:09:38,690 Jeg nød det meget, da jeg tog det, og det er derfor jeg har TFing for 194 00:09:38,690 --> 00:09:41,164 disse tre år. 195 00:09:41,164 --> 00:09:41,570 >> ROB BOWDEN: Hej. 196 00:09:41,570 --> 00:09:42,550 Jeg Rob. 197 00:09:42,550 --> 00:09:46,240 Dette er min fjerde semester med CS50. 198 00:09:46,240 --> 00:09:47,430 Jeg har netop uddannet i maj. 199 00:09:47,430 --> 00:09:49,650 Jeg var i Kirkland. 200 00:09:49,650 --> 00:09:53,670 Jeg er spændt på dette semester og jeg håber du er også. 201 00:09:53,670 --> 00:09:56,650 >> DAVID MALAN: Tak til dette års hoveder, samt til RJ så godt. 202 00:09:56,650 --> 00:09:59,910 203 00:09:59,910 --> 00:10:02,310 >> Så et par afsluttende bemærkninger om ressourcer. 204 00:10:02,310 --> 00:10:04,090 Én, s. sæt 0 er allerede oppe. 205 00:10:04,090 --> 00:10:06,620 Denne ene eksisterer kun i standard udgave, som er beregnet til 206 00:10:06,620 --> 00:10:07,610 helhed af klassen. 207 00:10:07,610 --> 00:10:10,940 Begyndende med p sæt 1, vil der være hacker udgaver af de fleste problem-apparater, 208 00:10:10,940 --> 00:10:14,660 som igen vil dække materiale med en smule mere af en udfordring, mens 209 00:10:14,660 --> 00:10:17,400 stadig rører på nogle af de samme emner. 210 00:10:17,400 --> 00:10:21,400 Må tage et kig på kursets hjemmeside for denne specifikation p sæt 0. 211 00:10:21,400 --> 00:10:25,140 >> Kontortid, også vil begynde i denne uge, aften, i morgen, onsdag, 212 00:10:25,140 --> 00:10:27,670 og torsdag i forskellige spisning haller på campus. 213 00:10:27,670 --> 00:10:32,140 Tjek cs50.net/ohs til kontoret timer for kurset, og indse dette 214 00:10:32,140 --> 00:10:34,430 vil være meget afslappet muligheder, bestemt ved starten af 215 00:10:34,430 --> 00:10:37,190 semester, til at komme forbi med din laptop under hjernens pause. 216 00:10:37,190 --> 00:10:40,500 Medbring nogle venner og chat op kursets TFs og CA med eventuelle 217 00:10:40,500 --> 00:10:41,750 spørgsmål, du måtte have. 218 00:10:41,750 --> 00:10:45,320 >> Og jeg kan ikke understrege nok, selv for scratch og opgavesæt 0, der 219 00:10:45,320 --> 00:10:47,110 virkelig ingen dumme spørgsmål. 220 00:10:47,110 --> 00:10:51,200 Der er ingen studerende for ubehageligt at stille spørgsmål. 221 00:10:51,200 --> 00:10:53,940 Du er velkommen til at drage fordel af denne ressource. 222 00:10:53,940 --> 00:10:56,430 Det vil være der recurringly hele semestret 223 00:10:56,430 --> 00:10:57,840 som vil CS50 Diskuter. 224 00:10:57,840 --> 00:11:00,900 Dette er kurset online diskussion fora på denne adresse der. 225 00:11:00,900 --> 00:11:04,490 >> Hvad vil vi også gøre i undervisningen er også overvåge dette, takket være den 226 00:11:04,490 --> 00:11:05,580 kursets lærerteam. 227 00:11:05,580 --> 00:11:08,390 Og så hvis du har et spørgsmål i løbet af foredrag, fordi jeg sagde noget 228 00:11:08,390 --> 00:11:11,690 dårligt eller slet ikke, med alle midler, så spørg at i det virkelige tid, hvis du har din 229 00:11:11,690 --> 00:11:15,700 bærbare computer eller telefon på hjemmesiden, og vi vil gøre vores bedste i nær realtid til 230 00:11:15,700 --> 00:11:17,410 reagere på det. 231 00:11:17,410 --> 00:11:21,500 >> Er der nogen spørgsmål om CS 50? 232 00:11:21,500 --> 00:11:23,930 Så en sidste noter af mine. 233 00:11:23,930 --> 00:11:25,530 At spørgsmålet om SAT unsat. 234 00:11:25,530 --> 00:11:28,550 Som du færdiggør dit studie-kort, hvis du ikke allerede indse, at de 235 00:11:28,550 --> 00:11:32,360 overordnet vision for SAT unsat, til rådighed for alle studerende, er virkelig 236 00:11:32,360 --> 00:11:36,350 at hjælpe med at tage brodden af ​​et kursus, som dette, så at sige, så hvis du 237 00:11:36,350 --> 00:11:40,510 find dig selv sent om natten, 02:00, 03:00, virkelig banke hovedet op imod 238 00:11:40,510 --> 00:11:43,960 væggen, hvor du ved, du er 99% af vejen derhen til ende, men du 239 00:11:43,960 --> 00:11:47,510 har så mange andre ting at gøre, Jeg tror, ​​en bedre udnyttelse, ofte af 240 00:11:47,510 --> 00:11:51,260 studerendes tid er at faktisk gå videre til de andre ting, så du kan 241 00:11:51,260 --> 00:11:52,780 optimere din tid hele vejen rundt. 242 00:11:52,780 --> 00:11:56,950 Og SAT unsat er en mekanisme, hvorigennem du kan finde trøst i det faktum, 243 00:11:56,950 --> 00:12:00,530 at 99% af vejen er der stadig temmelig darn god. 244 00:12:00,530 --> 00:12:03,790 >> Tilsvarende også, hvis du er kommet ind i Selvfølgelig uden forudgående baggrund eller 245 00:12:03,790 --> 00:12:07,960 ikke nær så meget baggrund, som du mener, at dine klassekammerater kan have, true 246 00:12:07,960 --> 00:12:13,210 eller falsk, indse, at dette er en mulighed for at få dine hænder beskidte 247 00:12:13,210 --> 00:12:16,590 med kurset, sætte dine tæer i vand, så at sige, ligesom jeg selv 248 00:12:16,590 --> 00:12:18,500 gjorde år siden med bestået / ikke bestået. 249 00:12:18,500 --> 00:12:21,850 Som jeg sagde i sidste uge, havde dette kursus, ligesom andre ikke været tilgængelig 250 00:12:21,850 --> 00:12:25,090 bestået / ikke bestået på det tidspunkt, ville jeg sandsynligvis ikke nogensinde har forstærket mund i 251 00:12:25,090 --> 00:12:28,310 klassen, selvom jeg gjorde, fem uger senere ændre min mening, som du 252 00:12:28,310 --> 00:12:32,400 kan lige så godt, og skifte over til eller fra bogstav gradueret status. 253 00:12:32,400 --> 00:12:32,990 >> Ok. 254 00:12:32,990 --> 00:12:37,380 Så vi kiggede på ting som dette på Fredag, og vi er meget hurtigt at gå 255 00:12:37,380 --> 00:12:39,890 overgang til noget, ser mere kryptiske dag. 256 00:12:39,890 --> 00:12:42,300 Men det er ikke desto mindre samme grundtanke. 257 00:12:42,300 --> 00:12:45,540 Hvad var den generelle term, som vi bruges til at beskrive en brik 258 00:12:45,540 --> 00:12:47,690 der lignede det? 259 00:12:47,690 --> 00:12:48,510 >> Så en erklæring. 260 00:12:48,510 --> 00:12:50,020 Og du kan kalde dette en række ting. 261 00:12:50,020 --> 00:12:51,870 Men vi vil bare kalde det en erklæring, og en erklæring 262 00:12:51,870 --> 00:12:53,200 bare fortæller programmet - 263 00:12:53,200 --> 00:12:55,290 eller i tilfælde af Scratch, sprite - 264 00:12:55,290 --> 00:12:56,520 at gøre noget. 265 00:12:56,520 --> 00:12:58,430 Sig goddag i dette tilfælde. 266 00:12:58,430 --> 00:13:01,450 >> Noget som dette, vi stedet kaldes hvad? 267 00:13:01,450 --> 00:13:03,560 Yeah, så en boolesk udtryk. 268 00:13:03,560 --> 00:13:07,380 En boolesk udtryk er bare noget det er sandt eller falsk, og så Scratch 269 00:13:07,380 --> 00:13:10,530 trækker dem med denne form, men også med et spørgsmålstegn til at formidle den 270 00:13:10,530 --> 00:13:14,510 Tanken om, at svaret på dette spørgsmål er enten sand eller falsk, ja eller nej 271 00:13:14,510 --> 00:13:15,910 on, 1 eller 0. 272 00:13:15,910 --> 00:13:19,290 >> Og vi bruger disse boolske udtryk indersiden af ​​konstruktioner som disse, som 273 00:13:19,290 --> 00:13:21,010 vi kaldte hvad? 274 00:13:21,010 --> 00:13:22,460 Så tilstand eller filial. 275 00:13:22,460 --> 00:13:25,600 Og den betingelse, du ser her i Bunden har en lille pladsholder for en 276 00:13:25,600 --> 00:13:28,260 puslespil stykke af denne form, formålet hvoraf er så, at du kan 277 00:13:28,260 --> 00:13:32,670 trække det og slippe det på toppen og derefter diktere programmet, hvis dette Boolean 278 00:13:32,670 --> 00:13:36,410 udtryk er sandt, gør dette sæt instruktioner, dette sæt af udsagn, 279 00:13:36,410 --> 00:13:39,320 ellers gøre dette andet sæt af instruktioner. 280 00:13:39,320 --> 00:13:41,270 >> Og huske, at du kan reden disse ting. 281 00:13:41,270 --> 00:13:44,170 Selvom der ikke er meget plads visuelt i denne brik, Scratch 282 00:13:44,170 --> 00:13:47,820 vil vokse og skrumpe til at passe uanset puslespilsbrikker du Træk og slip i 283 00:13:47,820 --> 00:13:51,410 der så du kan faktisk indlejre dette og har en tre vejs gaffel i vejen. 284 00:13:51,410 --> 00:13:53,870 Hvis ellers hvis ellers. 285 00:13:53,870 --> 00:13:58,100 Og du kan endda gå videre med nesting længere og længere efter behov. 286 00:13:58,100 --> 00:14:02,520 >> Så endelig, så vi konstruktioner som dette, ellers kendt som en løkke. 287 00:14:02,520 --> 00:14:05,690 Og det er bare noget, der gør noget igen og igen og igen. 288 00:14:05,690 --> 00:14:09,250 I dette tilfælde sker det at være et endeligt antal gange, men vi har også 289 00:14:09,250 --> 00:14:12,890 så et eksempel, hvor antallet af tider kom fra en variabel, så det 290 00:14:12,890 --> 00:14:13,690 kan ændre sig. 291 00:14:13,690 --> 00:14:16,910 Og vi så også en anden blok helt kaldes en evigt blok, 292 00:14:16,910 --> 00:14:19,590 tilladt os at sløjfe uendelig lang. 293 00:14:19,590 --> 00:14:23,300 >> Så en anden konstruktion, der Scratch 2.0 har - og de af jer mere 294 00:14:23,300 --> 00:14:26,330 komfortabel med forudgående baggrund er allerede godt bekendt med denne 295 00:14:26,330 --> 00:14:27,080 konstruere - 296 00:14:27,080 --> 00:14:29,910 disse ting, vi kaldes hvad? 297 00:14:29,910 --> 00:14:32,540 Så vi kaldte disse funktioner, ellers kendt som procedurer. 298 00:14:32,540 --> 00:14:35,030 Der er en lille semantisk forskel, men vi vil kalde dem bare funktioner. 299 00:14:35,030 --> 00:14:39,950 >> Og en funktion, i tilfælde af Scratch, er en brugerdefineret puslespil brik, 300 00:14:39,950 --> 00:14:43,670 du selv kan lave, så du har en ny brik, der, i dette 301 00:14:43,670 --> 00:14:47,190 tilfælde, ville blive kaldt hoste, der vises blandt alle de andre 302 00:14:47,190 --> 00:14:48,730 tilgængelige puslespilsbrikker i Scratch. 303 00:14:48,730 --> 00:14:52,010 Selvom MIT opfandt ikke denne brik, du gjorde. 304 00:14:52,010 --> 00:14:57,600 >> Så en funktion kan du oprette en ny adfærd, giver det en funktion navn og 305 00:14:57,600 --> 00:14:59,200 så kalder det, så at sige. 306 00:14:59,200 --> 00:15:04,690 Virkelig bruge det i programmer igen og igen og igen uden at skulle vente 307 00:15:04,690 --> 00:15:08,600 for en som MIT ned ad vejen til opfinde nye funktionalitet fra Scratch. 308 00:15:08,600 --> 00:15:12,460 Du selv kan bygge disse puslespil stykker selv, og derefter genbruge dem 309 00:15:12,460 --> 00:15:13,600 i dine egne programmer. 310 00:15:13,600 --> 00:15:17,520 Og vi vil se en tilbagevendende eksempel af denne dag og fremefter. 311 00:15:17,520 --> 00:15:20,960 >> Så i dag, overgang vi nu til noget mere mystisk. 312 00:15:20,960 --> 00:15:24,350 Men i slutningen af ​​dagen, noget mere kraftfulde og ekspressive og mere 313 00:15:24,350 --> 00:15:28,110 repræsentativ for den vej, vi vil være på alle semester gennem en række 314 00:15:28,110 --> 00:15:28,800 af sprog - 315 00:15:28,800 --> 00:15:30,800 der af kode eller kildekode. 316 00:15:30,800 --> 00:15:34,720 Og kildekode, viser det sig, er ikke, hvad en computer 317 00:15:34,720 --> 00:15:37,400 typisk faktisk kører. 318 00:15:37,400 --> 00:15:39,860 Kildekode ser noget som dette. 319 00:15:39,860 --> 00:15:43,010 >> Så dette er, igen, måske den enkleste program, vi kan skrive i en 320 00:15:43,010 --> 00:15:46,670 sprog kaldet C. Vi vil begynde at drille denne apart inden længe, ​​og hvis 321 00:15:46,670 --> 00:15:49,260 dette virkelig ser ud som græsk for dig lige nu, tro mig. 322 00:15:49,260 --> 00:15:54,040 Inden for blot en uge eller to tid, det vil være alt for velkendt og faktisk 323 00:15:54,040 --> 00:15:57,780 ganske repræsentative for stigende komplekse eksempler med, som du vil 324 00:15:57,780 --> 00:15:59,870 også få mere komfortabel. 325 00:15:59,870 --> 00:16:03,100 >> Men du kan ikke bare køre dette slags kode normalt. 326 00:16:03,100 --> 00:16:06,750 Du er nødt til at gøre det til noget, selve computeren forstår. 327 00:16:06,750 --> 00:16:09,840 Og så for det, har vi brug for noget vi kommer til at kalde en compiler. 328 00:16:09,840 --> 00:16:13,910 En compiler er et program, der tager kildekode, som du lige har set, så 329 00:16:13,910 --> 00:16:17,680 input, og det producerer nuller og dem som output, ellers 330 00:16:17,680 --> 00:16:19,210 kendt som objekt kode. 331 00:16:19,210 --> 00:16:23,190 Og det er disse nuller og ettaller, der ser måske helt som denne, at 332 00:16:23,190 --> 00:16:26,310 sidste ende er forstået af din Mac eller din PC. 333 00:16:26,310 --> 00:16:30,050 >> Hvis du nogensinde har hørt markedsføring udtryk Intel Inside, der bare 334 00:16:30,050 --> 00:16:32,800 betyder, at et selskab kaldet Intel har fremstillet 335 00:16:32,800 --> 00:16:34,130 hjerner af computeren - 336 00:16:34,130 --> 00:16:37,270 ellers kendt som CPU, central processing unit - 337 00:16:37,270 --> 00:16:39,640 og det er netop den ting, forstår mønstre 338 00:16:39,640 --> 00:16:40,880 nuller og ettaller. 339 00:16:40,880 --> 00:16:46,330 Og så ved at konvertere kildekoden til objekt kode gennem denne proces her 340 00:16:46,330 --> 00:16:49,130 at vi vil gøre med et par kommandoer på bare en smule, er du 341 00:16:49,130 --> 00:16:53,070 skabe mønstre af nuller og ettaller at medarbejderne hos Intel har 342 00:16:53,070 --> 00:16:56,000 besluttet udgør visse udtalelser. 343 00:16:56,000 --> 00:16:58,810 >> Nu ved jeg ikke helt ved, hvilke er der ved blot et blik på 344 00:16:58,810 --> 00:16:59,890 disse nuller og ettaller. 345 00:16:59,890 --> 00:17:01,420 De fleste mennesker i disse dage ikke. 346 00:17:01,420 --> 00:17:04,900 Men et sted i der er et mønster af nuller og ettaller, der repræsenterer 347 00:17:04,900 --> 00:17:06,349 erklæring print. 348 00:17:06,349 --> 00:17:10,460 Et sted i der kunne være en anden sæt nuller og ettaller, der 349 00:17:10,460 --> 00:17:16,940 repræsentere begrebet evigt, eller gentag 10 gange eller endda meow, hvis det er 350 00:17:16,940 --> 00:17:20,000 faktisk et program, der kan omfatte nogle lyde. 351 00:17:20,000 --> 00:17:24,390 >> Så kort sagt, har mennesker netop besluttet, ligesom vi gjorde for ASCII - 352 00:17:24,390 --> 00:17:27,480 for bogstaverne i alfabetet i sidste uge - mennesker har besluttet, at selv 353 00:17:27,480 --> 00:17:32,200 mere komplekse mønstre af nuller og ettaller repræsenterer mere kompleks adfærd 354 00:17:32,200 --> 00:17:35,650 Ligesom udskrivning eller sige eller mjavende. 355 00:17:35,650 --> 00:17:38,640 Og så for i dag, og stort set videre i semestret, vil vi tage til 356 00:17:38,640 --> 00:17:41,820 givet, at nogen har regnet ud af, hvordan at gøre det kortlægning. 357 00:17:41,820 --> 00:17:45,560 Men vi, i overensstemmelse med denne idé om udlægning på toppen af ​​arbejdet i mennesker 358 00:17:45,560 --> 00:17:49,340 der er kommet foran os, vil tage for givet, at dette foregår 359 00:17:49,340 --> 00:17:50,300 under hætten. 360 00:17:50,300 --> 00:17:53,840 Men vi er meget mere interesseret i bygge ting, der er mere 361 00:17:53,840 --> 00:17:55,880 interessant på toppen af ​​alt dette. 362 00:17:55,880 --> 00:17:58,900 >> Og så ja, det første program, vi skrev i Scratch dette var super enkel 363 00:17:58,900 --> 00:18:00,600 én, Hello World. 364 00:18:00,600 --> 00:18:05,100 Og du kan tænke på dette som værende hovedprogrammet, der regulerer Scratch s 365 00:18:05,100 --> 00:18:07,280 adfærd som sidste fredag. 366 00:18:07,280 --> 00:18:11,510 >> I dag, vi kommer til at begynde at oversætte Skrab puslespilsbrikker ind 367 00:18:11,510 --> 00:18:16,040 kildekoden i dette kaldes sprog C, således at hvad der lignede dette på 368 00:18:16,040 --> 00:18:20,230 Fredag ​​starter i dag og fremefter, er nu kommer til at se sådan ud. 369 00:18:20,230 --> 00:18:21,860 Ganske vist mere kryptisk. 370 00:18:21,860 --> 00:18:25,010 Det er temmelig distraherende og sortere i sindet bedøvende at se alle de citater 371 00:18:25,010 --> 00:18:27,760 og semikolon og parenteser og så videre. 372 00:18:27,760 --> 00:18:32,350 >> Men hvis du begynder at ignorere noget, du ikke forstår, og virkelig se 373 00:18:32,350 --> 00:18:35,960 ved essensen af ​​den hvide tekst på skærm, helt sikkert du ser, som jeg gør, 374 00:18:35,960 --> 00:18:40,360 "Hej, verden." At linjer op med lilla erklæring op øverst, og det viser 375 00:18:40,360 --> 00:18:44,790 ud at nøgleordet vigtigste vil line op konceptuelt med, når grøn 376 00:18:44,790 --> 00:18:46,350 flag klikkede. 377 00:18:46,350 --> 00:18:49,820 >> Så med andre ord, mens i Scratch vi gennemfører dette Hello World program 378 00:18:49,820 --> 00:18:53,360 med disse to puslespilsbrikker, i C vi kommer til at gennemføre den med disse 379 00:18:53,360 --> 00:18:55,510 fire lidt kryptiske linjer. 380 00:18:55,510 --> 00:18:58,130 Men som vi dykke dybere ind i dette, vil du se, at hver af disse 381 00:18:58,130 --> 00:19:02,730 hvide bogstaver på skærmen faktisk har nogle betydelige betydning, 382 00:19:02,730 --> 00:19:05,880 og de fleste af vores programmer vil se strukturelt helt den samme. 383 00:19:05,880 --> 00:19:08,980 Så en erklæring, for at være klar, hvad lignede "siger goddag verden" på 384 00:19:08,980 --> 00:19:12,020 Fredag ​​kommer til at begynde at kigge gerne dette på mandag. 385 00:19:12,020 --> 00:19:15,250 printf ("Hello, world"). 386 00:19:15,250 --> 00:19:17,700 Og der er nogle underlige backslash n, der er parenteser, der er 387 00:19:17,700 --> 00:19:18,490 semikoloner. 388 00:19:18,490 --> 00:19:21,950 >> Men i slutningen af ​​dagen, nøglen takeaway dag er, at alt, hvad vi laver 389 00:19:21,950 --> 00:19:25,710 er oversætte tingene fra billedet danne til tekst form. 390 00:19:25,710 --> 00:19:28,820 Så en løkke, der lignede dette sidste uge kommer til at ser nu 391 00:19:28,820 --> 00:19:30,140 noget som dette. 392 00:19:30,140 --> 00:19:33,020 >> Og lad mig fraskriver, ligesom i Scratch, er der forskellige måder at 393 00:19:33,020 --> 00:19:34,110 nå det samme mål. 394 00:19:34,110 --> 00:19:38,860 Samme i C. Jeg viser dig ikke den eneste måde at gøre ting, men en måde at 395 00:19:38,860 --> 00:19:43,230 oversætte dette for evigt blokere en løkke i C. 396 00:19:43,230 --> 00:19:44,980 >> Denne ene her, gentag 10 gange. 397 00:19:44,980 --> 00:19:47,580 Denne ene virkelig slags bøjer huske den første gang, du ser det. 398 00:19:47,580 --> 00:19:49,860 Men at gennemføre dette fremover vi kommer til at bruge en 399 00:19:49,860 --> 00:19:51,990 for-løkke, så at sige. 400 00:19:51,990 --> 00:19:56,150 Og klart der er nogle syntaks, der er lidt kompliceret der med I og 401 00:19:56,150 --> 00:19:59,740 lige og 0, men når vi dykke ned i det dag og fremefter, er du bare 402 00:19:59,740 --> 00:20:04,260 at se, at det er alt bare laver nogle grundlæggende aritmetik til at få os fra 0 403 00:20:04,260 --> 00:20:07,720 på op til 9 eller 10 i dette tilfælde. 404 00:20:07,720 --> 00:20:11,570 >> Endelig skal det med variabler, du husker at en variabel er et stykke opbevaring. 405 00:20:11,570 --> 00:20:14,290 Nå, hvad vi havde på den venstre der sidste uge kommer til at se lidt 406 00:20:14,290 --> 00:20:15,920 noget som dette i denne uge. 407 00:20:15,920 --> 00:20:17,870 Men igen, for mere om dette kommer. 408 00:20:17,870 --> 00:20:20,700 >> Vi havde boolske udtryk, som i sidste uge, lignede dette. 409 00:20:20,700 --> 00:20:23,370 I denne uge og fremefter, kommer de til at begynde at kigge lidt som. 410 00:20:23,370 --> 00:20:24,890 >> Og denne ene er faktisk lidt beroligende. 411 00:20:24,890 --> 00:20:27,680 Det er faktisk næsten lige så simpelt som den grønne blokke. 412 00:20:27,680 --> 00:20:31,115 Men her har vi, igen, nogle nye syntaks med-tegn, men du kan 413 00:20:31,115 --> 00:20:35,390 måske gætte mens der i Scratch, du siger A-N-D, tilsyneladende i C, er vi 414 00:20:35,390 --> 00:20:37,070 kommer til at sige tegnet tegnet. 415 00:20:37,070 --> 00:20:39,650 Men alt dette vil blive naturligt inden længe. 416 00:20:39,650 --> 00:20:40,680 >> Betingelser. 417 00:20:40,680 --> 00:20:42,610 I sidste uge, det lignede dette til venstre. 418 00:20:42,610 --> 00:20:44,800 I denne uge, til højre, er det kommer til at ligne det. 419 00:20:44,800 --> 00:20:48,560 Men igen, det centrale takeaway her er, at som du kan se ting som at der på 420 00:20:48,560 --> 00:20:51,950 til højre, og især hvis mindre behageligt, det er en slags over din 421 00:20:51,950 --> 00:20:54,950 hoved, du får det lidt overvældet, at Jeg har virkelig ingen idé om, hvordan jeg kunne 422 00:20:54,950 --> 00:20:58,420 muligvis komme op med der fra bunden - 423 00:20:58,420 --> 00:20:59,500 no pun intended - 424 00:20:59,500 --> 00:21:05,300 bare indse, at det er virkelig det samme idé, der formentlig følte sig så meget mere 425 00:21:05,300 --> 00:21:06,760 naturlig den foregående uge. 426 00:21:06,760 --> 00:21:10,960 Og selv hvis du ikke har dykket ned Problemet set 0, I daresay du finder 427 00:21:10,960 --> 00:21:13,790 at puslespilsbrikker er forholdsvis intuitiv, eller i det mindste 428 00:21:13,790 --> 00:21:16,050 bliver så over tid. 429 00:21:16,050 --> 00:21:16,990 >> Så lad os dykke i. 430 00:21:16,990 --> 00:21:20,760 Lad os få vores hænder beskidte her med denne første simple program. 431 00:21:20,760 --> 00:21:22,410 Og enkle er, selvfølgelig, relativ. 432 00:21:22,410 --> 00:21:25,190 For at gøre dette, jeg kommer til at ændre skærme til denne enhed jeg kaldte 433 00:21:25,190 --> 00:21:26,150 CS50 apparatet. 434 00:21:26,150 --> 00:21:29,700 Den CS50 Apparatet er et stykke software, der kører inde i en 435 00:21:29,700 --> 00:21:33,920 vindue på min Mac, og du kan også køre det i et vindue inde i din pc, der 436 00:21:33,920 --> 00:21:38,720 tillader mig at have nøjagtig de samme computer miljøet som enhver TF, som 437 00:21:38,720 --> 00:21:40,940 hver CA, som hver elev i klassen. 438 00:21:40,940 --> 00:21:44,590 Fordi CS50 apparat er bogstaveligt talt et andet operativsystem 439 00:21:44,590 --> 00:21:45,410 kaldet Linux - 440 00:21:45,410 --> 00:21:47,160 specifikt Fedora Linux - 441 00:21:47,160 --> 00:21:51,320 og vi, personale, har konfigureret installationen for dette 442 00:21:51,320 --> 00:21:55,200 operativsystem på en sådan måde, at man, der er en lille CS50 logo i 443 00:21:55,200 --> 00:21:59,240 midten, to, er der en brugerdefineret menu på bunden, og tre, pædagogisk 444 00:21:59,240 --> 00:22:02,570 vi har forenklet brugergrænseflade meget som muligt, således at når man 445 00:22:02,570 --> 00:22:05,540 først starte denne ting op på din egen Mac eller pc, du har det samme 446 00:22:05,540 --> 00:22:08,280 miljøet som alle andre, og du har alle de værktøjer, du har brug for 447 00:22:08,280 --> 00:22:11,390 for kurset uden at skulle regne ud af, hvordan du installerer hver 448 00:22:11,390 --> 00:22:13,280 hvert værktøj individuelt. 449 00:22:13,280 --> 00:22:15,840 >> Så det ser relativt Ligesom Mac OS eller Windows. 450 00:22:15,840 --> 00:22:18,760 I det nederste venstre hjørne, du væsentlige har en Start-menuen på 451 00:22:18,760 --> 00:22:20,280 sorterer, eller en Apple-menuen. 452 00:22:20,280 --> 00:22:23,700 Og så har du hvad vi har mistanke om, vil være dine tre mest almindelige ikoner. 453 00:22:23,700 --> 00:22:24,460 Den ene er Chrome. 454 00:22:24,460 --> 00:22:26,460 Der er en browser indeni af apparatet. 455 00:22:26,460 --> 00:22:29,970 >> Two er et program kaldet gedit, som vi så kort i sidste uge, hvilket er 456 00:22:29,970 --> 00:22:31,310 bare en grafisk editor. 457 00:22:31,310 --> 00:22:35,350 Og tre er en Terminal program, som er en sort og hvid vindue fra 458 00:22:35,350 --> 00:22:39,860 Gårsdagens der tillader os at skrive mere mystiske men mere kraftfulde kommandoer på 459 00:22:39,860 --> 00:22:40,660 vores tastatur. 460 00:22:40,660 --> 00:22:44,220 Så jeg har tænkt mig at gå videre og klik på gedit, og forvisset om, at problemet 461 00:22:44,220 --> 00:22:48,520 sæt 1, til at blive frigivet på fredag, vil gå dig gennem alle disse samme trin. 462 00:22:48,520 --> 00:22:51,730 >> Bemærk, at jeg har en temmelig simpel brugergrænseflade med tre dele. 463 00:22:51,730 --> 00:22:54,990 På venstre, har jeg en stor tom Vinduet kaldes kildekode. 464 00:22:54,990 --> 00:22:58,930 Det er, hvor jeg har tænkt mig at se en oversigt nogen kode, jeg skriver. 465 00:22:58,930 --> 00:23:01,990 På højre side har jeg en stor fanen aktuelt ufrelst, og det er 466 00:23:01,990 --> 00:23:03,510 hvor min kode kommer til at gå. 467 00:23:03,510 --> 00:23:06,780 Og på bunden, har jeg en indlejret Terminal vinduet, en sort og hvid 468 00:23:06,780 --> 00:23:12,060 prompt, hvor jeg kan skrive kommandoer til kompilere og køre mine programmer - at 469 00:23:12,060 --> 00:23:14,110 er, at lave og køre mine programmer. 470 00:23:14,110 --> 00:23:15,170 >> Så lad os starte simpelt. 471 00:23:15,170 --> 00:23:17,700 Lad mig gå op til Fil, Gem. 472 00:23:17,700 --> 00:23:20,530 Jeg har tænkt mig at gå videre og gå ind jharvard. 473 00:23:20,530 --> 00:23:24,320 Så apparatet for uanset hvad dit navn er, tilhører en fyr ved navn 474 00:23:24,320 --> 00:23:28,250 John Harvard, der har et jharvard hjem directory inderside hvor alle dine 475 00:23:28,250 --> 00:23:29,100 filer vil gå. 476 00:23:29,100 --> 00:23:31,640 Det er din egen kopi af hans konto, så vi er ikke alle dele 477 00:23:31,640 --> 00:23:33,530 den samme harddisk. 478 00:23:33,530 --> 00:23:35,580 Du skal bare have den illusion John Harvards egen. 479 00:23:35,580 --> 00:23:38,350 >> På forhånd jeg faktisk installeret Dropbox. 480 00:23:38,350 --> 00:23:42,600 Apparatet leveres preprepared med Dropbox, så hvis noget går galt 481 00:23:42,600 --> 00:23:45,950 i løbet af semestret, hvis du har konfigureret apparatet med en gratis 482 00:23:45,950 --> 00:23:48,950 Dropbox-konto, alle dine filer vil automatisk blive bakket op, så du 483 00:23:48,950 --> 00:23:50,430 kan meget nemt inddrive dem. 484 00:23:50,430 --> 00:23:53,980 Og jeg har tænkt mig at gå ind i min Dropbox bibliotek, og der har allerede går 485 00:23:53,980 --> 00:23:55,530 at være et par andre ting der. 486 00:23:55,530 --> 00:24:02,090 >> Men jeg har tænkt mig at gå videre og gå til Fil, Gem. 487 00:24:02,090 --> 00:24:05,930 Jeg har tænkt mig at gå ind i jharvard, Dropbox, og heroppe, vil jeg 488 00:24:05,930 --> 00:24:10,590 giver mit program en super enkel navn, hello.c og derefter gemme. 489 00:24:10,590 --> 00:24:11,810 Så jeg har samme interface nu. 490 00:24:11,810 --> 00:24:14,190 Det eneste, der er ændret er fanen op øverst. 491 00:24:14,190 --> 00:24:17,170 Så jeg meget hurtigt kommer til at genskabe at programmet fra 492 00:24:17,170 --> 00:24:19,060 slides for et øjeblik siden. 493 00:24:19,060 --> 00:24:25,690 >> Så i main (void), og derefter printf, "Hej, verden," en noget kryptisk 494 00:24:25,690 --> 00:24:29,920 backslash n tæt citat, luk parentes, semikolon og 495 00:24:29,920 --> 00:24:32,030 derefter Ctrl S for at gemme. 496 00:24:32,030 --> 00:24:34,860 Og varsel som en sidebemærkning, hvad der lige optrådte her på øverst til venstre. 497 00:24:34,860 --> 00:24:37,490 Og det er ikke nyttigt i dag, men vil være nyttig over tid. 498 00:24:37,490 --> 00:24:40,160 Du skal bare se, igen, en oversigt over den kode, du har skrevet. 499 00:24:40,160 --> 00:24:43,320 Og fordi jeg skrev noget, der hedder main, det er derfor at ordet main dukkede 500 00:24:43,320 --> 00:24:44,030 op derovre. 501 00:24:44,030 --> 00:24:46,610 Men for det meste, vi ikke brug for i dag. 502 00:24:46,610 --> 00:24:51,130 >> Okay, så jeg hævder, at dette er min første program skrevet i et programmeringssprog 503 00:24:51,130 --> 00:24:54,620 sprog kaldet C. Vi ved fra fredag at hvad denne ting vil gøre 504 00:24:54,620 --> 00:24:58,450 meget uinteressant, når jeg køre det er bare at vise - 505 00:24:58,450 --> 00:25:01,270 med andre ord, udskrive, som en computer videnskabsmand ville sige - 506 00:25:01,270 --> 00:25:03,310 hello world på skærmen. 507 00:25:03,310 --> 00:25:06,800 Så for at gøre dette, vil du bemærke, at jeg har at gå ned her til min terminal 508 00:25:06,800 --> 00:25:09,250 vinduet, og nu har jeg blinkende prompt. 509 00:25:09,250 --> 00:25:15,480 Men det er nu en tastatur version af min John Harvard hjemmebibliotek. 510 00:25:15,480 --> 00:25:19,610 Det er et tastatur måde via hvilken til at navigere min harddisk. 511 00:25:19,610 --> 00:25:25,380 >> Så jeg kan faktisk ikke skrive som jeg gjorde sidste uge gør hej, fordi det er 512 00:25:25,380 --> 00:25:27,230 kommer til at sige nej regel at gøre målet - 513 00:25:27,230 --> 00:25:27,950 noget er galt. 514 00:25:27,950 --> 00:25:31,690 Jeg ved ikke helt, hvad det budskab midler, men det er fordi som standard, 515 00:25:31,690 --> 00:25:35,350 når denne sorte og hvide vindue er åbnet, er jeg inde i John Harvards 516 00:25:35,350 --> 00:25:36,160 hjemmebibliotek. 517 00:25:36,160 --> 00:25:39,180 Men hvor har jeg redde dette program? 518 00:25:39,180 --> 00:25:40,440 I min Dropbox mappe. 519 00:25:40,440 --> 00:25:43,110 >> Nu har vi alle vokset op med computere, hvor du bare dobbeltklikke på 520 00:25:43,110 --> 00:25:45,610 på en mappe ikon, er det åbner, og voila. 521 00:25:45,610 --> 00:25:48,280 Det er, hvor filen hedder hello.c ville være. 522 00:25:48,280 --> 00:25:49,470 Så i virkeligheden, så lad os gøre det. 523 00:25:49,470 --> 00:25:51,610 >> Lad mig gå videre og minimere gedit ligesom du ville gøre på 524 00:25:51,610 --> 00:25:52,990 Windows eller Mac OS. 525 00:25:52,990 --> 00:25:56,160 Lad mig gå ind i Home folder øverst til venstre. 526 00:25:56,160 --> 00:25:57,620 Jeg ser her en flok mapper. 527 00:25:57,620 --> 00:25:58,870 Her er min Dropbox mappe. 528 00:25:58,870 --> 00:26:00,770 De checkmarks betyder, at det er blevet synkroniseret. 529 00:26:00,770 --> 00:26:04,040 Og der er et par ting her, men bemærke, at hello.c er 530 00:26:04,040 --> 00:26:04,960 faktisk lige der. 531 00:26:04,960 --> 00:26:08,050 >> Og så i Mac OS eller Windows, normalt Jeg ville dobbeltklikke på, at det åbner op 532 00:26:08,050 --> 00:26:10,220 uanset hvad program, og jeg er god til at gå. 533 00:26:10,220 --> 00:26:13,370 Men nu, i det mindste starter i dag, vi nødt til at tage et skridt tilbage for blot at 534 00:26:13,370 --> 00:26:16,960 give dig nogle basale værktøjer til din værktøjskasse med til at gøre mere 535 00:26:16,960 --> 00:26:18,980 kraftfulde ting inden længe. 536 00:26:18,980 --> 00:26:22,280 >> Så på denne prompt, er jeg nødt til at gøre det svarer at dobbeltklikke på 537 00:26:22,280 --> 00:26:23,560 Dropbox mappe. 538 00:26:23,560 --> 00:26:29,900 Og for at gøre det, vil jeg skrive cd til ændre biblioteket, Dropbox, indtast. 539 00:26:29,900 --> 00:26:36,100 Og nu mærke til de parenteser på min såkaldte prompt siger nu, at jeg er i 540 00:26:36,100 --> 00:26:38,470 tilde, den lille skæve symbol øverst til venstre på 541 00:26:38,470 --> 00:26:40,860 de fleste tastaturer, / Dropbox. 542 00:26:40,860 --> 00:26:45,200 Dette er blot stenografi notation for siger menneske, du er nu inde i 543 00:26:45,200 --> 00:26:48,650 Dropbox mappe, lige som om du havde dobbelt klikkede på det. 544 00:26:48,650 --> 00:26:54,610 >> Så nu, hvis jeg går videre og skriv gøre hej, indtaste, ser jeg en meget kryptisk 545 00:26:54,610 --> 00:26:57,450 kommando, men ikke en fejlmeddelelse, det forekommer, og derefter 546 00:26:57,450 --> 00:26:59,020 anden blinkende prompt. 547 00:26:59,020 --> 00:27:04,470 Og hvis du husker, nogensinde så hurtigt på fredag, vi gjorde dette. . / Hej. 548 00:27:04,470 --> 00:27:10,000 >> Hvad du er ved at se, er resultatet af min at køre dette program, eller i Mac 549 00:27:10,000 --> 00:27:14,310 OS og PC vilkår, hvis jeg normalt ville fordoble klik på et program -. en app 550 00:27:14,310 --> 00:27:17,620 program eller en. exe, åbner et vindue og kører. 551 00:27:17,620 --> 00:27:21,920 Skrive. / Hello er ligesom dobbelt klikke på et program til at køre det, men 552 00:27:21,920 --> 00:27:23,280 hjælp mit tastatur. 553 00:27:23,280 --> 00:27:25,410 >> Indtast, hej verden. 554 00:27:25,410 --> 00:27:26,150 Og det er det. 555 00:27:26,150 --> 00:27:29,150 Så lad os drille det fra hinanden til, så det ikke føler for meget som græsk. 556 00:27:29,150 --> 00:27:31,370 >> So. / Betyder hvad? 557 00:27:31,370 --> 00:27:34,120 Enhver, der nogensinde navigeret et tastatur miljø som dette, hvad er dot 558 00:27:34,120 --> 00:27:36,690 henvise til? 559 00:27:36,690 --> 00:27:37,800 Den aktuelle mappe. 560 00:27:37,800 --> 00:27:41,320 >> Så den aktuelle mappe er bare et synonym for en mappe. 561 00:27:41,320 --> 00:27:46,230 Så ved at sige dot skråstreg, siger jeg, kigge efter et program kaldet goddag i 562 00:27:46,230 --> 00:27:47,250 aktuelle katalog - 563 00:27:47,250 --> 00:27:48,540 i den aktuelle mappe. 564 00:27:48,540 --> 00:27:50,480 Med andre ord,. Min Dropbox mappe 565 00:27:50,480 --> 00:27:54,220 Og det er derfor trykke Enter derefter faktisk kører dette program. 566 00:27:54,220 --> 00:27:58,790 >> Hvis jeg nu type LS, bemærke, at jeg ser alt i min Dropbox mappe. 567 00:27:58,790 --> 00:28:02,000 Kom Started.pdf, som Dropbox giver dig gratis, mine fotos 568 00:28:02,000 --> 00:28:05,450 bibliotek, en offentlig fortegnelse, der ikke er gemt Dokument 1, der gjorde jeg ved en fejl en 569 00:28:05,450 --> 00:28:09,730 øjeblik siden, foo.c, som jeg gjorde tidligere, dag, og derefter to linjer - 570 00:28:09,730 --> 00:28:12,090 hello.c og goddag. 571 00:28:12,090 --> 00:28:17,280 >> Hello.c er det program, jeg skrev med gedit, og hvad er hej i grønt? 572 00:28:17,280 --> 00:28:20,920 573 00:28:20,920 --> 00:28:22,940 Hello i grøn er den eksekverbare. 574 00:28:22,940 --> 00:28:27,020 Med andre ord, jeg når kørte denne kommando for et øjeblik siden - lad mig rulle 575 00:28:27,020 --> 00:28:28,040 tilbage i tiden - 576 00:28:28,040 --> 00:28:32,400 da jeg kørte gøre hej, det er den midterste trin her. 577 00:28:32,400 --> 00:28:34,410 Og det tog hello.c som input - 578 00:28:34,410 --> 00:28:39,910 AKA kildekode - og førte til en fil kaldet Hej som output, som 579 00:28:39,910 --> 00:28:42,510 indeholder alle disse nuller og ettaller. 580 00:28:42,510 --> 00:28:47,640 Og det er derfor i sidste ende, kan jeg faktisk køre en kommando som. / hej. 581 00:28:47,640 --> 00:28:53,310 På grund af Intel Inside, mit operativsystem Systemet, Linux, åbner de nuller 582 00:28:53,310 --> 00:28:55,820 og dem, fodrer dem i hjerner af min computer - 583 00:28:55,820 --> 00:28:56,580 CPU - 584 00:28:56,580 --> 00:29:00,460 og at CPU ved, åh, her er et mønster af nuller og ettaller, der siger 585 00:29:00,460 --> 00:29:02,800 udskrive følgende ting på skærmen. 586 00:29:02,800 --> 00:29:04,450 >> Hvad er følgende ting? 587 00:29:04,450 --> 00:29:07,650 Citat citat slut, "Hej verden". 588 00:29:07,650 --> 00:29:12,100 >> Okay, så en hurtig oversigt over nogle af disse kommandoer, så vi kan begynde 589 00:29:12,100 --> 00:29:13,350 tage dem for givet. 590 00:29:13,350 --> 00:29:15,550 Lad mig gå videre til hvor vi slap. 591 00:29:15,550 --> 00:29:22,230 Og du vil huske, at vi havde CD på vores back end for et øjeblik siden. 592 00:29:22,230 --> 00:29:24,880 Disse er, jeg tør sige, for nutidens formål - 593 00:29:24,880 --> 00:29:29,010 måske denne uge - de eneste kommandoer, vi muligvis indtaste på kommandolinjen 594 00:29:29,010 --> 00:29:30,580 bede udover gøre. 595 00:29:30,580 --> 00:29:34,510 >> Så CD stod for hvad? 596 00:29:34,510 --> 00:29:35,180 Skift bibliotek. 597 00:29:35,180 --> 00:29:38,010 Det er bare hvad der svarer til dobbelt klikke på en mappe. 598 00:29:38,010 --> 00:29:41,320 Og som en sidebemærkning, hvis du får mistede nogensinde indersiden af ​​dit 599 00:29:41,320 --> 00:29:43,430 apparat, således at Dropbox - 600 00:29:43,430 --> 00:29:45,420 Jeg ønsker at komme tilbage til min jharvard directory - 601 00:29:45,420 --> 00:29:50,490 i tvivlstilfælde, CD, indtaste, uden anden ord, og det bare lynlåse dig tilbage 602 00:29:50,490 --> 00:29:53,110 til hvor du startede, hvilket er en hyggelig lille genvej. 603 00:29:53,110 --> 00:29:54,840 >> Okay, så nu andre kommandoer. 604 00:29:54,840 --> 00:29:55,660 LS. 605 00:29:55,660 --> 00:29:56,840 Jeg har skrevet, at for et øjeblik siden. 606 00:29:56,840 --> 00:29:59,500 Hvad tror du LS står for? 607 00:29:59,500 --> 00:30:00,470 >> Så liste, right? 608 00:30:00,470 --> 00:30:03,300 Tilbage i dag, når mennesker kom op med disse kommandoer, de 609 00:30:03,300 --> 00:30:07,180 forsøgte at være effektiv, og snarere skrive ud L-I-S-t Indtast de 610 00:30:07,180 --> 00:30:08,470 besluttet LS. 611 00:30:08,470 --> 00:30:09,080 Det er fint. 612 00:30:09,080 --> 00:30:10,420 Det lyder nok som listen. 613 00:30:10,420 --> 00:30:13,870 Lad os bare type LS ind, og at opregner de filer eller mapper i min 614 00:30:13,870 --> 00:30:15,000 aktuelle mappe. 615 00:30:15,000 --> 00:30:17,530 >> mkdir, kan du sikkert gætte. 616 00:30:17,530 --> 00:30:18,440 Foretag bibliotek. 617 00:30:18,440 --> 00:30:22,010 Så du behøver ikke gå til nogle fil-menuen og vælge Ny mappe i dette miljø. 618 00:30:22,010 --> 00:30:27,410 Snarere, du skriver kommandoen mkdir plads og derefter navnet på den mappe, 619 00:30:27,410 --> 00:30:29,850 som du ønsker at oprette, og det vil ske. 620 00:30:29,850 --> 00:30:32,380 >> rm, kan du sikkert gætte. 621 00:30:32,380 --> 00:30:33,480 Fjern eller slette. 622 00:30:33,480 --> 00:30:36,740 Så hvis du ønsker at slette en fil, vil du se i opgavesæt, hvordan du 623 00:30:36,740 --> 00:30:37,240 kan gøre dette. 624 00:30:37,240 --> 00:30:39,510 Og rmdir, fjerne mappe. 625 00:30:39,510 --> 00:30:42,320 >> Så igen, jeg har tendens til at flyve gennem nogle disse detaljer, én, fordi 626 00:30:42,320 --> 00:30:46,010 de er ikke så meget sjovt at tilbringe tid på, men to, vil vi give dig 627 00:30:46,010 --> 00:30:48,720 langt mere detaljeret i nogen af Selvfølgelig problem sætter især 628 00:30:48,720 --> 00:30:52,370 standard udgaver, nogen af ​​trinene at du måske nødt til at skrive, så 629 00:30:52,370 --> 00:30:54,830 at du får mere og mere comfy med disse ting. 630 00:30:54,830 --> 00:30:57,430 >> Men lad mig nu drille hinanden en anden ting. 631 00:30:57,430 --> 00:31:02,580 Når vi indtastet gøre hej et øjeblik siden, så vi en kryptisk sekvens af kommandoer. 632 00:31:02,580 --> 00:31:04,805 Vi så igen, gør hej. 633 00:31:04,805 --> 00:31:07,640 634 00:31:07,640 --> 00:31:08,520 OK, lad os gøre det. 635 00:31:08,520 --> 00:31:11,840 Jeg var ved at lave en fejl, men [Uhørlig] nu indrømme, at jeg var ved at 636 00:31:11,840 --> 00:31:14,400 og gør det med vilje. 637 00:31:14,400 --> 00:31:15,810 >> Hvad gjorde jeg forkert lige nu? 638 00:31:15,810 --> 00:31:18,680 639 00:31:18,680 --> 00:31:21,060 Yeah, så jeg er ikke i Dropbox bibliotek, fordi et øjeblik siden jeg 640 00:31:21,060 --> 00:31:22,720 maskinskrevet cd og bare tryk på enter. 641 00:31:22,720 --> 00:31:25,480 Det zoomet mig tilbage til hvor jeg startede, hvilket er ikke hvor min fil 642 00:31:25,480 --> 00:31:31,720 er, så jeg virkelig nødt til at gøre CD Dropbox enter, og nu kan jeg gøre rm goddag 643 00:31:31,720 --> 00:31:34,060 enter, fjerne almindelig fil hej. 644 00:31:34,060 --> 00:31:35,200 Jeg ved ikke, hvorfor det er så kryptisk. 645 00:31:35,200 --> 00:31:37,600 Det betyder blot, er du sikker du vil slette hej? 646 00:31:37,600 --> 00:31:41,510 Du kan skrive y for ja, indtast, og nu er det væk. 647 00:31:41,510 --> 00:31:46,010 >> Og nu, hvis jeg skriver gøre hej igen, det er vil genskabe min objekt kode, 648 00:31:46,010 --> 00:31:47,460 genskabe de nuller og ettaller. 649 00:31:47,460 --> 00:31:51,070 Men hvad er det for noget med denne meget lange kommando? 650 00:31:51,070 --> 00:31:53,960 Nå, vi drille denne apart inden længe, ​​men gør - 651 00:31:53,960 --> 00:31:55,500 Jeg fortalte lidt af en hvid løgn før - 652 00:31:55,500 --> 00:31:56,880 er ikke en compiler. 653 00:31:56,880 --> 00:32:00,350 Lav er et program, der automatisk tal ud af at køre en 654 00:32:00,350 --> 00:32:02,060 compiler for dig. 655 00:32:02,060 --> 00:32:07,490 >> Så den kommando, du virkelig skal være kører for at omdanne hello.c 656 00:32:07,490 --> 00:32:11,240 ind hello ser faktisk ud lidt mere som dette. 657 00:32:11,240 --> 00:32:15,900 Og Gud forbyde vi har rent faktisk Husk at nogensinde skrive, at hele 658 00:32:15,900 --> 00:32:17,280 sekvens af kommandoer ud. 659 00:32:17,280 --> 00:32:21,360 Formålet med at gøre i livet er at huske på, at graden af ​​kompleksitet for 660 00:32:21,360 --> 00:32:24,470 os og automatisere hvad der ellers ville være meget kedelige trin. 661 00:32:24,470 --> 00:32:26,040 >> Men jeg kan tilnærme det. 662 00:32:26,040 --> 00:32:29,960 Så per denne lille snyde ark her, jeg kan tilnærme hvad denne kommando er 663 00:32:29,960 --> 00:32:33,960 gør ved blot at skrive klang, som er navnet på den compiler vi vil være 664 00:32:33,960 --> 00:32:35,170 ved hjælp af denne semester. 665 00:32:35,170 --> 00:32:38,500 Hvis nogen af ​​jer nogensinde har gjort iOS udvikling til iPhone eller iPad, 666 00:32:38,500 --> 00:32:42,930 Clang er det program, du har brugt inden Xcode for at gøre dine apps. 667 00:32:42,930 --> 00:32:46,360 Klang, selv om, er bare et andet program hvis navn vi kan skrive på kommandolinjen 668 00:32:46,360 --> 00:32:49,210 bede, og ved at indføre det nu, Jeg kan introducere noget, der er en 669 00:32:49,210 --> 00:32:52,410 lidt repræsentant kommandoer til at komme. 670 00:32:52,410 --> 00:32:53,910 Så lad mig gøre det manuelt. 671 00:32:53,910 --> 00:32:59,240 >> Så rm hej, og nu meddelelse i tilfælde Jeg, ligesom en tilregnelighed check - 672 00:32:59,240 --> 00:33:03,180 . / Hej, hvad tror du jeg skal se om jeg gør dette? 673 00:33:03,180 --> 00:33:04,060 Anden form for fejl. 674 00:33:04,060 --> 00:33:05,110 Ingen sådan fil bibliotek. 675 00:33:05,110 --> 00:33:06,740 Så man er faktisk temmelig direkte. 676 00:33:06,740 --> 00:33:08,110 >> Så lad mig rydde skærmen. 677 00:33:08,110 --> 00:33:11,370 Kontrol S bare rydder skærmen til at fjerne nogle distraktioner. 678 00:33:11,370 --> 00:33:17,160 Og nu vil jeg manuelt typen clang-o hej hello.c. 679 00:33:17,160 --> 00:33:18,890 Så hvad handler det om at gøre? 680 00:33:18,890 --> 00:33:23,820 Præcis de samme ting, der gør gjorde for os, men jeg smide nogle af 681 00:33:23,820 --> 00:33:25,430 de overflødige ord. 682 00:33:25,430 --> 00:33:28,570 >> Clang er det program, der kommer til tage en. c-fil som input og producerer 683 00:33:28,570 --> 00:33:30,110 nuller og ettaller som output. 684 00:33:30,110 --> 00:33:35,120 Men-o fremover vil kalde en switch eller et flag. 685 00:33:35,120 --> 00:33:39,080 Dette er blot techie jargon for at sige dette er et ord, du skriver på et prompt 686 00:33:39,080 --> 00:33:42,590 at en eller anden måde påvirker adfærden af det program, du kører. 687 00:33:42,590 --> 00:33:47,180 Så er der nogen ønsker at gætte hvad-o formidler? 688 00:33:47,180 --> 00:33:47,840 >> Output. 689 00:33:47,840 --> 00:33:52,670 Det er bare nogen besluttede-o betyder output en fil kaldet goddag og tage 690 00:33:52,670 --> 00:33:56,440 input uanset sidste ord om prompt er hello.c, så hvis jeg ramte 691 00:33:56,440 --> 00:33:58,930 Indtast nu, intet synes at ske. 692 00:33:58,930 --> 00:34:02,010 Og mærkeligt nok, i denne verden af programmering, hvis der ikke sker noget, 693 00:34:02,010 --> 00:34:03,980 det er sikkert en god ting fordi der er ingen fejl 694 00:34:03,980 --> 00:34:05,350 meddelelse på skærmen. 695 00:34:05,350 --> 00:34:07,190 Hej, Enter. 696 00:34:07,190 --> 00:34:08,670 Mit program er nu kørt. 697 00:34:08,670 --> 00:34:14,517 >> Men jeg kan gøre dumme små ting som dette. klang-o, hihihi, hello.c, 698 00:34:14,517 --> 00:34:18,590 enter, og nu har jeg en identisk program ved navn hihihi. 699 00:34:18,590 --> 00:34:20,739 Det opfører sig på samme, men navnet er anderledes. 700 00:34:20,739 --> 00:34:23,360 >> Så dette er blot at sige, at hvis du vil at påvirke adfærden hos en 701 00:34:23,360 --> 00:34:25,909 program, vi kommer til stadig se kaldet tingene 702 00:34:25,909 --> 00:34:27,739 kommandolinjeargumenter. 703 00:34:27,739 --> 00:34:28,639 Dette er en linje. 704 00:34:28,639 --> 00:34:29,580 Du skriver kommandoer. 705 00:34:29,580 --> 00:34:30,969 Ergo, kommandolinjen. 706 00:34:30,969 --> 00:34:35,690 Og kommandolinjeargumenter er blot ord eller små stykker af syntaks, der 707 00:34:35,690 --> 00:34:40,840 anden måde påvirke adfærden hos programmer, vi kører. 708 00:34:40,840 --> 00:34:44,639 >> Okay, det er måske det mest kedeligt program vi kan skrive og se. 709 00:34:44,639 --> 00:34:46,670 Lad os nu gøre noget mere interessant. 710 00:34:46,670 --> 00:34:49,420 Lad mig gå videre og oprette en ny fil. 711 00:34:49,420 --> 00:34:53,139 Jeg har tænkt mig at gå videre og gemme dette i John Harvard hjem mappe som, 712 00:34:53,139 --> 00:34:58,670 lad os kalde det custom.c at være lidt brugerdefineret program. 713 00:34:58,670 --> 00:35:01,920 Jeg har tænkt mig at zoome ind på min top fanerne her og start igen. 714 00:35:01,920 --> 00:35:03,730 >> Medtag standard stdio.h. 715 00:35:03,730 --> 00:35:04,990 Mere om det om et øjeblik. 716 00:35:04,990 --> 00:35:08,240 int main (void), mere på at i et øjeblik. 717 00:35:08,240 --> 00:35:09,490 printf ("Hej, David"). 718 00:35:09,490 --> 00:35:12,810 719 00:35:12,810 --> 00:35:14,560 Meget mere interessant, ikke? 720 00:35:14,560 --> 00:35:20,690 >> Så nu, hvis - ikke på grund af mit navn, bare fordi det er anderledes - 721 00:35:20,690 --> 00:35:24,950 gøre brugerdefinerede ind. 722 00:35:24,950 --> 00:35:26,780 Brugerdefineret, hallo, David. 723 00:35:26,780 --> 00:35:28,020 Men selv det også er en hvid løgn. 724 00:35:28,020 --> 00:35:30,850 Dette program kunne lige så godt hedde david.c, fordi det ikke er skik 725 00:35:30,850 --> 00:35:31,880 adfærd overhovedet. 726 00:35:31,880 --> 00:35:35,080 Virkelig, jeg vil have et program, der beder brugeren om deres navn. 727 00:35:35,080 --> 00:35:36,320 >> Så hvordan gør jeg det? 728 00:35:36,320 --> 00:35:38,520 Nå, lad mig rulle op herovre. 729 00:35:38,520 --> 00:35:42,960 Og før jeg bruger en erklæring Scratch, før jeg bruger printf, 730 00:35:42,960 --> 00:35:47,600 ellers kendt som en funktion, lad mig først spørge brugeren for nogle input. 731 00:35:47,600 --> 00:35:49,690 >> Så for at gøre dette, jeg har brug for at gøre et par ting. 732 00:35:49,690 --> 00:35:53,360 Én, jeg har brug for et sted at gemme brugerens navn efter jeg har bedt ham eller 733 00:35:53,360 --> 00:35:54,510 hende for det. 734 00:35:54,510 --> 00:36:00,120 Hvilken konstruktion skal jeg bruge nok at gemme en værdi som det? 735 00:36:00,120 --> 00:36:00,910 En variabel. 736 00:36:00,910 --> 00:36:05,130 >> Så i modsætning til Scratch, hvor du bare en dejlig brik her, er vi nødt til 737 00:36:05,130 --> 00:36:07,620 bruge, naturligvis, ord til udtrykke os. 738 00:36:07,620 --> 00:36:11,510 Og nu, når du vil have en ord eller en sætning, i programmeringen, 739 00:36:11,510 --> 00:36:13,090 vi kommer til at kalde det en streng. 740 00:36:13,090 --> 00:36:14,990 Så en streng er et ord eller en sætning. 741 00:36:14,990 --> 00:36:18,170 Det er en sekvens af nul eller flere tegn, mere formelt. 742 00:36:18,170 --> 00:36:22,520 >> Og hvis du ønsker sådan en variabel til findes, er du nødt til at sige at give mig en. 743 00:36:22,520 --> 00:36:27,490 Og den måde, hvorpå du gøre det er at siger string s semikolon, hvor s kan være 744 00:36:27,490 --> 00:36:28,740 noget, du ønsker. 745 00:36:28,740 --> 00:36:30,510 Faktisk er s lidt underwhelming. 746 00:36:30,510 --> 00:36:33,250 Lad mig gå videre og mere klart kalde det navn. 747 00:36:33,250 --> 00:36:36,570 Giv mig en streng kaldet navn. 748 00:36:36,570 --> 00:36:40,180 >> Men nu, hvad er personens navn som standard? 749 00:36:40,180 --> 00:36:42,930 Tja, hvis det menneskelige ikke skrive noget i, naturligvis, er der vil 750 00:36:42,930 --> 00:36:44,310 at være nogen værdi i navnet. 751 00:36:44,310 --> 00:36:48,120 Og det viser sig i C, hvis du ikke giver en variabel en værdi, det kommer til at 752 00:36:48,120 --> 00:36:49,180 har en skrald værdi. 753 00:36:49,180 --> 00:36:51,650 Det kunne have nogle tilfældige nuller og dem, så du bare kommer til at se 754 00:36:51,650 --> 00:36:54,570 skrald, virkelig, på skærmen hvis du prøver at vise det. 755 00:36:54,570 --> 00:36:59,800 >> Men jeg kan ordne det ved at sige, faktisk, butik inde i navn 756 00:36:59,800 --> 00:37:01,400 efter værdi. 757 00:37:01,400 --> 00:37:09,240 Den måde du lagre værdier i variabler Hvis du har en variabel navn på 758 00:37:09,240 --> 00:37:13,370 tilbage, er du nødt til at en eller anden måde lægge, hvad du ønsker at gemme i den på højre og 759 00:37:13,370 --> 00:37:17,650 syntaksen for der kommer at være som følger. 760 00:37:17,650 --> 00:37:22,120 >> Vi har ikke set det før, men tage på tro for et øjeblik, at der 761 00:37:22,120 --> 00:37:26,270 eksisterer en anden udtalelse i verden at jeg har tænkt mig at igen kalde funktion, 762 00:37:26,270 --> 00:37:28,310 og denne funktion er kaldet få strengen. 763 00:37:28,310 --> 00:37:29,670 Og det gør bogstaveligt det. 764 00:37:29,670 --> 00:37:34,680 Den anden måde får en sekvens af tegn fra det menneskelige og derefter 765 00:37:34,680 --> 00:37:36,380 gør noget med det. 766 00:37:36,380 --> 00:37:38,410 >> Og det ser ud som kryptiske syntaks. 767 00:37:38,410 --> 00:37:40,880 Normalt, hvis du bruger lighedstegn - du er i verden, siger, 768 00:37:40,880 --> 00:37:43,740 algebra, og du er faktisk siger x er lig med 1. 769 00:37:43,740 --> 00:37:46,570 Her vil vi ikke sige, at navn lig få strengen. 770 00:37:46,570 --> 00:37:51,270 Vi siger butik i navnet, hvad der er på den højre side 771 00:37:51,270 --> 00:37:52,400 af det lighedstegn. 772 00:37:52,400 --> 00:37:55,030 Lighedstegnet repræsenterer opgaven operatør. 773 00:37:55,030 --> 00:37:58,240 Det er den syntaks, der siger lægge, hvad der er på højre side inde i hvad er 774 00:37:58,240 --> 00:37:59,090 til venstre. 775 00:37:59,090 --> 00:38:03,040 Så får streng er et nyt stykke funktionalitet, der ikke kun gør 776 00:38:03,040 --> 00:38:03,670 noget - 777 00:38:03,670 --> 00:38:05,000 beder brugeren om en streng - 778 00:38:05,000 --> 00:38:08,500 det returnerer også den, så at sige. 779 00:38:08,500 --> 00:38:10,690 >> Så lad os se, hvad der foregår at ske her. 780 00:38:10,690 --> 00:38:14,300 Jeg har tænkt mig at gå videre nu, og zoome ud, og jeg har tænkt mig at få et par 781 00:38:14,300 --> 00:38:15,780 fejltagelser på min prompt. 782 00:38:15,780 --> 00:38:18,750 Jeg har tænkt mig at skrive gøre brugerdefinerede, ind. 783 00:38:18,750 --> 00:38:19,230 Wow. 784 00:38:19,230 --> 00:38:20,500 En hel flok af fejltagelser. 785 00:38:20,500 --> 00:38:23,120 >> Okay, så det er lidt overvældende, i hvert fald i starten, men 786 00:38:23,120 --> 00:38:27,220 det viser sig alle disse meget ganske kryptiske fejlmeddelelser er 787 00:38:27,220 --> 00:38:30,700 henvise til nogle mønstre, vi vil begynde at se over tid. 788 00:38:30,700 --> 00:38:32,600 Så denne ene jeg vil plukke ud, fordi det er først. 789 00:38:32,600 --> 00:38:35,700 Anvendelse af sort identifikator streng. 790 00:38:35,700 --> 00:38:39,400 >> Det betyder blot, at gedit eller Clang, i dette tilfælde ikke ved 791 00:38:39,400 --> 00:38:40,780 hvad jeg mener med snoren. 792 00:38:40,780 --> 00:38:43,880 Og det er fordi i C, programmeringen sprog, der faktisk 793 00:38:43,880 --> 00:38:47,750 er ikke variabel af typen streng. 794 00:38:47,750 --> 00:38:49,810 C ikke ved, at strengene eksisterer. 795 00:38:49,810 --> 00:38:52,260 >> Men vi, CS50 personale, gør. 796 00:38:52,260 --> 00:38:57,080 Og så forud for klassen, vi skabte en fil kaldet CS50.h. 797 00:38:57,080 --> 00:39:00,060 Og inde i denne fil - og mere på syntaksen at komme - 798 00:39:00,060 --> 00:39:03,730 inde i denne fil er en definition af, hvad jeg lige har defineret, 799 00:39:03,730 --> 00:39:05,340 verbalt som en streng. 800 00:39:05,340 --> 00:39:09,100 Så blot ved at indgå denne ene linie kode i mit program, er jeg nu 801 00:39:09,100 --> 00:39:14,620 undervisning gedit og gøre og Clang alt til gengæld, hvad en streng er. 802 00:39:14,620 --> 00:39:15,475 >> Jeg ved ikke hvordan endnu. 803 00:39:15,475 --> 00:39:17,110 I et par uger, vil vi skræl tilbage, at lag. 804 00:39:17,110 --> 00:39:20,340 Men for nu, ved, at det lærer compileren, hvad en 805 00:39:20,340 --> 00:39:22,020 string rent faktisk er. 806 00:39:22,020 --> 00:39:24,230 >> Så lad mig klart min terminal hernede. 807 00:39:24,230 --> 00:39:28,530 Lad mig igen køre gøre brugerdefinerede, og jeg løst alle disse problemer. 808 00:39:28,530 --> 00:39:30,210 Så dette også kommer til at være et tilbagevendende tema. 809 00:39:30,210 --> 00:39:34,190 Jeg skrev kun en 9 line program, og men jeg havde 18 linjer af fejl. 810 00:39:34,190 --> 00:39:35,650 Det er lidt skræmmende. 811 00:39:35,650 --> 00:39:39,260 Men indse, at de ofte kaskade sådan at en lille fejl udløser 812 00:39:39,260 --> 00:39:43,070 forvirringen til compiler, og det ser meget værre end det er. 813 00:39:43,070 --> 00:39:47,460 >> Så nu en klog observatør vil vide at jeg får en snor fra 814 00:39:47,460 --> 00:39:51,460 bruger, men jeg er faktisk ikke gør hvad med det? 815 00:39:51,460 --> 00:39:53,570 Jeg er ikke faktisk gør noget med det. 816 00:39:53,570 --> 00:40:01,240 Så hvis jeg faktisk køre brugerdefinerede igen, det vil bare sidde der. 817 00:40:01,240 --> 00:40:03,380 Hvad sker der? 818 00:40:03,380 --> 00:40:07,990 Mit program ser ud til at blive hængende på hvilken linje, ville du sige? 819 00:40:07,990 --> 00:40:09,860 >> Så det er faktisk fast på linje 7.. 820 00:40:09,860 --> 00:40:13,600 Og vi har ikke set det før, men på linje 7, er der, igen, dette 821 00:40:13,600 --> 00:40:14,650 erklæring, få strengen. 822 00:40:14,650 --> 00:40:15,930 Og det gør, hvad det siger. 823 00:40:15,930 --> 00:40:18,480 Det venter nu for den menneskelige at tage strengen. 824 00:40:18,480 --> 00:40:22,230 Dette er helt unintuitive for mig, de menneskelige, fordi jeg ikke har fået at vide 825 00:40:22,230 --> 00:40:23,040 hvad de skal gøre. 826 00:40:23,040 --> 00:40:27,320 >> Men lad mig gå videre på tro og lad mig foregive at være Rob. 827 00:40:27,320 --> 00:40:28,500 Enter. 828 00:40:28,500 --> 00:40:30,930 Det er ikke det program, jeg havde tænkt mig. 829 00:40:30,930 --> 00:40:32,350 Så vi har vores første blog. 830 00:40:32,350 --> 00:40:34,390 >> Men lad os prøve at ræsonnere gennem hvorfor dette er tilfældet. 831 00:40:34,390 --> 00:40:36,940 Først, lad mig løse dette første problem. 832 00:40:36,940 --> 00:40:44,690 Lad mig tilføje en linje her, der siger printf, hvad er dit navn? 833 00:40:44,690 --> 00:40:47,700 Lad os bare gøre tæt citat, lukke parentes. 834 00:40:47,700 --> 00:40:51,350 >> Lad mig nu igen køre programmet. 835 00:40:51,350 --> 00:40:51,760 Problem. 836 00:40:51,760 --> 00:40:54,690 Jeg kan ikke se det. 837 00:40:54,690 --> 00:40:54,930 >> Right. 838 00:40:54,930 --> 00:40:55,990 Jeg har ikke genkompilere det. 839 00:40:55,990 --> 00:40:59,800 Så i et sprog som C, fordi du ændre kildekoden betyder ikke 840 00:40:59,800 --> 00:41:03,170 at du har ændret dit objekt kode til at generere nye objekt kode, 841 00:41:03,170 --> 00:41:04,330 nye nuller og ettaller. 842 00:41:04,330 --> 00:41:05,590 Du er nødt til at kompilere. 843 00:41:05,590 --> 00:41:10,300 Hvis jeg nu igen køre skik, indtaste, ah, lidt mere klart. 844 00:41:10,300 --> 00:41:11,890 Mit navn er Rob. 845 00:41:11,890 --> 00:41:12,760 Stadig buggy. 846 00:41:12,760 --> 00:41:14,170 >> Og jeg ville argumentere at der er et par bugs nu. 847 00:41:14,170 --> 00:41:15,450 Dette blot ser hæslige, helt ærligt. 848 00:41:15,450 --> 00:41:18,980 Ligesom, minimalt, skal jeg have en plads der, eller flyt 849 00:41:18,980 --> 00:41:20,330 markøren til den nye linje. 850 00:41:20,330 --> 00:41:21,370 >> Og faktisk ny linje. 851 00:41:21,370 --> 00:41:24,660 Det er sådan en central sætning her, at vi har set, men ikke defineret. 852 00:41:24,660 --> 00:41:28,560 Den måde, som du får en tekst til at flytte til den næste linje, 853 00:41:28,560 --> 00:41:29,480 behøver du ikke gøre dette. 854 00:41:29,480 --> 00:41:31,070 Dette er forvirrende for computeren. 855 00:41:31,070 --> 00:41:33,830 Det ligner to separate linjer kode, i nogen som 856 00:41:33,830 --> 00:41:35,010 er helt korrekt. 857 00:41:35,010 --> 00:41:39,380 Man i stedet nødt til at være mere eksplicit og sige, giv mig en ny linje, som vi 858 00:41:39,380 --> 00:41:41,810 repræsentere i c med backslash n. 859 00:41:41,810 --> 00:41:43,230 >> Så der er et par sådanne tegn. 860 00:41:43,230 --> 00:41:45,080 Backslash n vil løse denne æstetik. 861 00:41:45,080 --> 00:41:49,640 862 00:41:49,640 --> 00:41:50,870 Lad mig kompilere mit program. 863 00:41:50,870 --> 00:41:52,300 Lad mig igen køre mit program. 864 00:41:52,300 --> 00:41:53,520 >> Det ser bedre ud. 865 00:41:53,520 --> 00:41:56,960 Det er stadig temmelig primitive, men det er også stadig buggy. 866 00:41:56,960 --> 00:41:58,090 Så der er en - 867 00:41:58,090 --> 00:42:01,680 selvom du aldrig har programmeret før, kan du sikkert tage et gæt 868 00:42:01,680 --> 00:42:04,960 på, hvorfor dette program er stadig behæftet med fejl. 869 00:42:04,960 --> 00:42:08,540 Hvad har jeg brug for at gøre det Jeg har ikke gjort endnu? 870 00:42:08,540 --> 00:42:10,450 >> Så jeg er nødt til rent faktisk at gøre noget med navn. 871 00:42:10,450 --> 00:42:14,190 Ligesom i bunden, kan du faktisk tildele en variabel ligesom n eller 872 00:42:14,190 --> 00:42:16,150 imødegå ligesom vi gjorde sidste uge - en værdi. 873 00:42:16,150 --> 00:42:18,930 Men hvis du ikke gør noget med det, er intet kommer til at ske. 874 00:42:18,930 --> 00:42:20,210 >> Okay, så lad fix. 875 00:42:20,210 --> 00:42:23,670 Lad mig skrive min variabel der, og lad mig gå ned her. 876 00:42:23,670 --> 00:42:29,120 Lad mig kompilere, lad mig re-run, Rob. 877 00:42:29,120 --> 00:42:30,540 Nu er jeg bare en idiot, right? 878 00:42:30,540 --> 00:42:33,280 >> Så dette er ikke virkelig får mig yderligere. 879 00:42:33,280 --> 00:42:35,850 Men det var en helt naturlig instinkt, ville jeg argumentere, right? 880 00:42:35,850 --> 00:42:39,340 Hvis variablen kaldes navn, og jeg vil have det til at gå der, hvorfor jeg ikke bare 881 00:42:39,340 --> 00:42:40,200 skrive det der? 882 00:42:40,200 --> 00:42:42,210 >> Nå, selvfølgelig har vi at skelne nu 883 00:42:42,210 --> 00:42:44,070 mellem, hvad er en streng? 884 00:42:44,070 --> 00:42:47,060 Bemærk, at citat citat slut her, hallo navn? 885 00:42:47,060 --> 00:42:48,960 Dette faktisk selv er en streng. 886 00:42:48,960 --> 00:42:49,820 Det er svært kodet. 887 00:42:49,820 --> 00:42:50,690 Det er ikke fra det menneskelige. 888 00:42:50,690 --> 00:42:54,020 Det er fra mig, den oprindelige programmør, men det er stadig en streng. 889 00:42:54,020 --> 00:42:58,300 >> Så hvis du bogstaveligt skrive N-A-M-E indeni af en streng, hvad kommer til at 890 00:42:58,300 --> 00:42:59,120 få udskrevet? 891 00:42:59,120 --> 00:43:03,660 Nå, N-A-M-E. Vi har i stedet brug for at fortælle printf, udskrives ikke 892 00:43:03,660 --> 00:43:04,870 ud bogstaveligt navngive. 893 00:43:04,870 --> 00:43:06,680 Print ud af værdien af ​​navn. 894 00:43:06,680 --> 00:43:08,410 >> Og for at gøre det, vi gør følgende. 895 00:43:08,410 --> 00:43:09,800 Og det er bare et menneske konvention. 896 00:43:09,800 --> 00:43:14,990 Vi stedet siger% s, og at står for streng. 897 00:43:14,990 --> 00:43:19,810 Og så i slutningen af ​​mine nære citater, Jeg har tænkt mig at sætte et komma, og 898 00:43:19,810 --> 00:43:23,790 passere en andet argument ind i denne erklæring. 899 00:43:23,790 --> 00:43:25,970 Jeg har tænkt mig at skrive navnet der. 900 00:43:25,970 --> 00:43:27,960 >> Så nu ser vi, har en lidt nyt syntaks. 901 00:43:27,960 --> 00:43:32,320 Vi har stadig to parenteser og fremover lad mig sige, at de ting 902 00:43:32,320 --> 00:43:36,830 parentes repræsenterer argumenter i en funktion - 903 00:43:36,830 --> 00:43:39,730 materialer, der en eller anden måde går at påvirke dens adfærd. 904 00:43:39,730 --> 00:43:43,010 Så ved den logik, argumenter hvor mange ikke printf synes at være 905 00:43:43,010 --> 00:43:45,450 tager i dette øjeblik? 906 00:43:45,450 --> 00:43:48,370 >> Så det ser ud til at tage to, og det er faktisk underforstået 907 00:43:48,370 --> 00:43:49,570 af komma her. 908 00:43:49,570 --> 00:43:51,640 Så dette er et argument i anførselstegn. 909 00:43:51,640 --> 00:43:54,540 Selvom det har et komma i det, alt er i anførselstegn, hvilket betyder 910 00:43:54,540 --> 00:43:56,230 det er en lang streng. 911 00:43:56,230 --> 00:43:58,280 Komma, variabelnavn. 912 00:43:58,280 --> 00:44:00,680 >> Så lad mig zoome ud. 913 00:44:00,680 --> 00:44:02,240 Lad mig køre den igen. 914 00:44:02,240 --> 00:44:03,490 Rob. 915 00:44:03,490 --> 00:44:06,520 Fandens, hvad gjorde jeg forkert? 916 00:44:06,520 --> 00:44:07,920 >> Okay, så du er nødt til at kompilere. 917 00:44:07,920 --> 00:44:11,030 Så igen, let fejltagelser gøre tidligt igen og igen. 918 00:44:11,030 --> 00:44:15,280 Så nu igen køre skik, Rob, enter, og voila. 919 00:44:15,280 --> 00:44:17,110 Vi har nu en brugerdefineret program. 920 00:44:17,110 --> 00:44:21,660 >> Så jeg har nu et program, der bruge et par karakteristika 921 00:44:21,660 --> 00:44:22,520 der er værd at bemærke. 922 00:44:22,520 --> 00:44:27,850 Én, jeg bruger CS50.h, ellers kendt som CS50 biblioteket. 923 00:44:27,850 --> 00:44:33,050 Og inde i CS50-biblioteket er funktioner, som andre mennesker skrev - 924 00:44:33,050 --> 00:44:33,980 nemlig personale - 925 00:44:33,980 --> 00:44:36,620 for dig at bruge, og få streng er en af ​​dem. 926 00:44:36,620 --> 00:44:41,310 >> Inde i linje 2 er stdio.h, og hvorfor er det der? 927 00:44:41,310 --> 00:44:42,070 Tag et gæt. 928 00:44:42,070 --> 00:44:46,200 Hvad eksisterer inde i standard IO forælder? 929 00:44:46,200 --> 00:44:46,940 Printf. 930 00:44:46,940 --> 00:44:49,600 Så printf, behøver du ikke se det nogen steder ellers på skærmen. 931 00:44:49,600 --> 00:44:51,870 Den skal komme med computer eller anden måde. 932 00:44:51,870 --> 00:44:54,870 Hvor kommer den fra? 933 00:44:54,870 --> 00:44:57,660 Det er inde i - det er erklæret, så at sige, indersiden af 934 00:44:57,660 --> 00:44:59,890 en fil kaldet stdio.h. 935 00:44:59,890 --> 00:45:02,670 >> Nu, for det her, vi vil komme tilbage i sidste ende, fordi det er en smule 936 00:45:02,670 --> 00:45:03,930 distraherende for nu. 937 00:45:03,930 --> 00:45:05,490 Dette refererer til vores tilbagevenden type. 938 00:45:05,490 --> 00:45:07,660 Dette refererer til et argument. 939 00:45:07,660 --> 00:45:10,230 Men i dag, er vi fokuseret bare her på disse strækninger. 940 00:45:10,230 --> 00:45:13,280 >> Så string navn, bare for at opsummere, hvad gjorde det gøre for mig? 941 00:45:13,280 --> 00:45:16,940 942 00:45:16,940 --> 00:45:19,560 Så det erklæret en variabel af typen streng. 943 00:45:19,560 --> 00:45:22,630 Så det er beregnet til at være for ord, ikke for tal. 944 00:45:22,630 --> 00:45:25,530 Lige som en sidebemærkning, hvis jeg gjorde ønsker det at være et nummer, vil jeg sige 945 00:45:25,530 --> 00:45:26,560 noget som int. 946 00:45:26,560 --> 00:45:29,740 Hvis jeg ønskede at være en floating point værdi, noget med et komma, 947 00:45:29,740 --> 00:45:30,600 Jeg vil sige float. 948 00:45:30,600 --> 00:45:32,640 Men for i dag, jeg har lige sagt streng. 949 00:45:32,640 --> 00:45:35,940 >> Og jeg har givet denne variabel et navn på navn, men jeg kunne 950 00:45:35,940 --> 00:45:37,240 har kaldt det noget. 951 00:45:37,240 --> 00:45:39,340 I virkeligheden, oprindeligt jeg kaldte det S. 952 00:45:39,340 --> 00:45:41,050 >> Det her er bare en anden opgørelse. 953 00:45:41,050 --> 00:45:44,170 Hvor mange argumenter er det erklæring tager? 954 00:45:44,170 --> 00:45:47,890 Så det er bare at tage én, og at er simpelthen en æstetisk detalje af 955 00:45:47,890 --> 00:45:49,610 visning noget på skærmen til mig. 956 00:45:49,610 --> 00:45:54,750 Hvad er denne linje 8 laver i lægmandssprog? 957 00:45:54,750 --> 00:45:57,320 >> Det bliver en værdi fra bruger - nemlig en streng - 958 00:45:57,320 --> 00:45:58,770 og hvad laver det med det? 959 00:45:58,770 --> 00:46:02,450 Det er væsentligt at overdrage det til fyr på venstre side af 960 00:46:02,450 --> 00:46:07,100 lighedstegn således at i dette tilfælde Navnet variabel kan faktisk gemme det. 961 00:46:07,100 --> 00:46:10,020 >> Og så printf er en anden forekomst af en funktion. 962 00:46:10,020 --> 00:46:11,870 Og vi siger til at kalde en funktion. 963 00:46:11,870 --> 00:46:13,870 For at bruge en funktion er at kalde en funktion. 964 00:46:13,870 --> 00:46:15,640 Denne ting tilsyneladende tager to argumenter. 965 00:46:15,640 --> 00:46:18,100 Denne ene, komma, denne ene. 966 00:46:18,100 --> 00:46:20,910 >> Denne ene selv er blot en streng , der indeholder en pladsholder. 967 00:46:20,910 --> 00:46:23,860 % S betyder sagt på en anden streng her. 968 00:46:23,860 --> 00:46:27,360 Og så ved at sætte navn efter komma, der er indsættelse 969 00:46:27,360 --> 00:46:29,420 at ting for mig. 970 00:46:29,420 --> 00:46:31,300 >> Så jeg kan gøre andre ting stadig. 971 00:46:31,300 --> 00:46:36,820 Lad mig gå videre nu, og gøre lidt af et fjollet program, men lad mig slette denne, 972 00:46:36,820 --> 00:46:38,880 og lad mig lave en løkke. 973 00:46:38,880 --> 00:46:41,390 Mens sandt. 974 00:46:41,390 --> 00:46:45,210 Symbolet sandt er tydeligvis altid vil være sandt. 975 00:46:45,210 --> 00:46:49,830 Så hvad slags loop jeg fremkalde ved at skrive en linje som denne? 976 00:46:49,830 --> 00:46:51,070 >> Så en uendelig løkke, right? 977 00:46:51,070 --> 00:46:52,090 Bare mens sandt. 978 00:46:52,090 --> 00:46:56,210 Der er ingen måde jeg kan ændre ordet rigtigt at være noget andet, så det er 979 00:46:56,210 --> 00:46:57,310 bare at køre for evigt. 980 00:46:57,310 --> 00:46:59,960 Så hvis du nogensinde har faktisk haft et program i din Mac eller pc, der synes 981 00:46:59,960 --> 00:47:02,480 at have låst op, eller det gør noget og noget, og du bare 982 00:47:02,480 --> 00:47:05,500 kan ikke få de ting til at holde op, medmindre du genstarte computeren eller trække op 983 00:47:05,500 --> 00:47:08,360 Task Manager eller lignende, her er et eksempel herpå. 984 00:47:08,360 --> 00:47:14,340 >> Jeg kan sige, "Jeg er en fejlbehæftet program." Luk citat, luk 985 00:47:14,340 --> 00:47:15,780 parentes, semikolon. 986 00:47:15,780 --> 00:47:17,010 Så igen mærke mønstrene. 987 00:47:17,010 --> 00:47:21,440 Selvom nogle af vores syntaks er ny, nøgleordet mens nøgleordet sandt, 988 00:47:21,440 --> 00:47:23,590 Bemærk, at jeg har det samme slags krøllede parenteser. 989 00:47:23,590 --> 00:47:25,890 I got et semikolon og parenteser. 990 00:47:25,890 --> 00:47:28,000 >> Så lad os nu gå videre og kompilere dette. 991 00:47:28,000 --> 00:47:29,630 Gør skik, sædvane. 992 00:47:29,630 --> 00:47:32,690 993 00:47:32,690 --> 00:47:36,660 Så på dette punkt, behøver du ikke at genstarte apparatet, okay? 994 00:47:36,660 --> 00:47:39,925 Så den nemme lektion her er med to fingre, Kontrol C, 995 00:47:39,925 --> 00:47:41,230 vi afslutte dette program. 996 00:47:41,230 --> 00:47:45,430 Men du kan se præcis, hvorfor denne ting var gentage sig selv igen og igen. 997 00:47:45,430 --> 00:47:48,080 >> Jeg kan gøre noget lidt mere kompliceret, da en teaser. 998 00:47:48,080 --> 00:47:49,600 Jeg har tænkt mig at gå videre og sige følgende. 999 00:47:49,600 --> 00:47:55,210 For int, hvilket er et heltal, er jeg bare et generisk navn vi giver til de fleste 1000 00:47:55,210 --> 00:47:59,500 variabler i programmering, når du er bare tælle, er lig med 0. 1001 00:47:59,500 --> 00:48:08,640 Lad mig gå videre og sige, mens jeg er, lad os sige, mindre end 100, jeg plus plus. 1002 00:48:08,640 --> 00:48:10,240 Vi tilbage til denne syntaks, men dette betyder blot 1003 00:48:10,240 --> 00:48:12,270 tilvækst i igen og igen. 1004 00:48:12,270 --> 00:48:14,200 >> Og hvad ønsker jeg at gøre her? 1005 00:48:14,200 --> 00:48:21,130 Printf, "Jeg kan tælle til i". Dette er en fejlbehæftet program. 1006 00:48:21,130 --> 00:48:22,450 Hvad gjorde jeg egentlig hensigt her? 1007 00:48:22,450 --> 00:48:25,220 1008 00:48:25,220 --> 00:48:30,940 >> Procent ikke s, men du ville ikke gætte dette. % D er en decimal heltal. 1009 00:48:30,940 --> 00:48:32,720 Komma dvs. 1010 00:48:32,720 --> 00:48:34,340 Lad mig rulle tilbage. 1011 00:48:34,340 --> 00:48:37,170 >> Lad mig nu genkompilere med lave. 1012 00:48:37,170 --> 00:48:39,280 Lad mig nu køre med brugerdefinerede. 1013 00:48:39,280 --> 00:48:42,410 Jeg kan tælle rigtig sgu hurtigt, når Jeg skriver et program som dette. 1014 00:48:42,410 --> 00:48:45,480 >> Lad os nu gøre noget lidt utilsigtet. 1015 00:48:45,480 --> 00:48:51,220 Hvordan omkring lad os gøre det, mens jeg er større end eller lig med 0. 1016 00:48:51,220 --> 00:48:53,630 Hvad vil dette fremkalde? 1017 00:48:53,630 --> 00:49:01,030 Så logisk, det er ikke så klog, fordi nu hvis jeg køre dette optælling, 1018 00:49:01,030 --> 00:49:05,050 Jeg kan nu regne rigtig, rigtig højt. 1019 00:49:05,050 --> 00:49:08,850 Desværre lige så højt som jeg kan count er 4 milliarder, så det går 1020 00:49:08,850 --> 00:49:10,140 til at tage et stykke tid. 1021 00:49:10,140 --> 00:49:13,440 >> Så hvorfor ikke forlader vi dette som vores cliffhanger, lover, at der på 1022 00:49:13,440 --> 00:49:15,650 Onsdag vil vi se, om dette program er gjort. 1023 00:49:15,650 --> 00:49:19,260 To, vil vi introducere hvordan du selv skrive din egen funktion, så meget 1024 00:49:19,260 --> 00:49:22,930 hurtigt ved onsdag vi vil, som vi overgang fra Scratch til C, start 1025 00:49:22,930 --> 00:49:25,880 skriver stadig mere komplekse programmer, der gør meget, 1026 00:49:25,880 --> 00:49:27,070 meget mere end dette. 1027 00:49:27,070 --> 00:49:28,766 Vi vil se dig derefter. 1028 00:49:28,766 --> 00:49:31,580 >> [Applaus] 1029 00:49:31,580 --> 00:49:34,690 >> SPEAKER 1: På det næste CS50, Puzzle Day var en succes. 1030 00:49:34,690 --> 00:49:39,690