1 00:00:00,000 --> 00:00:11,375 2 00:00:11,375 --> 00:00:14,430 >> DAVID Malan: Dit is CS50, en dit is het begin van een week. 3 00:00:14,430 --> 00:00:17,930 En wat we dachten dat we zouden doen, is terug te trekken het gordijn van een inrichting die veel 4 00:00:17,930 --> 00:00:20,970 van jullie waarschijnlijk hebben gelopen nu voorbij voor de jaren, maar misschien nooit helemaal 5 00:00:20,970 --> 00:00:22,280 geweten wat het is. 6 00:00:22,280 --> 00:00:26,000 Dus dit apparaat zal waarschijnlijk kijken bekend bij de meeste van jullie inmiddels. 7 00:00:26,000 --> 00:00:32,972 >> [VIDEO AFSPELEN] 8 00:00:32,972 --> 00:00:36,150 >> -Een triomf van wiskundige en mechanische vaardigheid is deze geweldige nieuwe 9 00:00:36,150 --> 00:00:39,120 automatische rekenmachine op Harvard University. 10 00:00:39,120 --> 00:00:43,220 Ingewikkelde problemen in de wiskunde te zetten door de machine in gecodeerde vorm op 11 00:00:43,220 --> 00:00:47,840 tape worden nauwkeurig opgelost in een minuut fractie van de tijd die 12 00:00:47,840 --> 00:00:49,090 menselijke berekening. 13 00:00:49,090 --> 00:01:00,090 14 00:01:00,090 --> 00:01:04,080 >> Ontworpen voor alle vormen van bespoedigen wiskundig en wetenschappelijk onderzoek, 15 00:01:04,080 --> 00:01:07,860 de gigantische mechanische brein zal werken voor de Verenigde Staten 16 00:01:07,860 --> 00:01:09,180 Marine tot eind van de oorlog. 17 00:01:09,180 --> 00:01:18,180 18 00:01:18,180 --> 00:01:18,600 >> [END VIDEO AFSPELEN] 19 00:01:18,600 --> 00:01:21,980 >> DAVID Malan: Dus dat is wat je ziet in het Science Center, dat is waar 20 00:01:21,980 --> 00:01:23,540 die machine nu is gehuisvest. 21 00:01:23,540 --> 00:01:25,910 Je eigenlijk maar een deel ervan. 22 00:01:25,910 --> 00:01:28,800 Slechts een deel is momenteel te zien, en dat is een apparaat met de naam 23 00:01:28,800 --> 00:01:31,970 de Mark I en het in wezen echt een grote rekenmachine. 24 00:01:31,970 --> 00:01:36,250 Het werd opgevolgd door de Mark II, en het is van de Mark II dat we eigenlijk 25 00:01:36,250 --> 00:01:39,210 krijg een beetje lexicon. 26 00:01:39,210 --> 00:01:43,780 >> Dit is het eerste geregistreerde geval van iets wat je op het punt om alles te worden 27 00:01:43,780 --> 00:01:45,860 te bekend met over de loop van het semester - 28 00:01:45,860 --> 00:01:48,460 namelijk een bug. 29 00:01:48,460 --> 00:01:52,030 Dus het bleek op een gegeven moment de Mark II apparaat functioneerde niet 30 00:01:52,030 --> 00:01:55,930 goed, en bij nader inzien, Er was inderdaad een bug - een mot - 31 00:01:55,930 --> 00:01:56,910 dat mot - 32 00:01:56,910 --> 00:01:57,610 binnen. 33 00:01:57,610 --> 00:02:03,130 En sindsdien, hebben we verwezen naar fouten in programma's als bugs. 34 00:02:03,130 --> 00:02:05,330 Dus meer op die te komen. 35 00:02:05,330 --> 00:02:08,919 >> Spreken van video ook, als je nog niet heeft, weet dat CS50 is 36 00:02:08,919 --> 00:02:09,669 uiteraard gefilmd. 37 00:02:09,669 --> 00:02:13,330 De lezingen meestal omhoog gaan direct na klasse in de vorm van een pre-release 38 00:02:13,330 --> 00:02:17,240 onuitgegeven formaat, en dan een dag of twee later, we zetten een hogere resolutie 39 00:02:17,240 --> 00:02:18,490 en hogere kwaliteit versie. 40 00:02:18,490 --> 00:02:21,800 U mag Vanessa, die had het herinneren fortuin van het spelen met Google Glass, 41 00:02:21,800 --> 00:02:23,540 die ik me herinnerde aan rekenen deze keer. 42 00:02:23,540 --> 00:02:26,450 Dus als je wilt om te komen na de les en te spelen, ze nu moeten werken. 43 00:02:26,450 --> 00:02:30,816 En als je wilt zien wat Vanessa zag de andere dag, wat je ziet 44 00:02:30,816 --> 00:02:35,260 hier - laat ik het volume te verhogen hier op mijn laptop. 45 00:02:35,260 --> 00:02:35,690 >> [VIDEO AFSPELEN] 46 00:02:35,690 --> 00:02:37,620 >> -Dus laat me wachtrij is dit omhoog. 47 00:02:37,620 --> 00:02:38,070 Oke. 48 00:02:38,070 --> 00:02:40,930 Dus raak deze. 49 00:02:40,930 --> 00:02:41,720 Oke. 50 00:02:41,720 --> 00:02:43,470 OK, Glass. 51 00:02:43,470 --> 00:02:44,720 Een video opnemen. 52 00:02:44,720 --> 00:02:47,240 53 00:02:47,240 --> 00:02:48,640 >> Oke. 54 00:02:48,640 --> 00:02:50,446 Vanessa? 55 00:02:50,446 --> 00:02:50,870 >> [END VIDEO AFSPELEN] 56 00:02:50,870 --> 00:02:53,485 >> DAVID Malan: Oke, dus de reden dat het niet voor de meesten van jullie werkte bij 57 00:02:53,485 --> 00:02:56,540 het einde van de les was omdat ik verder om een ​​uur van die opnemen 58 00:02:56,540 --> 00:02:59,505 beeldmateriaal wijzend op mezelf na Ik zette de bril naar beneden. 59 00:02:59,505 --> 00:03:04,010 Dus vandaag, ik laat ze af, maar bedankt u Vanessa omdat ze zo'n 60 00:03:04,010 --> 00:03:05,420 goede sport. 61 00:03:05,420 --> 00:03:08,330 >> Ondertussen, een paar aankondigingen voordat we vooruitkomen vandaag. 62 00:03:08,330 --> 00:03:11,120 Dus men, CS50 heeft een traditie van het doen wat we kunnen om te proberen om een ​​zeer maken 63 00:03:11,120 --> 00:03:12,630 grote klasse voelen kleiner. 64 00:03:12,630 --> 00:03:16,640 En in de richting van dat doel, de meeste elke vrijdag, verzamelen we in een restaurant in 65 00:03:16,640 --> 00:03:20,160 het plein, Fire and Ice, met 30 of 40 van je klasgenoten, ikzelf, een aantal van 66 00:03:20,160 --> 00:03:22,520 het onderwijzend personeel, en we gewoon hebben een zeer informele lunch. 67 00:03:22,520 --> 00:03:26,280 Wij nodigen vaak vrienden uit de industrie, alumni van de klas, alumni van de 68 00:03:26,280 --> 00:03:30,340 universiteit, eigenlijk gewoon aan elkaar chatten andere up, praten over het leven na 69 00:03:30,340 --> 00:03:32,260 universiteit, het leven op de universiteit, en dergelijke. 70 00:03:32,260 --> 00:03:35,570 Dus als je wilt deelnemen aan deze eerste dergelijke lunch dit vrijdag bij 71 00:03:35,570 --> 00:03:38,640 13:15, het hoofd naar die URL op een bepaald punt. 72 00:03:38,640 --> 00:03:40,830 >> De ruimte is beperkt, dus we zullen doen wie het eerst komt het eerst maalt. 73 00:03:40,830 --> 00:03:43,880 Maar we zullen dit opnieuw doen op een terugkerend basis, dus geen zorgen te maken als je niet 74 00:03:43,880 --> 00:03:45,800 maak het in deze eerste batch. 75 00:03:45,800 --> 00:03:48,960 >> Nu, in termen van de verstrekte middelen curricularly door de cursus, 76 00:03:48,960 --> 00:03:51,500 er is een hele hoop, en als je niet trok de website van de cursus 77 00:03:51,500 --> 00:03:54,310 reeds, in het bijzonder, onder lezingen, je zult zien dat alles vinden 78 00:03:54,310 --> 00:03:57,070 we hebben vorige week is er, zowel in video en een soort 79 00:03:57,070 --> 00:03:58,435 van elektronische vorm. 80 00:03:58,435 --> 00:04:01,210 Maar afgezien van de video's, vindt u dat er nu full text 81 00:04:01,210 --> 00:04:03,290 transcripten, bijvoorbeeld van elke les. 82 00:04:03,290 --> 00:04:08,260 >> Dus als we eigenlijk terug gaan naar dit scherm hier met Vanessa, en navigeer 83 00:04:08,260 --> 00:04:12,010 aan de onderste hoek van het scherm, je zult zien dat eigenlijk vinden, niet voor 84 00:04:12,010 --> 00:04:15,060 Vrijdag de lezing, maar als we terug gaan naar Woensdag, aangezien deze functie neemt een 85 00:04:15,060 --> 00:04:17,870 paar dagen, zult u merken dat u kunt eigenlijk pull up, ten goede of ten 86 00:04:17,870 --> 00:04:22,260 erger, elk woord dat ik of een vrijwilliger op het podium gezegd. 87 00:04:22,260 --> 00:04:23,270 En meer dan dat. 88 00:04:23,270 --> 00:04:25,700 Je kunt eigenlijk zoeken is, kunt u Klik op een van deze zinnen, springen 89 00:04:25,700 --> 00:04:29,250 op dat punt in de video, allen jegens en het einde om het materiaal alle 90 00:04:29,250 --> 00:04:30,620 meer bevaarbaar. 91 00:04:30,620 --> 00:04:34,550 >> Maar als je liever niet volgen in een dergelijk detail, vindt u, voor 92 00:04:34,550 --> 00:04:39,710 Zo, dit kleine menu hier voor 1.5x snelheid, 2x snelheid, of ik f ik al 93 00:04:39,710 --> 00:04:42,100 te snel voor u spreken, 0,75 x snelheid. 94 00:04:42,100 --> 00:04:45,190 Dus beseffen dat alles is beschikbaar zijn er voor u. 95 00:04:45,190 --> 00:04:49,120 >> Maar buiten dat, voor lezingen, realiseren dat we ook deze middelen 96 00:04:49,120 --> 00:04:50,530 beschikbaar. 97 00:04:50,530 --> 00:04:55,240 Dia's, voorbeeldcode, iets dat ik doen op het podium of op voorhand van de klas, 98 00:04:55,240 --> 00:04:58,160 we zullen er posten zodat je kunt spelen samen thuis of in Sanders. 99 00:04:58,160 --> 00:05:01,280 Maar wat we ook gedacht dat we dit zouden doen jaar voor het eerst ook 100 00:05:01,280 --> 00:05:04,240 u met walkthroughs deze voorbeelden. 101 00:05:04,240 --> 00:05:08,120 Steeds, zoals ik heb nagedacht over de waarde van CS50's lezingen, heb ik begonnen 102 00:05:08,120 --> 00:05:11,450 op de vraag hoe nuttig het is voor jullie om daar te zitten, voor mij om op te staan 103 00:05:11,450 --> 00:05:15,020 hier, en voor mij om bij je praat, vooral als het materiaal, de 104 00:05:15,020 --> 00:05:17,020 voorbeelden, steeds complexer. 105 00:05:17,020 --> 00:05:20,790 Want steevast, na enige aantal minuten, iemand zal zone uit, en 106 00:05:20,790 --> 00:05:24,310 vervolgens een aantal belangrijke inzichten van sommige miss you Zo, en dan ben je in wezen 107 00:05:24,310 --> 00:05:27,720 gegaan voor het resterende deel van de klas, dat is niet het beste gebruik van 108 00:05:27,720 --> 00:05:31,330 uw tijd, of, eigenlijk, onze collectief als klasse. 109 00:05:31,330 --> 00:05:33,920 >> En dus wat we dachten dat we zouden proberen te doen, met name voor een aantal van de meer 110 00:05:33,920 --> 00:05:37,700 complexe voorbeelden die ik niet zou kunnen doen rechtvaardigheid in de klas, dat we misschien niet 111 00:05:37,700 --> 00:05:41,560 tijd voor in de klas, of u kunt net zone tijdens, is We zullen produceren 112 00:05:41,560 --> 00:05:45,500 een reeks van deze walkthroughs voorbeelden zodat als je naar, voor 113 00:05:45,500 --> 00:05:51,410 Zo, afgelopen vrijdag videopagina hier onder voorbeelden, zult u zien dat 114 00:05:51,410 --> 00:05:54,050 voor vrijdag, is er nu dit link naar walkthroughs. 115 00:05:54,050 --> 00:05:55,780 En het formaat van deze zal veranderen in de tijd. 116 00:05:55,780 --> 00:05:58,080 Voorlopig gebruiken we een eenvoudige YouTube playlist. 117 00:05:58,080 --> 00:06:00,980 >> Maar wat ik deed met ons productieteam daarna werd door elke 118 00:06:00,980 --> 00:06:04,480 en elk van die voorbeelden weer, hopelijk wijzen in de veel grotere 119 00:06:04,480 --> 00:06:07,550 duidelijkheid precies wat de afhaalrestaurants kan of zou moeten zijn van elkaar. 120 00:06:07,550 --> 00:06:10,560 Dus je zult, vinden, bijvoorbeeld ten opzichte van vorig week, alle van de scratch voorbeelden 121 00:06:10,560 --> 00:06:12,950 we gingen door zijn lineair gebeuren op die manier. 122 00:06:12,950 --> 00:06:15,840 Dus voel je vrij om deel te nemen of niet gaan in dit materiaal. 123 00:06:15,840 --> 00:06:19,140 Echt een thema van deze bijzondere cursus is dat er waarschijnlijk meer 124 00:06:19,140 --> 00:06:21,870 in de weg van middelen dan u zou kunnen absorberen dan 125 00:06:21,870 --> 00:06:23,260 de loop van een semester. 126 00:06:23,260 --> 00:06:23,980 >> Maar dat is een bewuste keuze. 127 00:06:23,980 --> 00:06:26,990 Het is bedoeld om te zijn, zodat je als individuele studenten kunnen zelf-select 128 00:06:26,990 --> 00:06:28,070 op basis van uw leerstijl. 129 00:06:28,070 --> 00:06:29,790 Dus als lezingen voor u werken, geweldig. 130 00:06:29,790 --> 00:06:31,090 Indien secties werken voor je, geweldig. 131 00:06:31,090 --> 00:06:32,930 Als walkthroughs werken voor je beter, geweldig. 132 00:06:32,930 --> 00:06:36,980 Het echt zal zijn aan u om te kiezen welke middelen het beste werken voor jou. 133 00:06:36,980 --> 00:06:40,380 >> Tot slot, dankzij een alumnus van de Natuurlijk bieden we ook een canonieke 134 00:06:40,380 --> 00:06:41,890 set van schrijver notities. 135 00:06:41,890 --> 00:06:46,270 Dus in plaats van dat jullie hoofden in lezingen gekrabbel van 136 00:06:46,270 --> 00:06:49,880 dingen die komen in de klas, wij, de personeel, zal u met wat we 137 00:06:49,880 --> 00:06:53,410 voelen zijn een canonieke verzameling van nota's aan bevrijden je van die afleiding, zodat 138 00:06:53,410 --> 00:06:57,150 als je hier bent en bezig, je bent echt bezig met wat er gaande is, 139 00:06:57,150 --> 00:07:00,110 met je klasgenoten aan het doen zijn op podium, met wat er op het scherm, 140 00:07:00,110 --> 00:07:03,570 en niet gewoon opschrijven verbatim wat er met zijn gezegd. 141 00:07:03,570 --> 00:07:06,730 Zo realiseert al die middelen zijn voor u beschikbaar. 142 00:07:06,730 --> 00:07:09,210 >> Snijden, in antwoord op een FAQ, zal beginnen deze woensdag. 143 00:07:09,210 --> 00:07:12,050 We wezen wachten tot na de meeste andere klassen worden gedaan, zodat we kunnen 144 00:07:12,050 --> 00:07:14,420 minimaliseren van het aantal veranderingen dat we moeten doen. 145 00:07:14,420 --> 00:07:20,010 Maar komen dit weekend, te beginnen Zondag, zal een eenmalig exemplaar van zijn 146 00:07:20,010 --> 00:07:21,360 wat wij noemen super secties. 147 00:07:21,360 --> 00:07:23,990 Deze zullen worden gefilmd voor diegenen die niet kunnen bij te wonen, en in wezen, de 148 00:07:23,990 --> 00:07:28,880 hoofden Natuurlijk zullen wij wandelen door enkele van het C gedeelte van de cursus, 149 00:07:28,880 --> 00:07:32,330 richting van een uiteinde van een probleemstelling, waarvan gaat onze eerste C gebaseerd zijn 150 00:07:32,330 --> 00:07:33,140 probleem set. 151 00:07:33,140 --> 00:07:36,240 En deze zal gewoon optioneel secties in afwachting van wat er zal 152 00:07:36,240 --> 00:07:40,010 geworden terugkerende rubrieken geleid door de cursus 50 plus 153 00:07:40,010 --> 00:07:41,600 lesgeven fellows wekelijks. 154 00:07:41,600 --> 00:07:45,130 Op zondag of maandag of dinsdag, we hebben 90 minuten secties in een zeer 155 00:07:45,130 --> 00:07:48,020 traditionele betekenis, die zal worden mogelijkheden voor handen op en meer 156 00:07:48,020 --> 00:07:50,800 intieme herziening van de materiaal cursus. 157 00:07:50,800 --> 00:07:53,820 >> Zonder verdere omhaal, laat me in te voeren hoofden van de cursus, die 158 00:07:53,820 --> 00:07:57,380 achter de schermen met mij, waardoor alles gebeuren. 159 00:07:57,380 --> 00:08:02,670 Als die hier vandaag kon toetreden mij, Rob en Lauren en Jozef en Lucas, alle 160 00:08:02,670 --> 00:08:05,770 van wie er zijn geweest met de Natuurlijk voor bepaalde tijd. 161 00:08:05,770 --> 00:08:08,450 RJ is de derde dergelijke lid van ons team. 162 00:08:08,450 --> 00:08:11,720 Hij kon hier niet vandaag, maar hij vroeg me om een ​​foto van hem laten zien. 163 00:08:11,720 --> 00:08:14,600 Ik weet niet of hij dit wilde een, maar daar is hij. 164 00:08:14,600 --> 00:08:18,350 >> En laat ik alleen voor het team om te zeggen hallo en stellen zich voor, zodat 165 00:08:18,350 --> 00:08:22,260 u te leren kennen en uw eigen onderwijs mede deze term. 166 00:08:22,260 --> 00:08:23,490 >> LAUREN CARVALHO: Hi. 167 00:08:23,490 --> 00:08:24,740 Mijn naam is Lauren Carvalho. 168 00:08:24,740 --> 00:08:26,900 Ik ben een inwoner tutor in Leverett House. 169 00:08:26,900 --> 00:08:31,120 Ik ben ook super enthousiast te zijn een hoofd TV voor CS50 dit jaar. 170 00:08:31,120 --> 00:08:35,830 >> CS50 is een zeer uitdagende klas en als een zeer grote klasse, dus als je 171 00:08:35,830 --> 00:08:38,780 zich zorgen maakt, als je het gevoel je achter vallen, voel je vrij om 172 00:08:38,780 --> 00:08:43,840 reiken aan iemand van ons bij heads@cs50.het, of aan mij, als je zou 173 00:08:43,840 --> 00:08:46,330 speel graag met mijn gouden retriever pup. 174 00:08:46,330 --> 00:08:48,060 Hier is Lucas. 175 00:08:48,060 --> 00:08:48,560 >> LUCAS FREITAS: He, jongens. 176 00:08:48,560 --> 00:08:49,330 Mijn naam is Lucas Freitas. 177 00:08:49,330 --> 00:08:51,880 Ik ben een junior [onverstaanbaar] 178 00:08:51,880 --> 00:08:53,630 computerwetenschap en linguïstiek. 179 00:08:53,630 --> 00:08:58,030 Ik ben eigenlijk uit Brazilië, en ik ook realiseren Oost-Aziatische studies. 180 00:08:58,030 --> 00:09:00,740 Dus als je vragen hebt over informatica of taal of 181 00:09:00,740 --> 00:09:01,870 iets, laat het me weten. 182 00:09:01,870 --> 00:09:05,630 Of CS50, bijzonder. 183 00:09:05,630 --> 00:09:05,880 >> JOSEPH ONG: Hi. 184 00:09:05,880 --> 00:09:06,265 Ik ben Jozef. 185 00:09:06,265 --> 00:09:11,360 Ik ben een senior studeren computer wetenschap in Elliott House. 186 00:09:11,360 --> 00:09:13,500 Dus, laten we eens kijken. 187 00:09:13,500 --> 00:09:16,530 Je zult me ​​zien rond het uitvoeren een van deze reusachtige camera. 188 00:09:16,530 --> 00:09:21,110 Ik ben de bewoner personeel fotograaf voor 50 als goed, en studenten vaak 189 00:09:21,110 --> 00:09:25,140 Soms verwarren me voor een Aziatische toerist. 190 00:09:25,140 --> 00:09:29,220 >> Dus als je me zien met een camera, niet weglopen. 191 00:09:29,220 --> 00:09:32,960 Gewoon lachen en wees niet verlegen. 192 00:09:32,960 --> 00:09:34,870 En ik hoop dat je geniet van 50. 193 00:09:34,870 --> 00:09:38,690 Ik heb er erg van genoten toen ik nam het, en dat is waarom ik heb TFing voor 194 00:09:38,690 --> 00:09:41,164 deze drie jaar. 195 00:09:41,164 --> 00:09:41,570 >> ROB BOWDEN: Hi. 196 00:09:41,570 --> 00:09:42,550 Ik ben Rob. 197 00:09:42,550 --> 00:09:46,240 Dit is mijn vierde semester met CS50. 198 00:09:46,240 --> 00:09:47,430 Ik heb net afgestudeerd in mei. 199 00:09:47,430 --> 00:09:49,650 Ik was in Kirkland. 200 00:09:49,650 --> 00:09:53,670 Ik ben enthousiast voor dit semester, en ik hoop dat jullie dat ook zijn. 201 00:09:53,670 --> 00:09:56,650 >> DAVID Malan: Bedankt voor dit jaar hoofden, en RJ ook. 202 00:09:56,650 --> 00:09:59,910 203 00:09:59,910 --> 00:10:02,310 >> Dus een paar laatste noten op middelen. 204 00:10:02,310 --> 00:10:04,090 Een, p set 0 is al omhoog. 205 00:10:04,090 --> 00:10:06,620 Deze bestaat alleen in standaard uitgave, die is bedoeld voor het 206 00:10:06,620 --> 00:10:07,610 geheel van de klasse. 207 00:10:07,610 --> 00:10:10,940 Ab p set 1, zal er hacker edities van de meeste probleem sets, 208 00:10:10,940 --> 00:10:14,660 die, nogmaals, zal het materiaal te dekken met een beetje meer van een uitdaging, terwijl 209 00:10:14,660 --> 00:10:17,400 nog aan te raken op een aantal van dezelfde onderwerpen. 210 00:10:17,400 --> 00:10:21,400 Doe een kijkje nemen op de website van de cursus voor dat de specificatie voor p set 0. 211 00:10:21,400 --> 00:10:25,140 >> Kantooruren, zal ook deze week beginnen, Vanavond, morgen, woensdag, 212 00:10:25,140 --> 00:10:27,670 en donderdag in verschillende eetgelegenheden zalen op de campus. 213 00:10:27,670 --> 00:10:32,140 Check out cs50.net/ohs voor het kantoor uur voor de cursus, en beseffen dat dit 214 00:10:32,140 --> 00:10:34,430 zal zeer toevallige kansen, zeker bij het begin van de 215 00:10:34,430 --> 00:10:37,190 semester, door te komen met uw laptop tijdens hersenen pauze. 216 00:10:37,190 --> 00:10:40,500 Breng wat vrienden en chat de TFs en CA's natuurlijk met elke 217 00:10:40,500 --> 00:10:41,750 vragen die u zou kunnen hebben. 218 00:10:41,750 --> 00:10:45,320 >> En ik kan niet genoeg benadrukken, zelfs voor kras en probleem set 0, er 219 00:10:45,320 --> 00:10:47,110 is echt geen domme vraag. 220 00:10:47,110 --> 00:10:51,200 Er is geen enkele student te ongemakkelijk om vragen te stellen. 221 00:10:51,200 --> 00:10:53,940 Aarzel dan niet om te profiteren van deze bron. 222 00:10:53,940 --> 00:10:56,430 Het zal er recurringly zijn het hele semester, 223 00:10:56,430 --> 00:10:57,840 zo zal CS50 bespreken. 224 00:10:57,840 --> 00:11:00,900 Dit is online discussie van de cursus fora op dat adres daar. 225 00:11:00,900 --> 00:11:04,490 >> Wat we ook zullen doen tijdens de colleges is dit ook controleren, dankzij de 226 00:11:04,490 --> 00:11:05,580 docententeam cursus. 227 00:11:05,580 --> 00:11:08,390 En dus als je een vraag hebt tijdens lezing, omdat ik iets gezegd 228 00:11:08,390 --> 00:11:11,690 slecht of helemaal niet, met alle middelen, vragen dat in real-time als u uw 229 00:11:11,690 --> 00:11:15,700 laptop of telefoon op de website, en we zullen ons best doen in de buurt van real-time te 230 00:11:15,700 --> 00:11:17,410 reageren. 231 00:11:17,410 --> 00:11:21,500 >> Zijn er nog vragen over CS 50? 232 00:11:21,500 --> 00:11:23,930 Dan nog een laatste noten van mij. 233 00:11:23,930 --> 00:11:25,530 Die kwestie van SAT unsat. 234 00:11:25,530 --> 00:11:28,550 Als je je studie kaarten af ​​te ronden, als u nog niet hebt, beseffen dat de 235 00:11:28,550 --> 00:11:32,360 overkoepelende visie op zat unsat, beschikbaar voor alle studenten, is echt 236 00:11:32,360 --> 00:11:36,350 om te helpen de rand af van een cursus als dit, om zo te zeggen, zodat als je 237 00:11:36,350 --> 00:11:40,510 merkt dat je 's avonds laat, 02:00, 03:00, echt je hoofd bonken tegen 238 00:11:40,510 --> 00:11:43,960 de muur waar je weet dat je 99% van de de manier waarop er aan de voltooiing, maar u 239 00:11:43,960 --> 00:11:47,510 hebben zo veel andere dingen te doen, Ik denk dat een beter gebruik, vaak, van 240 00:11:47,510 --> 00:11:51,260 time studenten 'is inderdaad overgaan tot die andere dingen, zodat u kunt 241 00:11:51,260 --> 00:11:52,780 optimaliseren van uw tijd rondom. 242 00:11:52,780 --> 00:11:56,950 En SAT unsat is een mechanisme via welke kunt u comfort in het feit 243 00:11:56,950 --> 00:12:00,530 dat 99% van de weg is er nog steeds pretty darn good. 244 00:12:00,530 --> 00:12:03,790 >> Op dezelfde manier, ook, als je in de kom Natuurlijk zonder voorafgaande achtergrond of 245 00:12:03,790 --> 00:12:07,960 niet bijna net zo veel achtergrond als u denk je klasgenoten zou kunnen hebben, ware 246 00:12:07,960 --> 00:12:13,210 of vals, beseffen dat dit een kans om je handen vuil 247 00:12:13,210 --> 00:12:16,590 met de cursus, zet je tenen in het water, om zo te zeggen, net zoals ik zelf 248 00:12:16,590 --> 00:12:18,500 deed jaren geleden met een pass / fail. 249 00:12:18,500 --> 00:12:21,850 Zoals ik al zei vorige week, had deze cursus, net als anderen, niet beschikbaar geweest 250 00:12:21,850 --> 00:12:25,090 pass / fail op het moment, ik zou waarschijnlijk niet ooit voet gezet in 251 00:12:25,090 --> 00:12:28,310 de klas, hoewel ik deed, vijf weken later, verander mijn geest, die u 252 00:12:28,310 --> 00:12:32,400 kunnen net zo goed, en schakel over naar of graded statuut brief. 253 00:12:32,400 --> 00:12:32,990 >> Oke. 254 00:12:32,990 --> 00:12:37,380 Dus keken we naar zaken als deze op Vrijdag, en we zijn zeer snel gaan 255 00:12:37,380 --> 00:12:39,890 overgang naar iets lijkt meer cryptische vandaag. 256 00:12:39,890 --> 00:12:42,300 Maar het is toch de dezelfde fundamentele idee. 257 00:12:42,300 --> 00:12:45,540 Wat was de algemene term die we gebruikt om een ​​puzzelstukje te beschrijven 258 00:12:45,540 --> 00:12:47,690 die eruit zag als dit? 259 00:12:47,690 --> 00:12:48,510 >> Dus, een verklaring. 260 00:12:48,510 --> 00:12:50,020 En u kunt dit elke bellen aantal dingen. 261 00:12:50,020 --> 00:12:51,870 Maar we noemen het een statement, en een verklaring 262 00:12:51,870 --> 00:12:53,200 gewoon vertelt het programma - 263 00:12:53,200 --> 00:12:55,290 of in het geval van Scratch, de sprite - 264 00:12:55,290 --> 00:12:56,520 om iets te doen. 265 00:12:56,520 --> 00:12:58,430 Gedag zeggen in dit geval. 266 00:12:58,430 --> 00:13:01,450 >> Zoiets als dit hebben we plaats genoemd wat? 267 00:13:01,450 --> 00:13:03,560 Ja, dus een Booleaanse expressie. 268 00:13:03,560 --> 00:13:07,380 Een Booleaanse expressie is gewoon iets dat is waar of onwaar, en dus Scratch 269 00:13:07,380 --> 00:13:10,530 trekt ze met deze vorm, maar ook met een vraagteken op het overbrengen 270 00:13:10,530 --> 00:13:14,510 idee dat het antwoord op deze vraag is waar of onwaar, ja of nee 271 00:13:14,510 --> 00:13:15,910 een, 1 of 0. 272 00:13:15,910 --> 00:13:19,290 >> En we gebruiken deze Booleaanse uitdrukkingen binnenkant van constructen als deze die 273 00:13:19,290 --> 00:13:21,010 wat genoemd wij? 274 00:13:21,010 --> 00:13:22,460 Dus, aandoening of bijkantoor. 275 00:13:22,460 --> 00:13:25,600 En de voorwaarde die u hier in te zien Kras heeft een kleine tijdelijke aanduiding voor een 276 00:13:25,600 --> 00:13:28,260 puzzelstukje van die vorm, het doel daarvan is, zodat u kunt 277 00:13:28,260 --> 00:13:32,670 sleep het en zet het op de top en dan dicteren aan het programma als dit Boolean 278 00:13:32,670 --> 00:13:36,410 expressie waar is, doe deze set van instructies, deze set van verklaringen, 279 00:13:36,410 --> 00:13:39,320 anders doet deze andere set instructies. 280 00:13:39,320 --> 00:13:41,270 >> En herinneren dat u kunt nest deze dingen. 281 00:13:41,270 --> 00:13:44,170 Ook al is er niet veel ruimte visueel in dat puzzelstukje, Scratch 282 00:13:44,170 --> 00:13:47,820 zal groeien en krimpen te passen ongeacht de puzzelstukjes u slepen en neerzetten 283 00:13:47,820 --> 00:13:51,410 er dus je kunt eigenlijk nest dit en hebben een drieweg splitsing in de weg. 284 00:13:51,410 --> 00:13:53,870 Indien, anders indien, anders. 285 00:13:53,870 --> 00:13:58,100 En je kunt zelfs verder gaan dan dat door nesting verder en verder indien nodig. 286 00:13:58,100 --> 00:14:02,520 >> Dus tot slot, zagen we constructies zoals Dit, ook wel bekend als een lus. 287 00:14:02,520 --> 00:14:05,690 En dit is gewoon iets dat doet iets opnieuw en opnieuw en opnieuw. 288 00:14:05,690 --> 00:14:09,250 In dit geval toevallig een eindig zijn aantal keren, maar we hebben ook 289 00:14:09,250 --> 00:14:12,890 zag een voorbeeld waarbij het aantal keer kwam van een variabele, zodat 290 00:14:12,890 --> 00:14:13,690 zou kunnen veranderen. 291 00:14:13,690 --> 00:14:16,910 En we zagen ook een ander blok helemaal riep een eeuwig blok dat 292 00:14:16,910 --> 00:14:19,590 liet ons toe om lus oneindig lang. 293 00:14:19,590 --> 00:14:23,300 >> Dus een andere constructie die Scratch 2.0 heeft - en die van u meer 294 00:14:23,300 --> 00:14:26,330 comfortabel met voorafgaande achtergrond zijn al goed vertrouwd zijn met deze 295 00:14:26,330 --> 00:14:27,080 construeren - 296 00:14:27,080 --> 00:14:29,910 deze dingen wat genoemd wij? 297 00:14:29,910 --> 00:14:32,540 Dus we belden deze functies, anders bekend als de procedures. 298 00:14:32,540 --> 00:14:35,030 Er is een klein semantisch verschil, maar we zullen ze gewoon functies aanroepen. 299 00:14:35,030 --> 00:14:39,950 >> En een functie bij Scratch, is een aangepaste puzzelstukje dat 300 00:14:39,950 --> 00:14:43,670 u zelf kunt maken, zodat u een nieuw puzzelstukje, in deze dat 301 00:14:43,670 --> 00:14:47,190 geval worden genoemd hoest, dat verschijnt onder alle andere 302 00:14:47,190 --> 00:14:48,730 beschikbaar puzzelstukjes in Scratch. 303 00:14:48,730 --> 00:14:52,010 Hoewel MIT niet uitgevonden dit puzzelstukje, je deed. 304 00:14:52,010 --> 00:14:57,600 >> Dus een functie kunt u nieuwe te maken gedrag, geef het een functienaam en 305 00:14:57,600 --> 00:14:59,200 noem het dan, om zo te zeggen. 306 00:14:59,200 --> 00:15:04,690 Echt gebruiken in programma's opnieuw en opnieuw en opnieuw, zonder te hoeven wachten 307 00:15:04,690 --> 00:15:08,600 voor iemand zoals MIT op de weg naar uitvinden nieuwe functionaliteit van Scratch. 308 00:15:08,600 --> 00:15:12,460 U kunt zelf deze puzzel op te bouwen stukken zelf, en ze vervolgens te hergebruiken 309 00:15:12,460 --> 00:15:13,600 in uw eigen programma's. 310 00:15:13,600 --> 00:15:17,520 En we zullen een terugkerend voorbeeld zien van die van vandaag en verder. 311 00:15:17,520 --> 00:15:20,960 >> Dus vandaag, nu we de overgang om iets meer geheimzinnige. 312 00:15:20,960 --> 00:15:24,350 Maar aan het eind van de dag, wat krachtiger en expressief en meer 313 00:15:24,350 --> 00:15:28,110 vertegenwoordiger van het pad dat we zullen op alle semester gedurende een aantal 314 00:15:28,110 --> 00:15:28,800 van talen - 315 00:15:28,800 --> 00:15:30,800 die van een code of broncode. 316 00:15:30,800 --> 00:15:34,720 En broncode, zo blijkt, is niet wat een computer 317 00:15:34,720 --> 00:15:37,400 meestal loopt eigenlijk. 318 00:15:37,400 --> 00:15:39,860 Broncode ziet er iets als dit. 319 00:15:39,860 --> 00:15:43,010 >> Dus dit is wederom misschien de eenvoudigste programma kunnen we schrijven in een 320 00:15:43,010 --> 00:15:46,670 taal genaamd C. We zullen beginnen om tease deze apart duurde niet lang, en als 321 00:15:46,670 --> 00:15:49,260 dit is echt niet uitziet als Grieks om je nu, geloof me. 322 00:15:49,260 --> 00:15:54,040 Binnen een week of twee de tijd, dit zal zijn maar al te bekend en eigenlijk 323 00:15:54,040 --> 00:15:57,780 vrij representatief van steeds complexe voorbeelden waarmee je 324 00:15:57,780 --> 00:15:59,870 krijgt ook meer comfortabel. 325 00:15:59,870 --> 00:16:03,100 >> Maar je kunt niet zomaar dit uitvoeren soort code meestal. 326 00:16:03,100 --> 00:16:06,750 Je hebt om te zetten in iets dat de computer zelf begrijpt. 327 00:16:06,750 --> 00:16:09,840 En dus voor dat we iets nodig hebben we gaan naar een compiler te bellen. 328 00:16:09,840 --> 00:16:13,910 Een compiler is een programma dat duurt broncode, zoals je net zag, zoals 329 00:16:13,910 --> 00:16:17,680 ingang, en het produceert nullen en die als output, anders 330 00:16:17,680 --> 00:16:19,210 bekend als objectcode. 331 00:16:19,210 --> 00:16:23,190 En het zijn die nullen en enen die zou heel zo uitzien dat 332 00:16:23,190 --> 00:16:26,310 uiteindelijk begrepen door uw Mac of pc. 333 00:16:26,310 --> 00:16:30,050 >> Als je ooit hebt gehoord van de marketing uitdrukking Intel Inside, die net 334 00:16:30,050 --> 00:16:32,800 betekent dat een bedrijf genaamd Intel heeft vervaardigd de 335 00:16:32,800 --> 00:16:34,130 hersenen van uw computer - 336 00:16:34,130 --> 00:16:37,270 ook wel bekend als de CPU, centrale verwerkingseenheid - 337 00:16:37,270 --> 00:16:39,640 en dat is gewoon het ding dat begrijpt patronen 338 00:16:39,640 --> 00:16:40,880 van nullen en enen. 339 00:16:40,880 --> 00:16:46,330 En dus door het omzetten van broncode in objectcode door dit proces hier 340 00:16:46,330 --> 00:16:49,130 dat zullen we doen met een paar commando's in slechts een beetje, je bent 341 00:16:49,130 --> 00:16:53,070 het creëren van patronen van nullen en enen dat de medewerkers van Intel hebben 342 00:16:53,070 --> 00:16:56,000 besloten vertegenwoordigen bepaalde uitspraken. 343 00:16:56,000 --> 00:16:58,810 >> Nu, weet ik niet precies weet welke wordt die door slechts een blik op 344 00:16:58,810 --> 00:16:59,890 deze nullen en enen. 345 00:16:59,890 --> 00:17:01,420 De meeste mensen deze dagen niet. 346 00:17:01,420 --> 00:17:04,900 Maar daar ergens een patroon van nullen en enen die vertegenwoordigt de 347 00:17:04,900 --> 00:17:06,349 statement print. 348 00:17:06,349 --> 00:17:10,460 Ergens zou er anders set van nullen en enen die 349 00:17:10,460 --> 00:17:16,940 vertegenwoordigen de notie van eeuwigheid of Herhaal 10 keer of zelfs miauw, als het 350 00:17:16,940 --> 00:17:20,000 eigenlijk een programma dat kan zijn sommige geluiden. 351 00:17:20,000 --> 00:17:24,390 >> Dus in het kort, hebben mensen net besloten, net zoals we deden voor ASCII - 352 00:17:24,390 --> 00:17:27,480 voor brieven van het alfabet vorige week - mensen hebben besloten dat zelfs 353 00:17:27,480 --> 00:17:32,200 meer complexe patronen van nullen en enen vertegenwoordigen meer complex gedrag 354 00:17:32,200 --> 00:17:35,650 zoals afdrukken of zeggen of miauwen. 355 00:17:35,650 --> 00:17:38,640 En dus voor vandaag, en grotendeels verder in het semester, nemen we voor 356 00:17:38,640 --> 00:17:41,820 vanzelfsprekend dat iemand heeft bedacht hoe dat mapping doen. 357 00:17:41,820 --> 00:17:45,560 Maar we een daarmee idee lagen bovenop het werk van mensen 358 00:17:45,560 --> 00:17:49,340 die vóór ons zijn gekomen, zal voor verleende het feit dat dit gaat over 359 00:17:49,340 --> 00:17:50,300 onder de motorkap. 360 00:17:50,300 --> 00:17:53,840 Maar we zijn veel meer geïnteresseerd in gebouw dingen die meer 361 00:17:53,840 --> 00:17:55,880 interessant op de top van dit alles. 362 00:17:55,880 --> 00:17:58,900 >> En dus inderdaad, het eerste programma dat we schreef in Scratch was dit super eenvoudige 363 00:17:58,900 --> 00:18:00,600 een, Hello World. 364 00:18:00,600 --> 00:18:05,100 En je kunt denken dat dit als zijnde de hoofdprogramma dat regelt Scratch's 365 00:18:05,100 --> 00:18:07,280 gedrag als van afgelopen vrijdag. 366 00:18:07,280 --> 00:18:11,510 >> Vandaag gaan we beginnen te vertalen Kras puzzelstukjes in 367 00:18:11,510 --> 00:18:16,040 broncode in deze taal genaamd C zodat leek dit op 368 00:18:16,040 --> 00:18:20,230 Vrijdag, vanaf vandaag verder, is nu gaat uitzien. 369 00:18:20,230 --> 00:18:21,860 Weliswaar meer cryptisch. 370 00:18:21,860 --> 00:18:25,010 Het is vrij storend en soort van geest verdovende om alle citaten te zien 371 00:18:25,010 --> 00:18:27,760 en de puntkomma en haakjes enzovoort. 372 00:18:27,760 --> 00:18:32,350 >> Maar als je begint iets te negeren niet begrijpen, en echt kijken 373 00:18:32,350 --> 00:18:35,960 in de kern van de witte tekst op de scherm, zeker zie je, zoals ik dat doe, 374 00:18:35,960 --> 00:18:40,360 "Hallo, wereld." Dat de lijnen met de paars verklaring tot boven, en het blijkt 375 00:18:40,360 --> 00:18:44,790 erop dat het zoekwoord belangrijkste gaat line-up conceptueel met als groene 376 00:18:44,790 --> 00:18:46,350 vlag geklikt. 377 00:18:46,350 --> 00:18:49,820 >> Dus met andere woorden, terwijl in Scratch, we deze Hello World programma uit te voeren 378 00:18:49,820 --> 00:18:53,360 met die twee puzzelstukjes, in C, we gaan om het uit te voeren met deze 379 00:18:53,360 --> 00:18:55,510 vier enigszins cryptisch lijnen. 380 00:18:55,510 --> 00:18:58,130 Maar als we dieper ingaan op deze, zul je zien dat elk van deze 381 00:18:58,130 --> 00:19:02,730 witte letters op het scherm daadwerkelijk heeft een aantal belangrijke betekenis, 382 00:19:02,730 --> 00:19:05,880 en de meeste van onze programma's gaan kijk structureel helemaal hetzelfde. 383 00:19:05,880 --> 00:19:08,980 Dus een verklaring, om duidelijk te zijn, wat leek "zeg hallo wereld" op 384 00:19:08,980 --> 00:19:12,020 Vrijdag gaat beginnen kijken zoals dit op maandag. 385 00:19:12,020 --> 00:19:15,250 printf ("hello, world"). 386 00:19:15,250 --> 00:19:17,700 En er is een aantal rare backslash n, er haakjes, er is 387 00:19:17,700 --> 00:19:18,490 puntkomma. 388 00:19:18,490 --> 00:19:21,950 >> Maar aan het eind van de dag, de toets afhaalmaaltijden vandaag is dat al zijn we het doen 389 00:19:21,950 --> 00:19:25,710 is het vertalen van dingen uit beeld vormen naar de vorm van tekst. 390 00:19:25,710 --> 00:19:28,820 Zodat een lus die leek deze vorige week gaat nu kijken 391 00:19:28,820 --> 00:19:30,140 zoiets als dit. 392 00:19:30,140 --> 00:19:33,020 >> En laat me wijzen, net als in Scratch, er is op verschillende manieren te 393 00:19:33,020 --> 00:19:34,110 bereiken van hetzelfde doel. 394 00:19:34,110 --> 00:19:38,860 Hetzelfde in C. Ik ben niet tonen u de enige manier om dingen te doen, maar een manier om 395 00:19:38,860 --> 00:19:43,230 vertalen dit voor altijd blok een lus C. 396 00:19:43,230 --> 00:19:44,980 >> Deze hier, herhaal dit 10 keer. 397 00:19:44,980 --> 00:19:47,580 Deze echt soort bochten de erg de eerste keer dat je het ziet. 398 00:19:47,580 --> 00:19:49,860 Maar dat voortaan voeren, we gaan een gebruiken 399 00:19:49,860 --> 00:19:51,990 lus, zo te zeggen. 400 00:19:51,990 --> 00:19:56,150 En duidelijk er is een aantal syntax dat is een klein areaal met I en 401 00:19:56,150 --> 00:19:59,740 gelijk en 0, maar zodra we duiken in dat vandaag verder, je bent gewoon gaan 402 00:19:59,740 --> 00:20:04,260 om te zien dat dat is allemaal gewoon te doen wat elementaire rekenkundige om ons uit 0 403 00:20:04,260 --> 00:20:07,720 Op tot 9 of 10 in dit geval. 404 00:20:07,720 --> 00:20:11,570 >> Ten slotte, met variabelen, zult u herinneren dat een variabele is een stukje van de opslag. 405 00:20:11,570 --> 00:20:14,290 Nou, wat we hadden aan de linkerkant is er afgelopen week gaat een beetje te kijken 406 00:20:14,290 --> 00:20:15,920 zoiets als dit deze week. 407 00:20:15,920 --> 00:20:17,870 Maar nogmaals, meer daarover te komen. 408 00:20:17,870 --> 00:20:20,700 >> We hadden Booleaanse uitdrukkingen, die vorige week, leek dit. 409 00:20:20,700 --> 00:20:23,370 Deze week verder, ze gaan beginnen om een ​​beetje uitzien als dat. 410 00:20:23,370 --> 00:20:24,890 >> En deze is eigenlijk een beetje geruststellend. 411 00:20:24,890 --> 00:20:27,680 Het is eigenlijk bijna net zo eenvoudig de groene blokken. 412 00:20:27,680 --> 00:20:31,115 Maar hier hebben we, opnieuw, een aantal nieuwe syntax met ampersands, maar u kunt 413 00:20:31,115 --> 00:20:35,390 misschien denk dat het in Scratch, je Zeg A-N-D, blijkbaar in C, zijn we 414 00:20:35,390 --> 00:20:37,070 gaan zeggen ampersand-teken. 415 00:20:37,070 --> 00:20:39,650 Maar dit alles zal worden natuurlijke duurde niet lang. 416 00:20:39,650 --> 00:20:40,680 >> Voorwaarden. 417 00:20:40,680 --> 00:20:42,610 Vorige week, leek het Deze links. 418 00:20:42,610 --> 00:20:44,800 Deze week, aan de rechterkant, het is gaat zien dat. 419 00:20:44,800 --> 00:20:48,560 Maar nogmaals, de sleutel mee te nemen is dat als je ziet dat soort dingen op 420 00:20:48,560 --> 00:20:51,950 rechts, en vooral als minder comfortabel, het is een soort van over je 421 00:20:51,950 --> 00:20:54,950 hoofd, krijg je een beetje overdonderd dat Ik heb echt geen idee hoe ik het kon 422 00:20:54,950 --> 00:20:58,420 eventueel komen met dat vanuit het niets - 423 00:20:58,420 --> 00:20:59,500 no pun intended - 424 00:20:59,500 --> 00:21:05,300 gewoon beseffen dat het echt hetzelfde idee dat waarschijnlijk voelde zo veel meer 425 00:21:05,300 --> 00:21:06,760 natuurlijk de vorige week. 426 00:21:06,760 --> 00:21:10,960 En zelfs als je niet hebt gedoken in probleem set 0, ik durf u zult vinden 427 00:21:10,960 --> 00:21:13,790 dat de puzzelstukjes zijn vrij intuïtief, althans 428 00:21:13,790 --> 00:21:16,050 worden zo in de tijd. 429 00:21:16,050 --> 00:21:16,990 >> Dus laten we duiken inch 430 00:21:16,990 --> 00:21:20,760 Laten we onze handen vuil hier met Deze eerste eenvoudige programma. 431 00:21:20,760 --> 00:21:22,410 En eenvoudig is natuurlijk relatief. 432 00:21:22,410 --> 00:21:25,190 Om dit te doen, ga ik schermen veranderen om dat apparaat Ik belde de 433 00:21:25,190 --> 00:21:26,150 CS50 apparaat. 434 00:21:26,150 --> 00:21:29,700 De CS50 apparaat is een fluitje van een software die draait binnen een 435 00:21:29,700 --> 00:21:33,920 venster op mijn Mac, en je kunt ook lopen het in een venster binnenkant van je pc, dat 436 00:21:33,920 --> 00:21:38,720 kan ik exact dezelfde zijn computeromgeving elk TF, zoals 437 00:21:38,720 --> 00:21:40,940 elke CA, zoals elke student in de klas. 438 00:21:40,940 --> 00:21:44,590 Omdat het CS50 apparaat letterlijk een ander besturingssysteem 439 00:21:44,590 --> 00:21:45,410 genaamd Linux - 440 00:21:45,410 --> 00:21:47,160 specifiek Fedora Linux - 441 00:21:47,160 --> 00:21:51,320 en wij, het personeel, hebben geconfigureerd het installatieproces voor deze 442 00:21:51,320 --> 00:21:55,200 besturingssysteem zodanig dat, er is een klein CS50-logo in de 443 00:21:55,200 --> 00:21:59,240 midden, twee, is er een aangepast menu op de bodem, en drie, pedagogisch, 444 00:21:59,240 --> 00:22:02,570 We hebben de gebruikersinterface vereenvoudigd zoveel mogelijk, zodat wanneer u 445 00:22:02,570 --> 00:22:05,540 eerst opstarten dit ding op uw eigen Mac of pc, je hebt dezelfde 446 00:22:05,540 --> 00:22:08,280 milieu als iedereen, en u hebben alle tools die je nodig hebt 447 00:22:08,280 --> 00:22:11,390 voor de cursus zonder te achterhalen hoe u elke installeren en 448 00:22:11,390 --> 00:22:13,280 elk instrument afzonderlijk. 449 00:22:13,280 --> 00:22:15,840 >> Dus dit ziet er relatief zoals Mac OS of Windows. 450 00:22:15,840 --> 00:22:18,760 In de linker bovenhoek, je wezen hebben een menu Start van 451 00:22:18,760 --> 00:22:20,280 sorteert, of een Apple-menu. 452 00:22:20,280 --> 00:22:23,700 En dan heb je wat wij vermoeden zal zijn uw drie meest voorkomende pictogrammen. 453 00:22:23,700 --> 00:22:24,460 Een daarvan is Chrome. 454 00:22:24,460 --> 00:22:26,460 Er is een browser binnen van het apparaat. 455 00:22:26,460 --> 00:22:29,970 >> Twee is een programma genaamd gedit, die we zagen kort vorige week, dat is 456 00:22:29,970 --> 00:22:31,310 gewoon een grafische editor. 457 00:22:31,310 --> 00:22:35,350 En drie is een terminal programma, dat is een zwarte en witte venster van 458 00:22:35,350 --> 00:22:39,860 weleer die ons in staat stelt om meer te typen arcane maar krachtiger opdrachten bij 459 00:22:39,860 --> 00:22:40,660 onze toetsenbord. 460 00:22:40,660 --> 00:22:44,220 Dus ik ga om verder te gaan en klik op gedit, en er zeker van dat probleem 461 00:22:44,220 --> 00:22:48,520 set 1, worden vrijgegeven op vrijdag, zal loop je door al deze dezelfde stappen. 462 00:22:48,520 --> 00:22:51,730 >> Merk op dat ik heb een vrij eenvoudige gebruikersinterface met drie delen. 463 00:22:51,730 --> 00:22:54,990 Aan de linkerkant, ik heb een grote lege venster genaamd broncode. 464 00:22:54,990 --> 00:22:58,930 Dat is waar ik ga om een ​​samenvatting te zien van een code die ik schrijf. 465 00:22:58,930 --> 00:23:01,990 Aan de rechterkant, ik heb een groot tabblad, momenteel gered, en dat is 466 00:23:01,990 --> 00:23:03,510 waar mijn code gaat gaan. 467 00:23:03,510 --> 00:23:06,780 En onderaan, heb ik een ingesloten Terminal-venster, een zwart-wit 468 00:23:06,780 --> 00:23:12,060 prompt waar ik kan commando's typen om compileren en om mijn programma's te draaien - dat 469 00:23:12,060 --> 00:23:14,110 is, te maken en om mijn programma's te draaien. 470 00:23:14,110 --> 00:23:15,170 >> Dus laten we beginnen simpel. 471 00:23:15,170 --> 00:23:17,700 Laat me gaan omhoog naar Bestand, Opslaan. 472 00:23:17,700 --> 00:23:20,530 Ik ga om te gaan en gaan in jharvard. 473 00:23:20,530 --> 00:23:24,320 Dus het apparaat, ongeacht hetgeen uw naam is, behoort tot een man genaamd 474 00:23:24,320 --> 00:23:28,250 John Harvard, die een jharvard huis directory binnenkant waarvan al uw 475 00:23:28,250 --> 00:23:29,100 bestanden zal gaan. 476 00:23:29,100 --> 00:23:31,640 Het is uw eigen exemplaar van zijn rekening, dus we zijn niet allemaal delen 477 00:23:31,640 --> 00:23:33,530 dezelfde harde schijf. 478 00:23:33,530 --> 00:23:35,580 Je hoeft alleen de illusie van John Harvard's eigen. 479 00:23:35,580 --> 00:23:38,350 >> Van tevoren, ik eigenlijk geïnstalleerde Dropbox. 480 00:23:38,350 --> 00:23:42,600 Het apparaat wordt geleverd met preprepared Dropbox, zodat als er iets mis gaat 481 00:23:42,600 --> 00:23:45,950 tijdens het semester, als u hebt geconfigureerd apparaat met een vrije 482 00:23:45,950 --> 00:23:48,950 Dropbox-account, al je bestanden wil automatisch een back-up, zodat je 483 00:23:48,950 --> 00:23:50,430 kan heel gemakkelijk ze te herstellen. 484 00:23:50,430 --> 00:23:53,980 En ik ga om te gaan in mijn Dropbox directory, en er gaat al 485 00:23:53,980 --> 00:23:55,530 te zijn een paar andere dingen zijn er. 486 00:23:55,530 --> 00:24:02,090 >> Maar ik ga om verder te gaan en ga naar Bestand, Opslaan. 487 00:24:02,090 --> 00:24:05,930 Ik ga om te gaan in jharvard, Dropbox, en hier, ik ga 488 00:24:05,930 --> 00:24:10,590 geef mijn programma een super eenvoudige naam, hello.c, en vervolgens opslaan. 489 00:24:10,590 --> 00:24:11,810 Dus ik heb nu dezelfde interface. 490 00:24:11,810 --> 00:24:14,190 Het enige dat is veranderd is het tabblad boven. 491 00:24:14,190 --> 00:24:17,170 Dus ik ben heel snel gaan om te recreëren dat programma uit de 492 00:24:17,170 --> 00:24:19,060 schuift een moment geleden. 493 00:24:19,060 --> 00:24:25,690 >> Dus in main (void), en dan printf, "Hallo, wereld," een enigszins cryptische 494 00:24:25,690 --> 00:24:29,920 backslash n, dicht citaat, sluit haakjes, puntkomma, en 495 00:24:29,920 --> 00:24:32,030 vervolgens Ctrl S te redden. 496 00:24:32,030 --> 00:24:34,860 En merk als een terzijde wat er net verscheen hier in de linkerbovenhoek. 497 00:24:34,860 --> 00:24:37,490 En dit is niet nuttig vandaag, maar nuttig verloop van tijd zal zijn. 498 00:24:37,490 --> 00:24:40,160 Je ziet alleen maar, nogmaals, een samenvatting van de code die je hebt geschreven. 499 00:24:40,160 --> 00:24:43,320 En omdat ik iets genaamd schreef belangrijkste, dat is de reden waarom het woord hoofd geknald 500 00:24:43,320 --> 00:24:44,030 up daar. 501 00:24:44,030 --> 00:24:46,610 Maar voor het grootste deel, we niet nodig dat vandaag. 502 00:24:46,610 --> 00:24:51,130 >> Oke, dus ik beweren dat dit is mijn eerste programma geschreven in een programmeertaal 503 00:24:51,130 --> 00:24:54,620 taal genaamd C. We weten van vrijdag dat wat dit ding gaat doen 504 00:24:54,620 --> 00:24:58,450 zeer uninterestingly toen ik draaien het is gewoon geven - 505 00:24:58,450 --> 00:25:01,270 in andere woorden, drukken, als computer wetenschapper zou zeggen - 506 00:25:01,270 --> 00:25:03,310 hello wereld op het scherm. 507 00:25:03,310 --> 00:25:06,800 Dus om dit te doen, zult u merken dat ik heb om hier beneden te gaan naar mijn terminal 508 00:25:06,800 --> 00:25:09,250 raam, en nu heb ik een knipperende prompt. 509 00:25:09,250 --> 00:25:15,480 Dit is nu een toetsenbord versie mijn John Harvard home directory. 510 00:25:15,480 --> 00:25:19,610 Het is een toetsenbord manier via welke om mijn harde schijf te navigeren. 511 00:25:19,610 --> 00:25:25,380 >> Dus ik kan niet echt typen zoals ik deed vorige week te maken hallo, want het is 512 00:25:25,380 --> 00:25:27,230 gaat geen regel te zeggen tegen doelwit maken - 513 00:25:27,230 --> 00:25:27,950 er is iets mis. 514 00:25:27,950 --> 00:25:31,690 Ik weet niet precies wat dat bericht betekent, maar dat komt omdat standaard, 515 00:25:31,690 --> 00:25:35,350 wanneer dit zwart en wit venster is geopend, ben ik de binnenkant van John Harvard's 516 00:25:35,350 --> 00:25:36,160 home directory. 517 00:25:36,160 --> 00:25:39,180 Maar waar heb ik dat programma op te slaan? 518 00:25:39,180 --> 00:25:40,440 In mijn Dropbox-map. 519 00:25:40,440 --> 00:25:43,110 >> Nu, ieder van ons zijn opgegroeid met computers waar je gewoon dubbelklikken 520 00:25:43,110 --> 00:25:45,610 op het pictogram van een map, het opent, en voila. 521 00:25:45,610 --> 00:25:48,280 Dat is waar het bestand met de naam hello.c zou zijn. 522 00:25:48,280 --> 00:25:49,470 Dus in feite, laten we dat doen. 523 00:25:49,470 --> 00:25:51,610 >> Laat me ga je gang en het minimaliseren van gedit net zoals u zou doen op 524 00:25:51,610 --> 00:25:52,990 Windows of Mac OS. 525 00:25:52,990 --> 00:25:56,160 Laat me gaan in het huis map linksboven. 526 00:25:56,160 --> 00:25:57,620 Ik zal hier zie een heleboel mappen. 527 00:25:57,620 --> 00:25:58,870 Hier is mijn Dropbox-map. 528 00:25:58,870 --> 00:26:00,770 De vinkjes betekent dat het is al gesynchroniseerd. 529 00:26:00,770 --> 00:26:04,040 En er zijn een paar dingen in hier, maar merkt dat hello.c is 530 00:26:04,040 --> 00:26:04,960 inderdaad daar. 531 00:26:04,960 --> 00:26:08,050 >> En dus in Mac OS of Windows, normaal, Ik zou dubbel klikt dat, het opent in 532 00:26:08,050 --> 00:26:10,220 welk programma, en ik ben goed om te gaan. 533 00:26:10,220 --> 00:26:13,370 Maar nu, in ieder geval vanaf vandaag, we nodig hebt om een ​​stap terug te nemen alleen maar om 534 00:26:13,370 --> 00:26:16,960 geven u een aantal basis gereedschappen voor uw tool kit waarmee om meer te doen 535 00:26:16,960 --> 00:26:18,980 krachtige dingen duurde niet lang. 536 00:26:18,980 --> 00:26:22,280 >> Dus bij deze prompt, ik moet het doen equivalent van te dubbelklikken op het 537 00:26:22,280 --> 00:26:23,560 Dropbox-map. 538 00:26:23,560 --> 00:26:29,900 En om dat te doen, ga ik CD typen voor veranderen directory, Dropbox, in te voeren. 539 00:26:29,900 --> 00:26:36,100 En let nu op de haakjes bij mijn zogenaamde prompt zegt nu dat ik in 540 00:26:36,100 --> 00:26:38,470 tilde, de kleine kronkelende symbool in de linkerbovenhoek van 541 00:26:38,470 --> 00:26:40,860 de meeste toetsenborden, / Dropbox. 542 00:26:40,860 --> 00:26:45,200 Dit is slechts korte notatie voor zeggen mensen, je bent nu de binnenkant van 543 00:26:45,200 --> 00:26:48,650 de Dropbox-map, net alsof je dubbel had geklikt op. 544 00:26:48,650 --> 00:26:54,610 >> Dus als ik nu ga je gang en typ maken hello, voer, zie ik een zeer cryptische 545 00:26:54,610 --> 00:26:57,450 commando, maar geen foutmelding, zo lijkt het, en vervolgens 546 00:26:57,450 --> 00:26:59,020 andere knipperende prompt. 547 00:26:59,020 --> 00:27:04,470 En als je te herinneren, ooit zo snel op vrijdag, we deden dit. . / Hello. 548 00:27:04,470 --> 00:27:10,000 >> Wat je gaat zien is het resultaat van mijn lopende dit programma, of, in Mac 549 00:27:10,000 --> 00:27:14,310 OS en PC termen, als ik normaal zou verdubbelen Klik op een programma -. een app 550 00:27:14,310 --> 00:27:17,620 programma of een. exe, het opent een raam en afdalingen. 551 00:27:17,620 --> 00:27:21,920 Te typen. / Hello is net als dubbele klikken op een programma om het uit te voeren, maar 552 00:27:21,920 --> 00:27:23,280 met mijn toetsenbord. 553 00:27:23,280 --> 00:27:25,410 >> Enter, hello wereld. 554 00:27:25,410 --> 00:27:26,150 En dat is het. 555 00:27:26,150 --> 00:27:29,150 Dus laten we plagen deze uit elkaar om zo het voelt niet te veel zoals Grieks. 556 00:27:29,150 --> 00:27:31,370 >> Zo. ​​/ Betekent wat? 557 00:27:31,370 --> 00:27:34,120 Iedereen die ooit genavigeerd een toetsenbord omgeving als deze, wat is dot 558 00:27:34,120 --> 00:27:36,690 verwijzen naar? 559 00:27:36,690 --> 00:27:37,800 De huidige directory. 560 00:27:37,800 --> 00:27:41,320 >> Dus de huidige directory is gewoon een synoniem voor een map. 561 00:27:41,320 --> 00:27:46,230 Dus door te zeggen dot slash, zeg ik, op zoek naar een programma genaamd hallo in het 562 00:27:46,230 --> 00:27:47,250 huidige directory - 563 00:27:47,250 --> 00:27:48,540 in de huidige map. 564 00:27:48,540 --> 00:27:50,480 Met andere woorden, mijn Dropbox-map. 565 00:27:50,480 --> 00:27:54,220 En dat is waarom hitting Voer daarna eigenlijk loopt dat programma. 566 00:27:54,220 --> 00:27:58,790 >> Als ik nu het type LS, merken dat ik zie alles in mijn Dropbox-map. 567 00:27:58,790 --> 00:28:02,000 Getting Started.pdf, die Dropbox geeft u gratis, mijn foto's 568 00:28:02,000 --> 00:28:05,450 directory, een openbare map, Niet-opgeslagen Document 1 die ik maakte per ongeluk een 569 00:28:05,450 --> 00:28:09,730 daarnet, foo.c, die ik eerder gemaakt vandaag, en vervolgens twee lijnen - 570 00:28:09,730 --> 00:28:12,090 hello.c en hallo. 571 00:28:12,090 --> 00:28:17,280 >> Hello.c is het programma dat ik schreef met gedit, en wat is hallo in het groen? 572 00:28:17,280 --> 00:28:20,920 573 00:28:20,920 --> 00:28:22,940 De hello in het groen is het uitvoerbaar. 574 00:28:22,940 --> 00:28:27,020 Met andere woorden, als ik liep deze opdracht een moment geleden - laat me roll 575 00:28:27,020 --> 00:28:28,040 terug in de tijd - 576 00:28:28,040 --> 00:28:32,400 toen ik liep te maken hallo, dat is de middelste stap hier. 577 00:28:32,400 --> 00:28:34,410 En het duurde hello.c als input - 578 00:28:34,410 --> 00:28:39,910 AKA broncode - en het produceerde een bestand met de naam hello als output, die 579 00:28:39,910 --> 00:28:42,510 bevat al deze nullen en enen. 580 00:28:42,510 --> 00:28:47,640 En dat is waarom, in het einde, ik kan daadwerkelijk uitvoeren van een commando als. / hello. 581 00:28:47,640 --> 00:28:53,310 Vanwege Intel Inside, mijn besturingssysteem systeem, Linux, opent die nullen 582 00:28:53,310 --> 00:28:55,820 en degenen, voedt ze in de hersenen van mijn computer - 583 00:28:55,820 --> 00:28:56,580 de CPU - 584 00:28:56,580 --> 00:29:00,460 en dat de CPU weet, oh, hier is een patroon van nullen en enen die zegt 585 00:29:00,460 --> 00:29:02,800 Druk de volgende ding op het scherm. 586 00:29:02,800 --> 00:29:04,450 >> Wat is het volgende ding? 587 00:29:04,450 --> 00:29:07,650 Quote unquote, "hello wereld." 588 00:29:07,650 --> 00:29:12,100 >> Oke, dus een korte samenvatting van enkele van deze commando's, zodat we kunnen beginnen 589 00:29:12,100 --> 00:29:13,350 nemen ze voor lief. 590 00:29:13,350 --> 00:29:15,550 Laat ik verder met waar we gebleven waren. 591 00:29:15,550 --> 00:29:22,230 En u zult zich herinneren dat we hadden CD op onze back-end een moment geleden. 592 00:29:22,230 --> 00:29:24,880 Deze zijn, ik durf te zeggen, voor huidige doeleinden - 593 00:29:24,880 --> 00:29:29,010 misschien deze week - het enige commando dat we misschien moet typen op de opdrachtregel 594 00:29:29,010 --> 00:29:30,580 prompt naast maken. 595 00:29:30,580 --> 00:29:34,510 >> Dus CD stond voor wat? 596 00:29:34,510 --> 00:29:35,180 Verander de map. 597 00:29:35,180 --> 00:29:38,010 Het is gewoon het equivalent van dubbele klikken op een map. 598 00:29:38,010 --> 00:29:41,320 En als een terzijde, als je verloor ooit binnenkant van uw 599 00:29:41,320 --> 00:29:43,430 apparaat, zodat Dropbox - 600 00:29:43,430 --> 00:29:45,420 Ik wil terug naar mijn jharvard directory - 601 00:29:45,420 --> 00:29:50,490 bij twijfel, CD, voer, zonder andere woorden, en het gewoon ritsen je terug 602 00:29:50,490 --> 00:29:53,110 naar waar je begon, welke is een leuke kleine snelkoppeling. 603 00:29:53,110 --> 00:29:54,840 >> Oke, dus nu andere opdrachten. 604 00:29:54,840 --> 00:29:55,660 LS. 605 00:29:55,660 --> 00:29:56,840 Ik dat een moment geleden getypt. 606 00:29:56,840 --> 00:29:59,500 Wat denk je dat LS voor staat? 607 00:29:59,500 --> 00:30:00,470 >> Dus, lijst, toch? 608 00:30:00,470 --> 00:30:03,300 Terug in de dag, wanneer mensen kwamen met deze opdrachten, zij 609 00:30:03,300 --> 00:30:07,180 probeerden om efficiënt te zijn, en in plaats uittypen L-I-S-T enter, zij 610 00:30:07,180 --> 00:30:08,470 besloten LS. 611 00:30:08,470 --> 00:30:09,080 Dat is prima. 612 00:30:09,080 --> 00:30:10,420 Het klinkt genoeg als lijst. 613 00:30:10,420 --> 00:30:13,870 Laten we gewoon het type LS voeren, en dat staan ​​de bestanden of mappen in mijn 614 00:30:13,870 --> 00:30:15,000 huidige map. 615 00:30:15,000 --> 00:30:17,530 >> mkdir, kunt u waarschijnlijk wel raden. 616 00:30:17,530 --> 00:30:18,440 Maken directory. 617 00:30:18,440 --> 00:30:22,010 Dus je hoeft niet naar bepaalde menu bestand en kies Nieuwe map in deze omgeving. 618 00:30:22,010 --> 00:30:27,410 Integendeel, het commando mkdir spatie typt u en vervolgens de naam van de map 619 00:30:27,410 --> 00:30:29,850 dat u wilt maken, en het zal gebeuren. 620 00:30:29,850 --> 00:30:32,380 >> rm, kunt u waarschijnlijk wel raden. 621 00:30:32,380 --> 00:30:33,480 Verwijderen of te wissen. 622 00:30:33,480 --> 00:30:36,740 Dus als je wilt een bestand verwijdert, zult u zien in het probleem set hoe je 623 00:30:36,740 --> 00:30:37,240 kunnen dit doen. 624 00:30:37,240 --> 00:30:39,510 En rmdir, verwijdert directory. 625 00:30:39,510 --> 00:30:42,320 >> Dus nogmaals, ik de neiging om te vliegen door een aantal van deze gegevens, een, want 626 00:30:42,320 --> 00:30:46,010 ze zijn niet allemaal zo leuk om te besteden tijd op, maar twee, zullen wij u voorzien in 627 00:30:46,010 --> 00:30:48,720 veel meer detail in een van de probleem cursus stelt, in het bijzonder 628 00:30:48,720 --> 00:30:52,370 de standaard edities, elk van de stappen die je nodig zou kunnen hebben om dit te typen 629 00:30:52,370 --> 00:30:54,830 dat je meer en meer comfortabel met deze dingen. 630 00:30:54,830 --> 00:30:57,430 >> Maar nu laat me plagen elkaar een ander ding. 631 00:30:57,430 --> 00:31:02,580 Toen we getypt maken hallo even geleden, we zagen een cryptische reeks commando. 632 00:31:02,580 --> 00:31:04,805 We zagen, nogmaals, maak hello. 633 00:31:04,805 --> 00:31:07,640 634 00:31:07,640 --> 00:31:08,520 OK, laten we dit doen. 635 00:31:08,520 --> 00:31:11,840 Ik stond op het punt om een ​​fout te maken, maar [Onverstaanbaar] nu toegeven dat ik stond te 636 00:31:11,840 --> 00:31:14,400 en bewust doen. 637 00:31:14,400 --> 00:31:15,810 >> Wat heb ik verkeerd gedaan net nu? 638 00:31:15,810 --> 00:31:18,680 639 00:31:18,680 --> 00:31:21,060 Ja, dus ik ben niet in de Dropbox directory, want een ogenblik geleden I 640 00:31:21,060 --> 00:31:22,720 getypte CD en gewoon druk op enter. 641 00:31:22,720 --> 00:31:25,480 Die me ingezoomd terug naar waar ik begon, dat is niet waar mijn dossier 642 00:31:25,480 --> 00:31:31,720 is, dus ik moet echt te doen CD Dropbox voeren, en nu kan ik rm hello doen 643 00:31:31,720 --> 00:31:34,060 voeren, verwijder regelmatig file hello. 644 00:31:34,060 --> 00:31:35,200 Ik weet niet waarom het zo cryptisch. 645 00:31:35,200 --> 00:31:37,600 Die net betekent bent u zeker u wilt hallo verwijderen? 646 00:31:37,600 --> 00:31:41,510 U kunt y typen voor ja, in te voeren, en nu is het weg. 647 00:31:41,510 --> 00:31:46,010 >> En als ik nu typ maken hallo nogmaals, het is ga mijn objectcode recreëren, 648 00:31:46,010 --> 00:31:47,460 recreëren die nullen en enen. 649 00:31:47,460 --> 00:31:51,070 Maar wat is de deal met deze zeer lange commando? 650 00:31:51,070 --> 00:31:53,960 Nou, we zullen deze plagen elkaar het duurde niet lang, maar zorg - 651 00:31:53,960 --> 00:31:55,500 Ik vertelde een beetje een leugentje om bestwil vóór - 652 00:31:55,500 --> 00:31:56,880 geen compiler. 653 00:31:56,880 --> 00:32:00,350 Maken is een programma dat automatisch cijfers uit hoe je een run 654 00:32:00,350 --> 00:32:02,060 compiler voor u. 655 00:32:02,060 --> 00:32:07,490 >> Dus de opdracht die je echt zou moeten zijn lopen om hello.c zetten 656 00:32:07,490 --> 00:32:11,240 in hello ziet er eigenlijk een beetje meer als dit. 657 00:32:11,240 --> 00:32:15,900 En God verhoede we moeten eigenlijk vergeet niet om ooit typen dat hele 658 00:32:15,900 --> 00:32:17,280 reeks opdrachten uit. 659 00:32:17,280 --> 00:32:21,360 Het doel van te maken in het leven is om vergeet niet dat de mate van complexiteit van 660 00:32:21,360 --> 00:32:24,470 ons en automatiseren wat anders zouden doen erg vervelend werk. 661 00:32:24,470 --> 00:32:26,040 >> Maar ik kan benaderen dat. 662 00:32:26,040 --> 00:32:29,960 Dus per deze kleine spiekbriefje hier, ik kunnen benaderen wat dat commando is 663 00:32:29,960 --> 00:32:33,960 doen door simpelweg te typen Clang, dat is de naam van de compiler zullen we 664 00:32:33,960 --> 00:32:35,170 het gebruik van dit semester. 665 00:32:35,170 --> 00:32:38,500 Als een van u ooit hebt gedaan iOS ontwikkeling voor de iPhone of iPad, 666 00:32:38,500 --> 00:32:42,930 Clang is het programma dat u hebt gebruikt binnen Xcode om je apps te maken. 667 00:32:42,930 --> 00:32:46,360 Clang, hoewel, is gewoon een ander programma waarvan we de naam kunt typen op de opdrachtregel 668 00:32:46,360 --> 00:32:49,210 prompt, en door de invoering van dit bedrijf, Ik kan iets dat een te introduceren 669 00:32:49,210 --> 00:32:52,410 weinig representatief opdrachten komen. 670 00:32:52,410 --> 00:32:53,910 Dus laat ik dit handmatig doen. 671 00:32:53,910 --> 00:32:59,240 >> Dus rm hallo, en nu het bericht in geval Ik heb, net als een sanity check - 672 00:32:59,240 --> 00:33:03,180 . / Hallo, wat denk je dat ik moeten zien als ik dit doe? 673 00:33:03,180 --> 00:33:04,060 Een soort van fout. 674 00:33:04,060 --> 00:33:05,110 Geen dergelijke dossier directory. 675 00:33:05,110 --> 00:33:06,740 Zodat men eigenlijk vrij direct. 676 00:33:06,740 --> 00:33:08,110 >> Dus nu laat ik het scherm te wissen. 677 00:33:08,110 --> 00:33:11,370 Controle S wist alleen het scherm om wat afleiding te verwijderen. 678 00:33:11,370 --> 00:33:17,160 En nu ga ik handmatig Type clang-o hello hello.c. 679 00:33:17,160 --> 00:33:18,890 Dus wat is dit over te doen? 680 00:33:18,890 --> 00:33:23,820 Precies hetzelfde wat te maken deed voor ons, maar ik wist weg te gooien sommige van 681 00:33:23,820 --> 00:33:25,430 de overbodige woorden. 682 00:33:25,430 --> 00:33:28,570 >> Clang is het programma dat gaat neem een. c-bestand als input en produceert 683 00:33:28,570 --> 00:33:30,110 nullen en enen als output. 684 00:33:30,110 --> 00:33:35,120 Maar-o voortaan zullen noemen een schakelaar of een vlag. 685 00:33:35,120 --> 00:33:39,080 Dit is slechts techie jargon voor het zeggen Dit is een woord dat je typt op een prompt 686 00:33:39,080 --> 00:33:42,590 dat een of andere manier het gedrag beïnvloedt van het programma je draait. 687 00:33:42,590 --> 00:33:47,180 Dus wil iemand raden wat-o overbrengt? 688 00:33:47,180 --> 00:33:47,840 >> Uitgang. 689 00:33:47,840 --> 00:33:52,670 Het is gewoon iemand besloten-o betekent uitgang van een bestand hallo geroepen en nemen als 690 00:33:52,670 --> 00:33:56,440 ingang, ongeacht het laatste woord over de prompt is, hello.c, zodat als ik hit 691 00:33:56,440 --> 00:33:58,930 Voer nu, niets lijkt te gebeuren. 692 00:33:58,930 --> 00:34:02,010 En vreemd genoeg, in deze wereld van programmering, als er niets gebeurt, 693 00:34:02,010 --> 00:34:03,980 dat is waarschijnlijk een goede zaak want er is geen fout 694 00:34:03,980 --> 00:34:05,350 bericht op het scherm. 695 00:34:05,350 --> 00:34:07,190 Hallo, Enter. 696 00:34:07,190 --> 00:34:08,670 Mijn programma is nu uitgevoerd. 697 00:34:08,670 --> 00:34:14,517 >> Maar ik kan stomme kleine dingen doen zoals deze. Clang-o, hihihi, hello.c, 698 00:34:14,517 --> 00:34:18,590 voeren, en nu heb ik een identieke programma genaamd hihihi. 699 00:34:18,590 --> 00:34:20,739 Het gedraagt ​​zich hetzelfde, maar de naam is anders. 700 00:34:20,739 --> 00:34:23,360 >> Dus dit is alleen maar om te zeggen dat als je wilt het gedrag van een invloed 701 00:34:23,360 --> 00:34:25,909 programma, we gaan steeds meer zie dingen geroepen 702 00:34:25,909 --> 00:34:27,739 command line argumenten. 703 00:34:27,739 --> 00:34:28,639 Dit is een lijn. 704 00:34:28,639 --> 00:34:29,580 U typt opdrachten. 705 00:34:29,580 --> 00:34:30,969 Ergo, command line. 706 00:34:30,969 --> 00:34:35,690 En command line argumenten zijn slechts woorden of kleine stukjes van de syntaxis die 707 00:34:35,690 --> 00:34:40,840 andere manier invloed op het gedrag van programma's die we lopen. 708 00:34:40,840 --> 00:34:44,639 >> Oke, dat is misschien wel de meest saai programma kunnen we schrijven en zien. 709 00:34:44,639 --> 00:34:46,670 Laten we nu iets doen interessanter. 710 00:34:46,670 --> 00:34:49,420 Laat me ga je gang en maak een nieuw bestand. 711 00:34:49,420 --> 00:34:53,139 Ik ga om te gaan en slaan deze in John Harvard's home directory als, 712 00:34:53,139 --> 00:34:58,670 laten we noemen het custom.c, te zijn een beetje aangepast programma. 713 00:34:58,670 --> 00:35:01,920 Ik ga in te zoomen op mijn top van de tabbladen hier en opnieuw beginnen. 714 00:35:01,920 --> 00:35:03,730 >> Zijn standaard stdio.h. 715 00:35:03,730 --> 00:35:04,990 Meer op dat in een moment. 716 00:35:04,990 --> 00:35:08,240 int main (void), meer op dat in een moment. 717 00:35:08,240 --> 00:35:09,490 printf ("hallo, David"). 718 00:35:09,490 --> 00:35:12,810 719 00:35:12,810 --> 00:35:14,560 Veel interessanter, toch? 720 00:35:14,560 --> 00:35:20,690 >> Dus nu als - niet omwille van mijn naam, gewoon omdat het anders - 721 00:35:20,690 --> 00:35:24,950 maken gepersonaliseerde voeren. 722 00:35:24,950 --> 00:35:26,780 Aangepaste, hello, David. 723 00:35:26,780 --> 00:35:28,020 Maar zelfs dat, ook dat is een leugentje om bestwil. 724 00:35:28,020 --> 00:35:30,850 Dit programma kan net zo goed worden genoemd David.C, want het is niet op maat 725 00:35:30,850 --> 00:35:31,880 gedrag helemaal. 726 00:35:31,880 --> 00:35:35,080 Echt, ik wil een programma dat vraagt de gebruiker voor hun naam. 727 00:35:35,080 --> 00:35:36,320 >> Dus hoe moet ik dat doen? 728 00:35:36,320 --> 00:35:38,520 Nou, laat me bladert u omhoog hier. 729 00:35:38,520 --> 00:35:42,960 En voordat ik een verklaring in Kras, voordat ik gebruik printf, 730 00:35:42,960 --> 00:35:47,600 ook wel bekend als een functie, laat me eerst de gebruiker om invoer te vragen. 731 00:35:47,600 --> 00:35:49,690 >> Dus om dit te doen, moet ik doe een paar dingen. 732 00:35:49,690 --> 00:35:53,360 Een, ik heb een plek op te slaan van de gebruiker noemen nadat ik hem heb gevraagd of 733 00:35:53,360 --> 00:35:54,510 haar voor. 734 00:35:54,510 --> 00:36:00,120 Wat construct moet ik waarschijnlijk gebruik tot een waarde als dat slaan? 735 00:36:00,120 --> 00:36:00,910 Een variabele. 736 00:36:00,910 --> 00:36:05,130 >> Dus in tegenstelling tot Scratch, waar je gewoon een leuke puzzel stuk, hier, we moeten 737 00:36:05,130 --> 00:36:07,620 Gebruik uiteraard woorden ons uitdrukken. 738 00:36:07,620 --> 00:36:11,510 En voortaan, wanneer u maar wilt een woord of een zin, in de programmering, 739 00:36:11,510 --> 00:36:13,090 we gaan roepen dat een string. 740 00:36:13,090 --> 00:36:14,990 Dus een string is een woord of een zin. 741 00:36:14,990 --> 00:36:18,170 Het is een reeks van nul of meer personages, meer formeel. 742 00:36:18,170 --> 00:36:22,520 >> En als je wilt dat een dergelijke variabele te bestaan, je te zeggen geef me nog een. 743 00:36:22,520 --> 00:36:27,490 En de manier waarop je dat doet is aan zeggen touwtje s puntkomma, waar s kan worden 744 00:36:27,490 --> 00:36:28,740 alles wat je wilt. 745 00:36:28,740 --> 00:36:30,510 In feite, is een beetje underwhelming. 746 00:36:30,510 --> 00:36:33,250 Laat ik verder gaan en meer duidelijk noemen naam. 747 00:36:33,250 --> 00:36:36,570 Geef me een string genaamd naam. 748 00:36:36,570 --> 00:36:40,180 >> Maar nu, wat is de persoon naam standaard? 749 00:36:40,180 --> 00:36:42,930 Nou, als de mens niet iets typt in, natuurlijk, er zal 750 00:36:42,930 --> 00:36:44,310 tot geen waarde in naam zijn. 751 00:36:44,310 --> 00:36:48,120 En het blijkt in C, als je niet geven een variabele een waarde, het gaat om 752 00:36:48,120 --> 00:36:49,180 hebben een vuilnisbak waarde. 753 00:36:49,180 --> 00:36:51,650 Het zou kunnen hebben een aantal willekeurige nullen en degenen, dus je bent gewoon gaan om te zien 754 00:36:51,650 --> 00:36:54,570 vuilnis, echt, op het scherm als je probeert om het weer te geven. 755 00:36:54,570 --> 00:36:59,800 >> Maar ik kan bevestigen dat door te zeggen, eigenlijk, winkel binnenkant van de naam van de 756 00:36:59,800 --> 00:37:01,400 volgende waarde. 757 00:37:01,400 --> 00:37:09,240 De manier waarop je slaan waarden in variabelen is Als u een variabele naam op het hebben 758 00:37:09,240 --> 00:37:13,370 links, moet je een of andere manier zetten wat je wilt opslaan in het op de juiste, en 759 00:37:13,370 --> 00:37:17,650 de syntaxis voor die gaat zijn als volgt. 760 00:37:17,650 --> 00:37:22,120 >> We hebben dit niet eerder gezien, maar neem op geloof voor een moment dat er 761 00:37:22,120 --> 00:37:26,270 Er bestaat een andere verklaring in de wereld dat ga ik weer bellen functie, 762 00:37:26,270 --> 00:37:28,310 en deze functie riep krijgen string. 763 00:37:28,310 --> 00:37:29,670 En het doet letterlijk dat. 764 00:37:29,670 --> 00:37:34,680 Het krijgt een of andere manier een reeks tekens van de mens en vervolgens 765 00:37:34,680 --> 00:37:36,380 er iets mee doet. 766 00:37:36,380 --> 00:37:38,410 >> En dit betekent eruit cryptische syntax. 767 00:37:38,410 --> 00:37:40,880 Normaal gesproken, als je gebruik maakt gelijkheidstekens - je bent in de wereld van, zeg, 768 00:37:40,880 --> 00:37:43,740 algebra, en je bent eigenlijk zeggende x is gelijk aan 1. 769 00:37:43,740 --> 00:37:46,570 Hier zijn we niet zeggen dat naam gelijk krijgen string. 770 00:37:46,570 --> 00:37:51,270 We zeggen store in naam van wat is aan de rechterkant 771 00:37:51,270 --> 00:37:52,400 van die gelijk-teken. 772 00:37:52,400 --> 00:37:55,030 De gelijk-teken vertegenwoordigt de opdracht operator. 773 00:37:55,030 --> 00:37:58,240 Het is de syntax die zegt gezet wat er op de rechterkant binnenkant wat is 774 00:37:58,240 --> 00:37:59,090 links. 775 00:37:59,090 --> 00:38:03,040 Dus maak je string is een nieuw stuk functionaliteit die niet alleen 776 00:38:03,040 --> 00:38:03,670 iets - 777 00:38:03,670 --> 00:38:05,000 vraagt ​​de gebruiker om een ​​string - 778 00:38:05,000 --> 00:38:08,500 keert het ook, zo te zeggen. 779 00:38:08,500 --> 00:38:10,690 >> Dus laten we eens zien wat er gebeurt hier gebeuren. 780 00:38:10,690 --> 00:38:14,300 Ik ga nu verder te gaan en uit te zoomen, en ik ga een paar te krijgen 781 00:38:14,300 --> 00:38:15,780 fouten bij mijn prompt. 782 00:38:15,780 --> 00:38:18,750 Ik ga typen maken gepersonaliseerde, in te voeren. 783 00:38:18,750 --> 00:38:19,230 Wow. 784 00:38:19,230 --> 00:38:20,500 Een hele hoop fouten. 785 00:38:20,500 --> 00:38:23,120 >> Oke, dus dit is een soort van overweldigend, zeker in het begin, maar 786 00:38:23,120 --> 00:38:27,220 blijkt al deze zeer weliswaar cryptische foutmeldingen zijn 787 00:38:27,220 --> 00:38:30,700 verwijzing naar bepaalde patronen we beginnen te zien in de tijd. 788 00:38:30,700 --> 00:38:32,600 Dus dit zal ik plukken uit, want het is de eerste. 789 00:38:32,600 --> 00:38:35,700 Gebruik van niet-aangegeven id string. 790 00:38:35,700 --> 00:38:39,400 >> Dat betekent gewoon dat gedit of Clang, in dit geval, niet weet 791 00:38:39,400 --> 00:38:40,780 wat ik bedoel met string. 792 00:38:40,780 --> 00:38:43,880 En dat komt omdat in C, de programmeertaal taal, is er eigenlijk 793 00:38:43,880 --> 00:38:47,750 is geen variabele van het type string. 794 00:38:47,750 --> 00:38:49,810 C weet niet dat strings bestaan. 795 00:38:49,810 --> 00:38:52,260 >> Maar wij, CS50 personeel, doen. 796 00:38:52,260 --> 00:38:57,080 En dus op voorhand van de klas, we maakte een file CS50.h. 797 00:38:57,080 --> 00:39:00,060 En de binnenkant van dit bestand - en meer over de syntaxis te komen - 798 00:39:00,060 --> 00:39:03,730 binnenkant van dit bestand is een definitie van wat ik net gedefinieerd 799 00:39:03,730 --> 00:39:05,340 mondeling als een string. 800 00:39:05,340 --> 00:39:09,100 Dus gewoon door het sluiten van deze ene lijn van code in mijn programma, ik ben nu 801 00:39:09,100 --> 00:39:14,620 onderwijs gedit en maak en Clang allemaal op hun beurt wat een string is. 802 00:39:14,620 --> 00:39:15,475 >> Ik weet niet hoe nog niet. 803 00:39:15,475 --> 00:39:17,110 In een paar weken, we zullen schil terug die laag. 804 00:39:17,110 --> 00:39:20,340 Maar voor nu, weet dat dit leert de compiler wat een 805 00:39:20,340 --> 00:39:22,020 snaar eigenlijk is. 806 00:39:22,020 --> 00:39:24,230 >> Dus nu laat ik duidelijk mijn terminal hier beneden. 807 00:39:24,230 --> 00:39:28,530 Laat me re-run maken gepersonaliseerde, en ik opgelost al deze problemen. 808 00:39:28,530 --> 00:39:30,210 Dus ook dit gaat zijn een terugkerend thema. 809 00:39:30,210 --> 00:39:34,190 Ik schreef slechts een 9 line programma, en toch had ik 18 lijnen van fouten. 810 00:39:34,190 --> 00:39:35,650 Dat is een beetje intimiderend. 811 00:39:35,650 --> 00:39:39,260 Maar beseffen dat ze vaak cascade dergelijke dat een klein foutje triggers 812 00:39:39,260 --> 00:39:43,070 de verwarring voor de compiler, en het lijkt veel erger dan het is. 813 00:39:43,070 --> 00:39:47,460 >> Dus nu een scherpzinnig waarnemer zal weten dat ik krijg een string uit de 814 00:39:47,460 --> 00:39:51,460 gebruiker, maar ik ben niet echt doen wat met het? 815 00:39:51,460 --> 00:39:53,570 Ik ben niet werkelijk te doen niets mee. 816 00:39:53,570 --> 00:40:01,240 Dus als ik eigenlijk weer op maat draaien, het gaat er gewoon zitten. 817 00:40:01,240 --> 00:40:03,380 Wat is er gaande? 818 00:40:03,380 --> 00:40:07,990 Mijn programma lijkt te worden geplakt op welke lijn, zou je zeggen? 819 00:40:07,990 --> 00:40:09,860 >> Dus het is eigenlijk vast op lijn 7. 820 00:40:09,860 --> 00:40:13,600 En we hebben dit niet eerder gezien, maar op lijn 7, is er, nogmaals, dit 821 00:40:13,600 --> 00:40:14,650 verklaring, krijg string. 822 00:40:14,650 --> 00:40:15,930 En het doet wat het zegt. 823 00:40:15,930 --> 00:40:18,480 Het is nu wachten op de mens de tekenreeks nemen. 824 00:40:18,480 --> 00:40:22,230 Dit is volkomen intuïtief voor mij, de mens, want ik heb niet verteld 825 00:40:22,230 --> 00:40:23,040 wat te doen. 826 00:40:23,040 --> 00:40:27,320 >> Maar laat mij ga je gang op geloof en laat me doen alsof ze Rob. 827 00:40:27,320 --> 00:40:28,500 Enter. 828 00:40:28,500 --> 00:40:30,930 Dat is niet het programma dat ik beoogde. 829 00:40:30,930 --> 00:40:32,350 Dus hebben we onze eerste blog. 830 00:40:32,350 --> 00:40:34,390 >> Maar laten we proberen te beredeneren door waarom dit het geval is. 831 00:40:34,390 --> 00:40:36,940 Ten eerste wil ik deze eerste probleem op te lossen. 832 00:40:36,940 --> 00:40:44,690 Laat ik voeg een regel hier die zegt printf, wat is uw naam? 833 00:40:44,690 --> 00:40:47,700 Laten we het gewoon doen dicht citaat, sluit haakje. 834 00:40:47,700 --> 00:40:51,350 >> Laat me nu opnieuw start het programma. 835 00:40:51,350 --> 00:40:51,760 Probleem. 836 00:40:51,760 --> 00:40:54,690 Ik zie niet dat. 837 00:40:54,690 --> 00:40:54,930 >> Rechts. 838 00:40:54,930 --> 00:40:55,990 Ik heb niet opnieuw compileren. 839 00:40:55,990 --> 00:40:59,800 Dus in een taal als C, omdat u veranderen de broncode betekent niet 840 00:40:59,800 --> 00:41:03,170 dat u uw object code zijn veranderd om nieuw object code te genereren, 841 00:41:03,170 --> 00:41:04,330 nieuwe nullen en enen. 842 00:41:04,330 --> 00:41:05,590 Je moet hercompileren. 843 00:41:05,590 --> 00:41:10,300 Als ik nu opnieuw uit te voeren op maat, voer, ah, een beetje meer duidelijk. 844 00:41:10,300 --> 00:41:11,890 Mijn naam is Rob. 845 00:41:11,890 --> 00:41:12,760 Nog buggy. 846 00:41:12,760 --> 00:41:14,170 >> En ik zou beweren dat er een paar bugs nu. 847 00:41:14,170 --> 00:41:15,450 Dit ziet er gewoon afschuwelijk, eerlijk gezegd. 848 00:41:15,450 --> 00:41:18,980 Willen, minimaal, zou ik een ruimte is er, of verplaats de 849 00:41:18,980 --> 00:41:20,330 cursor naar de nieuwe lijn. 850 00:41:20,330 --> 00:41:21,370 >> En eigenlijk, nieuwe lijn. 851 00:41:21,370 --> 00:41:24,660 Dat is een soort van een sleutelzin hier die we hebben gezien, maar niet gedefinieerd. 852 00:41:24,660 --> 00:41:28,560 De manier waarop krijg je een tekst door te gaan naar de volgende regel, 853 00:41:28,560 --> 00:41:29,480 je hoeft dit niet te doen. 854 00:41:29,480 --> 00:41:31,070 Dit is verwarrend voor de computer. 855 00:41:31,070 --> 00:41:33,830 Dit ziet eruit als twee aparte lijnen code, geen van beide 856 00:41:33,830 --> 00:41:35,010 is volkomen juist. 857 00:41:35,010 --> 00:41:39,380 Je moet in plaats daarvan worden meer expliciet en zeggen, geef mij een nieuwe lijn, die we 858 00:41:39,380 --> 00:41:41,810 vertegenwoordigen in c met backslash n. 859 00:41:41,810 --> 00:41:43,230 >> Dus er is een paar van zulke tekens. 860 00:41:43,230 --> 00:41:45,080 Backslash n zal dat esthetische vast. 861 00:41:45,080 --> 00:41:49,640 862 00:41:49,640 --> 00:41:50,870 Laat ik mijn programma opnieuw compileren. 863 00:41:50,870 --> 00:41:52,300 Laat me re-run mijn programma. 864 00:41:52,300 --> 00:41:53,520 >> Dit ziet er beter uit. 865 00:41:53,520 --> 00:41:56,960 Het is nog vrij primitief, maar het is ook nog buggy. 866 00:41:56,960 --> 00:41:58,090 Dus er is een - 867 00:41:58,090 --> 00:42:01,680 zelfs als je nog nooit hebt geprogrammeerd, kunt u waarschijnlijk nemen een gok 868 00:42:01,680 --> 00:42:04,960 op waarom dit programma is nog steeds gebrekkig. 869 00:42:04,960 --> 00:42:08,540 Wat heb ik nodig om dat te doen Ik heb nog niet gedaan? 870 00:42:08,540 --> 00:42:10,450 >> Dus ik moet eigenlijk doen iets met de naam. 871 00:42:10,450 --> 00:42:14,190 Net als in het niets, je zou eigenlijk toekennen van een variabele zoals n of 872 00:42:14,190 --> 00:42:16,150 tegen te gaan zoals wij deden vorig week - een waarde. 873 00:42:16,150 --> 00:42:18,930 Maar als je niets doet met het, niets gaat gebeuren. 874 00:42:18,930 --> 00:42:20,210 >> Oke, dus laten repareren. 875 00:42:20,210 --> 00:42:23,670 Laat ik typ mijn variabele daar, en laat me hier naar beneden gaan. 876 00:42:23,670 --> 00:42:29,120 Laat me opnieuw compileren, laat me re-run, Rob. 877 00:42:29,120 --> 00:42:30,540 Nu ben ik gewoon een idioot, nietwaar? 878 00:42:30,540 --> 00:42:33,280 >> Dus dit is niet echt om me verder. 879 00:42:33,280 --> 00:42:35,850 Maar dat was een volkomen natuurlijk instinct, zou ik pleiten, toch? 880 00:42:35,850 --> 00:42:39,340 Indien de variabele heet naam en I wil het er naartoe te gaan, waarom doe ik niet alleen 881 00:42:39,340 --> 00:42:40,200 Typ het daar? 882 00:42:40,200 --> 00:42:42,210 >> Nou ja, natuurlijk, hebben we tot nu onderscheiden 883 00:42:42,210 --> 00:42:44,070 tussen wat is een string? 884 00:42:44,070 --> 00:42:47,060 Merk op dat citaat unquote hier, hello naam? 885 00:42:47,060 --> 00:42:48,960 Dit eigenlijk zelf is een string. 886 00:42:48,960 --> 00:42:49,820 Het is hard gecodeerd. 887 00:42:49,820 --> 00:42:50,690 Het is niet van de mens. 888 00:42:50,690 --> 00:42:54,020 Het is van mij, de oorspronkelijke programmeur, maar het is nog steeds een string. 889 00:42:54,020 --> 00:42:58,300 >> Dus als je letterlijk schrijft N-A-M-E binnen van een string, wat er gaat 890 00:42:58,300 --> 00:42:59,120 krijgen gedrukt? 891 00:42:59,120 --> 00:43:03,660 Nou, N-A-M-E. We in plaats daarvan moeten om printf vertellen, worden niet afgedrukt 892 00:43:03,660 --> 00:43:04,870 out letterlijk noemen. 893 00:43:04,870 --> 00:43:06,680 Print de waarde van de naam. 894 00:43:06,680 --> 00:43:08,410 >> En om dat te doen, doen we het volgende. 895 00:43:08,410 --> 00:43:09,800 En dit is slechts een menselijke conventie. 896 00:43:09,800 --> 00:43:14,990 We in plaats daarvan zeggen% s, en dat staat voor string. 897 00:43:14,990 --> 00:43:19,810 En dan aan het eind van mijn nauwe citaten, Ik ga een komma te zetten en 898 00:43:19,810 --> 00:43:23,790 passeren een tweede argument in deze verklaring. 899 00:43:23,790 --> 00:43:25,970 Ik ga daar typt u de naam. 900 00:43:25,970 --> 00:43:27,960 >> Dus nu zien we een iets nieuwe syntax. 901 00:43:27,960 --> 00:43:32,320 We hebben nog twee haakjes, en voortaan wil ik zeggen dat het spul 902 00:43:32,320 --> 00:43:36,830 tussen haakjes staat argumenten in een functie - 903 00:43:36,830 --> 00:43:39,730 ingangen die een of andere manier gaan om zijn gedrag te beïnvloeden. 904 00:43:39,730 --> 00:43:43,010 Dus door die logica, hoeveel argumenten doet printf lijken te zijn 905 00:43:43,010 --> 00:43:45,450 nemen op dit moment? 906 00:43:45,450 --> 00:43:48,370 >> Dus het lijkt te nemen van twee, en dat is inderdaad geïmpliceerd 907 00:43:48,370 --> 00:43:49,570 door de komma hier. 908 00:43:49,570 --> 00:43:51,640 Dus dit is een argument in tussen aanhalingstekens. 909 00:43:51,640 --> 00:43:54,540 Hoewel het een komma in, alles is in aanhalingstekens, wat betekent 910 00:43:54,540 --> 00:43:56,230 het is een lang koord. 911 00:43:56,230 --> 00:43:58,280 Komma, variabele naam. 912 00:43:58,280 --> 00:44:00,680 >> Dus nu laat me uit te zoomen. 913 00:44:00,680 --> 00:44:02,240 Laat ik deze opnieuw starten. 914 00:44:02,240 --> 00:44:03,490 Rob. 915 00:44:03,490 --> 00:44:06,520 Verdomme, wat heb ik verkeerd gedaan? 916 00:44:06,520 --> 00:44:07,920 >> Oke, dus je moet hercompileren. 917 00:44:07,920 --> 00:44:11,030 Dus nogmaals, gemakkelijk fouten te maken vroeg weer op. 918 00:44:11,030 --> 00:44:15,280 Dus nu opnieuw uit te voeren op maat, Rob, invoeren, en voila. 919 00:44:15,280 --> 00:44:17,110 We hebben nu een aangepast programma. 920 00:44:17,110 --> 00:44:21,660 >> Dus ik heb nu een programma dat met behulp van een paar kenmerken 921 00:44:21,660 --> 00:44:22,520 die vermeldenswaard zijn. 922 00:44:22,520 --> 00:44:27,850 One, Ik gebruik CS50.h, anders bekend als CS50 bibliotheek. 923 00:44:27,850 --> 00:44:33,050 En de binnenkant van de CS50 bibliotheek zijn functies die andere mensen schreven - 924 00:44:33,050 --> 00:44:33,980 namelijk het personeel - 925 00:44:33,980 --> 00:44:36,620 voor u te gebruiken, en krijgen string een van hen. 926 00:44:36,620 --> 00:44:41,310 >> Binnenkant van lijn 2 is stdio.h, en waarom is dit er? 927 00:44:41,310 --> 00:44:42,070 Neem een ​​gok. 928 00:44:42,070 --> 00:44:46,200 Wat er bestaat binnenkant van standaard IO ouder? 929 00:44:46,200 --> 00:44:46,940 Printf. 930 00:44:46,940 --> 00:44:49,600 Dus printf, je hoeft niet overal te zien anders op het scherm. 931 00:44:49,600 --> 00:44:51,870 Het moet komen met de computer of andere manier. 932 00:44:51,870 --> 00:44:54,870 Waar komt het vandaan? 933 00:44:54,870 --> 00:44:57,660 Het is de binnenkant van - het is verklaard, zo te zeggen, de binnenkant van 934 00:44:57,660 --> 00:44:59,890 een bestand met de naam stdio.h. 935 00:44:59,890 --> 00:45:02,670 >> Nu, voor dit soort dingen, we komen terug om uiteindelijk, want het is een beetje 936 00:45:02,670 --> 00:45:03,930 afleidend voor nu. 937 00:45:03,930 --> 00:45:05,490 Dit verwijst naar onze terugkeer type. 938 00:45:05,490 --> 00:45:07,660 Dit verwijst naar een argument. 939 00:45:07,660 --> 00:45:10,230 Maar voor vandaag, we zijn gefocust gewoon hier op deze lijnen. 940 00:45:10,230 --> 00:45:13,280 >> Dus string naam, gewoon om samen te vatten, wat heeft dit voor mij doen? 941 00:45:13,280 --> 00:45:16,940 942 00:45:16,940 --> 00:45:19,560 Dus het verklaarde een variabele van het type string. 943 00:45:19,560 --> 00:45:22,630 Dus het bedoeld is voor woorden, niet voor nummers. 944 00:45:22,630 --> 00:45:25,530 Net als een terzijde, als ik wil het om een ​​nummer te zijn, zou ik zeggen 945 00:45:25,530 --> 00:45:26,560 iets als int. 946 00:45:26,560 --> 00:45:29,740 Als ik wilde een floating point zijn waarde, iets met een decimale punt, 947 00:45:29,740 --> 00:45:30,600 Ik zou vlotter zeggen. 948 00:45:30,600 --> 00:45:32,640 Maar voor vandaag, ik heb net gezegd string. 949 00:45:32,640 --> 00:45:35,940 >> En ik heb deze variabele gegeven een naam van naam, maar ik kon 950 00:45:35,940 --> 00:45:37,240 hebben genoemd niets. 951 00:45:37,240 --> 00:45:39,340 In feite, oorspronkelijk, ik noemde het S. 952 00:45:39,340 --> 00:45:41,050 >> Dit hier is gewoon een statement. 953 00:45:41,050 --> 00:45:44,170 Hoeveel argumenten is dit verklaring nemen? 954 00:45:44,170 --> 00:45:47,890 Dus het is gewoon het nemen van een, en dat is gewoon een esthetische details van 955 00:45:47,890 --> 00:45:49,610 weergave van iets op het scherm voor mij. 956 00:45:49,610 --> 00:45:54,750 Wat is deze lijn 8 te doen in lekentaal? 957 00:45:54,750 --> 00:45:57,320 >> Het is steeds een waarde uit de gebruiker - namelijk een string - 958 00:45:57,320 --> 00:45:58,770 en wat doet het met het? 959 00:45:58,770 --> 00:46:02,450 Het is in wezen af ​​te voeren naar de man aan de linkerkant van de 960 00:46:02,450 --> 00:46:07,100 gelijkteken zodat in dit geval de Naam variabele kan eigenlijk slaan. 961 00:46:07,100 --> 00:46:10,020 >> En dan printf is een andere voorbeeld van een functie. 962 00:46:10,020 --> 00:46:11,870 En we zeggen tegen een functie aan te roepen. 963 00:46:11,870 --> 00:46:13,870 Om een ​​functie te gebruiken is om een ​​functie aan te roepen. 964 00:46:13,870 --> 00:46:15,640 Dit ding blijkbaar neemt twee argumenten. 965 00:46:15,640 --> 00:46:18,100 Dit een, komma, deze. 966 00:46:18,100 --> 00:46:20,910 >> Deze zelf is slechts een string dat een tijdelijke aanduiding bevat. 967 00:46:20,910 --> 00:46:23,860 % S betekent gezet andere string hier. 968 00:46:23,860 --> 00:46:27,360 En dus door de invoering naam na de komma, dat is het invoegen 969 00:46:27,360 --> 00:46:29,420 dat ding voor mij. 970 00:46:29,420 --> 00:46:31,300 >> Dus ik kan andere dingen nog steeds doen. 971 00:46:31,300 --> 00:46:36,820 Laat me nu ga je gang en doe een beetje van een dom programma, maar laat me dit te verwijderen, 972 00:46:36,820 --> 00:46:38,880 en laat me maak een lus. 973 00:46:38,880 --> 00:46:41,390 Terwijl waar. 974 00:46:41,390 --> 00:46:45,210 Het symbool true is natuurlijk altijd gaat om waar te zijn. 975 00:46:45,210 --> 00:46:49,830 Dus wat voor soort lus ik induceren door het schrijven van een regel als deze? 976 00:46:49,830 --> 00:46:51,070 >> Dus een oneindige lus, toch? 977 00:46:51,070 --> 00:46:52,090 Net terwijl waar. 978 00:46:52,090 --> 00:46:56,210 Er is geen manier waarop ik kan het woord veranderen trouw aan iets anders te zijn, dus dit is 979 00:46:56,210 --> 00:46:57,310 gewoon voor altijd draaien. 980 00:46:57,310 --> 00:46:59,960 Dus als je ooit daadwerkelijk een programma gehad in je Mac of pc die lijkt 981 00:46:59,960 --> 00:47:02,480 te hebben opgesloten, of het doet iets en iets, en je gewoon 982 00:47:02,480 --> 00:47:05,500 kan het ding te stoppen, tenzij je niet krijgen herstart uw computer of trek de 983 00:47:05,500 --> 00:47:08,360 Taakbeheer of dergelijke, Hier is zo'n voorbeeld. 984 00:47:08,360 --> 00:47:14,340 >> Ik kan zeggen: "Ik ben een buggy programma." Sluiten citaat, sluit 985 00:47:14,340 --> 00:47:15,780 haakjes, puntkomma. 986 00:47:15,780 --> 00:47:17,010 Dus nogmaals, let op de patronen. 987 00:47:17,010 --> 00:47:21,440 Hoewel sommige van onze syntax is nieuw, het zoekwoord terwijl, het zoekwoord waar, 988 00:47:21,440 --> 00:47:23,590 merkt dat ik hetzelfde heb soort accolades. 989 00:47:23,590 --> 00:47:25,890 Ik heb een puntkomma en haakjes. 990 00:47:25,890 --> 00:47:28,000 >> Dus nu laten we gaan vooruit , en slaat deze. 991 00:47:28,000 --> 00:47:29,630 Maak douane, douane. 992 00:47:29,630 --> 00:47:32,690 993 00:47:32,690 --> 00:47:36,660 Dus op dit punt, heb je niet nodig om herstart uw apparaat, oke? 994 00:47:36,660 --> 00:47:39,925 Dus de eenvoudige les hier is met twee vingers, Controle C, 995 00:47:39,925 --> 00:47:41,230 we zullen dat programma stoppen. 996 00:47:41,230 --> 00:47:45,430 Maar je kunt precies zien waarom dit ding werd zelf steeds weer herhalen. 997 00:47:45,430 --> 00:47:48,080 >> Ik kan iets doen complexer als een teaser. 998 00:47:48,080 --> 00:47:49,600 Ik ga om te gaan en het volgende zeggen. 999 00:47:49,600 --> 00:47:55,210 Voor int, dat een geheel getal i slechts een generieke naam die we geven aan de meeste 1000 00:47:55,210 --> 00:47:59,500 variabelen in de programmering als je gewoon tellen, gelijk aan 0. 1001 00:47:59,500 --> 00:48:08,640 Laat ik verder gaan en zeggen terwijl ik is, laten we zeggen, minder dan 100, i plus plus. 1002 00:48:08,640 --> 00:48:10,240 We gaan terug naar deze syntaxis, maar dit betekent gewoon 1003 00:48:10,240 --> 00:48:12,270 increment ik opnieuw en opnieuw. 1004 00:48:12,270 --> 00:48:14,200 >> En wat wil ik hier te doen? 1005 00:48:14,200 --> 00:48:21,130 Printf, "ik kan tellen op i." Dit is een buggy programma. 1006 00:48:21,130 --> 00:48:22,450 Wat heb ik hier eigenlijk van plan? 1007 00:48:22,450 --> 00:48:25,220 1008 00:48:25,220 --> 00:48:30,940 >> Procent niet s, maar je zou niet raden deze. % D is een decimaal getal. 1009 00:48:30,940 --> 00:48:32,720 Komma i. 1010 00:48:32,720 --> 00:48:34,340 Laat mij terug te rollen. 1011 00:48:34,340 --> 00:48:37,170 >> Laat ik nu opnieuw compileren met make. 1012 00:48:37,170 --> 00:48:39,280 Laat ik nu opnieuw uit te voeren met aangepaste. 1013 00:48:39,280 --> 00:48:42,410 Ik kan echt verdomd snel bij het tellen Ik schrijf een programma als dit. 1014 00:48:42,410 --> 00:48:45,480 >> Laten we nu iets een doen weinig onbedoeld. 1015 00:48:45,480 --> 00:48:51,220 Wat dacht laten we dit doen terwijl ik groter dan of gelijk aan 0. 1016 00:48:51,220 --> 00:48:53,630 Wat dit gaat veroorzaken? 1017 00:48:53,630 --> 00:49:01,030 Dus logisch, dit is niet zo verstandig, want nu als ik dit opnieuw uitvoeren, hertelling, 1018 00:49:01,030 --> 00:49:05,050 Ik kan nu rekenen heel, heel hoog. 1019 00:49:05,050 --> 00:49:08,850 Helaas, ongeveer zo hoog als ik kan count is 4 miljard, dus dit gaat 1020 00:49:08,850 --> 00:49:10,140 een tijdje duren. 1021 00:49:10,140 --> 00:49:13,440 >> Dus waarom doen we dit laten zoals onze cliffhanger, met de belofte dat op 1022 00:49:13,440 --> 00:49:15,650 Woensdag zullen we zien of dit programma wordt gedaan. 1023 00:49:15,650 --> 00:49:19,260 Twee, we introduceren hoe je jezelf schrijf uw eigen functie, zodat heel 1024 00:49:19,260 --> 00:49:22,930 snel, tot woensdag, wij zullen, zoals we overgang van Scratch in C, start 1025 00:49:22,930 --> 00:49:25,880 schrijven ooit steeds complexer programma's die veel doen, 1026 00:49:25,880 --> 00:49:27,070 veel meer dan dit. 1027 00:49:27,070 --> 00:49:28,766 Wij zullen u dan zien. 1028 00:49:28,766 --> 00:49:31,580 >> [Applaus] 1029 00:49:31,580 --> 00:49:34,690 >> LUIDSPREKER 1: Bij de volgende CS50, Puzzle Day was een succes. 1030 00:49:34,690 --> 00:49:39,690