1 00:00:00,000 --> 00:00:01,500 >> [Speel van musiek] 2 00:00:01,500 --> 00:00:11,000 3 00:00:11,000 --> 00:00:16,110 >> David Malan: Alle reg dit is CS50 en dit is die einde van die week een. 4 00:00:16,110 --> 00:00:20,760 So ek wil graag my voormalige te stel advisee, Andel Duff, wat nie net maak 5 00:00:20,760 --> 00:00:25,460 iPhone 5 staan, sowel as die kateder, maak hy ook motors. 6 00:00:25,460 --> 00:00:27,927 7 00:00:27,927 --> 00:00:29,510 ANSEL DUFF: Hoe gaan dit, almal? 8 00:00:29,510 --> 00:00:31,980 Ek wil net 'n bietjie te vertel bietjie oor Formule SAE, waarvan ek 9 00:00:31,980 --> 00:00:32,604 is die kaptein. 10 00:00:32,604 --> 00:00:33,437 Dit is 'n MIT-span. 11 00:00:33,437 --> 00:00:35,520 Ek wil net vir jou sê ouens 'n bietjie oor dit 12 00:00:35,520 --> 00:00:37,520 en hopelik 'n paar belang genereer. 13 00:00:37,520 --> 00:00:41,590 >> So laat my net loop deur 'n paar dinge oor ons span. 14 00:00:41,590 --> 00:00:43,640 So ons is heeltemal student run, waarin al 15 00:00:43,640 --> 00:00:47,300 van die lede ontwerp, boots, toets, en vervaardiger 'n subsisteem 16 00:00:47,300 --> 00:00:48,090 van die motor. 17 00:00:48,090 --> 00:00:51,240 Ons het ons eie masjien koop en motorhuise en N52-- of jammer, 18 00:00:51,240 --> 00:00:54,140 N51-- wat dieselfde gebou as die MIT Science Museum. 19 00:00:54,140 --> 00:00:55,990 En ons is die volk dat die motor ry. 20 00:00:55,990 --> 00:00:58,340 Daar is 'n nasionale kompetisie in die begin van die somer, 21 00:00:58,340 --> 00:01:01,215 en dan is daar kleiner skietery kompetisies deur die jaar. 22 00:01:01,215 --> 00:01:04,400 En dan doen ons bestuurder opleiding dae te kry nuwe lede vertroud. 23 00:01:04,400 --> 00:01:08,280 >> Ons bou dae op Saterdae 11:00-20:00. 24 00:01:08,280 --> 00:01:11,060 Middagete en aandete sorg van, van Bertucci en Bean Town 25 00:01:11,060 --> 00:01:12,130 onderskeidelik. 26 00:01:12,130 --> 00:01:15,260 Ons het 'n weeklikse vergadering en seminaar wat vir kursus krediet. 27 00:01:15,260 --> 00:01:18,560 Wat is nuut van hierdie semester, en dit sal ook vir die volgende semester, 28 00:01:18,560 --> 00:01:19,940 sodat jy kan steek-reg vir daardie. 29 00:01:19,940 --> 00:01:22,960 En dan het ons ontwerp, winkel, en CAD dae gedurende die week, 30 00:01:22,960 --> 00:01:26,870 terwyl lede sal onafhanklik CAD dele, om voorraad ensovoorts. 31 00:01:26,870 --> 00:01:29,200 >> So vir elektriese ingenieurswese aan die span 32 00:01:29,200 --> 00:01:31,110 ons het ons aantrekkingskrag, hoë spanning stelsel, 33 00:01:31,110 --> 00:01:33,390 wat loop teen 'n nominale 300 volts, wat insluit 34 00:01:33,390 --> 00:01:35,360 motors, motor beheerders, en battery pakke. 35 00:01:35,360 --> 00:01:37,235 Dan het ons 'n lae spanning stelsel, wat strek 36 00:01:37,235 --> 00:01:40,180 op 12 volts, wat insluit beheer, kan nodusse, die brein 37 00:01:40,180 --> 00:01:41,570 boks, en die paneelbord. 38 00:01:41,570 --> 00:01:43,890 Sover CS gaan, ons doen het die webwerf onderhoud 39 00:01:43,890 --> 00:01:47,940 dat ons vir die gebeure hoef gedoen, lidmaatskap veranderinge, nuwe foto's, en PR materiaal. 40 00:01:47,940 --> 00:01:51,540 En dan het ons kode wat beheer die motor vir ons vastrapbeheer, bekendstelling 41 00:01:51,540 --> 00:01:55,750 beheer, stamp beheer, wringkrag vectoring, en regeneratiewe remstelsels, wat 42 00:01:55,750 --> 00:01:59,170 hardloop gewoonlik in MATLAB, Simulink en LabView. 43 00:01:59,170 --> 00:02:00,910 >> Vertel 'n bietjie oor die motor. 44 00:02:00,910 --> 00:02:02,470 So dit is ongeveer 500 pond. 45 00:02:02,470 --> 00:02:04,285 Dit is reëls beperk tot 85 kilowatt. 46 00:02:04,285 --> 00:02:08,310 Dit het 2 EMRAX 207 motors in die terug, een vir elke agterwiel. 47 00:02:08,310 --> 00:02:11,880 Dit het spesiaal gebou battery packs van Prismatiese A123 sak selle, 48 00:02:11,880 --> 00:02:14,780 altesaam 300 volts en 5.6 kilowatt uur. 49 00:02:14,780 --> 00:02:17,950 En dit is direkte ry met 'n 2,64-1 ry verhouding. 50 00:02:17,950 --> 00:02:20,970 Hier is 'n paar foto's wat ons het dit by die kompetisie. 51 00:02:20,970 --> 00:02:25,820 Hier is die rug, neuskas, en hier is die motors, 52 00:02:25,820 --> 00:02:29,682 die groot swart skywe onder die et mens manus. 53 00:02:29,682 --> 00:02:32,140 Hier is 'n skyfie wat ek getrek uit ons kompetisie skema. 54 00:02:32,140 --> 00:02:35,389 En dit is net vergelyk ons ​​motor tot 'n paar van kommersieel beskikbare motors, 55 00:02:35,389 --> 00:02:38,380 soos die KTM XBOW, Ariel Atoom en Caterha M 7-280. 56 00:02:38,380 --> 00:02:42,110 As jy vertroud is met die prys, krag trek gewig, dollar per perdekrag, 57 00:02:42,110 --> 00:02:44,930 dollar per wringkrag, en ons motor waai hulle almal uit die water. 58 00:02:44,930 --> 00:02:47,520 As jy enige vrae het, neerskryf hierdie e-pos adres. 59 00:02:47,520 --> 00:02:50,800 Skiet ons 'n e-pos aan fsae@mit.edu. 60 00:02:50,800 --> 00:02:53,350 >> Ons is bly om te praat oor enigiets wat jy wil. 61 00:02:53,350 --> 00:02:55,600 Harvard studente is soort van die minderheid op die span. 62 00:02:55,600 --> 00:02:58,350 Indien u enige vrae oor dat u nie skiet ons 'n e-pos, 63 00:02:58,350 --> 00:03:00,810 bly om te praat, en ek gaan terug na David kop. 64 00:03:00,810 --> 00:03:01,550 Dankie. 65 00:03:01,550 --> 00:03:02,466 Ek waardeer dit, ouens. 66 00:03:02,466 --> 00:03:03,615 [Applous] 67 00:03:03,615 --> 00:03:07,080 68 00:03:07,080 --> 00:03:10,980 >> David Malan: Ansel spandeer die somer saam met ons hier op die kampus in CS50 69 00:03:10,980 --> 00:03:11,480 hierdie somer. 70 00:03:11,480 --> 00:03:13,505 En benewens die werk op dinge soos die binêre bolle, 71 00:03:13,505 --> 00:03:16,090 hy eintlik baie deure oopgemaak eyes-- en myne in particular-- 72 00:03:16,090 --> 00:03:20,535 wat werklik die kruising van nie van hardeware en sagteware kan wees. 73 00:03:20,535 --> 00:03:23,410 In werklikheid 'n baie van die dinge wat hy net getoer jy deur uiteindelik 74 00:03:23,410 --> 00:03:26,030 geskep eerste in sagteware, en dan uiteindelik vervaardigde 75 00:03:26,030 --> 00:03:27,299 in die werklike wêreld in hardeware. 76 00:03:27,299 --> 00:03:29,590 So as jy belangstel in ondersoek dat kruising, 77 00:03:29,590 --> 00:03:31,430 dalk neem die groep. 78 00:03:31,430 --> 00:03:34,140 >> Nou intussen, dié van julle wat die ondersteuners van die tegnologie, 79 00:03:34,140 --> 00:03:36,140 en Apple produkte in veral weet dat daar 80 00:03:36,140 --> 00:03:37,860 was 'n paar aankondigings gister. 81 00:03:37,860 --> 00:03:39,776 Maar ons het gedink ons ​​wil wys jy die een wat kom uit 82 00:03:39,776 --> 00:03:43,590 'n paar dae voor dit jy mag nie gesien het nie. 83 00:03:43,590 --> 00:03:46,150 >> Jörgen EGHAMMER: Jy weet, een keer in 'n rukkie iets 84 00:03:46,150 --> 00:03:49,540 kom saam wat verander die manier waarop ons leef. 85 00:03:49,540 --> 00:03:53,479 'N toestel so eenvoudig en intuïtief gebruik dit voel amper bekend is. 86 00:03:53,479 --> 00:03:59,710 87 00:03:59,710 --> 00:04:04,138 Bekendstelling 2015 IKEA katalogus. 88 00:04:04,138 --> 00:04:10,420 Dit is nie 'n digitale boek of 'n e-boek, dit is 'n boek-boek. 89 00:04:10,420 --> 00:04:14,440 >> Die eerste ding om daarop te let is geen kabels, nie eens 'n elektriese kabel. 90 00:04:14,440 --> 00:04:18,519 Die 2015 IKEA katalogus kom ten volle gelaai, 91 00:04:18,519 --> 00:04:20,550 en die battery lewe is die ewige. 92 00:04:20,550 --> 00:04:27,300 Die koppelvlak is 7.5 deur 8 duim, maar kan uitbrei tot 15 met 8 duim. 93 00:04:27,300 --> 00:04:32,410 Die navigasie is gebaseer op tasbare aanraking tegnologie wat jy kan eintlik voel. 94 00:04:32,410 --> 00:04:37,120 >> Inhoud kom pre-geïnstalleer via 328 hoë-definisie bladsye 95 00:04:37,120 --> 00:04:40,180 inspirerende huis meubels idees. 96 00:04:40,180 --> 00:04:43,740 Om mee te begin op, net raak en sleep. 97 00:04:43,740 --> 00:04:50,870 Regs na links om vorentoe te beweeg, links na regs agteruit beweeg. 98 00:04:50,870 --> 00:04:52,770 >> Let iets anders? 99 00:04:52,770 --> 00:04:53,780 Dit is reg. 100 00:04:53,780 --> 00:04:55,190 Geen lag. 101 00:04:55,190 --> 00:04:58,400 Elke kristalhelder bladsy vragte onmiddellik, 102 00:04:58,400 --> 00:05:00,586 maak nie saak hoe vinnig jy blaai. 103 00:05:00,586 --> 00:05:03,710 As jy wil 'n vinnige oorsig te kry, hou dit net in die palm van jou hand, 104 00:05:03,710 --> 00:05:06,816 en die gebruik van net jou duim, spoed blaai deur die inhoud. 105 00:05:06,816 --> 00:05:10,930 >> As jy iets vind wat jy wil red vir later, kan jy net boekmerk. 106 00:05:10,930 --> 00:05:17,620 En selfs as jy die aansoek sluit, jy kan maklik vind die boekmerk weer. 107 00:05:17,620 --> 00:05:18,490 Amazing. 108 00:05:18,490 --> 00:05:20,434 >> [Gelag] 109 00:05:20,434 --> 00:05:21,406 [Applous] 110 00:05:21,406 --> 00:05:26,760 111 00:05:26,760 --> 00:05:29,870 So dit bring ons by die einde van die week een. 112 00:05:29,870 --> 00:05:31,760 'N Paar aankondigings nou. 113 00:05:31,760 --> 00:05:33,440 So seksie is nou aan die gang. 114 00:05:33,440 --> 00:05:36,860 Gaan na hierdie URL hier iewers tussen nou en Vrydag middag 115 00:05:36,860 --> 00:05:39,960 eintlik spesifiseer of jy onder diegene wat minder gemaklik meer 116 00:05:39,960 --> 00:05:41,690 gemaklik, of iewers tussen in. 117 00:05:41,690 --> 00:05:44,511 >> Dit is tipies een van daardie dinge wat jy net soort van weet. 118 00:05:44,511 --> 00:05:47,510 En in die feit dat dié van julle wat minder gemaklik waarskynlik weet soveel, 119 00:05:47,510 --> 00:05:49,634 dié van julle wat meer gemaklik weet soveel, 120 00:05:49,634 --> 00:05:54,960 en weer as jy nie heeltemal seker wat van die emmers jy val in jy 121 00:05:54,960 --> 00:05:56,210 waarskynlik iewers tussen in. 122 00:05:56,210 --> 00:05:59,810 Maar wees verseker jy kan wissel na 'n paar weke indien nodig. 123 00:05:59,810 --> 00:06:02,620 >> Intussen, vir die komende week ons artikels per se begin nie, 124 00:06:02,620 --> 00:06:04,760 maar super afdelings, wat is oop vir alle studente. 125 00:06:04,760 --> 00:06:08,220 Eerskomende Sondag by 'n plek te word op die kursus webblad aangekondig 126 00:06:08,220 --> 00:06:10,190 ons een vir sal hê diegene wat minder gemaklik, 127 00:06:10,190 --> 00:06:12,470 asook een vir diegene wat meer gemaklik. 128 00:06:12,470 --> 00:06:15,460 En dié iewers tussen kan kies watter een van die twee, 129 00:06:15,460 --> 00:06:17,360 of beide as jy wil, om te sit in op. 130 00:06:17,360 --> 00:06:19,630 En die fokus van die sal uiteindelik op C wees, 131 00:06:19,630 --> 00:06:22,440 wat ons sal voortgaan om ons gesprek van vandag. 132 00:06:22,440 --> 00:06:25,070 >> Probleem gestel 0 intussen is hopelik in jou hande. 133 00:06:25,070 --> 00:06:27,500 Amptelik as gevolg van môre, Donderdag middag. 134 00:06:27,500 --> 00:06:29,490 Tensy jy kontant in een van jou 5 laat dae, 135 00:06:29,490 --> 00:06:31,780 wat dit sou bring tot Vrydag middag. 136 00:06:31,780 --> 00:06:34,420 Probleem stel 1 intussen sal wees geplaas op die kursus se webblad. 137 00:06:34,420 --> 00:06:37,381 En dit sal wees om ons eerste inval as 'n klas in C. 138 00:06:37,381 --> 00:06:40,630 En dat die probleem gestel spec sal loop jy deur 'n groot deel van die meganika van wat 139 00:06:40,630 --> 00:06:43,960 Ons het begin praat oor op Maandag, en ons sal voortgaan om te praat oor vandag. 140 00:06:43,960 --> 00:06:46,770 C, Linux, die CS50 apparaat, al van daardie 141 00:06:46,770 --> 00:06:48,990 sal jy wag in die spesifikasie. 142 00:06:48,990 --> 00:06:52,840 >> Kantoorure intussen aan die gang is, in die voorgraadse eetsaal. 143 00:06:52,840 --> 00:06:56,240 Kop aan hierdie URL hier om die te sien skeduleer vir vanaand en môre, 144 00:06:56,240 --> 00:06:57,930 As jy wil deelneem. 145 00:06:57,930 --> 00:07:01,920 Vrae intussen, sodat jy het om vrae te vra 146 00:07:01,920 --> 00:07:05,860 asynchroon, 24/7, besef jy nie beperk tot artikels en kantoor 147 00:07:05,860 --> 00:07:09,530 uur, maar eerder die hulpmiddel hier, CS50 Bespreek by daardie URL 148 00:07:09,530 --> 00:07:12,150 sal die kursus se aanlyn wees bord sagteware, via wat 149 00:07:12,150 --> 00:07:15,030 jy vrae kan vra klasmaats en ook personeel. 150 00:07:15,030 --> 00:07:18,492 So in gedagte hou dat hulpbron asook. 151 00:07:18,492 --> 00:07:20,200 Intussen het 'n tradisie begin hierdie Vrydag. 152 00:07:20,200 --> 00:07:23,200 Soos jy dalk skrams het uit verlede Woensdag se teaser video, 153 00:07:23,200 --> 00:07:25,510 ons het 'n tradisie mees elke Vrydag gedurende die eerste kwartaal 154 00:07:25,510 --> 00:07:28,750 van die neem van 'n 50-studente en personeel na 'n plaaslike restaurant genoem 155 00:07:28,750 --> 00:07:31,510 Vuur en ys, waar ons tipies verbind deur 'n paar alumni 156 00:07:31,510 --> 00:07:33,850 of vriende van die industrie om in die algemeen streef 157 00:07:33,850 --> 00:07:35,780 maak 'n groot klas kleiner voel. 158 00:07:35,780 --> 00:07:37,560 So dit is 'n heeltemal gemaklik middagete. 159 00:07:37,560 --> 00:07:40,160 'N Klomp van ons, die personeel sal veral musikale stoele speel 160 00:07:40,160 --> 00:07:43,360 en gesels met studente oor 50, die lewe buite van 50, 161 00:07:43,360 --> 00:07:46,510 lewe in die toekoms, die werklike wêreld, Ek praat oor werksgeleenthede 162 00:07:46,510 --> 00:07:47,680 saam met vriende in die bedryf. 163 00:07:47,680 --> 00:07:51,110 >> So as jy wil ons aan te sluit hierdie Vrydag, die hoof van hierdie URL hier. 164 00:07:51,110 --> 00:07:54,180 Ruimte is beperk, maar ons sal dit doen recurringly regdeur die termyn. 165 00:07:54,180 --> 00:07:57,380 Kop daar te cs50.harvard.edu/rsvp. 166 00:07:57,380 --> 00:07:59,380 En as jy dit nie kry nie in hierdie tyd, nie te bekommer nie. 167 00:07:59,380 --> 00:08:02,390 Ons sal dit weer doen in die komende weke as well. 168 00:08:02,390 --> 00:08:05,434 >> So dit is die prentjie ons verlede week geverf, 169 00:08:05,434 --> 00:08:07,350 en jy het waarskynlik rondspeel in dusver. 170 00:08:07,350 --> 00:08:10,360 Maar laat ons probeer om dit nou te koppel na wat ons gaan vandag om te doen 171 00:08:10,360 --> 00:08:11,440 en verder. 172 00:08:11,440 --> 00:08:14,760 Kan ek 'n vrywilliger? 173 00:08:14,760 --> 00:08:16,000 Alle reg, of 'n paar. 174 00:08:16,000 --> 00:08:18,460 Hoe gaan hier op die einde, in die blou hemp. 175 00:08:18,460 --> 00:08:20,329 Kom op, wat is jou naam? 176 00:08:20,329 --> 00:08:20,870 Alana: Alana. 177 00:08:20,870 --> 00:08:21,661 David Malan: Alana. 178 00:08:21,661 --> 00:08:25,100 So Alana, net vir 'n moment-- lekker om te voldoen you-- 179 00:08:25,100 --> 00:08:28,260 gaan die rol te speel van hierdie funksie hier. 180 00:08:28,260 --> 00:08:31,290 Die pers blok ons ​​het genoem wat tot dusver 'n funksie. 181 00:08:31,290 --> 00:08:34,830 So wat ek gaan om te gaan voor hier en bied Alana 182 00:08:34,830 --> 00:08:38,380 is 'n bietjie naamkaartjie te maak duidelik watter rol jy speel. 183 00:08:38,380 --> 00:08:39,753 >> So moet jy dan die seggenskap blok. 184 00:08:39,753 --> 00:08:41,419 As jy wil om voort te gaan en sit dit op. 185 00:08:41,419 --> 00:08:43,169 En ons gaan hou hierdie super eenvoudig. 186 00:08:43,169 --> 00:08:46,180 As die doel aan die hand is eenvoudig nou te implementeer met Alana, 187 00:08:46,180 --> 00:08:49,710 hierdie sogenaamde sê blok, hier is hoe dit gaan werk. 188 00:08:49,710 --> 00:08:52,574 Ek have-- kom ons noem dit 'n argument of parameter, 189 00:08:52,574 --> 00:08:54,240 dit is regtig net 'n skoon vel papier. 190 00:08:54,240 --> 00:08:57,239 En dit is wit soort herinner wees van die wit blokkie waarin jy 191 00:08:57,239 --> 00:08:58,080 woorde kan skryf. 192 00:08:58,080 --> 00:09:00,660 >> Intussen gaan ek hier gaan. 193 00:09:00,660 --> 00:09:06,560 Ek gaan om voort te gaan en skryf H-E-L-L-O komma wêreld. 194 00:09:06,560 --> 00:09:09,972 En nou het ek, as sê die programmeerder, doen nie eintlik weet hoe om iets te sê. 195 00:09:09,972 --> 00:09:12,180 Ek kan kom met die woorde, maar ek doen nie noodwendig 196 00:09:12,180 --> 00:09:15,220 weet hoe om myself te druk mondelings of op die skerm. 197 00:09:15,220 --> 00:09:17,280 En ja, wat ek gaan te doen, is om hierdie stuk 198 00:09:17,280 --> 00:09:21,157 van funksies, wie se input-- of argument, soos ons dit sal noem, 199 00:09:21,157 --> 00:09:23,990 Ek het op hierdie stuk paper-- geskryf en ek gaan dit uit te kontrakteer. 200 00:09:23,990 --> 00:09:26,831 >> En inderdaad is dit die rol wat funksies in 'n programmeertaal 201 00:09:26,831 --> 00:09:27,330 kan speel. 202 00:09:27,330 --> 00:09:29,246 Iets soos die sê blok uitgekontrakteer kan word 203 00:09:29,246 --> 00:09:32,074 aan iemand wat regtig weet wat sy of hy praat. 204 00:09:32,074 --> 00:09:33,990 So as jy stap oor hier vir 'n oomblik, 205 00:09:33,990 --> 00:09:40,092 Ek gaan hierdie insette te gee aan Alana, en vra dat jy sê dit insette. 206 00:09:40,092 --> 00:09:41,202 >> Alana: Hello, world. 207 00:09:41,202 --> 00:09:42,160 David Malan: Dit is dit. 208 00:09:42,160 --> 00:09:43,326 Sodat daar is 'n funksie. 209 00:09:43,326 --> 00:09:46,556 Nou kan ons dit 'n bietjie meer te neem, Ons kan 'n stap vorentoe neem hier. 210 00:09:46,556 --> 00:09:48,180 Want dit was duidelik underwhelming. 211 00:09:48,180 --> 00:09:51,670 So laat ons nou sit om dit te iets wat 'n bietjie meer gesofistikeerd. 212 00:09:51,670 --> 00:09:53,630 >> So dit is natuurlik ons ​​C-weergawe. 213 00:09:53,630 --> 00:09:56,760 So nou as jy wil om dit te neem een af, wat naamplaatjie af, 214 00:09:56,760 --> 00:09:58,530 en laat ons 'jy sit op 'n nuwe naam. 215 00:09:58,530 --> 00:10:00,850 Maar fundamenteel jy dieselfde rol speel, 216 00:10:00,850 --> 00:10:03,400 dit gebeur net so te word genoem printf nou. 217 00:10:03,400 --> 00:10:06,930 >> Die storie is, natuurlik, gaan waarskynlik be-- 218 00:10:06,930 --> 00:10:09,317 net soos underwhelming-- is gaan om die volgende te wees. 219 00:10:09,317 --> 00:10:10,650 Jy is nou die funksie printf. 220 00:10:10,650 --> 00:10:13,300 Ek is die oproeper, of die programmeerder, wat wil 221 00:10:13,300 --> 00:10:15,745 op die skouers van om op te staan mense in die verlede soos jy, 222 00:10:15,745 --> 00:10:18,670 wat reeds uitgepluis het hoe eintlik skryf iets neer. 223 00:10:18,670 --> 00:10:20,650 En so hierdie tyd, eerder as sê dit laat 224 00:10:20,650 --> 00:10:22,255 eintlik gebruik ons ​​die skerm hier. 225 00:10:22,255 --> 00:10:24,130 So as jy wil om te stap hier, ek gaan 226 00:10:24,130 --> 00:10:27,196 weer hierdie slaag as insette te my printf vriend. 227 00:10:27,196 --> 00:10:29,320 As jy voor kan gaan en druk wat op die skerm, 228 00:10:29,320 --> 00:10:31,611 eenvoudig deur 'met jou vinger op die swart skerm. 229 00:10:31,611 --> 00:10:43,680 230 00:10:43,680 --> 00:10:44,180 Uitstekend. 231 00:10:44,180 --> 00:10:47,350 Alle reg, sodat baie van die spanning vir hoe dit gaan om te speel. 232 00:10:47,350 --> 00:10:51,390 >> So nou, laat ons neem dinge op een finale kerf, as ons kon, soos volg. 233 00:10:51,390 --> 00:10:53,980 So dit is 'n C program soos ons sê die laaste keer. 234 00:10:53,980 --> 00:10:57,460 En dit net doen wat jy gedoen het, is dit druk uit na die skerm, hallo, wêreld. 235 00:10:57,460 --> 00:11:00,290 Selfs al is daar is duidelik 'n baie van steurende dinge daar. 236 00:11:00,290 --> 00:11:03,630 Maar laat ons dinge op 'n kerf en stel hierdie weergawe, wat onthou 237 00:11:03,630 --> 00:11:06,160 was die derde weergawe wat ons geëindig met die laaste keer. 238 00:11:06,160 --> 00:11:09,120 >> En nou is daar duidelik twee gebruike van printf. 239 00:11:09,120 --> 00:11:12,280 Daar is 2 oproepe Alana in hierdie geval vir printf, 240 00:11:12,280 --> 00:11:14,740 maar daar is ook 'n oproep na 'n ander funksie. 241 00:11:14,740 --> 00:11:17,150 Wat is die funksie duidelik? 242 00:11:17,150 --> 00:11:17,650 Getstring. 243 00:11:17,650 --> 00:11:18,980 >> Kan ons nog 'n vrywilliger? 244 00:11:18,980 --> 00:11:20,980 OK, kom op. 245 00:11:20,980 --> 00:11:21,805 Wat is jou naam? 246 00:11:21,805 --> 00:11:22,990 >> JAVIER: Javier. 247 00:11:22,990 --> 00:11:24,750 >> David Malan: Javier, kom op. 248 00:11:24,750 --> 00:11:27,270 So Javier se rol is op hierdie stuk papier. 249 00:11:27,270 --> 00:11:28,860 Watter Ek gaan generies bel s. 250 00:11:28,860 --> 00:11:32,250 En dit is 'n veranderlike, dit is string-tipe, soos geïmpliseer 251 00:11:32,250 --> 00:11:34,290 deur daardie tweede lyn in die middel is daar. 252 00:11:34,290 --> 00:11:36,540 En ek wil jou om te gaan vir my 'n string. 253 00:11:36,540 --> 00:11:40,120 Kop spesifiek na die orkes afdeling en kry vir my die naam van iemand, 254 00:11:40,120 --> 00:11:43,142 en terug te kom met 'n veranderlike wat daardie waarde. 255 00:11:43,142 --> 00:11:44,225 Dit kan iemand wat jy wil wees. 256 00:11:44,225 --> 00:11:47,590 257 00:11:47,590 --> 00:11:48,520 >> Hier gaan ons. 258 00:11:48,520 --> 00:11:53,620 259 00:11:53,620 --> 00:11:55,960 Alle reg, Javier is die naam neer te skryf. 260 00:11:55,960 --> 00:12:02,210 261 00:12:02,210 --> 00:12:03,280 Alle regte. 262 00:12:03,280 --> 00:12:05,740 Ons kan almal seker raai hoe dit gaan om te speel. 263 00:12:05,740 --> 00:12:07,489 Ons is dalk belaboring die punt van wat 264 00:12:07,489 --> 00:12:10,320 'n funksie doen nie, maar nietemin baie dankie. 265 00:12:10,320 --> 00:12:13,890 >> So Javier het teruggekeer hierdie string hier, wat nie heeltemal sien, 266 00:12:13,890 --> 00:12:15,800 Jonathan is die string dat ons gekry het. 267 00:12:15,800 --> 00:12:18,330 So nou wat ek eintlik gaan te verskaf aan Alana al 268 00:12:18,330 --> 00:12:20,150 is iets wat 'n bietjie anders. 269 00:12:20,150 --> 00:12:23,800 Omdat in hierdie weergawe van die program, eerste daar is jou naam. 270 00:12:23,800 --> 00:12:26,160 So het die eerste argument Ek moet Alana te voorsien 271 00:12:26,160 --> 00:12:33,030 met gaan wees letterlik jou naam. 272 00:12:33,030 --> 00:12:35,280 Alle reg, so eenvoudig soos dit Ek sou dit handig om jou. 273 00:12:35,280 --> 00:12:36,730 En as ek skryf die volgende argument, as jy 274 00:12:36,730 --> 00:12:39,230 wil om voort te gaan en skryf dit op die bord, laat ons gaan voort 275 00:12:39,230 --> 00:12:42,659 en doen die laaste voorbeeld hier te maak duidelik wat uiteindelik móét gebeur. 276 00:12:42,659 --> 00:12:44,450 So sê jou naam, skryf dit in die rigting van die top 277 00:12:44,450 --> 00:12:47,220 As jy nie omgee nie, net sodat Ons het plek vir 'n sekonde lyn. 278 00:12:47,220 --> 00:12:52,890 Want die laaste ding wat ek gaan nou u voorsien is nie een nie, 279 00:12:52,890 --> 00:12:57,220 maar twee stukke papier. 280 00:12:57,220 --> 00:12:58,074 >> Alle regte. 281 00:12:58,074 --> 00:13:01,920 H-E-L-L-O komma en dan 'n leë lyn. 282 00:13:01,920 --> 00:13:04,780 So wat ek oor Alana nou oorhandig is iets wat 'n bietjie anders. 283 00:13:04,780 --> 00:13:08,600 Nie net is sy kry dit, waar vul die leë verteenwoordig 284 00:13:08,600 --> 00:13:12,050 dat percent-- wat was die plekhouer ons het al met behulp? 285 00:13:12,050 --> 00:13:13,890 Ja, so persent s. 286 00:13:13,890 --> 00:13:16,530 Intussen gaan ek slaag haar in 'n tweede argument wat 287 00:13:16,530 --> 00:13:19,290 is presies wat Javier opgespoor van Jonathan. 288 00:13:19,290 --> 00:13:20,534 >> So laat my gee u hierdie twee. 289 00:13:20,534 --> 00:13:22,575 As jy wil, gaan voort en druk daardie effek. 290 00:13:22,575 --> 00:13:25,660 291 00:13:25,660 --> 00:13:28,130 Wat uiteindelik gebeur dit is nou, Alana weer 292 00:13:28,130 --> 00:13:29,410 speel die rol van printf. 293 00:13:29,410 --> 00:13:32,160 Javier speel die rol van GetString. 294 00:13:32,160 --> 00:13:34,700 So wat jou aandenking wees. 295 00:13:34,700 --> 00:13:39,910 En uiteindelik wat gebeur, ten spyte hierdie hello-- yep voort en komma gaan. 296 00:13:39,910 --> 00:13:41,410 Alana: Het ek hierdie nog of nee? 297 00:13:41,410 --> 00:13:43,451 David Malan: Yep, jy ontvang hulle albei gelyktydig. 298 00:13:43,451 --> 00:13:45,740 Dus is die idee is dat jy kan nou draai die bladsy 299 00:13:45,740 --> 00:13:50,000 die tweede te hanteer van die twee insette. 300 00:13:50,000 --> 00:13:53,280 So dit is net by die huis die hamer wys dat terwyl Alana uitgevoer 301 00:13:53,280 --> 00:13:55,830 hierdie groen lyn hier, en dan Javier het hierdie een vir ons 302 00:13:55,830 --> 00:13:57,820 en terug te keer na my iets Ons bel s, maar dit was regtig 303 00:13:57,820 --> 00:13:59,520 net dat die stuk papier van sy eie. 304 00:13:59,520 --> 00:14:02,320 En nou Alana het die derde lyn gedoen. 305 00:14:02,320 --> 00:14:06,010 >> En selfs al is al hierdie lyk so ongelooflik kriptiese miskien 306 00:14:06,010 --> 00:14:08,870 met die eerste oogopslag, is dit regtig is so eenvoudig soos dit. 307 00:14:08,870 --> 00:14:11,390 Verby insette rondom, kry uitgange, óf 308 00:14:11,390 --> 00:14:14,560 fisies terug oorhandig iets, of sien 'n newe-effek soos hierdie. 309 00:14:14,560 --> 00:14:17,170 Iets visueel geskryf op die skerm. 310 00:14:17,170 --> 00:14:19,990 So laat ons gaan voort en dankie Alana en Javier, 311 00:14:19,990 --> 00:14:25,012 wat hier vir saam met ons hier. 312 00:14:25,012 --> 00:14:25,934 >> [Applous] 313 00:14:25,934 --> 00:14:29,360 314 00:14:29,360 --> 00:14:33,480 >> So laat ons nou as vanselfsprekend aanvaar net hoe eenvoudig al wat kan wees. 315 00:14:33,480 --> 00:14:36,775 En laat ons voortgaan om werklik doen iets in die werklike kode. 316 00:14:36,775 --> 00:14:40,620 So op die skerm hier is 'n kiekie van die sogenaamde CS50 toestel. 317 00:14:40,620 --> 00:14:43,980 En as jy moes op, as 'n 02:00 op Woensdag middag, 318 00:14:43,980 --> 00:14:46,602 sommige maat verduidelik wat die CS50 toestel is, 319 00:14:46,602 --> 00:14:48,185 Hoe sou jy dit in 'n sin te definieer? 320 00:14:48,185 --> 00:14:52,160 321 00:14:52,160 --> 00:14:53,240 Enige een sin? 322 00:14:53,240 --> 00:14:54,876 Ja? 323 00:14:54,876 --> 00:14:57,334 STUDENT: Dit is soos 'n program dit maak almal se rekenaar 324 00:14:57,334 --> 00:14:58,460 loop met dieselfde stelsel. 325 00:14:58,460 --> 00:14:59,210 David Malan: Goeie! 326 00:14:59,210 --> 00:15:02,810 Dit is 'n program wat dit moontlik maak om almal se rekenaar uit te voer met dieselfde stelsel. 327 00:15:02,810 --> 00:15:04,920 Dit is soort van jou eie afskrif van 'n bedryfstelsel 328 00:15:04,920 --> 00:15:07,540 stelsel wat gebeur met word genoem Ubuntu Linux. 329 00:15:07,540 --> 00:15:11,070 En dit effektief loop binnekant van 'n venster op jou eie Mac of PC, 330 00:15:11,070 --> 00:15:15,080 sodat hierdie manier reg uit die hek in week 1, almal hier in die klas 331 00:15:15,080 --> 00:15:17,590 het toegang tot die dieselfde gereedskap, dieselfde opset, 332 00:15:17,590 --> 00:15:21,250 en daar is geen leer kurwe spesifieke 'n Mac of 'n rekenaar in die besonder. 333 00:15:21,250 --> 00:15:25,620 >> Nou het ons oopgemaak, binnekant van die CS50 toestel op Maandag, hierdie program hier. 334 00:15:25,620 --> 00:15:27,040 Dit gebeur gedit genoem te word. 335 00:15:27,040 --> 00:15:29,050 Maar dit is eintlik net 'n grafiese redakteur. 336 00:15:29,050 --> 00:15:33,170 Dit is iets soos Notepad of teks Wysig op Windows of Mac OS onderskeidelik. 337 00:15:33,170 --> 00:15:36,720 En ek het voorgestel dat daar werklik drie belangrike dele van hierdie skerm. 338 00:15:36,720 --> 00:15:39,560 Die top-span is waar jy sou jou kode te skryf. 339 00:15:39,560 --> 00:15:44,080 En dit is waar ons spandeer baie van ons drie voorbeelde in Maandag se lesing. 340 00:15:44,080 --> 00:15:47,650 Die onderste ons genoem wat, hierdie swart venster, ja? 341 00:15:47,650 --> 00:15:48,640 >> STUDENT: Vertalerkonstruksie? 342 00:15:48,640 --> 00:15:51,500 >> David Malan: Compiler ons verkry deur middel van die venster. 343 00:15:51,500 --> 00:15:53,040 Maar meer algemeen. 344 00:15:53,040 --> 00:15:54,540 Ja, dit was net 'n terminale venster. 345 00:15:54,540 --> 00:15:57,780 Dit is 'n eeue-oue term wat net beskryf in wese 'n knip 346 00:15:57,780 --> 00:16:01,910 vinnige, wat jare gelede gebruik om te wees op een van die groot CRT styl monitors. 347 00:16:01,910 --> 00:16:04,300 Maar deesdae is dit soort virtuele in sagteware. 348 00:16:04,300 --> 00:16:06,710 En die terminale vensters Kom ons ons tik opdragte. 349 00:16:06,710 --> 00:16:11,750 Dit soort van die vereenvoudigde weergawe van die gebruikerskoppelvlak of UI. 350 00:16:11,750 --> 00:16:14,060 Dit is nie 'n grafiese user of GUI, 351 00:16:14,060 --> 00:16:17,250 dit is 'n teks-gebaseerde koppelvlak of 'n command line interface. 352 00:16:17,250 --> 00:16:20,770 >> En inderdaad dit is waar uiteindelik Ek was in staat om 'n kode te skryf. 353 00:16:20,770 --> 00:16:24,200 Sodra ek 'n paar kode geskryf het egter onthou dat ek gebruik word om hierdie opdrag. 354 00:16:24,200 --> 00:16:26,210 En as dit die naam soort aandui, 355 00:16:26,210 --> 00:16:29,860 laat my toe om 'n te maak program genaamd Hello. 356 00:16:29,860 --> 00:16:33,400 Maar wat is dit regtig doen? 357 00:16:33,400 --> 00:16:36,180 Wel maak, is om my insette, my bron-kode, 358 00:16:36,180 --> 00:16:39,380 en dit herlei na wat uiteindelik? 359 00:16:39,380 --> 00:16:40,060 >> Voorwerp-kode. 360 00:16:40,060 --> 00:16:42,790 En voorwerp-kode is net 'n fancy manier om te sê nulle en ene. 361 00:16:42,790 --> 00:16:46,420 En dan keer ek wou daardie voorwerp kode uit te voer, 362 00:16:46,420 --> 00:16:50,940 keer ek wou om te slaag as insette wat nulle en ene in my rekenaar se 363 00:16:50,940 --> 00:16:54,430 brein, die sogenaamde CPU of sentrale verwerking van eenheid, 364 00:16:54,430 --> 00:16:55,730 Ek het die program uit te voer. 365 00:16:55,730 --> 00:16:59,042 Maar dit was nie heeltemal 'n eenvoudige op Maandag as net dubbel kliek sommige ikoon. 366 00:16:59,042 --> 00:17:01,375 Wat plaas het ek het om te doen om 'n program uit te voer? 367 00:17:01,375 --> 00:17:04,130 368 00:17:04,130 --> 00:17:07,890 >> Wat was dat die tweede gebod? 369 00:17:07,890 --> 00:17:09,619 Ek hoor 'n bietjie houe? 370 00:17:09,619 --> 00:17:10,544 Ja, ja? 371 00:17:10,544 --> 00:17:12,474 >> STUDENT: Dot streep en naam van die program. 372 00:17:12,474 --> 00:17:13,349 David Malan: Presies. 373 00:17:13,349 --> 00:17:15,030 Dot streep en die program se naam. 374 00:17:15,030 --> 00:17:16,210 Nou wat het dit beteken? 375 00:17:16,210 --> 00:17:19,470 Wel dot is net 'n manier arcane sê die huidige gids. 376 00:17:19,470 --> 00:17:23,440 Wat ook al die gids jy in is verwys as, word verteenwoordig as dot. 377 00:17:23,440 --> 00:17:26,680 Die streep is net wat jy gesien het in Mac OS en Windows vir die jaar, 378 00:17:26,680 --> 00:17:30,329 dit is 'n skeiding tussen 'n gids of gids en die res van 'n paar naam. 379 00:17:30,329 --> 00:17:32,620 In Windows dit gebeur om te gaan agtertoe, in Linux en Mac 380 00:17:32,620 --> 00:17:34,210 OS dit gebeur vorentoe te gaan. 381 00:17:34,210 --> 00:17:37,560 Maar dit is net die skeiding, so dit is net 'n vervelige sintaktiese detail. 382 00:17:37,560 --> 00:17:40,440 >> Die sappige deel van die kursus is die naam van die program, Hello. 383 00:17:40,440 --> 00:17:42,650 En dit is wat geskep maak vir ons. 384 00:17:42,650 --> 00:17:44,910 Dit outputted die lêer vir ons. 385 00:17:44,910 --> 00:17:46,700 Maar hoe het ons by die punt? 386 00:17:46,700 --> 00:17:48,870 Kom ons vra nou die vraag, wat was werklik 387 00:17:48,870 --> 00:17:52,470 hier aan die gang is, ten minste met betrekking tot 'n paar van hierdie sintaksis? 388 00:17:52,470 --> 00:17:57,000 >> So in 'n sin of so, hoe het ons weg te verduidelik 389 00:17:57,000 --> 00:17:59,020 hierdie eerste lyn wat uitgelig in groen? 390 00:17:59,020 --> 00:18:02,998 Wat was die eerste lyn te doen, met betrekking tot my program? 391 00:18:02,998 --> 00:18:03,974 Ja? 392 00:18:03,974 --> 00:18:05,067 >> STUDENT: [onhoorbaar]. 393 00:18:05,067 --> 00:18:06,150 David Malan: Sê dit weer doen? 394 00:18:06,150 --> 00:18:08,734 STUDENT: ingesluit en af ​​te laai afgelope funksies [onhoorbaar]. 395 00:18:08,734 --> 00:18:09,483 David Malan: Goed. 396 00:18:09,483 --> 00:18:11,900 Insluitend, sal ek nie sê aflaai nie, maar kom ons sê 397 00:18:11,900 --> 00:18:15,500 insluitende funksies wat mense het in die verlede geskryf is. 398 00:18:15,500 --> 00:18:18,260 En daardie funksies geïmplementeer iewers in my rekenaar. 399 00:18:18,260 --> 00:18:20,470 Iemand het 'n lêer jaar gelede, en dat 'n lêer 400 00:18:20,470 --> 00:18:23,490 iewers binnekant van die CS50 apparaat, of op my hardeskyf 401 00:18:23,490 --> 00:18:24,480 meer in die algemeen. 402 00:18:24,480 --> 00:18:27,810 En so hierdie lyn is in wese sê, gaan vind dat die lêer, standaard I / O dot 403 00:18:27,810 --> 00:18:31,740 h, en kopieer en plak die inhoud hier op die top van my lêer 404 00:18:31,740 --> 00:18:33,860 sodat ek nie hoef te doen met die hand myself. 405 00:18:33,860 --> 00:18:40,970 >> En onder die sappigste stukke binnekant van die lêer ons beweer was wat funksie? 406 00:18:40,970 --> 00:18:45,740 Watter funksie het ons gesê verklaar of wat in standaard I / O dot h 407 00:18:45,740 --> 00:18:47,120 waarskynlik? 408 00:18:47,120 --> 00:18:47,900 Printf, reg? 409 00:18:47,900 --> 00:18:50,797 Ons het nie printf op skryf Maandag, is dit net bestaan ​​het. 410 00:18:50,797 --> 00:18:52,880 Baie soos Alana het net op die verhoog en sy het net 411 00:18:52,880 --> 00:18:55,540 bestaan ​​en het geweet hoe om te trek iets op die skerm, 412 00:18:55,540 --> 00:18:58,660 so nie printf bestaan ​​vir baie jare. 413 00:18:58,660 --> 00:19:00,240 En so dit is hoe ons toegang tot dit. 414 00:19:00,240 --> 00:19:03,280 Nou as ons beweeg op hier, belangrikste was analoog ons 415 00:19:03,280 --> 00:19:06,620 Hy het aan die legkaart stuk genoem wanneer groen vlag gekliek 416 00:19:06,620 --> 00:19:07,620 in die wêreld van nuuts af. 417 00:19:07,620 --> 00:19:10,130 Dit is net soort van die standaard naam wat mense 418 00:19:10,130 --> 00:19:13,340 besluit sou verteenwoordig die standaard inskrywing punt na 'n program. 419 00:19:13,340 --> 00:19:16,540 Die stuk van programmeringskode wat kry eerste uitgevoer word. 420 00:19:16,540 --> 00:19:19,700 >> Intussen hierdie krulhakies is soort van soos die geboë vorm 421 00:19:19,700 --> 00:19:21,410 van 'n baie van die geel krap stukke. 422 00:19:21,410 --> 00:19:24,860 Hulle soort omsluit 'n hele n klomp van die instruksies saam. 423 00:19:24,860 --> 00:19:28,350 So is dit net soort bind 'n paar verwante funksies. 424 00:19:28,350 --> 00:19:33,750 printf van die kursus is 'n funksie wat druk op die skerm, as ons nou net gedoen het. 425 00:19:33,750 --> 00:19:35,190 >> Wat van hierdie hakies? 426 00:19:35,190 --> 00:19:38,770 Hoe sal jy define-- Selfs as jy nog nooit geprogrammeer voor, maar net op grond 427 00:19:38,770 --> 00:19:41,320 nou op 'n toenemende hopelik intuïsie, wat 428 00:19:41,320 --> 00:19:43,290 word die hakies vir ons doen hier? 429 00:19:43,290 --> 00:19:45,450 Of wat is hulle behoeftes? 430 00:19:45,450 --> 00:19:46,360 Ja? 431 00:19:46,360 --> 00:19:49,360 >> STUDENT: Hulle sê wat jy gaan om te druk met printf. 432 00:19:49,360 --> 00:19:52,401 >> David Malan: Ja, hulle sê wat jy gaan om te druk met printf. 433 00:19:52,401 --> 00:19:56,260 Of meer algemeen, is hulle rondom die insette van die funksie. 434 00:19:56,260 --> 00:19:58,530 So jy kan amper dink van die hakies 435 00:19:58,530 --> 00:20:01,620 as om soos die metaal clip op hierdie knipbord. 436 00:20:01,620 --> 00:20:05,940 Dit is wat hou, dit is wat gebruik gaan word om argumente te verskaf 437 00:20:05,940 --> 00:20:08,500 in die funksie, wat in hierdie geval is printf genoem. 438 00:20:08,500 --> 00:20:12,390 >> So in die algemeen byna enige tyd wat ons noem 'n funksie, 439 00:20:12,390 --> 00:20:14,280 Ons gaan 'n paar hakies te sien. 440 00:20:14,280 --> 00:20:17,000 Miskien met iets in dit, soos nou, miskien niks in dit. 441 00:20:17,000 --> 00:20:19,770 Maar dit is waar jy sal sit die insette of sogenaamde argumente 442 00:20:19,770 --> 00:20:20,680 na 'n funksie. 443 00:20:20,680 --> 00:20:22,470 >> Hier is een so 'n argument. 444 00:20:22,470 --> 00:20:24,467 Ek het alles uitgelig tussen die lyne, 445 00:20:24,467 --> 00:20:26,300 omdat dit blyk in hierdie taal genoem 446 00:20:26,300 --> 00:20:29,950 C, wanneer jy wil 'n te verteenwoordig string-- wat 'n woord of 'n frase 447 00:20:29,950 --> 00:20:33,470 of selfs 'n paragraph-- wat jy hoef te omring dit met dubbele aanhalingstekens. 448 00:20:33,470 --> 00:20:35,420 Nie aanhalingstekens, dubbele aanhalingstekens. 449 00:20:35,420 --> 00:20:37,460 En dit is presies wat ek gedoen het. 450 00:20:37,460 --> 00:20:39,900 >> Intussen is daar 'n funky simbool in die rigting van die einde is daar. 451 00:20:39,900 --> 00:20:41,600 Agteroorskuisstreep n. 452 00:20:41,600 --> 00:20:43,460 Wat het ons gesê dat verteenwoordig? 453 00:20:43,460 --> 00:20:44,093 Ja? 454 00:20:44,093 --> 00:20:44,980 >> STUDENT: 'n nuwe lyn. 455 00:20:44,980 --> 00:20:45,896 >> David Malan: Nuwe lyn. 456 00:20:45,896 --> 00:20:47,910 Reg, jy dit nie doen nie algemeen druk Enter wanneer 457 00:20:47,910 --> 00:20:50,430 jy wil die program uit te spoeg om 'n nuwe lyn. 458 00:20:50,430 --> 00:20:54,210 Eerder jy sê dit uitdruklik met hierdie weliswaar arcane stuk 459 00:20:54,210 --> 00:20:58,770 van sintaksis, agteroorskuinsstreep n, wat jy wil 'n nuwe lyn te gaan nie. 460 00:20:58,770 --> 00:20:59,810 Uiteindelik het die kommapunt. 461 00:20:59,810 --> 00:21:01,560 Ons het nie regtig praat te veel oor dit, 462 00:21:01,560 --> 00:21:04,893 en by verre dit die vloek van 'n paar wees van jou bestaan ​​vir die eerste probleem 463 00:21:04,893 --> 00:21:07,990 stel, wanneer jy net nie besef jy iets so dom vergeet het 464 00:21:07,990 --> 00:21:08,614 as 'n kommapunt. 465 00:21:08,614 --> 00:21:11,600 En in die algemeen om dit daar sal die probleem op te los. 466 00:21:11,600 --> 00:21:13,511 Maar wat is dit doen vir ons, sou jy sê? 467 00:21:13,511 --> 00:21:15,670 >> STUDENT: [onhoorbaar]. 468 00:21:15,670 --> 00:21:17,484 >> David Malan: Jammer? 469 00:21:17,484 --> 00:21:18,532 >> STUDENT: [onhoorbaar]. 470 00:21:18,532 --> 00:21:19,990 David Malan: Afwerking n verklaring gesê. 471 00:21:19,990 --> 00:21:22,770 Dit is soort van soos die tydperk by die einde van 'n Engelse sin, 472 00:21:22,770 --> 00:21:25,790 terwyl dit in hierdie taal C dit eindig 'n verklaring gesê. 473 00:21:25,790 --> 00:21:29,250 'N opdrag van die ontwikkeling kode wat jy wil net om te sê, 474 00:21:29,250 --> 00:21:30,500 Ek is klaar met hierdie. 475 00:21:30,500 --> 00:21:32,240 Nou sien dit is die enigste een hier. 476 00:21:32,240 --> 00:21:34,614 So jy wil nie te kry in 'n gewoonte om kommapunte 477 00:21:34,614 --> 00:21:36,190 na elke geslote hakies. 478 00:21:36,190 --> 00:21:38,610 Byvoorbeeld is daar geen langs niet, en ons sal 479 00:21:38,610 --> 00:21:40,430 kom terug in die toekoms na wat nietig beteken. 480 00:21:40,430 --> 00:21:44,080 Maar in hierdie geval jou printf is 'n funksie, of 'n verklaring wat gebruik word, 481 00:21:44,080 --> 00:21:47,420 en so het ons wil hê dat eindpunt aan die einde van dit. 482 00:21:47,420 --> 00:21:50,980 >> En ek doelbewus pluk op C. En eerlik 'n baie tale soos C, C ++, 483 00:21:50,980 --> 00:21:55,000 Java, JavaScript, en enige aantal ander tale het 'n groot deel van hierdie 484 00:21:55,000 --> 00:21:56,730 soort sintaktiese besonderhede. 485 00:21:56,730 --> 00:22:00,120 Wat seker as jy nuut is tot ontwikkeling kan werklik jou laat val. 486 00:22:00,120 --> 00:22:02,307 En jy sal merk my woorde, sommige van julle sal 487 00:22:02,307 --> 00:22:04,140 het hierdie ervaring in kantoorure of laat 488 00:22:04,140 --> 00:22:07,554 in die nag werk op sommige p-stel, waar jou damn program net nie saam te stel, 489 00:22:07,554 --> 00:22:09,470 dit nie uitvoer nie, moet jy geen idee wat verkeerd is, 490 00:22:09,470 --> 00:22:11,513 dit heeltemal lyk logies korrek nie. 491 00:22:11,513 --> 00:22:13,596 En dit is omdat jy vergeet iets soos die slaan 492 00:22:13,596 --> 00:22:15,250 'n kommapunt aan die einde van 'n paar lyn. 493 00:22:15,250 --> 00:22:17,590 >> Maar dit is die soort van dinge wat jy gaan onmiddellik leer om te sien. 494 00:22:17,590 --> 00:22:20,048 En inderdaad dit is die dinge dat die GR's en TF's het 495 00:22:20,048 --> 00:22:23,210 is soort van opgelei om te sien veel vinniger as jy. 496 00:22:23,210 --> 00:22:26,610 En so is dit net om te sê, as jy duik in die probleem stel 1 veral 497 00:22:26,610 --> 00:22:28,217 kry nie gefrustreerd deur hierdie dinge. 498 00:22:28,217 --> 00:22:30,050 Sodra jy soort van acclimatiseren aan die wêreld, wat jy 499 00:22:30,050 --> 00:22:35,130 begin om dinge te sien dat jy dalk nie sien met die eerste oogopslag die eerste week. 500 00:22:35,130 --> 00:22:37,440 >> So bron-kode is iets soos dit. 501 00:22:37,440 --> 00:22:40,370 Ons wil dit in te slaag die sogenaamde samesteller. 502 00:22:40,370 --> 00:22:42,850 En dat samesteller as ons gesê bied uitset 503 00:22:42,850 --> 00:22:45,660 bekend as voorwerp kode, die sogenaamde nulle en ene. 504 00:22:45,660 --> 00:22:47,747 Maar van daar af, het wat dit gee ons? 505 00:22:47,747 --> 00:22:49,080 Wel, dit gee ons hierdie patrone. 506 00:22:49,080 --> 00:22:52,020 En weer jou rekenaar, jou Intel binnekant, 507 00:22:52,020 --> 00:22:54,350 hierdie patrone verstaan nulle en ene. 508 00:22:54,350 --> 00:22:57,300 En soms die patroon verteenwoordig 'n werklike desimale getal 509 00:22:57,300 --> 00:22:59,770 soos ons gesien het verlede week, soms dit verteenwoordig 'n brief 510 00:22:59,770 --> 00:23:02,730 soos ons gesien het verlede week, soms dit verteenwoordig 'n opdrag, 511 00:23:02,730 --> 00:23:05,460 soos die druk om iets aan die skerm. 512 00:23:05,460 --> 00:23:08,782 >> So printf vir instance-- maar eerder, laat my rewind. 513 00:23:08,782 --> 00:23:11,240 Ons het al neem vir toegestaan dat diegene nulle en ene is 514 00:23:11,240 --> 00:23:14,200 vervaardig deur hierdie bevel maak. 515 00:23:14,200 --> 00:23:16,050 Maar maak nie 'n samesteller. 516 00:23:16,050 --> 00:23:19,370 Maak dit nie die ding in die middel dit is die vervaardiging van die nulle en ene. 517 00:23:19,370 --> 00:23:23,780 Eerder is om net 'n baie gerieflik vernoem program wie se doel in die lewe 518 00:23:23,780 --> 00:23:27,267 is in wese om uit te vind hoe om jou program saam te stel. 519 00:23:27,267 --> 00:23:29,350 En ons gebruik dit in hierdie eerste weke omdat dit net 520 00:23:29,350 --> 00:23:30,910 red ons 'n baie moeite. 521 00:23:30,910 --> 00:23:34,080 >> Maar wat maak werklik doen wanneer jy stel hallo, 522 00:23:34,080 --> 00:23:36,690 is, soos ons het verlede tyd, dit is soek op jou hardeskyf 523 00:23:36,690 --> 00:23:40,620 of in die huidige gids vir lêer wat glo? 524 00:23:40,620 --> 00:23:41,815 Hello.c, reg? 525 00:23:41,815 --> 00:23:43,190 Dit is net 'n soort van 'n verdrag. 526 00:23:43,190 --> 00:23:45,620 Dit is arbitrêr, maar dit is die manier waarop dinge is. 527 00:23:45,620 --> 00:23:48,620 Maak, as jy net die naam van 'n program wat nog nie bestaan ​​nie, 528 00:23:48,620 --> 00:23:52,200 dit gaan om te kyk na die bron-kode in 'n lêer by verstek beteken hello.c. 529 00:23:52,200 --> 00:23:53,530 En as dit bevind is, groot. 530 00:23:53,530 --> 00:23:56,650 Dit gaan daardie bron te omskep kode in voorwerp-kode vir jou. 531 00:23:56,650 --> 00:23:59,670 >> Maar elke keer as ek druk Enter na die uitvoer maak hallo, 532 00:23:59,670 --> 00:24:03,560 Het jy onthou my laaste keer dat 'n redelik lank en kriptiese volgorde 533 00:24:03,560 --> 00:24:06,430 van ander wit letters en karakters op die skerm? 534 00:24:06,430 --> 00:24:11,220 Wel, dit was die eintlike opdrag, die werklike samesteller, wat hardloop. 535 00:24:11,220 --> 00:24:15,500 So die werklike samesteller sal ons die meeste van gebruik die semester is iets genoem klang. 536 00:24:15,500 --> 00:24:19,280 Sommige van julle sal gebruik het Visual Studio voor of GCC, 537 00:24:19,280 --> 00:24:21,340 of enige aantal ander opstellers. 538 00:24:21,340 --> 00:24:22,620 Ons sal gebruik klang. 539 00:24:22,620 --> 00:24:26,950 >> En klang ons toelaat om werklik te sit dat die bron-kode kode beswaar. 540 00:24:26,950 --> 00:24:29,430 Wat beteken dit eintlik beteken in die praktyk? 541 00:24:29,430 --> 00:24:33,390 Wel laat ek gaan in een van my dopgehou vanaf die laaste keer. 542 00:24:33,390 --> 00:24:35,760 Binnekant van die CS50 toestel. 543 00:24:35,760 --> 00:24:42,080 En laat my voort te gaan en die skep van hierdie dieselfde lêer, sluit in standaard I / O dot h. 544 00:24:42,080 --> 00:24:42,875 Int belangrikste leemte. 545 00:24:42,875 --> 00:24:46,000 En ons sal terug te kom in die toekoms as na wat int beteken en wat nietig beteken. 546 00:24:46,000 --> 00:24:49,130 Maar vir nou, laat ons doen Hello World agteroorskuinsstreep n, 547 00:24:49,130 --> 00:24:50,500 net soos ons gedoen het op die bord. 548 00:24:50,500 --> 00:24:53,930 >> Laat my red van hierdie lêer genaamd hello.c. 549 00:24:53,930 --> 00:24:58,280 En nou as ek wil om dit te stel Ek could-- laat my zoom in-- run 550 00:24:58,280 --> 00:25:00,450 maak hallo betree. 551 00:25:00,450 --> 00:25:02,645 En dit was weer dat baie kripties lyn. 552 00:25:02,645 --> 00:25:05,120 Maar nou ten minste een woord waarskynlik spring uit by jou. 553 00:25:05,120 --> 00:25:07,087 Klang is dat die lyn wat ons gesien het voor. 554 00:25:07,087 --> 00:25:10,420 Nou is daar 'n baie ander dinge eerlik dat ons ons hande sal waai vir vandag. 555 00:25:10,420 --> 00:25:14,020 Maar daar is 'n paar onderafdelings, 'n paar karakters in hier 556 00:25:14,020 --> 00:25:14,907 wat van belang is. 557 00:25:14,907 --> 00:25:16,490 Maar ek gaan om voort te gaan en dit doen. 558 00:25:16,490 --> 00:25:18,281 Ek gaan eerste lopie hallo, net om te bewys 559 00:25:18,281 --> 00:25:20,320 dat dit werk soos dit was Maandag. 560 00:25:20,320 --> 00:25:22,330 Maar nou gaan ek die program te verwyder. 561 00:25:22,330 --> 00:25:25,870 En net soos wat ons gehad het om hierdie kort name laaste keer, 562 00:25:25,870 --> 00:25:29,787 die bevel vir die verwydering van iets is RM, verwyder, vul. 563 00:25:29,787 --> 00:25:31,870 Jy gaan 'n paar te kry redelik kriptiese vrae. 564 00:25:31,870 --> 00:25:35,210 Moeilik om te glo dat jy kan maak selfs hierdie vraag moeilik om te verstaan. 565 00:25:35,210 --> 00:25:38,100 Maar verwyder gereelde lêer hallo net middel te doen wat jy wil verwyder hallo. 566 00:25:38,100 --> 00:25:42,650 >> En ek kan voort te gaan en tik y vir ja, kom, en nou is dit weg. 567 00:25:42,650 --> 00:25:45,130 Wat beteken dit nou, As ek my skerm, 568 00:25:45,130 --> 00:25:47,301 is dat in plaas van doen maak hello-- jy 569 00:25:47,301 --> 00:25:48,800 weet wat, ek kry goed op hierdie. 570 00:25:48,800 --> 00:25:50,690 Ek gaan die vertaler te loop myself. 571 00:25:50,690 --> 00:25:53,330 Ek 'n program nodig nie uit te vind wat my lêer genoem word. 572 00:25:53,330 --> 00:25:55,370 Ek het hello.c, ek weet wat dit genoem word, 573 00:25:55,370 --> 00:25:57,640 Ek is duidelik in staat te tik nie. 574 00:25:57,640 --> 00:26:02,620 So ek gaan om voort te gaan en moenie kletteren hello.c Enter. 575 00:26:02,620 --> 00:26:03,264 >> Blyk te werk. 576 00:26:03,264 --> 00:26:05,930 En daar is geen bykomende uitset, omdat klang is die samesteller. 577 00:26:05,930 --> 00:26:08,590 Dit is wat die omskakeling van die bron-kode te nulle en ene. 578 00:26:08,590 --> 00:26:12,870 So as ek nou doen dot streep hallo Tik, hm. 579 00:26:12,870 --> 00:26:14,630 Nuwe fout boodskap vandag. 580 00:26:14,630 --> 00:26:17,610 So bash is net die naam van die flikkerende vinnige dat ons gebruik. 581 00:26:17,610 --> 00:26:20,360 Dit is 'n growwe oorvereenvoudiging, maar vir nou is dit al wat is, 582 00:26:20,360 --> 00:26:21,401 dit is die flikkerende vinnige. 583 00:26:21,401 --> 00:26:22,880 En dit is hoekom dit skree op ons. 584 00:26:22,880 --> 00:26:25,690 >> Geen lêer of gids is 'n bietjie meer eenvoudig. 585 00:26:25,690 --> 00:26:28,190 Maar ja, ek het daardie voorwerp kode. 586 00:26:28,190 --> 00:26:30,930 Maar die catch is, wat as ek tik die opdrag 587 00:26:30,930 --> 00:26:34,650 die inhoud van hierdie lys gids, en dit is wat? 588 00:26:34,650 --> 00:26:36,210 ls vir die lys. 589 00:26:36,210 --> 00:26:39,332 Daar is 'n klomp van die dinge in hier, waarvan sommige het met die toestel, 590 00:26:39,332 --> 00:26:42,040 soos my lessenaar gids, Downloads gids, Dropbox gids, en al 591 00:26:42,040 --> 00:26:42,850 daardie dinge. 592 00:26:42,850 --> 00:26:45,410 Maar wat is interessant is hello.c, wat 593 00:26:45,410 --> 00:26:47,286 Ek het 'n oomblik gelede met gedit. 594 00:26:47,286 --> 00:26:49,160 En wat is die snaaksste soek naam hier, 595 00:26:49,160 --> 00:26:53,110 Miskien is dit wat ons gedoen het nie sien laaste tyd glad nie? 596 00:26:53,110 --> 00:26:54,710 >> a.out, reg? 597 00:26:54,710 --> 00:26:56,920 So terug in die dag, is dit is net besluit dat wanneer 598 00:26:56,920 --> 00:26:58,760 jy 'n program saam te stel vir die eerste keer, 599 00:26:58,760 --> 00:27:02,360 en jy nie die naam gee nie van 'n lêer, kom ons noem dit 'n. 600 00:27:02,360 --> 00:27:05,800 En a.out beteken net dit was die opbrengs van die samesteller. 601 00:27:05,800 --> 00:27:07,790 So dit is 'n aaklige naam vir 'n program. 602 00:27:07,790 --> 00:27:12,820 Maar teen daardie logika, dot streep vir huidige gids, streep a.out, 603 00:27:12,820 --> 00:27:16,102 moet beteken daar is in werklikheid my Hello World program. 604 00:27:16,102 --> 00:27:17,560 Nou 'n bietjie opwarm oefening ook. 605 00:27:17,560 --> 00:27:20,420 As ek wil om dit te hernoem lêer, blyk dat jy 606 00:27:20,420 --> 00:27:23,000 skuif na 'n lêer van die een se naam na die ander. 607 00:27:23,000 --> 00:27:28,750 So mv a.out, en dan het ek kan dit noem hallo Enter. 608 00:27:28,750 --> 00:27:30,940 So dit is 'n Linux opdrag. 609 00:27:30,940 --> 00:27:34,370 DOS het hierdie jaar gelede, Windows het 'n terminale venster 610 00:27:34,370 --> 00:27:36,460 van 'n soort wat lyk soos hierdie, Linux en Mac 611 00:27:36,460 --> 00:27:38,140 rekenaars het hierdie flikkerende vinnige. 612 00:27:38,140 --> 00:27:41,490 Selfs al is die meeste van ons waarskynlik selde, indien ooit, gebruik dit. 613 00:27:41,490 --> 00:27:44,590 >> Maar wat ek gedoen het, is hardloop 'n program, wie se naam is MV, 614 00:27:44,590 --> 00:27:47,900 en ek het op voorwaarde dat dit met twee argumente, om so te praat. 615 00:27:47,900 --> 00:27:48,630 Twee insette. 616 00:27:48,630 --> 00:27:50,260 a.out is die oorspronklike naam. 617 00:27:50,260 --> 00:27:51,630 Hallo is die nuwe naam. 618 00:27:51,630 --> 00:27:55,670 So as ek nou doen dot streep hallo, Tik, wat bestaan. 619 00:27:55,670 --> 00:28:00,770 En as ek doen dot streep a.out, wat verwag jy moet ek sien? 620 00:28:00,770 --> 00:28:02,250 >> Bash, nie so 'n lêer of gids. 621 00:28:02,250 --> 00:28:03,350 Omdat ek net dit herdoop. 622 00:28:03,350 --> 00:28:04,975 So neem 'n bietjie gewoond raak aan. 623 00:28:04,975 --> 00:28:06,977 Maar die probleem stel 1 spesifikasie sal waarlik 624 00:28:06,977 --> 00:28:08,810 hou jou hand deur sommige van hierdie minutae. 625 00:28:08,810 --> 00:28:11,050 Want dit is 'n volledige intellektuele afleiding 626 00:28:11,050 --> 00:28:12,966 van die meer interessante idees aan die hand, wat 627 00:28:12,966 --> 00:28:15,310 is eintlik die skep iets uit van die kode. 628 00:28:15,310 --> 00:28:18,830 Maar laat ons nie een verandering nou tot hierdie program. 629 00:28:18,830 --> 00:28:23,150 >> Onthou dat dit die laaste keer dat ek iets gedoen het soos hierdie, printf jou naam. 630 00:28:23,150 --> 00:28:25,790 En inderdaad het ons net het hierdie op die groot skerm daar. 631 00:28:25,790 --> 00:28:30,640 En dan het ek string s kry GetString oop hakie, naby hakie. 632 00:28:30,640 --> 00:28:33,430 En hakie net snelskrif notasie vir hakies. 633 00:28:33,430 --> 00:28:36,460 So het GetString neem enige argumente? 634 00:28:36,460 --> 00:28:38,440 Geen insette nie, maar dit moet die hakies, 635 00:28:38,440 --> 00:28:41,830 want dit is wat die omskrywing die roeping van 'n funksie. 636 00:28:41,830 --> 00:28:46,440 >> So ek gaan om voort te gaan en probeer om te loop die samesteller van hierdie program nou. 637 00:28:46,440 --> 00:28:50,774 Klang hello.c, want ek het nie sy naam nou verander. 638 00:28:50,774 --> 00:28:51,940 En ek het 'n klomp van die foute. 639 00:28:51,940 --> 00:28:53,570 Kom ons zoom hier. 640 00:28:53,570 --> 00:28:55,420 As ek blaai weer, soos ek gesê het die laaste keer, 641 00:28:55,420 --> 00:28:58,420 na die eerste dieselfde fout dat ek die laaste keer. 642 00:28:58,420 --> 00:29:04,210 On line 6 van hello.c het ek 'n onverklaarde identifiseerder string, 643 00:29:04,210 --> 00:29:05,590 het ek bedoel standaard in? 644 00:29:05,590 --> 00:29:06,750 Ek het nie. 645 00:29:06,750 --> 00:29:10,050 Want wat fout wat ek gemaak het in hierdie program, as jy onthou van verlede tyd? 646 00:29:10,050 --> 00:29:13,219 647 00:29:13,219 --> 00:29:15,010 Ja, ons moet die sogenaamde opleiding wiele 648 00:29:15,010 --> 00:29:16,510 dat ons net sal gebruik vir 'n paar weke. 649 00:29:16,510 --> 00:29:19,480 Maar ek nodig om dit te spesifiseer ook, iewers binnekant van die toestel, 650 00:29:19,480 --> 00:29:22,720 is 'n lêer wat ons geskryf het net 'n paar jaar gelede. 651 00:29:22,720 --> 00:29:26,500 Binnekant van wat funksies soos blykbaar GetString. 652 00:29:26,500 --> 00:29:35,160 So as ek nou terug gaan hier, vergroot, en re-run klang hello.c. 653 00:29:35,160 --> 00:29:36,500 Damn, nog 'n fout. 654 00:29:36,500 --> 00:29:38,590 Maar ons het nie gesien voor hierdie een. 655 00:29:38,590 --> 00:29:41,900 >> Hierdie een is 'n bietjie meer esoteriese om uit te vind. 656 00:29:41,900 --> 00:29:46,910 Maar dit is doelbewus op die skerm, want ons wou die storie te vertel. 657 00:29:46,910 --> 00:29:51,280 Wanneer jy stel hello.c, net soos die foto van voor voorgestel, 658 00:29:51,280 --> 00:29:54,650 jy net die omskakeling wat bron-kode te nulle en ene. 659 00:29:54,650 --> 00:30:00,340 Nou CS50 personeel 'n paar jaar gelede geskryf CS50.h, en 'n ooreenstemmende lêer, 660 00:30:00,340 --> 00:30:01,640 CS50.c. 661 00:30:01,640 --> 00:30:04,490 En ons, 'n paar jaar gelede, saamgestel daardie lêers 662 00:30:04,490 --> 00:30:07,290 in 'n lêer wat gebeur genoem te word CS50.o. 663 00:30:07,290 --> 00:30:09,180 >> Of dit herdoop kan word om 'n paar verskillende dinge. 664 00:30:09,180 --> 00:30:11,054 Maar dit is 'n eenvoudige manier dink oor dit. 665 00:30:11,054 --> 00:30:14,960 So het ons saamgestel CS50 se biblioteek in nulle en ene. 666 00:30:14,960 --> 00:30:20,340 Maar nêrens het ek verskaf wat ek wil my nulle te kombineer 667 00:30:20,340 --> 00:30:24,030 en een vir my Hello World program met die nulle en ene 668 00:30:24,030 --> 00:30:29,760 dat CS50 personeel het 'n paar jaar gelede in een volledige program. 669 00:30:29,760 --> 00:30:34,100 Al wat ek vermeld het deur skriftelik klang hello.c is stel hello.c. 670 00:30:34,100 --> 00:30:38,380 >> Ek het nie gesê klang te skakel in die nulle en ene 671 00:30:38,380 --> 00:30:41,650 dat CS50 personeel geskep vir 'n geruime tyd gelede. 672 00:30:41,650 --> 00:30:48,280 So dit is 'n maklike oplossing, stamp l vir skakel, CS50. 673 00:30:48,280 --> 00:30:52,600 En ons sal weer sien kort voor lank weer en weer. 674 00:30:52,600 --> 00:30:54,420 Maar nou sien daar was geen klagtes. 675 00:30:54,420 --> 00:30:59,770 So nou as ek hardloop dot streep hallo, nou is dit werk. 676 00:30:59,770 --> 00:31:03,840 Hoewel dit 'n bietjie misleidend want ek het net herskep wat lêer? 677 00:31:03,840 --> 00:31:05,880 a.out. 678 00:31:05,880 --> 00:31:07,930 >> So laat my rewind net vir 'n oomblik. 679 00:31:07,930 --> 00:31:10,900 Die program het ons net saamgestel het die drie reëls van die kode. 680 00:31:10,900 --> 00:31:14,710 Toe ek gehardloop hallo wêreld, hallo 'n oomblik gelede, het ek nie sien jou naam. 681 00:31:14,710 --> 00:31:17,080 En dit is omdat ek het die n ou weergawe van die program. 682 00:31:17,080 --> 00:31:22,700 Maar as ek wel hardloop dot streep a.out Gee, meld u naam, Rob, hallo, 683 00:31:22,700 --> 00:31:23,370 wêreld. 684 00:31:23,370 --> 00:31:23,870 Hm. 685 00:31:23,870 --> 00:31:26,110 Dit is soort van 'n fout. 686 00:31:26,110 --> 00:31:28,560 Waarskynlik bedoel om te sê Rob, reg? 687 00:31:28,560 --> 00:31:30,997 So, wat is die oplossing hier in die kode. 688 00:31:30,997 --> 00:31:31,872 STUDENT: [onhoorbaar]. 689 00:31:31,872 --> 00:31:38,415 690 00:31:38,415 --> 00:31:39,290 David Malan: Presies. 691 00:31:39,290 --> 00:31:43,160 So ek moet net daardie finale tweak te maak sodat ek verby in 'n tydelike, 692 00:31:43,160 --> 00:31:45,690 soos 'n vul die leë, soos ons gedoen het 'n oomblik gelede. 693 00:31:45,690 --> 00:31:47,870 Maar persent s is nou in die leeg wat vul. 694 00:31:47,870 --> 00:31:52,100 So laastens laat openbaar 'n laaste detail sodat daar is geen magic. 695 00:31:52,100 --> 00:31:54,090 Ek gaan om voort te gaan en ontslae te raak van hellow. 696 00:31:54,090 --> 00:31:56,070 Ek gaan om voort te gaan en ontslae te raak van a.out. 697 00:31:56,070 --> 00:31:58,410 So nou het ek geen programme, net my bron-kode. 698 00:31:58,410 --> 00:32:01,100 En ek gaan 'n te hardloop effens langer opdrag, klang 699 00:32:01,100 --> 00:32:05,650 stamp o hallo hello.c Dash LCS50. 700 00:32:05,650 --> 00:32:08,700 >> Nou is dit besig om te sorteer van Weg in die een oor en uit die ander miskien. 701 00:32:08,700 --> 00:32:10,366 Maar net terg mekaar wat dit doen. 702 00:32:10,366 --> 00:32:14,910 Klang is die samesteller, stamp LCS50 doelbewus aan die einde 703 00:32:14,910 --> 00:32:18,330 doen wat in 'n sin? 704 00:32:18,330 --> 00:32:19,607 Skakels na die CS50 biblioteek. 705 00:32:19,607 --> 00:32:21,440 Gryp die nulle en Diegene wat die personeel het 706 00:32:21,440 --> 00:32:23,310 en crams hulle in my eie program. 707 00:32:23,310 --> 00:32:27,040 So het die laaste vraag aan die hand is, wat stamp o hallo waarskynlik 708 00:32:27,040 --> 00:32:30,530 doen, selfs as jy nog nooit gesien sintaksis voor? 709 00:32:30,530 --> 00:32:34,920 >> Uitdruk van 'n program wat nie die naam van die standaard a.out. 710 00:32:34,920 --> 00:32:37,330 Inteendeel, dit is die naam hallo. 711 00:32:37,330 --> 00:32:39,460 So nou is daar geen a.out. 712 00:32:39,460 --> 00:32:42,660 Geen lêer of gids, want ek uitdruklik gesê 713 00:32:42,660 --> 00:32:46,720 noem hierdie program hallo, sodat Ek kan nou tik in 'n naam soos daardie 714 00:32:46,720 --> 00:32:47,790 en het dit gedra. 715 00:32:47,790 --> 00:32:50,180 >> Nou eerlik, seun, is dat oninteressant te hê 716 00:32:50,180 --> 00:32:52,170 al wat om te onthou bietjie minutia, reg? 717 00:32:52,170 --> 00:32:54,180 So laat ons gaan voort en kry weer ontslae te raak van hallo. 718 00:32:54,180 --> 00:32:57,880 En laat ons nou terugkeer na 'n wêreld in wat is dit voldoende om te sê maak hallo. 719 00:32:57,880 --> 00:33:00,410 Maar dit is die magie wat maak vir jou doen, 720 00:33:00,410 --> 00:33:02,320 dit is die verveling wat dit doen vir jou. 721 00:33:02,320 --> 00:33:04,630 En as ons programme en probleme meer kompleks, 722 00:33:04,630 --> 00:33:06,142 maak, sal werklik jou vriend wees. 723 00:33:06,142 --> 00:33:07,850 Omdat nie te lank van nou af gaan ons 724 00:33:07,850 --> 00:33:11,150 programme wat geskryf is het nie met 'n lêer, maar 'n paar lêers, 725 00:33:11,150 --> 00:33:16,310 en maak die proses van outomatiseer die opstel van al wat vir ons saam. 726 00:33:16,310 --> 00:33:20,620 >> So nou druk. 727 00:33:20,620 --> 00:33:24,960 printf is die binnekant van hierdie lêer, standaard I / O dot h, wat ons reeds gesien het, 728 00:33:24,960 --> 00:33:26,980 maar daar is meer aan printf as dit. 729 00:33:26,980 --> 00:33:30,482 Daar is agteroorskuinsstreep n, maar daar is ook 'n klomp van die ander ontsnapping rye. 730 00:33:30,482 --> 00:33:32,940 En ontsnapping ry is net 'n fancy manier van iets sê 731 00:33:32,940 --> 00:33:35,990 wat begin met 'n back slash, nie 'n slash, 'n agteroorskuinsstreep, 732 00:33:35,990 --> 00:33:37,920 en nie 'n paar spesiale ding. 733 00:33:37,920 --> 00:33:43,770 En ons sal nie daarin woon nie op die meeste van hierdie, Maar hoekom is daar agteroorskuinsstreep dubbele quote, 734 00:33:43,770 --> 00:33:44,830 dink jy? 735 00:33:44,830 --> 00:33:48,010 Hoekom is daar hierdie vreemde volgorde van karakters, agteroorskuinsstreep dubbele quote, 736 00:33:48,010 --> 00:33:50,505 Hoekom kan dit nuttig wees? 737 00:33:50,505 --> 00:33:51,380 STUDENT: [onhoorbaar]. 738 00:33:51,380 --> 00:33:56,594 739 00:33:56,594 --> 00:33:57,760 David Malan: Presies, reg? 740 00:33:57,760 --> 00:34:01,830 Dink terug aan ons hallo wêreld program wat ons gesien het nogal 'n paar keer nou, 741 00:34:01,830 --> 00:34:05,880 elke keer het ons gesien dat Hello World program wat ons gehad het dubbele aanhalingstekens binne 742 00:34:05,880 --> 00:34:08,210 waarvan hallo komma wêreld agteroorskuinsstreep n. 743 00:34:08,210 --> 00:34:10,070 Maar dink aan jouself, Wat gebeur as jy eintlik 744 00:34:10,070 --> 00:34:12,520 wou om uit te druk 'n kwotasie merk? 745 00:34:12,520 --> 00:34:16,100 Jou eerste instink kan wees, doen ek nie, weet hoekom ek dalk hier wil do--, 746 00:34:16,100 --> 00:34:18,780 ons kan 'n bietjie passief aggressief, hallo vriend. 747 00:34:18,780 --> 00:34:21,350 Ons wil dalk iets te doen. 748 00:34:21,350 --> 00:34:25,230 >> Maar hoekom is dit nou 'n probleem? 749 00:34:25,230 --> 00:34:28,730 Ignoreer die krullerige aanhalings opsy dat hoofrede vir ons gemaak outomaties. 750 00:34:28,730 --> 00:34:29,730 Hoekom is dit problematies? 751 00:34:29,730 --> 00:34:36,719 752 00:34:36,719 --> 00:34:37,270 >> Presies. 753 00:34:37,270 --> 00:34:39,022 Want ons het soos 4 aanhalingstekens. 754 00:34:39,022 --> 00:34:41,230 Wel, die eerste een waarskynlik gaan met die tweede een, 755 00:34:41,230 --> 00:34:43,271 en miskien die vierde gaan met die derde een, 756 00:34:43,271 --> 00:34:46,170 of nie, ek bedoel ek is nie eens seker, of is die rekenaar gaan wees. 757 00:34:46,170 --> 00:34:48,352 Rekenaars weer opstellers weer, is redelik dom. 758 00:34:48,352 --> 00:34:50,060 Hulle sal net doen wat jy hulle vertel om te doen. 759 00:34:50,060 --> 00:34:54,270 En as jy nie ondubbelsinnig hulle gaan waarskynlik 'n fout om te gooi. 760 00:34:54,270 --> 00:34:57,700 >> As jy nie ondubbelsinnig hoe om te 'n grondboontjiebotter en jellie toebroodjie 761 00:34:57,700 --> 00:34:59,510 vreemde dinge kan kom. 762 00:34:59,510 --> 00:35:00,580 Dit is dieselfde idee. 763 00:35:00,580 --> 00:35:03,100 Voldoende is dit nou om te sê daar is 'n ander ontsnap rye, 764 00:35:03,100 --> 00:35:04,820 maar ons sal aan diegene kom voor lank. 765 00:35:04,820 --> 00:35:07,410 Wese die ontsnapping rye iets 766 00:35:07,410 --> 00:35:10,480 dat jy nie dalk in staat wees te maklik op die klawerbord, 767 00:35:10,480 --> 00:35:12,010 sonder verwarrend die rekenaar. 768 00:35:12,010 --> 00:35:15,733 >> Nou intussen het ons ' plekhouers in printf. 769 00:35:15,733 --> 00:35:19,630 Persent d, wat ook geskryf word In byna alle gevalle as persent i, 770 00:35:19,630 --> 00:35:21,610 is 'n plekhouer vir watter tipe data? 771 00:35:21,610 --> 00:35:23,920 Watter tipe waarde? 772 00:35:23,920 --> 00:35:24,920 'N desimale getal. 773 00:35:24,920 --> 00:35:27,234 So eintlik ons ​​sal begin gebruik persent i want dit is 774 00:35:27,234 --> 00:35:28,650 'n bietjie makliker, soos 'n heelgetal. 775 00:35:28,650 --> 00:35:29,550 Persent i. 776 00:35:29,550 --> 00:35:31,320 'N heelgetal wat gebeur desimale te wees. 777 00:35:31,320 --> 00:35:35,690 >> Persent s ons reeds gesê het, is 'n plekhouer vir 'n string. 778 00:35:35,690 --> 00:35:38,630 Wat net 'n woord, 'n frase, 'n paragraaf, 'n opstel, wat ook al. 779 00:35:38,630 --> 00:35:40,830 Dit is 'n reeks van karakters van sommige lengte. 780 00:35:40,830 --> 00:35:42,820 En ons sal sien voor lank sommige van hierdie ander. 781 00:35:42,820 --> 00:35:45,950 Maar persent c is vir 'n enkele karakter. 782 00:35:45,950 --> 00:35:48,500 Persent f is vir 'n drywende punt nommer, 783 00:35:48,500 --> 00:35:50,860 soos 'n ware getal wat 'n desimale punt in, wat 784 00:35:50,860 --> 00:35:52,550 is natuurlik nie 'n heelgetal. 785 00:35:52,550 --> 00:35:54,670 En daar is 'n hele n klomp van die ander. 786 00:35:54,670 --> 00:35:56,990 >> Intussen is in C en in 'n baie tale, 787 00:35:56,990 --> 00:35:58,650 ons het verskillende data tipes. 788 00:35:58,650 --> 00:36:00,650 Verskillende tipes glas bakke as jy wil. 789 00:36:00,650 --> 00:36:03,830 Die bakkie het ek die laaste tyd was vir tafeltennis balle, 790 00:36:03,830 --> 00:36:06,990 maar ons kan ook verskillende stoor waardes soos karakters en stringe 791 00:36:06,990 --> 00:36:10,820 en heelgetalle in 'n houer, soos 'n veranderlike, en C het hierdie. 792 00:36:10,820 --> 00:36:14,020 Kar is die tipe van data, die aard van die veranderlike, 793 00:36:14,020 --> 00:36:15,700 in wat jy kan 'n karakter stoor. 794 00:36:15,700 --> 00:36:19,560 Float is 'n tipe van 'n veranderlike in wat jy kan 'n reële getal stoor. 795 00:36:19,560 --> 00:36:21,220 >> Int is natuurlik vir 'n int. 796 00:36:21,220 --> 00:36:23,760 En eerder belaglik naam van 'n lang lang 797 00:36:23,760 --> 00:36:26,830 is waar jy eintlik kan stoor 'n baie lang nommer, met nog 798 00:36:26,830 --> 00:36:29,930 meer syfers dan 'n tipiese int mag winkel. 799 00:36:29,930 --> 00:36:32,420 Maar ons sal terug kom kort voor lank. 800 00:36:32,420 --> 00:36:35,520 >> In CS50 dot h intussen die ander kop lêer 801 00:36:35,520 --> 00:36:37,630 wat ons gesien het 'n paar keer in gebruik is, is daar 802 00:36:37,630 --> 00:36:41,350 twee ander data tipes wat nie in C bestaan ​​tipies. 803 00:36:41,350 --> 00:36:45,000 Een is string, en ons sal sien in 'n paar weke wat snare regtig 804 00:36:45,000 --> 00:36:46,610 is onder die enjinkap. 805 00:36:46,610 --> 00:36:47,950 En een is Bool. 806 00:36:47,950 --> 00:36:51,650 En 'n Bool is 'n veranderlike wat kan slegs op sekere waardes. 807 00:36:51,650 --> 00:36:54,370 En net gebaseer op verlede week se verduideliking van nuuts af, 808 00:36:54,370 --> 00:36:56,680 en meer onlangs C, wat sou jy dink 809 00:36:56,680 --> 00:37:01,770 is die twee moontlike waardes vir sommige houer wat van die tipe Bool? 810 00:37:01,770 --> 00:37:02,860 >> Ja en nee. 811 00:37:02,860 --> 00:37:03,870 Een en 'n nul. 812 00:37:03,870 --> 00:37:04,502 Waar of vals. 813 00:37:04,502 --> 00:37:07,460 En inderdaad is dit die laaste wat geneig is konvensionele in 'n ontwikkeling wees 814 00:37:07,460 --> 00:37:10,030 taal, sê iets soos ware of vals. 815 00:37:10,030 --> 00:37:13,160 >> Intussen het die CS50 biblioteek kom met 'n klomp van die funksies 816 00:37:13,160 --> 00:37:16,640 dat die personeel geskryf vir jou, Behalwe net om 'n string. 817 00:37:16,640 --> 00:37:20,910 Ons het vooraf funksies wat kan 'n heelgetal van die gebruikers, 818 00:37:20,910 --> 00:37:22,990 'n enkele karakter, 'n vlot, wat 819 00:37:22,990 --> 00:37:25,160 is net 'n aantal van die desimale punt. 820 00:37:25,160 --> 00:37:28,290 Kry 'n lang lang, 'n baie groot waarde van die gebruiker. 821 00:37:28,290 --> 00:37:30,930 Dus het ons net gesien in aksie in die vorm van GetString. 822 00:37:30,930 --> 00:37:33,230 Maar deur middel van hierdie funksies sal binnekort in staat wees om te skryf 823 00:37:33,230 --> 00:37:36,070 programme wat insette van die gebruiker. 824 00:37:36,070 --> 00:37:39,230 >> Intussen oorweeg hierdie program, en oorweeg 825 00:37:39,230 --> 00:37:42,600 hoe ons nou kan begin by te voeg om dit met 'n nuwe idees. 826 00:37:42,600 --> 00:37:44,530 'N vinnige storm toer en dan sal ons sien 827 00:37:44,530 --> 00:37:47,340 op 'n sekere skryf 'n paar programme hand onsself. 828 00:37:47,340 --> 00:37:49,700 Voortaan as ons wil 'n toestand te implementeer, 829 00:37:49,700 --> 00:37:52,790 dit gaan nie om te lyk soos 'n mooi klein mooi legkaart stuk. 830 00:37:52,790 --> 00:37:54,460 Dit gaan 'n bietjie meer arcane kyk. 831 00:37:54,460 --> 00:37:57,620 Maar dit is die kanonieke struktuur van 'n toestand in C. 832 00:37:57,620 --> 00:38:00,380 >> Die woord as twee hakies, binnekant van wat 833 00:38:00,380 --> 00:38:02,590 gaan 'n soort te wees van Boole-uitdrukking. 834 00:38:02,590 --> 00:38:04,999 Nou is die streep streep in die middel, dit is 835 00:38:04,999 --> 00:38:07,290 op die oomblik soort van soos pseudokode kode plekhouer. 836 00:38:07,290 --> 00:38:11,576 Maar meer behoorlik, enige reël van die kode in C wat met streep streep begin 837 00:38:11,576 --> 00:38:12,850 is 'n kommentaar. 838 00:38:12,850 --> 00:38:15,920 >> Dit is soos 'n taai noot wat jy dalk sit op 'n opstel, gedruk op papier. 839 00:38:15,920 --> 00:38:17,290 Dit is 'n nota aan jouself. 840 00:38:17,290 --> 00:38:20,100 Dit het geen funksionele impak op die program. 841 00:38:20,100 --> 00:38:23,580 Dit is soort van 'n herinnering, is dit jou eie dokumentasie oor wat aangaan. 842 00:38:23,580 --> 00:38:25,720 So doen dit op die oomblik is 'n soort van 'n tydelike 843 00:38:25,720 --> 00:38:27,560 vir alles wat binne- van daardie krulhakies 844 00:38:27,560 --> 00:38:29,810 uiteindelik gaan om iets te doen. 845 00:38:29,810 --> 00:38:35,160 >> Intussen het jy twee vurke in die pad, 'n as anders bou soos hierdie. 846 00:38:35,160 --> 00:38:37,024 Jy kan, indien elseif, anders. 847 00:38:37,024 --> 00:38:39,690 Nou is dit die moeite werd om daarop te let, veral as jy het al Googlen rondom 848 00:38:39,690 --> 00:38:42,480 aanlyn hulpbronne uit nuuskierigheid, of as jy haal 849 00:38:42,480 --> 00:38:44,575 een van die kursus se aanbevole boeke oor C, 850 00:38:44,575 --> 00:38:48,430 sal jy sien dat mense baie van verskillende voorkeure vir hoe 851 00:38:48,430 --> 00:38:50,510 hulself uit te druk in die kode. 852 00:38:50,510 --> 00:38:53,800 Sommige mense hou van die te sit krulhakies as ek hier gedoen het. 853 00:38:53,800 --> 00:38:57,760 Sommige mense hou van die krullerige te sit draadjies byvoorbeeld hier. 854 00:38:57,760 --> 00:39:01,700 >> Sommige mense hou van die elses te sit hier en dan is dit hier. 855 00:39:01,700 --> 00:39:05,120 Daar is 'n aantal van maniere om te Skryf kode, en nie een van hulle 856 00:39:05,120 --> 00:39:06,566 is reg per se. 857 00:39:06,566 --> 00:39:08,440 Hoewel daar is 'n paar wat mooi verkeerd. 858 00:39:08,440 --> 00:39:11,315 Maar daar is no-- indien dit uiteindelik 'n baie godsdienstige debat. 859 00:39:11,315 --> 00:39:13,940 Trouens, een van die mees irriterende dinge oor rekenaarwetenskap 860 00:39:13,940 --> 00:39:16,310 is hoe uitgesproke rekenaar wetenskaplikes kan wees. 861 00:39:16,310 --> 00:39:19,880 En jy sal met verloop van tyd vind dat selfs jy persoonlike voorkeure ontwikkel 862 00:39:19,880 --> 00:39:22,130 hoe om jou kode moet kyk. 863 00:39:22,130 --> 00:39:27,162 >> Nie net tree, nie net die skep van die produksie, maar hoe dit esteties moet lyk. 864 00:39:27,162 --> 00:39:30,120 So, wat sal ons doen, is om te lei jou langs in die rigting van, vir nou ten minste, 865 00:39:30,120 --> 00:39:34,825 'n standaard CS50 styl wat ten minste hou dinge uniform en maklik om te lees. 866 00:39:34,825 --> 00:39:37,330 Maar meer op daardie onderskeidings voor lank. 867 00:39:37,330 --> 00:39:41,830 >> 'N Boole-uitdrukking in C, as jy wou sê as hierdie toestand is waar 868 00:39:41,830 --> 00:39:44,650 en hierdie ander toestand waar, jy nie die woord skryf nie 869 00:39:44,650 --> 00:39:46,610 en, soos jy sou in Engels. 870 00:39:46,610 --> 00:39:50,580 Jy plaas gebruik ampersand-teken, om redes wat ons sal terug te kom. 871 00:39:50,580 --> 00:39:54,520 As jy wil om te sê of jy twee vertikale bars, wat op 'n Amerikaanse sleutelbord 872 00:39:54,520 --> 00:39:57,650 is oor die algemeen bo die Voer sleutel langs die agteroorskuinsstreep. 873 00:39:57,650 --> 00:40:03,080 En dit beteken net as hierdie toestand of die ander voorwaarde is waar dit doen. 874 00:40:03,080 --> 00:40:05,210 >> Intussen is daar hierdie mal ding, wat 875 00:40:05,210 --> 00:40:07,760 jy sal die geleentheid hê een keer in 'n rukkie gebruik. 876 00:40:07,760 --> 00:40:10,390 Maar dit is net 'n alternatiewe manier om jouself uit te druk. 877 00:40:10,390 --> 00:40:12,400 Dit, vir nou, laat ons stipuleer, dit is net 878 00:40:12,400 --> 00:40:16,880 'n ander funky manier om Indien elseif, elseif, elseif, elseif. 879 00:40:16,880 --> 00:40:19,720 Dit is net formaat in terme van die gevalle, waar jy letterlik 880 00:40:19,720 --> 00:40:23,420 opsom die waardes wat jy dalk wil om te kyk vir. 881 00:40:23,420 --> 00:40:24,410 >> Intussen loops. 882 00:40:24,410 --> 00:40:26,842 Ons het 'n vergelyking van Krap met 'n lus. 883 00:40:26,842 --> 00:40:29,550 En ek gaan my hand te waai wat elkeen van hierdie dinge beteken. 884 00:40:29,550 --> 00:40:33,520 Maar let op dat 'n lus sal dikwels begin met die navraag vir. 885 00:40:33,520 --> 00:40:36,350 Of dit sal begin met die navraag rukkie. 886 00:40:36,350 --> 00:40:41,360 Of dit sal begin met die navraag doen, en eindig met die navraag rukkie. 887 00:40:41,360 --> 00:40:43,920 >> Maar wat ons is oor om te sien is dinge meer soos hierdie. 888 00:40:43,920 --> 00:40:47,950 Hier is, in die algemeen in C, hoe jy verklaar 'n veranderlike en gee dit 'n waarde. 889 00:40:47,950 --> 00:40:50,610 In C dit is nie voldoende nie, soos in Scratch, het jy net 890 00:40:50,610 --> 00:40:52,810 sê gee my 'n veranderlike genoem iets. 891 00:40:52,810 --> 00:40:55,960 Jy het C te vertel, en vertel jou samesteller, meer spesifiek, 892 00:40:55,960 --> 00:40:58,680 watter tipe waarde het jy wil om te sit in die glas bak. 893 00:40:58,680 --> 00:40:59,610 >> Is dit 'n heelgetal? 894 00:40:59,610 --> 00:41:02,210 As dit so is, jy het om te letterlik sê int en dan 895 00:41:02,210 --> 00:41:04,220 die naam van die veranderlike, dan 'n kommapunt. 896 00:41:04,220 --> 00:41:08,050 As jy in plaas wou string en 'n beroep dit is soos ek gedoen het my kode hier vandag, 897 00:41:08,050 --> 00:41:10,920 jy sou string s kommapunt sê. 898 00:41:10,920 --> 00:41:14,200 Sodra jy wil om dit te gee 'n waarde Jy kan dan gebruik om die gelyke teken, 899 00:41:14,200 --> 00:41:16,211 andersins bekend as die opdrag operateur. 900 00:41:16,211 --> 00:41:17,960 En sien hoe elke van hierdie reëls van die kode 901 00:41:17,960 --> 00:41:20,650 het die kommapunt aan die einde van dit. 902 00:41:20,650 --> 00:41:22,550 >> Maar eerlik dit net lyk 'n bietjie lelik. 903 00:41:22,550 --> 00:41:26,580 Hoekom kan ek nie sê aan die rekenaar, gee my 'n veranderlike en inisialiseer aan nul. 904 00:41:26,580 --> 00:41:28,380 Dit is, gee my 'n leë glas bak. 905 00:41:28,380 --> 00:41:28,980 Terwyl jy kan. 906 00:41:28,980 --> 00:41:32,250 En so een van die uitspraak noem jy moet stilisties maak oor die tyd 907 00:41:32,250 --> 00:41:36,290 is, die kode soos hierdie skryf jy, of jy soort van skoon te maak en te beïndruk 908 00:41:36,290 --> 00:41:39,040 mense deur die skryf van twee lyne as net een. 909 00:41:39,040 --> 00:41:41,830 En dit sal oorweeg word algemeen 'n meer elegante manier 910 00:41:41,830 --> 00:41:43,870 van die skryf van jou kode stilisties. 911 00:41:43,870 --> 00:41:45,200 >> Funksies wat ons is natuurlik gesien. 912 00:41:45,200 --> 00:41:46,340 Hulle gaan hierdie formaat te neem. 913 00:41:46,340 --> 00:41:48,881 Die naam van 'n funksie, sommige hakies, en dan miskien 'n paar 914 00:41:48,881 --> 00:41:49,910 dinge binne-in. 915 00:41:49,910 --> 00:41:52,540 Of jy kan gebruik van sien verskeie funksies kant 916 00:41:52,540 --> 00:41:55,980 mekaar, soos iets soos hierdie. 917 00:41:55,980 --> 00:41:59,390 Nou as 'n raaklyn, doen hierdie grap sin maak nou? 918 00:41:59,390 --> 00:42:03,566 919 00:42:03,566 --> 00:42:04,960 >> [Gelag] 920 00:42:04,960 --> 00:42:09,360 Dit beteken nie dit is snaaks nie, maar dit nie dalk 'n bietjie meer sin. 921 00:42:09,360 --> 00:42:12,140 So nou, laat ons gaan in die CS50 toestel vir 'n oomblik. 922 00:42:12,140 --> 00:42:14,640 En laat my oop een teaser hier. 923 00:42:14,640 --> 00:42:17,470 >> En inderdaad een van die redes vir die bekendstelling van IKEA katalogus 924 00:42:17,470 --> 00:42:20,080 en flikker die prentjie van die iPhone 'n bietjie gelede 925 00:42:20,080 --> 00:42:24,700 was eintlik bind saam die feit dat net 'n paar jaar gelede, in 2007, 926 00:42:24,700 --> 00:42:26,540 hierdie stuk van die kode was vrygestel, wat 927 00:42:26,540 --> 00:42:29,820 een van die heel eerste implementering van 'n stukkie van die sagteware 928 00:42:29,820 --> 00:42:31,494 wat doen wat genoem jailbreaking. 929 00:42:31,494 --> 00:42:34,410 Vir diegene wat nie vertroud, jailbreaking iets soos 'n selfoon of 'n iPhone 930 00:42:34,410 --> 00:42:37,680 wese beteken besyfering hoe om dinge te doen 931 00:42:37,680 --> 00:42:39,864 met dit wat die maatskappy wat dit nie van plan is. 932 00:42:39,864 --> 00:42:42,780 Soos wat jy wil om seker te installeer sagteware wat nie in die app store, 933 00:42:42,780 --> 00:42:45,405 jailbreaking jou selfoon wat jy dinge doen soos wat en nog baie meer. 934 00:42:45,405 --> 00:42:47,447 Maar wat was groot pret in 2007-- en daar was 935 00:42:47,447 --> 00:42:49,780 dekades van die verskillende weergawes hierdie dinge het sedertdien, 936 00:42:49,780 --> 00:42:53,540 in alle vorme van languages-- is dat hierdie program hier, genaamd iUnlock, 937 00:42:53,540 --> 00:42:57,036 is eintlik geskryf in C. En so het ek trek die bron-kode vir die, 938 00:42:57,036 --> 00:42:59,910 net om te soort wys jou 'n paar van die die ooreenkomste met die konstrukte 939 00:42:59,910 --> 00:43:01,450 ons het bespreek tot dusver. 940 00:43:01,450 --> 00:43:05,150 Nou is daar 'n manier om meer kompleksiteit hier as ons het reeds gesien in die klas. 941 00:43:05,150 --> 00:43:07,160 Laat my blaai tot net 'n bietjie hier. 942 00:43:07,160 --> 00:43:11,520 >> Maar let these-- goed sien ons 'n paar things--, maar kennis van hierdie lyne hier 943 00:43:11,520 --> 00:43:14,090 insluitende standaard I / O dot h. 944 00:43:14,090 --> 00:43:17,660 En all-- lyn 24, please-- kennis standaard I / O 945 00:43:17,660 --> 00:43:21,380 dot h en 'n hele klomp van die ander lêers wat glo ander mense 946 00:43:21,380 --> 00:43:22,160 geskryf het. 947 00:43:22,160 --> 00:43:24,850 En as ons scroll down deur hierdie, bietjie arbitrêr, 948 00:43:24,850 --> 00:43:27,910 KENNISGEWING Ek weet nie hoe om te skryf al hierdie myself noodwendig nie, 949 00:43:27,910 --> 00:43:28,880 maar daar is as. 950 00:43:28,880 --> 00:43:30,400 So glo dit het 'n tak. 951 00:43:30,400 --> 00:43:33,210 >> En as ek blaai af 'n bietjie verder is daar 'n ander as. 952 00:43:33,210 --> 00:43:38,210 As ek blaai, ek dink rondom line 100 Ek het vir. 953 00:43:38,210 --> 00:43:40,020 So ek is nie heeltemal seker hoe dit werk nie, 954 00:43:40,020 --> 00:43:43,180 maar dit is 'n lus vir die wat gaan laat my Itereer sommige paar keer. 955 00:43:43,180 --> 00:43:45,230 En as ek blaai al die pad na die onderkant 956 00:43:45,230 --> 00:43:51,020 Ek sien dat daar 'n funksioneer hier genoem 957 00:43:51,020 --> 00:43:54,570 hoof, en 'n paar ekstra krediete Vir jou lees genot. 958 00:43:54,570 --> 00:43:57,830 >> So dit is net te say-- en ons sal sit hierdie aanlyn onder die kursus se bron 959 00:43:57,830 --> 00:44:01,480 kode today-- dat selfs sommige van hierdie toestelle wat ons as vanselfsprekend aanvaar, 960 00:44:01,480 --> 00:44:05,130 aan die einde van die dag is jy nog steeds die gebruik van hierdie basiese konstrukte wat ons het 961 00:44:05,130 --> 00:44:07,430 reeds die bekendstelling tot dusver. 962 00:44:07,430 --> 00:44:08,620 Dit is genoeg van daardie een. 963 00:44:08,620 --> 00:44:11,480 Alle reg, sodat nou, laat ons eintlik iets te bou. 964 00:44:11,480 --> 00:44:15,640 >> Kom ons gaan verder as iets soos hello.c, en maak dit, 965 00:44:15,640 --> 00:44:17,170 Ons skryf hierdie program hier. 966 00:44:17,170 --> 00:44:19,850 Ek gaan om voort te gaan en skryf 'n program met die naam adder.c, 967 00:44:19,850 --> 00:44:23,310 wie se doel in die lewe gaan wees soos my eerste super eenvoudige sakrekenaar 968 00:44:23,310 --> 00:44:24,840 dat net voeg 'n paar van die nommers. 969 00:44:24,840 --> 00:44:27,050 Nie, want dit is 'n harde probleem nie, maar omdat dit 970 00:44:27,050 --> 00:44:29,390 laat my toe om nou te bind saam 'n paar dinge. 971 00:44:29,390 --> 00:44:33,100 So ek gaan om voort te gaan en sluit standaard I / O dot h en CS50 dot h. 972 00:44:33,100 --> 00:44:34,670 Ek gaan om te sê int main nietig. 973 00:44:34,670 --> 00:44:36,545 En weer in die toekoms ons sal terug te kom na dit 974 00:44:36,545 --> 00:44:38,560 in hierdie konteks en leeg beteken. 975 00:44:38,560 --> 00:44:43,340 >> En nou gaan ek iets te sê soos printf, gee my 'n heelgetal. 976 00:44:43,340 --> 00:44:47,610 En nou op my tweede lyn, hoe druk ek myself so 977 00:44:47,610 --> 00:44:50,980 dat ek wil 'n veranderlike te verklaar wat gaan 'n int te slaan? 978 00:44:50,980 --> 00:44:55,470 Letterlik doen wat ek tik as ek wil 'n veranderlike wat slaan 'n int 979 00:44:55,470 --> 00:44:58,270 sou jy sê? 980 00:44:58,270 --> 00:44:59,650 int n gelyk getint. 981 00:44:59,650 --> 00:45:00,485 Seker nie, so wat werk. 982 00:45:00,485 --> 00:45:02,360 En net vir konsekwentheid met die kode wat jy sal 983 00:45:02,360 --> 00:45:04,485 sien aanlyn is, laat my verandering dit x, net omdat x 984 00:45:04,485 --> 00:45:06,830 is 'n algemene veranderlike naam te gebruik, ten minste in algebra. 985 00:45:06,830 --> 00:45:08,720 Laat my gaan voort en doen printf nou weer. 986 00:45:08,720 --> 00:45:10,692 Gee my 'n ander heelgetal. 987 00:45:10,692 --> 00:45:12,900 En nou gaan ek soort van leer uit daardie patroon, 988 00:45:12,900 --> 00:45:14,490 Ek gaan om te sê int y kry om GetInt. 989 00:45:14,490 --> 00:45:16,340 >> En ons het nie gebruik GetInt voor, maar net 990 00:45:16,340 --> 00:45:19,860 soos GetString gaan en kry 'n string, soos Javier het uit die gehoor, 991 00:45:19,860 --> 00:45:22,780 Net so doen GetInt begin flikkerende die vinnige. 992 00:45:22,780 --> 00:45:26,750 En effektief wag vir die gebruiker dit gee 'n heelgetal is, deur dit in te tik 993 00:45:26,750 --> 00:45:27,900 en slaan Enter. 994 00:45:27,900 --> 00:45:30,850 Nou laastens ek gaan doen hierdie, printf die som of-- 995 00:45:30,850 --> 00:45:36,080 en laat my fancy now-- persent i en persent i teenwoordig 996 00:45:36,080 --> 00:45:39,270 i uitroepteken agteroorskuinsstreep n. 997 00:45:39,270 --> 00:45:42,750 En wat dink jy ek gaan sit nou as die addisionele insette 998 00:45:42,750 --> 00:45:44,620 te printf? 999 00:45:44,620 --> 00:45:47,380 >> Ek wil nie te sê letterlik aanhaal unquote x. 1000 00:45:47,380 --> 00:45:52,210 Ek wil na die klas in x en dan, en laat ons nou fancy 1001 00:45:52,210 --> 00:45:54,420 en laat ons net aanvaar ons kan doen wat ons wil hê. 1002 00:45:54,420 --> 00:45:56,330 Wat jy wil sê die volgende? 1003 00:45:56,330 --> 00:45:57,070 x plus y. 1004 00:45:57,070 --> 00:45:58,520 En inderdaad wat sal werk. 1005 00:45:58,520 --> 00:46:01,760 Dit is minimaal programmeringstale doen basiese rekenkundige verstaan, 1006 00:46:01,760 --> 00:46:03,500 En so gaan dit moet eintlik werk. 1007 00:46:03,500 --> 00:46:06,730 >> So laat my gaan voort en maak adder in my swart en wit venster 1008 00:46:06,730 --> 00:46:08,090 hier, Tik. 1009 00:46:08,090 --> 00:46:10,830 Kriptiese lyn, maar geen fout boodskap, so dit is goed. 1010 00:46:10,830 --> 00:46:14,410 Dot streep adder, gee my 'n heelgetal, 1. 1011 00:46:14,410 --> 00:46:16,230 Gee my 'n ander heelgetal, 2. 1012 00:46:16,230 --> 00:46:18,770 Die som van 1 en 2 is 3. 1013 00:46:18,770 --> 00:46:21,730 >> Alle reg, sodat 'n redelik triviaal program, maar wat dit gedoen het? 1014 00:46:21,730 --> 00:46:25,680 Dit het my toegelaat om 'n funksie te gebruik noem hier, bel 'n ander funksie hier, 1015 00:46:25,680 --> 00:46:29,260 twee oproepe na GetInt, 'n derde oproep te printf, 1016 00:46:29,260 --> 00:46:30,720 en dan die gebruik van hierdie plekhouers. 1017 00:46:30,720 --> 00:46:33,160 So dit is 'n bietjie meer gesofistikeerd as die vorige keer. 1018 00:46:33,160 --> 00:46:35,260 Maar wat as ek wil 'n bietjie liefhebber? 1019 00:46:35,260 --> 00:46:38,900 >> Laat my gaan voort en nou doen. 1020 00:46:38,900 --> 00:46:42,890 Laat my voort te gaan en die skep van 'n nuwe lêer genaamd voorwaardes nul. 1021 00:46:42,890 --> 00:46:44,890 En ek gaan om te spaar 'n tyd vir klasse wille 1022 00:46:44,890 --> 00:46:48,260 en net plak in daardie kode as 'n beginpunt. 1023 00:46:48,260 --> 00:46:51,510 En nou is ek net gaan sit iets nuuts hier in die middel. 1024 00:46:51,510 --> 00:46:55,889 So printf Ek wil graag 'n heelgetal asseblief. 1025 00:46:55,889 --> 00:46:58,180 En al hierdie kode is beskikbaar op die kursus se webblad, 1026 00:46:58,180 --> 00:47:00,556 jy hoef te tik nie dit alles in die klas as jy liewer nie. 1027 00:47:00,556 --> 00:47:02,638 int, en nou gaan ek gebruik, in plaas van x en y, 1028 00:47:02,638 --> 00:47:05,270 Ek gaan n te gebruik, wat waarskynlik die mees algemene naam 1029 00:47:05,270 --> 00:47:09,220 vir 'n heelgetal in 'n rekenaar program. 1030 00:47:09,220 --> 00:47:12,060 En nou, ek wil 'n om te doen bietjie oordeel hier. 1031 00:47:12,060 --> 00:47:15,460 Ek gaan om te sien of n is groter as 0, dan 1032 00:47:15,460 --> 00:47:23,670 Ek gaan printf-- Oeps om te sê, printf-- jy pluk 'n positiewe getal, 1033 00:47:23,670 --> 00:47:25,370 uitroepteken agteroorskuinsstreep n. 1034 00:47:25,370 --> 00:47:26,460 Maak dit. 1035 00:47:26,460 --> 00:47:33,150 Anders gaan ek druk printf jy pluk 'n negatiewe getal. 1036 00:47:33,150 --> 00:47:35,377 >> Nou voordat jy op my skreeu, laat ons hierdie program. 1037 00:47:35,377 --> 00:47:36,210 Laat my gaan hier. 1038 00:47:36,210 --> 00:47:40,730 En hoe stel ek 'n program genoem voorwaardes Dash 0? 1039 00:47:40,730 --> 00:47:42,300 Maak voorwaardes Dash 0. 1040 00:47:42,300 --> 00:47:45,560 Soort van 'n dom naam but-- dammit. 1041 00:47:45,560 --> 00:47:47,560 OK, goed onderrig oomblik. 1042 00:47:47,560 --> 00:47:48,410 Hoekom het wat breek? 1043 00:47:48,410 --> 00:47:51,360 1044 00:47:51,360 --> 00:47:54,710 >> Wat het ek per ongeluk noem hierdie lêer? 1045 00:47:54,710 --> 00:47:56,876 Jy kan soort aflei van die blad hier. 1046 00:47:56,876 --> 00:47:58,750 So dit is nie sleg dat ek het dit gedoen, want dit 1047 00:47:58,750 --> 00:48:00,208 sal dalk gebeur dat sommige van julle. 1048 00:48:00,208 --> 00:48:03,880 So ek per ongeluk die naam van my bron-kode toestand 0. 1049 00:48:03,880 --> 00:48:09,950 Maar my bron kode deur ooreenkoms moet wees in 'n lêer genaamd toestand 0 Dash c, 1050 00:48:09,950 --> 00:48:11,720 of wat ook al dot c. 1051 00:48:11,720 --> 00:48:12,610 >> So laat my regmaak. 1052 00:48:12,610 --> 00:48:16,880 Net soos Microsoft Word ek kan gaan As te red en doen toestand 0 dot c. 1053 00:48:16,880 --> 00:48:20,100 Nou net om netjies Ek is nie gaan om voort te gaan en te verwyder 1054 00:48:20,100 --> 00:48:23,020 toestand 0, wat was my ou weergawe. 1055 00:48:23,020 --> 00:48:26,550 En nou, laat ons maak toestand 0, Tik. 1056 00:48:26,550 --> 00:48:27,870 OK, lyk goed. 1057 00:48:27,870 --> 00:48:29,510 >> Toestand 0, Tik. 1058 00:48:29,510 --> 00:48:33,530 Ek wil graag 'n heelgetal asseblief, 50, jy pluk 'n positiewe getal. 1059 00:48:33,530 --> 00:48:35,390 Nou hoe negatief 50? 1060 00:48:35,390 --> 00:48:37,660 Jy pluk 'n negatiewe getal. 1061 00:48:37,660 --> 00:48:39,605 Hoe gaan nou, 0. 1062 00:48:39,605 --> 00:48:42,250 1063 00:48:42,250 --> 00:48:45,350 Redelik seker 0 is nie negatief. 1064 00:48:45,350 --> 00:48:47,780 >> So dit is 'n soort van 'n logiese fout. 1065 00:48:47,780 --> 00:48:50,680 Hoe kan ek dit regmaak? 1066 00:48:50,680 --> 00:48:57,260 Anders as n minder as 0, dit doen, anders Ons kan 'n drie manier tak hier het, 1067 00:48:57,260 --> 00:49:01,740 printf jy opgetel 0. 1068 00:49:01,740 --> 00:49:06,150 So nou as ek tik hierdie program, na die opstel van dit 1069 00:49:06,150 --> 00:49:10,790 weer met grimering, en nou tik toestand 0, wat ek hier sien 1070 00:49:10,790 --> 00:49:14,570 0 gee my dat uitset. 1071 00:49:14,570 --> 00:49:16,280 So waar gaan ons met hierdie? 1072 00:49:16,280 --> 00:49:18,930 >> Wel, dit is baie maklik uit die oog te verloor van die bos vir die bome. 1073 00:49:18,930 --> 00:49:23,590 En so laat ons tot die gevolgtrekking met hierdie 2 en 1/2 minute video 1074 00:49:23,590 --> 00:49:25,710 wat uiteindelik 'n bietjie van 'n advertensie van Google, 1075 00:49:25,710 --> 00:49:28,850 maar wat werklik getuig van wat selfs die gebruik van hierdie basiese gebou 1076 00:49:28,850 --> 00:49:33,020 blokke kan ons uiteindelik een keer te doen ons het 'n bietjie van die ontwikkeling 1077 00:49:33,020 --> 00:49:34,463 vaardig onder ons gordels. 1078 00:49:34,463 --> 00:49:35,150 >> [Speel van musiek] 1079 00:49:35,150 --> 00:49:38,370 1080 00:49:38,370 --> 00:49:40,540 >> SAROO Brierley (Voice Over): Dit was 26 jaar gelede, 1081 00:49:40,540 --> 00:49:42,470 en ek was net oor te draai 5. 1082 00:49:42,470 --> 00:49:45,465 Ons het na die stasie en het ons aan boord van ons trein saam. 1083 00:49:45,465 --> 00:49:48,010 My broer het net gesê ek sal bly hier en ek sal terug kom. 1084 00:49:48,010 --> 00:49:51,140 En ek het net gedink, goed jy weet, Ek kan net so goed gaan slaap 1085 00:49:51,140 --> 00:49:52,690 en hy sal net maak my wakker. 1086 00:49:52,690 --> 00:49:55,145 En toe ek wakker word die volgende dag, die hele vervoer 1087 00:49:55,145 --> 00:49:59,125 was leeg op 'n weghol trein, 'n spook trein neem my Ek weet nie waar. 1088 00:49:59,125 --> 00:50:01,980 1089 00:50:01,980 --> 00:50:06,280 >> Ek aanvaar uit na Australië, 'n Australiese familie. 1090 00:50:06,280 --> 00:50:09,710 En ma het versier my kamer met die kaart van Indië, 1091 00:50:09,710 --> 00:50:11,950 waarin sy sit langs my bed. 1092 00:50:11,950 --> 00:50:15,830 Ek het elke oggend sien die kaart, en dus 1093 00:50:15,830 --> 00:50:18,530 dit soort het die herinneringe lewendig. 1094 00:50:18,530 --> 00:50:20,530 Mense sou sê, is jy probeer om 'n naald te vind 1095 00:50:20,530 --> 00:50:23,560 in 'n hooimied, Saroo sal jy nooit vind nie. 1096 00:50:23,560 --> 00:50:28,540 >> Ek sal geflits het van die plekke wat ek gebruik om te gaan, die flitse van my familie 1097 00:50:28,540 --> 00:50:29,890 gesigte. 1098 00:50:29,890 --> 00:50:34,060 Daar was die beeld van my ma, sit met haar bene gekruis, 1099 00:50:34,060 --> 00:50:35,740 net kyk na haar geroep. 1100 00:50:35,740 --> 00:50:38,160 Die lewe is net so hard. 1101 00:50:38,160 --> 00:50:41,237 Dit was my skat. 1102 00:50:41,237 --> 00:50:44,320 En ek was op soek na Google Map en besef daar is Google Earth as well. 1103 00:50:44,320 --> 00:50:48,140 In 'n wêreld waar jy kan zoom in, Ek het begin om al hierdie gedagtes te hê 1104 00:50:48,140 --> 00:50:51,500 en watter moontlikhede dat dit kon doen vir my. 1105 00:50:51,500 --> 00:50:54,890 Ek het vir myself gesê, jy weet, jy het het al die fotografiese herinneringe 1106 00:50:54,890 --> 00:50:58,590 en landmerke waar jy vandaan, en jy weet wat die dorp lyk. 1107 00:50:58,590 --> 00:51:03,060 Dit kan 'n aansoek dat jy kan gebruik om jou pad terug te vind. 1108 00:51:03,060 --> 00:51:06,720 >> Ek het gedink, en ek sal sit 'n dot op Calcutta stasie, 1109 00:51:06,720 --> 00:51:10,890 en 'n radius lyn, jy weet, dat jy moet soek word om hierdie area. 1110 00:51:10,890 --> 00:51:13,750 Ek soort van afgekom hierdie treinspore. 1111 00:51:13,750 --> 00:51:18,160 En ek begin die volgende nie, en Ek het na 'n stasie wat 1112 00:51:18,160 --> 00:51:22,228 dieselfde beeld weerspieël dit was in my herinneringe. 1113 00:51:22,228 --> 00:51:23,707 Alles wat ooreenstem. 1114 00:51:23,707 --> 00:51:27,950 Ek het net gedink yep, ek weet waar ek gaan. 1115 00:51:27,950 --> 00:51:30,116 Ek gaan net die te laat kaart wat ek in my kop 1116 00:51:30,116 --> 00:51:33,080 lei my en neem my terug na my tuisdorp. 1117 00:51:33,080 --> 00:51:36,420 >> Ek het na die drumpel van die huis wat ek gebore is. 1118 00:51:36,420 --> 00:51:39,140 En rondgeloop ongeveer 15 meter om die draai, 1119 00:51:39,140 --> 00:51:42,980 daar was drie dames staan buite, aangrensend aan mekaar. 1120 00:51:42,980 --> 00:51:47,830 En die middelste een tree vorentoe en Ek het net gedink dit is jou moeder. 1121 00:51:47,830 --> 00:51:53,450 Sy het na vore gekom het, het sy my gedruk, en ons was daar vir sowat vyf minute. 1122 00:51:53,450 --> 00:51:56,530 1123 00:51:56,530 --> 00:51:59,000 >> Sy gryp my hand en Sy het my aan die huis 1124 00:51:59,000 --> 00:52:02,450 en het oor die telefoon, waar sy lui my suster en my broer 1125 00:52:02,450 --> 00:52:05,600 wat om te sê, jy weet, jou broer het net 1126 00:52:05,600 --> 00:52:09,340 al skielike verskyn soos 'n spook. 1127 00:52:09,340 --> 00:52:12,440 En dan is die familie is weer herenig. 1128 00:52:12,440 --> 00:52:15,110 Alles is alles goed, Ek het gehelp om my ma uit, 1129 00:52:15,110 --> 00:52:17,110 Sy hoef nie te word weg slaaf. 1130 00:52:17,110 --> 00:52:19,555 Sy kan die res lewe van haar lewe in vrede. 1131 00:52:19,555 --> 00:52:23,460 >> Dit was 'n naald in 'n hooimied, maar die naald was daar. 1132 00:52:23,460 --> 00:52:24,400 Alles is daar. 1133 00:52:24,400 --> 00:52:28,260 Alles wat ons het in die wêreld is by die kraan van 'n knoppie. 1134 00:52:28,260 --> 00:52:32,010 Maar jy het die wil te hê en die vasberadenheid om te wil om dit. 1135 00:52:32,010 --> 00:52:32,950 >> [Speel van musiek] 1136 00:52:32,950 --> 00:52:36,420 1137 00:52:36,420 --> 00:52:38,170 David Malan: Wonderlik soet getuigskrif 1138 00:52:38,170 --> 00:52:40,540 net wat jy kan nou doen met die tegnologie. 1139 00:52:40,540 --> 00:52:43,390 Ons sal u sien volgende week. 1140 00:52:43,390 --> 00:52:44,374