1 00:00:00,000 --> 00:00:11,952 2 00:00:11,952 --> 00:00:13,800 >> DAVID J. Malan: Do tiu estas CS50. 3 00:00:13,800 --> 00:00:18,970 Kaj tio estis por CS50 propra Colton Ogden, por pli de kiuj estas muziko povas 4 00:00:18,970 --> 00:00:22,820 elŝuti ĉe soundcloud.com/cs50. 5 00:00:22,820 --> 00:00:26,690 >> Do hodiaŭ ni enfokusigi ĉiujn pli sur la arto de programado. 6 00:00:26,690 --> 00:00:28,980 Kaj ni prenos, kie ni lasis ekstere pasintsemajne, enfokusigante 7 00:00:28,980 --> 00:00:31,660 en Scratch, kio estis tiu grafika programlingvo. 8 00:00:31,660 --> 00:00:35,490 Kaj prenu tion malsupren al pli malalta nivelo, uzante pli tradicia programado 9 00:00:35,490 --> 00:00:38,420 lingvo konata kiel C. Sed survoje, rimarkante 10 00:00:38,420 --> 00:00:40,730 ke la samajn ideojn ni parolis lastan vendredon 11 00:00:40,730 --> 00:00:44,390 Mi ripetas, ne nur en tiu lingvo C, sed en plej ĉiun alia 12 00:00:44,390 --> 00:00:46,350 ke ni rigardu ĉi semestro. 13 00:00:46,350 --> 00:00:50,247 >> Do ni nomas tion jen kion lasta tempo? 14 00:00:50,247 --> 00:00:51,830 Tiu estas reprezentanto de komunikaĵo. 15 00:00:51,830 --> 00:00:53,080 Do ni nomas tiun deklaron. 16 00:00:53,080 --> 00:00:54,100 Kaj ĝi faras ion. 17 00:00:54,100 --> 00:00:56,910 Estas instrukcion ke komputilo aŭ Scratch povus ekzekuti. 18 00:00:56,910 --> 00:00:59,910 Kaj nun, ni ankaŭ komencas nomante iun kiel tiu funkcio, 19 00:00:59,910 --> 00:01:02,070 pro kialoj ni baldaŭ vidos. 20 00:01:02,070 --> 00:01:03,681 >> Dume, ni vidis tion kiel tio. 21 00:01:03,681 --> 00:01:05,680 Kaj tiuj estas ĝenerale konata kiel kio konstrui? 22 00:01:05,680 --> 00:01:06,240 >> Publiko: Loop. 23 00:01:06,240 --> 00:01:06,860 >> DAVID J. Malan: Do banton. 24 00:01:06,860 --> 00:01:07,943 Tiel bela simpla. 25 00:01:07,943 --> 00:01:09,470 Ĝi laŭvorte faras kion ĝi diras. 26 00:01:09,470 --> 00:01:12,210 Kaj en Scratch, se vi volas Cram pli puzlo pecoj en tie, 27 00:01:12,210 --> 00:01:13,950 la peco kreskos por persvadi ŝin. 28 00:01:13,950 --> 00:01:16,790 Kaj ni vidos en C kiu Ni povas fari la samon. 29 00:01:16,790 --> 00:01:20,000 >> Alia tipo de buklo, kvankam, en Scratch eble por ĉiam, 30 00:01:20,000 --> 00:01:21,820 aŭ ekzistas iu nombro de aliaj aliroj. 31 00:01:21,820 --> 00:01:24,150 Sed ni prenu pli generalista rigardo, kun vizaĝo 32 00:01:24,150 --> 00:01:27,402 tio estas probable sufiĉe familiara, ĉe loops pli ĝenerale. 33 00:01:27,402 --> 00:01:29,110 Mark Zuckerberg: Unu afero ke komputiloj 34 00:01:29,110 --> 00:01:31,860 Estas vere bona estas ripetante komandoj. 35 00:01:31,860 --> 00:01:33,910 Kiel persono, oni kredus akiri vere enuiga, se vi 36 00:01:33,910 --> 00:01:36,730 devis fari la saman aferon multajn fojojn en vico. 37 00:01:36,730 --> 00:01:40,530 Sed komputilo povas fari la saman aferon milionoj aŭ eĉ milionoj da fojoj, 38 00:01:40,530 --> 00:01:43,290 kaj ne enuiĝos, povos porti tion diveni vere bone. 39 00:01:43,290 --> 00:01:45,650 >> Do ekzemple, se mi volis deziri ĉiuj 40 00:01:45,650 --> 00:01:48,840 en Facebook feliĉan naskiĝtagon sendante ilin email, 41 00:01:48,840 --> 00:01:51,550 ĝi povus preni min pli ol jarcento por fakte skribi ekstere 42 00:01:51,550 --> 00:01:53,000 ĉiuj tiuj retpoŝtoj al ĉiuj. 43 00:01:53,000 --> 00:01:57,780 Sed kun nur kelkaj linioj de kodo, mi povas havi sistemon sendu retmesaĝon al ĉiuj 44 00:01:57,780 --> 00:01:59,930 en Facebook volante ili feliĉan naskiĝtagon. 45 00:01:59,930 --> 00:02:02,730 Do jen kion maŝojn estas kaj kial ili estas valoraj kaj iu 46 00:02:02,730 --> 00:02:04,740 ke komputiloj povas fari tre bone. 47 00:02:04,740 --> 00:02:05,630 >> DAVID J. Malan: Do se vi estis la ricevanto 48 00:02:05,630 --> 00:02:07,820 de kelkaj el CS50 aj kaj Dropbox estas spaco de malfrua, 49 00:02:07,820 --> 00:02:10,590 tio estas vere ĝuste kion ni fari, uzante kodo tute tiel. 50 00:02:10,590 --> 00:02:12,600 Ni esence havas grandan kalkultabelo en kiun 51 00:02:12,600 --> 00:02:15,016 uloj estis inputting ilia nomoj kaj retadresoj. 52 00:02:15,016 --> 00:02:18,160 Kaj ni skribis ete de kodo kiu povas persisti super tiuj adresoj 53 00:02:18,160 --> 00:02:21,860 kaj kraĉis unika adresoj en se iu donita multnombraj fojoj. 54 00:02:21,860 --> 00:02:25,120 Kaj poste, ni sendas aŭtomata retpoŝton de CS50 la bot, 55 00:02:25,120 --> 00:02:27,190 inkludante la kuponon kodo. 56 00:02:27,190 --> 00:02:29,290 >> Nun ni ankaŭ rigardis ĉi konstrui lasta tempo. 57 00:02:29,290 --> 00:02:33,100 Kaj tio estas aparta ekzemplo de kio? 58 00:02:33,100 --> 00:02:35,050 Do, jes, Bulea esprimo. 59 00:02:35,050 --> 00:02:37,050 Kaj la formo estas intencita kapti kiu siavice. 60 00:02:37,050 --> 00:02:39,966 Ĉiuj tiaj demandoj de la formi vera aŭ malvera en Scratch 61 00:02:39,966 --> 00:02:41,590 aspektos iom io tiamaniere. 62 00:02:41,590 --> 00:02:43,200 Kaj ni nomas tiun Bulea esprimo. 63 00:02:43,200 --> 00:02:46,170 Tio estas ja vera aŭ falsa, jes aŭ ne. 64 00:02:46,170 --> 00:02:49,150 Estas maniero de respondi demandon. 65 00:02:49,150 --> 00:02:52,420 >> Kaj dume vi povas uzi tiujn Buleaj esprimojn ene de konstruoj 66 00:02:52,420 --> 00:02:54,720 kiel tiuj, kiuj el Certe estas kondiĉoj 67 00:02:54,720 --> 00:02:57,259 aŭ branĉoj, proverba forkoj en la vojo. 68 00:02:57,259 --> 00:02:59,550 Ili povas rigardi ne nur kiel tiu, sed ili povas ankaŭ 69 00:02:59,550 --> 00:03:02,080 esti elses asociita kun ili. 70 00:03:02,080 --> 00:03:05,820 Kaj vi povas fakte havi tri vojon forko en la vojo aŭ kvar vojo forko 71 00:03:05,820 --> 00:03:08,340 en la vojo, simple nesti tion, 72 00:03:08,340 --> 00:03:10,510 kiel vi vidos en Scratch Se vi ne jam havas. 73 00:03:10,510 --> 00:03:13,550 Kaj kiel vi povas fari en C tiel. 74 00:03:13,550 --> 00:03:16,810 >> Ni prenu alian generalista rigardi kiel alumnist, tiel, kiu 75 00:03:16,810 --> 00:03:21,490 prezentu malsaman alproksimiĝon tion nomis kondiĉoj. 76 00:03:21,490 --> 00:03:24,060 >> Bill Gates: Popola fari decidoj ĉiutage. 77 00:03:24,060 --> 00:03:27,530 Ekzemple, antaŭ vi iru eksteren vin speco de havi se aserto kiu diras, 78 00:03:27,530 --> 00:03:31,480 se ĝi pluvas tiam mi bezonos akiri mian jakon. 79 00:03:31,480 --> 00:03:36,820 Kaj komputiloj estas mirinda iam vi decidi tiuj specoj de deklaroj, 80 00:03:36,820 --> 00:03:42,280 ke ili povas fidinde ekzekuti tiujn aferojn je nekredebla rapido. 81 00:03:42,280 --> 00:03:48,240 Kaj tiel komputila programo vere Estas iom da matematiko kaj kelkaj 82 00:03:48,240 --> 00:03:53,050 se deklaroj kie la decido prenas faris. 83 00:03:53,050 --> 00:03:55,020 >> DAVID J. Malan: Do kiel Vi sciu, tio estis 84 00:03:55,020 --> 00:03:57,880 ulojn kiel Bill Gates, Paul Allen, kaj aliaj 85 00:03:57,880 --> 00:04:00,240 ke vere piedbatis for la tiel nomata persona komputilo 86 00:04:00,240 --> 00:04:01,990 revolucio kelkaj jaroj. 87 00:04:01,990 --> 00:04:04,140 Mi pensis, antaŭ ni plonĝi en kelkaj administrivia, 88 00:04:04,140 --> 00:04:09,920 Ni volas raporti rakonton de la Albuquerque, Nova Meksiko muzeo de Natura Historio 89 00:04:09,920 --> 00:04:13,650 kaj scienco, kie iuj de Bill Gates kaj Paul Allen fruaj historioj 90 00:04:13,650 --> 00:04:17,470 ili rakontis, kiel ni havas nun hodiaŭa PC kaj Mac kaj pli. 91 00:04:17,470 --> 00:04:22,390 Por tio, kvankam, ni bezonas du volontuloj kiu havas tre bona rakonto voĉoj 92 00:04:22,390 --> 00:04:23,735 legi skripton laŭte. 93 00:04:23,735 --> 00:04:25,530 >> Bone, kiom pri en reen tie. 94 00:04:25,530 --> 00:04:26,120 Venu supren. 95 00:04:26,120 --> 00:04:27,770 Kaj kio pri antaux tie. 96 00:04:27,770 --> 00:04:28,340 Venu malsupren. 97 00:04:28,340 --> 00:04:29,600 Prenu vian lokojn tie. 98 00:04:29,600 --> 00:04:32,444 Kiel vi uloj supreniru, paro de administra anoncoj. 99 00:04:32,444 --> 00:04:34,360 sekci, la procezo elekti sekcion, 100 00:04:34,360 --> 00:04:36,068 komencos ĉi Merkredo tra vendredo. 101 00:04:36,068 --> 00:04:38,400 Pli sur tiu ĉi venanta Merkredo en prelego. 102 00:04:38,400 --> 00:04:41,770 >> Super sekcioj, dume, estas iu kiun ni proponos venontan semajnon 103 00:04:41,770 --> 00:04:45,310 per la tuta klaso estas invitita partopreni en sufiĉe granda skalo 104 00:04:45,310 --> 00:04:47,690 sekcioj, oni pli comfy, unu malpli komforta. 105 00:04:47,690 --> 00:04:51,340 Kaj ni anoncos la detaloj de kiu, siavice, poste tiun semajnon. 106 00:04:51,340 --> 00:04:53,310 >> Dume sekciojn, si, komencos 107 00:04:53,310 --> 00:04:57,241 en semajno tri de la kurso, nula indekson, kion signifas tiuj estas paro de semajnoj 108 00:04:57,241 --> 00:04:57,740 eksteren. 109 00:04:57,740 --> 00:04:58,450 Do ne zorgu. 110 00:04:58,450 --> 00:05:01,014 Vi ankoraŭ ne maltrafis ion kune tiujn liniojn. 111 00:05:01,014 --> 00:05:03,930 Dume dume, se vi havas demandojn administrativamente, 112 00:05:03,930 --> 00:05:08,120 retpoŝti min kaj Devon kaj Gabe kaj Rob ĉe tiu adreso tie. 113 00:05:08,120 --> 00:05:10,320 >> Laste problemo starigis 0 estas, kompreneble, el. 114 00:05:10,320 --> 00:05:12,320 Vi eble rimarkis ke en la kurso de afiŝinto. 115 00:05:12,320 --> 00:05:14,840 Ĝi devus provizi vin kun ĉiuj respondoj al demandoj 116 00:05:14,840 --> 00:05:18,250 vi eble havas kune la vojon akiranta komencita kun la problemo aro. 117 00:05:18,250 --> 00:05:21,430 Sed se vi trovas vin mem en bezono de si reciproke la manojn, 118 00:05:21,430 --> 00:05:25,020 per ĉiuj rimedoj ĉeesti oficejo horoj, Lundo, mardo, merkredo, ĵaŭdo 119 00:05:25,020 --> 00:05:27,290 de tiu semajno en la vespero en kvar manĝejojn. 120 00:05:27,290 --> 00:05:31,650 Vidu ke URL tie por la detaloj de kie oficejo horoj estos. 121 00:05:31,650 --> 00:05:34,000 >> Nun Ni renkontiĝu nian du gastoj ĉi tie hodiaŭ. 122 00:05:34,000 --> 00:05:34,740 Kio estas via nomo? 123 00:05:34,740 --> 00:05:35,290 >> JAY PAUL: Jay Paul. 124 00:05:35,290 --> 00:05:36,880 >> DAVID J. Malan: Jay Paul, agrable renkonti vin. 125 00:05:36,880 --> 00:05:37,330 >> Hikari: Hikari. 126 00:05:37,330 --> 00:05:37,975 >> DAVID J. Malan: Hikari? 127 00:05:37,975 --> 00:05:38,250 >> Hikari: Hikari. 128 00:05:38,250 --> 00:05:38,810 >> DAVID J. Malan: Hikari. 129 00:05:38,810 --> 00:05:39,790 Agrable renkonti vin ankaŭ. 130 00:05:39,790 --> 00:05:42,123 Jay Paul kaj Hikari havas en antaŭ ili sur tiuj muziko 131 00:05:42,123 --> 00:05:45,100 staras du skriptoj kiujn mi presita tiun matenon de la Nov-Meksiko 132 00:05:45,100 --> 00:05:46,692 muzeo de Natura Historio kaj Scienco. 133 00:05:46,692 --> 00:05:48,400 Kaj kion mi pensis Mi ŝatus fari en superkape 134 00:05:48,400 --> 00:05:52,830 estas akompani vian recitado de la skripto kaj tiu historio 135 00:05:52,830 --> 00:05:54,700 kun kelkaj vidaj bildoj, sen surprizoj. 136 00:05:54,700 --> 00:05:57,512 >> Kaj kion mi faris anticipe Estas prehighlight sur via skribo 137 00:05:57,512 --> 00:05:59,470 kion vi legas, kaj kion vi devas legi. 138 00:05:59,470 --> 00:06:00,920 Kaj ni esence nur alternaj alineoj. 139 00:06:00,920 --> 00:06:03,211 Do estas multe kiel vi povus faris en angla klaso. 140 00:06:03,211 --> 00:06:06,875 Tio vere devigas la aŭdienco kredi vian rakonton tie. 141 00:06:06,875 --> 00:06:07,600 CXu ni? 142 00:06:07,600 --> 00:06:13,272 Do la rakonto jen, ni havas BASIC, kaj ĝi komencas en Kembriĝo. 143 00:06:13,272 --> 00:06:18,750 >> JAY PAUL: Estis vintro, 1974, en Kembriĝo, Masaĉuseco 144 00:06:18,750 --> 00:06:20,240 kie vintroj povas esti malvarmaj. 145 00:06:20,240 --> 00:06:22,800 Barba, longaj haroj kolegio Dropout nomon 146 00:06:22,800 --> 00:06:27,280 Paul Allen drudging trans Harvard Kvadrata, sorbita en liaj pensoj. 147 00:06:27,280 --> 00:06:31,050 Lia ĉefa maltrankvilo en tiuj tagoj Estis kiel iri sian amikon, Bill Gates, 148 00:06:31,050 --> 00:06:34,974 forlasi lernejon kaj iru en negoco kun li. 149 00:06:34,974 --> 00:06:37,890 Hikari: La du estis jam irinta tra nombro de negocoj 150 00:06:37,890 --> 00:06:40,850 kune, komencante ĉe Lakeside lernejo en Seatlo kie 151 00:06:40,850 --> 00:06:45,220 ili pagis en libera komputila tempon testi PDP-10 komputiloj en loka tempo 152 00:06:45,220 --> 00:06:46,580 dividante kompanio. 153 00:06:46,580 --> 00:06:50,930 La plej freŝaj plano estis forlasi lernejo kaj formi programaro kompanio. 154 00:06:50,930 --> 00:06:53,440 Allen lasis Vaŝingtono Ŝtata Universitato. 155 00:06:53,440 --> 00:06:58,380 Sed en la lasta minuto, Gates decidis resti kun Harvard. 156 00:06:58,380 --> 00:07:02,080 >> JAY PAUL: Tiu tago, transirante Harvard Kvadrata, Allen ekvidita januaro, 157 00:07:02,080 --> 00:07:07,530 1975 temo de Populara Elektroniko kun la tero halto subtitolo, 158 00:07:07,530 --> 00:07:11,900 Mondo Unua minicomputadora Kit rivali Komerca Models. 159 00:07:11,900 --> 00:07:14,430 Sub la subtitolo estis bildo de malgranda skatolo 160 00:07:14,430 --> 00:07:16,160 ornamita kun lumoj kaj ŝaltiloj. 161 00:07:16,160 --> 00:07:19,770 Ĝi estis nomita la MITS Altair 8800. 162 00:07:19,770 --> 00:07:24,100 Kaj Allen sciis tio kion li estis serĉanta. 163 00:07:24,100 --> 00:07:26,350 >> Hikari: Tagoj de diskuto sekvis. 164 00:07:26,350 --> 00:07:30,170 Allen kaj Gates komprenis la signifon de la Altair. 165 00:07:30,170 --> 00:07:32,480 Ili parolis ofte pri mikroprocesoroj 166 00:07:32,480 --> 00:07:35,250 kaj atendis por vidi kion estus farita kun ili. 167 00:07:35,250 --> 00:07:39,770 Kaj estis minicomputadora kit sur la portita de Populara Electronics. 168 00:07:39,770 --> 00:07:42,830 Ĝi ŝajne havis neniun programaro tamen. 169 00:07:42,830 --> 00:07:46,830 Ili imagis nacio programistoj malsuprenirantaj sur MITS. 170 00:07:46,830 --> 00:07:49,590 Kaj tiel ili nomis Ed Roberts, la estro de la kompanio, 171 00:07:49,590 --> 00:07:53,330 asertante havi version de la BASIC programlingvo preskaŭ preta 172 00:07:53,330 --> 00:07:54,710 por Altair. 173 00:07:54,710 --> 00:07:55,570 Ili ne. 174 00:07:55,570 --> 00:07:58,910 Kaj Roberts devas ekkoni ili ne plenumis. 175 00:07:58,910 --> 00:08:03,170 Li eniris la 10 alvokoj tago de homoj kiuj havis BASIC preskaŭ preta. 176 00:08:03,170 --> 00:08:05,570 Kaj lia stock respondo estis, "La unua persono 177 00:08:05,570 --> 00:08:11,090 kiu montras supren kun laboristino Basic akiras la kontrakton. " 178 00:08:11,090 --> 00:08:13,910 >> JAY PAUL: Gates kaj Allen neniam vidis Altair. 179 00:08:13,910 --> 00:08:17,600 Ili neniam eĉ vidis la Intel 8080 mikroprocesoro 180 00:08:17,600 --> 00:08:19,060 ĉe la koro de la Altair. 181 00:08:19,060 --> 00:08:21,470 Sed paro de jaroj antaŭe Allen estis skribinta programon 182 00:08:21,470 --> 00:08:25,220 sur komputilego komputilo kiu emulada la funkciadon de antaŭa Intel 183 00:08:25,220 --> 00:08:26,217 mikroprocesoro. 184 00:08:26,217 --> 00:08:28,300 Kaj ĉifoje ili farus la samon. 185 00:08:28,300 --> 00:08:31,530 186 00:08:31,530 --> 00:08:34,380 >> Hikari: Kun Intel 8080 manlibro ĉe lia flanko, 187 00:08:34,380 --> 00:08:37,770 Allen sidiĝis ĉe Harvard PDP-10 komputiloj 188 00:08:37,770 --> 00:08:42,010 kaj skribis la emulador kaj programaro ilojn necesajn por fari la programadon. 189 00:08:42,010 --> 00:08:45,820 Dume Gates ĉesis iri por klasoj kaj sin dediĉis 190 00:08:45,820 --> 00:08:48,120 por desegni la BASIC, uzante ĉiun lertaĵo 191 00:08:48,120 --> 00:08:53,130 Li sciis akiri la grandecon malsupre 4 kilobajtoj. 192 00:08:53,130 --> 00:08:55,870 >> JAY PAUL: Out en Albuquerque, Ed Roberts ricevis alvokon de Gates 193 00:08:55,870 --> 00:08:59,754 petante detalojn pri kiel la Altair manipulis specifa rutinoj. 194 00:08:59,754 --> 00:09:01,170 Neniu iam petis ke antaŭe. 195 00:09:01,170 --> 00:09:02,670 Kaj Roberts komencis interesigxi. 196 00:09:02,670 --> 00:09:05,240 197 00:09:05,240 --> 00:09:07,970 >> Hikari: Kun la disvolviĝo iloj kaj la dezajno preta, 198 00:09:07,970 --> 00:09:10,780 Gates kaj Allen skribis La kodo de la PDP-10, 199 00:09:10,780 --> 00:09:16,060 varbante alia Harvard studento, Monto Davidoff, skribi math rutinoj. 200 00:09:16,060 --> 00:09:19,450 Post fina nokto de programado, Allen ricevis sur ebeno 201 00:09:19,450 --> 00:09:22,970 transdoni iliajn BASIC al MITS. 202 00:09:22,970 --> 00:09:25,800 Li pasigis la ebeno rajdis maltrankviligante. 203 00:09:25,800 --> 00:09:28,490 Kaj reen en Kembriĝo Gates maltrankviligante. 204 00:09:28,490 --> 00:09:32,100 Ili estis provitaj ilia BASIC kaj ĝi estis laborinta en la emulador. 205 00:09:32,100 --> 00:09:35,444 Sed kion se la emulador eraris? 206 00:09:35,444 --> 00:09:37,360 JAY PAUL: Kiel la ebeno proksimiĝis Albuquerque, 207 00:09:37,360 --> 00:09:40,070 Allen rimarkis, ke iliaj BASIC, nun nete enhavis 208 00:09:40,070 --> 00:09:42,460 sur malgranda rulo de boris papero bendo, estus 209 00:09:42,460 --> 00:09:44,970 senutila sen separata programo, nomata loader, ke 210 00:09:44,970 --> 00:09:47,550 rakontus la Altair kiom legi la bendo de papero estaĵo 211 00:09:47,550 --> 00:09:49,620 nutrita en la teletipo maŝino. 212 00:09:49,620 --> 00:09:52,970 Li elprenis sian notlibron kaj rapide haste malsupren loader programo 213 00:09:52,970 --> 00:09:56,819 en Asembleo lingvo, tiam permane transportita en la 1s kaj _0s_ 214 00:09:56,819 --> 00:09:57,985 la Altair komprenus. 215 00:09:57,985 --> 00:10:00,530 216 00:10:00,530 --> 00:10:03,830 >> Hikari: Allen atendis pura, iom, alta teknologio kompanio 217 00:10:03,830 --> 00:10:05,470 gvidata de viroj en negoco kostumoj. 218 00:10:05,470 --> 00:10:09,210 Do li estis surprizita kiam Roberts renkontis lin ĉe la flughaveno rigardante kiel rancho 219 00:10:09,210 --> 00:10:10,270 mano. 220 00:10:10,270 --> 00:10:12,070 Roberts estis same surprizita. 221 00:10:12,070 --> 00:10:16,340 Kiam li forlasis la Harvard programisto ĉe multekostan hotelon, 222 00:10:16,340 --> 00:10:20,790 Allen devis konfesi ke li ne povis permesi la ĉambron. 223 00:10:20,790 --> 00:10:24,510 >> JAY PAUL: MITS, sin, estis lokita en polva strio centro. 224 00:10:24,510 --> 00:10:27,040 Interne sur cluttered workbench estis Altair 225 00:10:27,040 --> 00:10:30,390 ŝarĝita kun 5 kilobajtoj de memoro kaj konektitaj per kablo 226 00:10:30,390 --> 00:10:32,030 al teletipo maŝino. 227 00:10:32,030 --> 00:10:37,200 Roberts kaj Chief Engineer, Bill Yates, atendis anticipante 228 00:10:37,200 --> 00:10:40,660 kiel Allen toggled sia loader programo en la Altair. 229 00:10:40,660 --> 00:10:44,980 La teletipo komencis chugging kiel tiris la papero bendo tra la bendo leganto. 230 00:10:44,980 --> 00:10:47,215 Ĝi prenis eble 15 minutoj ŝargi la programon. 231 00:10:47,215 --> 00:10:52,110 Tiam la teletipo abrupte presigis memoro prompto, do pretan prompto, 232 00:10:52,110 --> 00:10:55,340 kaj Allen komencis tajpi kelkaj testo ordonas. 233 00:10:55,340 --> 00:10:57,400 Por ĉies miro, La programaro funkcias. 234 00:10:57,400 --> 00:10:58,525 Esas cimoj, kompreneble. 235 00:10:58,525 --> 00:11:02,070 Sed la ĉefa afero funkciis. 236 00:11:02,070 --> 00:11:06,570 >> Hikari: Poste, sur la vojo al $ 3.00 tagmanĝo ĉe Pancho'S vespo flugis 237 00:11:06,570 --> 00:11:10,470 en la fenestro de la pickup kamiono kaj pikis Allen sur la brako. 238 00:11:10,470 --> 00:11:13,070 Sed ĉe tiu punkto nenio povus difekti la humoro. 239 00:11:13,070 --> 00:11:17,210 La Altair nun havis lian BASIC, La unua komerca programaro por hejmon 240 00:11:17,210 --> 00:11:23,260 komputilo, farita de Paul Allen kaj Bill Gates, fari negocon kiel Microsoft. 241 00:11:23,260 --> 00:11:25,336 >> DAVID J. Malan: Multaj danke al niaj du legantoj. 242 00:11:25,336 --> 00:11:30,690 >> [Aplaŭdo] 243 00:11:30,690 --> 00:11:32,520 >> DAVID J. Malan: Nun vi havas vian elekton, 244 00:11:32,520 --> 00:11:35,880 antaŭ ol forlasi, de sparkly aŭ glow en dark-- ho, 245 00:11:35,880 --> 00:11:40,810 atendi unu sek, wait-- sparkly kaj brilon en la mallumo elefanto 246 00:11:40,810 --> 00:11:42,534 el CS50 propra Cheng Gong. 247 00:11:42,534 --> 00:11:43,450 Hikari: Aw, dankon. 248 00:11:43,450 --> 00:11:45,324 DAVID J. Malan: Ĉiuj Bone, dankon tiom. 249 00:11:45,324 --> 00:11:49,855 [Aplaŭdo] 250 00:11:49,855 --> 00:11:51,105 DAVID J. Malan: Do veran historion. 251 00:11:51,105 --> 00:11:54,380 Ĉi tio estas kiu ĉiuj tiuj maŝinojn kaj la facileco kun kiu ni 252 00:11:54,380 --> 00:11:56,270 uzas gxin nun prenu por sidiĝita, vere 253 00:11:56,270 --> 00:12:00,070 komenciĝis ĉi tie, nur kelkajn paŝojn de tiu reala teatro. 254 00:12:00,070 --> 00:12:03,930 Kaj nun hodiaŭ, se vi ne estis, tio estas Maxwell Dworkin, la komputilo 255 00:12:03,930 --> 00:12:05,810 sciencoj konstruaĵo, ankaŭ ĉirkaŭ la angulo. 256 00:12:05,810 --> 00:12:09,760 Kaj sur la dua etaĝo de tiu konstruaĵo faras pendi tri paĝoj 257 00:12:09,760 --> 00:12:12,740 el la originala fontkodo ke Bill Gates kaj Paul Allen skribis. 258 00:12:12,740 --> 00:12:14,770 Fakte, se vi uzas zomi en vi povas vidi ne nur 259 00:12:14,770 --> 00:12:17,350 iliajn nomojn en la originalaj tipo, sed ankaŭ 260 00:12:17,350 --> 00:12:22,100 subskriboj kiuj garnis a malmultaj jaroj malantaŭen, kiam ili laste vizitis. 261 00:12:22,100 --> 00:12:25,800 >> Sed kio estis aparte konvinka pri tio, kion ili ekiris por fari 262 00:12:25,800 --> 00:12:29,760 estis skribi programon kiu farus ebligi aliaj homoj por skribi 263 00:12:29,760 --> 00:12:30,950 siajn proprajn programojn. 264 00:12:30,950 --> 00:12:34,280 Tiutempe ĉiuj tie estis kun ĉi Altair maŝino farita per MITS. 265 00:12:34,280 --> 00:12:40,020 Kaj cxiuj ili bezonis estis iu vojo de faciligi al ŝatantoj kaj popolo 266 00:12:40,020 --> 00:12:45,300 amas nin en tiun ĉambron por fakte programo ke sen nepre kompreni 267 00:12:45,300 --> 00:12:49,060 Asembleo kodo aux masxino kodo, aŭ Dio malpermesu, _0s_ kaj _1s_. 268 00:12:49,060 --> 00:12:51,190 Ni programistoj, kiel tiuj en tiun ĉambron, ni 269 00:12:51,190 --> 00:12:54,070 deziras povi esprimi nin multe pli kiel pseŭdo kodo 270 00:12:54,070 --> 00:12:57,330 eĉ se ĝi estas iomete pli nit postulema ol ni parolis lastan semajnon. 271 00:12:57,330 --> 00:13:00,970 Ni ne volas skribi kodon tiel, Paul Allen kaj Bill Gates faris. 272 00:13:00,970 --> 00:13:04,850 Ni, male, volas verki kodon kiu aspektas iom pli uzanto amika. 273 00:13:04,850 --> 00:13:07,150 >> Nun tiu estas lingvo konata kiel Basic. 274 00:13:07,150 --> 00:13:11,497 Kaj la linio nombroj estas kion vi uzi por simple kalkuli la linioj de kodo 275 00:13:11,497 --> 00:13:12,330 ke vi skribas. 276 00:13:12,330 --> 00:13:14,038 Ni eĉ ne devas faru, ke tiuj tagoj. 277 00:13:14,038 --> 00:13:16,060 Sed vi povas vidi ĉi tie kiom PRINT "saluton, mondo" 278 00:13:16,060 --> 00:13:18,660 estus ja supozeble presi nur tio. 279 00:13:18,660 --> 00:13:22,710 Kaj kio Bill kaj Paul faris estis povigi homojn skribi kodo kiel ĉi 280 00:13:22,710 --> 00:13:27,240 anstataŭ of-- se vi rigardu la komputiko wall-- kodo kiel ĉi. 281 00:13:27,240 --> 00:13:29,290 >> Fakte, CS50 lastatempe havis okazon 282 00:13:29,290 --> 00:13:32,540 sidigxi kun profesoro Harry Lewis en la Komputika fako, kiu 283 00:13:32,540 --> 00:13:34,640 efektive instruis Bill Gates kelkaj jaroj, 284 00:13:34,640 --> 00:13:38,460 kaj staras tie antaux tiuj tri paĝoj de ekstraktojn. 285 00:13:38,460 --> 00:13:39,560 Ni rigardu. 286 00:13:39,560 --> 00:13:45,520 >> Harry Lewis: Kion vi havas tie estas Printita de frua peco de programaro 287 00:13:45,520 --> 00:13:50,240 skribita de Bill Gates kaj Paul Allen, la fondintoj de Microsoft. 288 00:13:50,240 --> 00:13:52,570 Do la kodo estas interesa pro du kialoj. 289 00:13:52,570 --> 00:13:55,480 Unue, ĝi fariĝis Microsoft unuan produkton, 290 00:13:55,480 --> 00:14:01,810 kiu estis interpretisto la BASIC programlingvo. 291 00:14:01,810 --> 00:14:04,940 Kaj due, tio estis unu el la unuaj provoj 292 00:14:04,940 --> 00:14:10,580 krei interpretisto tiel ordinara homoj povus uzi personajn komputilojn. 293 00:14:10,580 --> 00:14:12,670 >> Do Bill Gates estis studento en Harvard. 294 00:14:12,670 --> 00:14:14,820 Mi komencis instrui ĉe Harvard en 1974. 295 00:14:14,820 --> 00:14:16,560 Ĉi tio estis farita en 1975. 296 00:14:16,560 --> 00:14:20,180 Tiel estis frue en lia kariero kaj frue en mia kariero. 297 00:14:20,180 --> 00:14:23,790 Mi vere instruis Bill en kurson ĉirkaŭ tiu tempo. 298 00:14:23,790 --> 00:14:27,130 Paul Allen ne estis Harvard studento, sed li 299 00:14:27,130 --> 00:14:31,020 estis alta lernejo samklasano de Bill Gates. 300 00:14:31,020 --> 00:14:33,740 Se vi venu kaj vidu ĉe la printita, vi 301 00:14:33,740 --> 00:14:36,230 efektive trovi trian nomo, Monto Davidoff, 302 00:14:36,230 --> 00:14:39,260 kiu estis Gates La samklasano tie en Harvard. 303 00:14:39,260 --> 00:14:41,340 >> OK, do jen oni Interesa komento ĝis tie. 304 00:14:41,340 --> 00:14:47,150 Ĝi diras "En 4K povas forviŝi kvadrata radiko sed por maŝojn devas ankoraŭ labori. " 305 00:14:47,150 --> 00:14:53,080 OK, do kion tio signifas estas ke estis du manieroj kompili tiun programon. 306 00:14:53,080 --> 00:14:57,860 Unu estis kuri en versio de tiu Altair komputilo 307 00:14:57,860 --> 00:15:04,310 ke nur havis 4K vortoj de memoro, 4.096 vortoj el memoro. 308 00:15:04,310 --> 00:15:07,050 Sed la granda versio havis 8K. 309 00:15:07,050 --> 00:15:09,770 Kaj kion tio diras estas ke en la 4K versio 310 00:15:09,770 --> 00:15:12,770 vi devis forigi kelkajn kodo por fari ĝin taŭga. 311 00:15:12,770 --> 00:15:14,790 Sed unu el la aĵoj kiu estus forigita 312 00:15:14,790 --> 00:15:16,290 estus la kvadrata radiko rutino. 313 00:15:16,290 --> 00:15:20,360 Sed ŝajne la por maŝojn devus ankoraŭ 314 00:15:20,360 --> 00:15:26,392 funkcios eĉ kiam vi kompili malsupren por nur la 4K versio de la komputilo. 315 00:15:26,392 --> 00:15:29,350 DAVID J. Malan: Do unu el la temoj, kiel ni vidos en komputiko, 316 00:15:29,350 --> 00:15:31,430 Estas ĉi nocio layering kaj abstraktaĵo 317 00:15:31,430 --> 00:15:34,670 kaj vere staras sur la ŝultroj el uloj, kiuj venis antaŭ ni, ne 318 00:15:34,670 --> 00:15:37,890 kontraste iuj de la Bill Gates kaj Paul Allen rakontaj tie. 319 00:15:37,890 --> 00:15:40,080 Kaj kion tio signifas estas ke hodiaŭ oni povas preni por 320 00:15:40,080 --> 00:15:43,490 koncedas ke tio estas vere facile por ni skribi kodon. 321 00:15:43,490 --> 00:15:47,170 Ja kodo, kiel ni diris vendredon, estas pli teknike konata kiel fontkodon. 322 00:15:47,170 --> 00:15:52,210 Kaj ĝi estas ĉi angla kiel sintakso tio estas pli taŭga kaj pli bone difinita 323 00:15:52,210 --> 00:15:55,480 ol iu kiel pseŭdo kodo, por kiu ne estas formala difino. 324 00:15:55,480 --> 00:15:58,320 >> Kaj hodiaŭ, kion ni iras enfokusigi estas fontkodo 325 00:15:58,320 --> 00:16:01,010 kiuj aspektas kiel tiu, kiu rekoni unuavide 326 00:16:01,010 --> 00:16:02,690 aspektas tute kamufla. 327 00:16:02,690 --> 00:16:08,540 Kaj sincere, estas vojo pli estetike kompleksa ol la suba programo. 328 00:16:08,540 --> 00:16:13,300 Ĉio ĉi programo faras, recall, estas kion ni diros? 329 00:16:13,300 --> 00:16:14,990 Ĝi simple presas "saluton mondo". 330 00:16:14,990 --> 00:16:19,600 Kaj tamen rigardu ĉiuj aĵoj ni bezonas envolver ĉirkaŭ tiu tre simplan frazon. 331 00:16:19,600 --> 00:16:21,750 Sed antaŭ longa ĉiuj tiujn liniojn kaj pli 332 00:16:21,750 --> 00:16:24,800 faros multe pli sentita vi. 333 00:16:24,800 --> 00:16:26,940 >> Kaj la fluo estas kiel sekvas. 334 00:16:26,940 --> 00:16:31,220 Kion ni bezonas por nia dispono estas preni kodon, kiel fonto 335 00:16:31,220 --> 00:16:32,340 kodo kiun ni ĵus vidis. 336 00:16:32,340 --> 00:16:35,060 Kaj ni bezonas novan programon kuri ĝin tra. 337 00:16:35,060 --> 00:16:39,130 Ni bezonas algoritmoj kiuj povas konverti fontkodon, kiel tiu, 338 00:16:39,130 --> 00:16:41,932 en celkodo, _0s_ kaj _1s_. 339 00:16:41,932 --> 00:16:43,890 Alivorte, kio ni lernos hodiaŭ 340 00:16:43,890 --> 00:16:46,620 Estas kiel fari tion, skribi fontkodon supren supro, 341 00:16:46,620 --> 00:16:49,930 fordoni kiel enigo al specialaj programo konata kiel kompililo, 342 00:16:49,930 --> 00:16:52,140 kaj ni tuj produkti objekton kodon. 343 00:16:52,140 --> 00:16:54,600 Kio estas nur ornama metodo dirante ni prenos ion 344 00:16:54,600 --> 00:16:58,350 kiuj aspektas kiel tiu, fordoni en programo nomita kompililon, 345 00:16:58,350 --> 00:17:01,210 produkti objekton kodo kiuj aspektas kiel tiu. 346 00:17:01,210 --> 00:17:04,720 >> Do tiuj estas laŭvorte la mastroj de _0s_ kaj _1s_ 347 00:17:04,720 --> 00:17:08,550 kiuj komprenis per Intel komputilo tiuj tagoj, 348 00:17:08,550 --> 00:17:12,480 ke se interpretitaj de la CPU, la cerbon ene de komputilo, 349 00:17:12,480 --> 00:17:16,130 estos laŭvorte presi, tute simple, "saluton mondo". 350 00:17:16,130 --> 00:17:19,670 Nun tie estas vojo pli _0s_ kaj _1s_ ol vi atendus eble necesa por tio. 351 00:17:19,670 --> 00:17:22,520 Sed tio estas ĉar ni konstruado sur bona interkonsento de komplekseco 352 00:17:22,520 --> 00:17:24,270 ke ni povas plu akceptas. 353 00:17:24,270 --> 00:17:27,869 En aliaj vortoj, multaj inteligentaj homoj donis al ni multajn malvarmeta iloj 354 00:17:27,869 --> 00:17:32,480 kaj potenca programaro, per kiu ni povas nun fari projektojn de nia propra. 355 00:17:32,480 --> 00:17:33,400 >> Do ni komencu. 356 00:17:33,400 --> 00:17:36,640 Dum lasta vendredo, kaj por Problemo Ara 0 tiun semajnon, 357 00:17:36,640 --> 00:17:39,000 vi estos ludante en mondo kiu aspektas kiel ĉi. 358 00:17:39,000 --> 00:17:42,180 De hodiaŭ kaj por Problem Ŝanĝu 1 proksima semajno, la kodo 359 00:17:42,180 --> 00:17:45,410 tuj serĉos iom pli kamufla, sed funkcie estas 360 00:17:45,410 --> 00:17:46,940 tuj estos la sama. 361 00:17:46,940 --> 00:17:50,770 Do rimarki, supre estas Scratch, malsupro estas C. Sincere Scratch 362 00:17:50,770 --> 00:17:52,780 Estas multe pli uzanto amika kaj atingebla. 363 00:17:52,780 --> 00:17:56,890 Sed se vi nun komparu vide supre fundo, estas speco de unu al unu 364 00:17:56,890 --> 00:17:59,690 korespondado inter la puzlo pecoj kaj la lingvo 365 00:17:59,690 --> 00:18:00,870 ni al ludi kun. 366 00:18:00,870 --> 00:18:04,420 En aparta, te la blua puzlo peco supren supro, 367 00:18:04,420 --> 00:18:08,370 estas ŝajne ekvivalento al kio ŝlosilvorto aŭ specialan frazon en tiu lingvo 368 00:18:08,370 --> 00:18:09,062 nomita C? 369 00:18:09,062 --> 00:18:09,770 Publiko: printf. 370 00:18:09,770 --> 00:18:10,728 DAVID J. Malan: printf. 371 00:18:10,728 --> 00:18:12,140 Tio signifas formatita presado. 372 00:18:12,140 --> 00:18:15,240 Kaj tio estas nur fantazio maniero diri printf en C 373 00:18:15,240 --> 00:18:18,615 tuj estos deklaro aŭ funkcio kiu presas ion por la ekrano. 374 00:18:18,615 --> 00:18:19,990 Kion tio presi la ekrano? 375 00:18:19,990 --> 00:18:23,627 Kion ajn vi rakontos ĝin interne de citaĵoj, ene de krampoj. 376 00:18:23,627 --> 00:18:25,460 Do denove, rekoni, ekzistas multe da taskoj 377 00:18:25,460 --> 00:18:27,990 ke vi devas teni en menso, parentezoj, citaĵojn, punktokomojn, 378 00:18:27,990 --> 00:18:28,656 kaj ĉio ĉi. 379 00:18:28,656 --> 00:18:30,600 Sed ĉiuj kiu estas speco de la flanko de la punkto. 380 00:18:30,600 --> 00:18:33,660 La interesa takeaway nun estas ke la vorton bloko en Scratch 381 00:18:33,660 --> 00:18:37,520 estas sufiĉe multa ekvivalenta al la printf deklaron en C. 382 00:18:37,520 --> 00:18:41,390 >> Dume, la flava puzlo peco supren supro, verdaj flago klakis, 383 00:18:41,390 --> 00:18:44,736 Estas verŝajne ekvivalenta kion ŝlosilvorto tie? 384 00:18:44,736 --> 00:18:45,360 Publiko: Ĉefa. 385 00:18:45,360 --> 00:18:46,359 DAVID J. Malan: Do ĉefa. 386 00:18:46,359 --> 00:18:47,410 Eble int, eble malplenon. 387 00:18:47,410 --> 00:18:51,280 Sed ĉefa klaso de sonoj kiel ĝi estas grava, kaj ja estas. 388 00:18:51,280 --> 00:18:54,080 Do kiam verdaj flago klakis estas, denove, la puzlo peco 389 00:18:54,080 --> 00:18:56,390 kiuj iniciatas kun tuta Scratch programo. 390 00:18:56,390 --> 00:19:02,140 Sed ni tuj nun komenci nomante ke ĉefa, tiu funkcio konata kiel ĉefa. 391 00:19:02,140 --> 00:19:06,410 >> Nun dume ni ĝeneraligi ĉi jene. 392 00:19:06,410 --> 00:19:08,780 Ni povus nomi diri funkcio. 393 00:19:08,780 --> 00:19:10,580 Kaj ĝi povus rigardi specife kiel ĉi. 394 00:19:10,580 --> 00:19:11,770 Nu, kio pri maŝojn? 395 00:19:11,770 --> 00:19:16,540 Se ni volas komenci konverto aŭ traduki pli en Scratch al C, 396 00:19:16,540 --> 00:19:19,400 tion ĉi tie ŝajne simple diras "saluton mondo" ĉiam. 397 00:19:19,400 --> 00:19:23,060 Do se vi asocii ĉi skriptoj kun kato en Scratch, 398 00:19:23,060 --> 00:19:26,560 ĝi estas nur tuj subteni dirante en iu speco de karikaturo bobelo, 399 00:19:26,560 --> 00:19:29,922 "Saluton mondo, saluton mondo, saluton mondon, "ad nauseum, ĉiam. 400 00:19:29,922 --> 00:19:33,130 Se ni volas fari ion similan en C, ĝi tuj aspekti iom kamufla. 401 00:19:33,130 --> 00:19:35,463 Sed ni povas atingi la saman rezultoj, kiel ni fine 402 00:19:35,463 --> 00:19:36,861 eltrovi, kun sintakso kiel ĉi. 403 00:19:36,861 --> 00:19:39,360 Mi tuj uzi printf denove, ĉar ĉe la fino de la tago 404 00:19:39,360 --> 00:19:42,040 Mi volas presi "saluton mondo". 405 00:19:42,040 --> 00:19:45,610 Kaj mi ŝajne uzante ŝlosilvorto ke ne ĉiam. 406 00:19:45,610 --> 00:19:47,320 Estas anstataŭ la vorton dum. 407 00:19:47,320 --> 00:19:49,650 Sed ĝuste semantike en Angla, dum ia 408 00:19:49,650 --> 00:19:52,120 sugestas ian buklo aŭ ciklo. 409 00:19:52,120 --> 00:19:55,070 >> Do kiu sekvinbero al esti la ŝlosilvorto ke C uzas. 410 00:19:55,070 --> 00:20:00,700 Kaj dum vera, kial faras dum veraj efike signifas ĉiam? 411 00:20:00,700 --> 00:20:04,240 Nu, dum, kiel ni baldaŭ estimi ĉiujn pli, 412 00:20:04,240 --> 00:20:08,140 havas ĉi parenthetical apud ĝi kie vi povas meti Bulea esprimo. 413 00:20:08,140 --> 00:20:11,360 Kaj tiel longe, kiel tiu esprimo estas vera, tiu kodo, 414 00:20:11,360 --> 00:20:14,750 kiel signifita inter tiuj du frizita krampoj kiel ni vokos ilin, 415 00:20:14,750 --> 00:20:16,880 simple subteni kurante denove kaj denove. 416 00:20:16,880 --> 00:20:18,410 >> Do veran veron. 417 00:20:18,410 --> 00:20:20,900 Do dum veraj rimedoj nur faru ĉi eterne. 418 00:20:20,900 --> 00:20:23,480 Estas preskaŭ stulte konstrui esprimi vin. 419 00:20:23,480 --> 00:20:26,590 Sed tie ne estis ĉiam ŝlosilvorto en C. Estis tempo. 420 00:20:26,590 --> 00:20:29,390 Kaj farigxis tre simpla Bulea esprimo kiel veraj. 421 00:20:29,390 --> 00:20:32,210 Kaj tiu, kiu vidos, atingas la saman rezulton. 422 00:20:32,210 --> 00:20:33,890 >> Kiel alie povus vin implementar buklo? 423 00:20:33,890 --> 00:20:36,980 Nu, en Scratch vi povus hard kodo specifa nombro 424 00:20:36,980 --> 00:20:39,430 de ripetoj en la buklo tie. 425 00:20:39,430 --> 00:20:43,210 Kaj tio estas ĝuste kion ni povus fari en tiu versio de C, 426 00:20:43,210 --> 00:20:46,140 per kiu ni havas tn por buklo. 427 00:20:46,140 --> 00:20:49,850 Kaj por buklo tie tuj persisti, iom enigme, 428 00:20:49,850 --> 00:20:54,100 de la valoro 0 sur supren al sed malpli ol 10. 429 00:20:54,100 --> 00:20:55,955 >> Nun variabloj en Scratch. 430 00:20:55,955 --> 00:20:57,830 Vi eble ne havis okazo por uzi tiujn. 431 00:20:57,830 --> 00:21:02,516 Sed kio estas la punkto, ĝenerale, de variablo ni diru pasintsemajne? 432 00:21:02,516 --> 00:21:03,015 Kio estas tio? 433 00:21:03,015 --> 00:21:03,780 >> Publiko: Punktoj. 434 00:21:03,780 --> 00:21:05,200 >> DAVID J. Malan: Al punkto? 435 00:21:05,200 --> 00:21:05,700 Ho, punktoj. 436 00:21:05,700 --> 00:21:07,620 OK, konservanta trako de punktoj, ekzemple, en ludo. 437 00:21:07,620 --> 00:21:09,510 Aŭ pli ĝenerale faras kio kun la varia? 438 00:21:09,510 --> 00:21:10,450 Kio estas la utileco de ili? 439 00:21:10,450 --> 00:21:10,825 >> Publiko: Memoro. 440 00:21:10,825 --> 00:21:11,750 >> DAVID J. Malan: Jes, tia memoro. 441 00:21:11,750 --> 00:21:13,000 Ĝi estas por stoki ion. 442 00:21:13,000 --> 00:21:17,336 Kaj la speco de stulta vida mi uzis lasta fojo estis tiamaniere glason bovlo. 443 00:21:17,336 --> 00:21:19,710 Kaj se ni volis gardi io interne de variablo, 444 00:21:19,710 --> 00:21:21,918 Ekzemple ĝuste nun la valoro estas ses ĉar 445 00:21:21,918 --> 00:21:23,450 Estas ses ping pong pilkoj en ĉi tie. 446 00:21:23,450 --> 00:21:26,158 Estas nur ia stokado ujo kiu sub la kapuĉo 447 00:21:26,158 --> 00:21:30,030 implementa kun bitoj, _0s_ kaj _1s_, tamen komputilo okazas fari tion. 448 00:21:30,030 --> 00:21:32,900 >> Do en Scratch, se ni volas havi variablo, 449 00:21:32,900 --> 00:21:34,840 ni povas uzi oranĝkolora bloko kiel ĉi. 450 00:21:34,840 --> 00:21:37,050 Ni nomas tion nombrilo en ĉi tiu aparta kazo. 451 00:21:37,050 --> 00:21:38,890 Mi inicializado al 0. 452 00:21:38,890 --> 00:21:41,080 Kaj kion mi faru? 453 00:21:41,080 --> 00:21:44,780 Forever, diru nombrilo, kiu se vi ludas kun tiu en Scratch, 454 00:21:44,780 --> 00:21:45,780 vi nur vidi Scratch. 455 00:21:45,780 --> 00:21:49,920 La kato aŭ ajna kostumo vi surmetis li parolos la nombro en demando. 456 00:21:49,920 --> 00:21:52,840 >> Ŝanĝo nombrilo de 1 estas kiel pliigante per 1. 457 00:21:52,840 --> 00:21:56,580 Kaj tiel ĉi tio tuj kalkulo kio do kio? 458 00:21:56,580 --> 00:21:59,114 De 0 til malfinio, aŭ ĝis Scratch paŭzoj, 459 00:21:59,114 --> 00:22:01,030 aŭ ĝis vi speco de perdi intereson en rigardante 460 00:22:01,030 --> 00:22:02,650 kiom alta li povas fakte rakonti. 461 00:22:02,650 --> 00:22:04,800 >> Do kiom eble ni konverti tion al C? 462 00:22:04,800 --> 00:22:06,480 Ĝi tuj aspekti iom kamufla. 463 00:22:06,480 --> 00:22:08,896 Sed denove, se vi rigardas ĉiun de tiuj linioj individue 464 00:22:08,896 --> 00:22:10,410 ili speco de alineación ĝenerale. 465 00:22:10,410 --> 00:22:13,526 Do ŝajne int tuj havi iun specialan signifon en C. 466 00:22:13,526 --> 00:22:14,400 Ni vidos ke denove. 467 00:22:14,400 --> 00:22:15,810 Kiel flanken signifas entjero. 468 00:22:15,810 --> 00:22:16,990 Do ĝi nur signifas numeron. 469 00:22:16,990 --> 00:22:18,920 Do tio estas la tipo de vitra bovlo Mi volas, oni 470 00:22:18,920 --> 00:22:21,120 kiu povas stoki numerojn, Ne ping pong pilkojn. 471 00:22:21,120 --> 00:22:25,520 Kaj mi tuj uzos la egalsigno tie atribui ĝin valoron de 0. 472 00:22:25,520 --> 00:22:29,440 Do tio estas tute kiel aro vendotablo al 0, sed en C. 473 00:22:29,440 --> 00:22:32,840 >> Dume, dum vero, kiu estis ekvivalenta, kompreneble, por ĉiam, 474 00:22:32,840 --> 00:22:35,980 kvankam ĝi estas iom kamufla, kaj tiam ene de la frizita krampoj. 475 00:22:35,980 --> 00:22:39,188 Kaj vi povas pensi pri tiuj frizita krampoj, kiun vi povas tajpi vian klavaron, 476 00:22:39,188 --> 00:22:43,110 kiel vere estante kiel la kurbeco en tiuj flavaj buklo blokoj en Scratch. 477 00:22:43,110 --> 00:22:45,700 Ĝi ampleksas plurajn liniojn de kodo. 478 00:22:45,700 --> 00:22:48,120 >> Printf estas prenanta iom timigas nun ĉar mi 479 00:22:48,120 --> 00:22:51,120 vidi ne nur citas en krampoj. 480 00:22:51,120 --> 00:22:55,160 Sed kio alia estas nova sintakse en tiu ekzemplo? 481 00:22:55,160 --> 00:22:57,300 Tie estas procento d. 482 00:22:57,300 --> 00:22:58,551 Kaj tiam backslash n estas tie. 483 00:22:58,551 --> 00:23:00,883 Ni vidas, ke antaŭe, eĉ kvankam mi ne menciis ĝin. 484 00:23:00,883 --> 00:23:01,886 Tiam tie estas komo. 485 00:23:01,886 --> 00:23:03,010 Kaj tiam tie estas nombrilo. 486 00:23:03,010 --> 00:23:05,010 >> Sed ni vidos en nur momento, ke tio estas nur 487 00:23:05,010 --> 00:23:09,080 norma maniero diri pres "Dekuma nombro," citaĵo, unquote, 488 00:23:09,080 --> 00:23:10,500 iuj dekuma nombro. 489 00:23:10,500 --> 00:23:13,370 Sed mi tuj rakontos al vi poste kion tio dekuma nombro estas. 490 00:23:13,370 --> 00:23:16,835 Do la fakto ke ekzistas komo en tiu linio diro printf, 491 00:23:16,835 --> 00:23:18,710 signifas antaŭeniri kaj presita iuj dekuma nombro. 492 00:23:18,710 --> 00:23:23,110 Ah, kaj sur la vojo, la cifero estas ajn la valoron de ĉi tiu variablo estas. 493 00:23:23,110 --> 00:23:25,880 Kaj tiel fari tion pli klara, ni vidos ekzemplon 494 00:23:25,880 --> 00:23:30,930 antaŭ longe engaĝante ekzakte printf en la kunteksto de realaj C programoj. 495 00:23:30,930 --> 00:23:33,472 >> Nun nur envolver supren iuj de tiuj konstruoj. 496 00:23:33,472 --> 00:23:36,680 Buleaj esprimoj, eble vi ne havas okazo por uzi ĉi tiuj en via programo 497 00:23:36,680 --> 00:23:39,450 sed vi povus tre bone, speciale se uzante kondiĉoj. 498 00:23:39,450 --> 00:23:43,460 Kaj tial tiuj du ekzemploj de Skrapi signifi se x estas malpli ol y, 499 00:23:43,460 --> 00:23:48,770 aŭ se x estas malpli ol y kaj y estas malpli ol z, kiel povus oni tradukas tion? 500 00:23:48,770 --> 00:23:50,810 >> Nu, en C estas nur tuj aspekti ĉi. 501 00:23:50,810 --> 00:23:55,300 Iom kripta, pli krampoj, iu bizara ampersands, sed fundamente 502 00:23:55,300 --> 00:23:59,160 La ideoj estas tiel simpla kiel oni estas en la puzlo peco mondo. 503 00:23:59,160 --> 00:24:02,690 Ni simple kontrolanta se io Estas malpli ol io alia. 504 00:24:02,690 --> 00:24:03,910 >> Kiom proksimume kondiĉoj? 505 00:24:03,910 --> 00:24:09,710 En malmultaj vortoj en angla, kion faras tiu chunk de Scratch kodo cxu vi dirus? 506 00:24:09,710 --> 00:24:11,050 >> Publiko: Komparas du ciferoj. 507 00:24:11,050 --> 00:24:13,760 >> DAVID J. Malan: Komparas du nombroj, kaj se x estas malpli ol y 508 00:24:13,760 --> 00:24:14,860 ĝi diras tiel. 509 00:24:14,860 --> 00:24:18,080 Se x estas pli granda ol y ĝi diras tiel, alie 510 00:24:18,080 --> 00:24:20,740 se x egalas al y diras tiel. 511 00:24:20,740 --> 00:24:22,180 Nun kien x kaj y venas? 512 00:24:22,180 --> 00:24:22,680 Kiu scias. 513 00:24:22,680 --> 00:24:25,380 Ĉi chunk de Scratch kodo estas ekster kunteksto. 514 00:24:25,380 --> 00:24:29,050 Sed kion ni volas fari nun estas traduki tion por nur momento vidi. 515 00:24:29,050 --> 00:24:31,660 >> Do kiel vi akiras komfortan ĉi tiu semajno en Problemo Ara 516 00:24:31,660 --> 00:24:34,190 0 ludante en tiu mondo maldekstre, realigi 517 00:24:34,190 --> 00:24:36,940 ke la ideoj ne estas ŝanĝanta tiu semajno aŭ apud aŭ trans. 518 00:24:36,940 --> 00:24:38,690 Ni simple tuj komenci skribi tion 519 00:24:38,690 --> 00:24:41,240 alimaniere kun niaj klavaro anstataŭ nia muso. 520 00:24:41,240 --> 00:24:44,577 >> Do se x estas malpli ol y, kaj ekzistas iuj krampoj tie, 521 00:24:44,577 --> 00:24:47,160 tiam tie estas kelkaj frizita krampoj denove al speco de encapsular ĝi 522 00:24:47,160 --> 00:24:48,970 ĝuste kiel la flava puzlo pecoj fari. 523 00:24:48,970 --> 00:24:53,000 Kaj mi tuj printf x Estas malpli ol y ks. 524 00:24:53,000 --> 00:24:56,540 >> Kio estas agrabla pri C, kiel vi povas vidi ĉi tie, 525 00:24:56,540 --> 00:25:00,480 estas ke vi ne havas tian nestumado, nestumado, nestumante tio nepre 526 00:25:00,480 --> 00:25:02,220 tuj puŝi vian kodon por la dekstra. 527 00:25:02,220 --> 00:25:04,990 Vi povas anstataŭ havi ĉion alineación nete ŝatas ĉi. 528 00:25:04,990 --> 00:25:08,960 Sed tio estas nur estetika detalo ni vidos denove antaŭ longe. 529 00:25:08,960 --> 00:25:09,660 >> Bone. 530 00:25:09,660 --> 00:25:13,290 Do kiu alportas nin reen al ĉi kamufla rigardis programon. 531 00:25:13,290 --> 00:25:15,180 Ni efektive skribi iun kodon. 532 00:25:15,180 --> 00:25:16,830 Nun kiel vi iri pri skribi kodon? 533 00:25:16,830 --> 00:25:21,310 Ĉiuj tiuj jaroj ke vi posedita Mac aŭ PC, labortablo aŭ portebla komputilo, 534 00:25:21,310 --> 00:25:24,520 vi fakte havis la kapablon komenci skribi programado kodo. 535 00:25:24,520 --> 00:25:27,050 Sed vi verŝajne mankas speciala tipo de programo. 536 00:25:27,050 --> 00:25:28,470 Vi certe povas skribi kodon. 537 00:25:28,470 --> 00:25:30,740 Sed vi ne povas nepre, el la skatolo, 538 00:25:30,740 --> 00:25:34,210 konverti ke fontkodo en celkodo, _0s_ kaj _1s_ 539 00:25:34,210 --> 00:25:35,619 sen kia sur via komputilo? 540 00:25:35,619 --> 00:25:36,410 Publiko: Compiler. 541 00:25:36,410 --> 00:25:37,630 DAVID J. Malan: Do kompililon, dekstre. 542 00:25:37,630 --> 00:25:39,730 Nun plejparto de vi probable ne posedas kompililo, 543 00:25:39,730 --> 00:25:41,259 neniam elŝutis kompililon. 544 00:25:41,259 --> 00:25:44,300 Sed vi vidos vi povas elŝuti ĝin kiel plej ajna alia peco de programaro. 545 00:25:44,300 --> 00:25:47,470 En la mondo de Mac VIN, vi povus elŝuti aŭ malŝarĝis jam 546 00:25:47,470 --> 00:25:50,437 iu nomita Xcode aŭ GCC aŭ tin. 547 00:25:50,437 --> 00:25:52,270 Se vi venas de la Windows mondo vi povus 548 00:25:52,270 --> 00:25:56,190 malŝarĝis Vida Studio, Vida Baza, medioj tiel. 549 00:25:56,190 --> 00:25:59,200 Ekzistas dekoj de kompililoj tiuj tagoj kiujn vi povus uzi. 550 00:25:59,200 --> 00:26:01,940 Sed la mallonga de ĉi tie estas ke ĝi estus doloro 551 00:26:01,940 --> 00:26:04,480 kaj, sincere, teknologia koŝmaro por centoj 552 00:26:04,480 --> 00:26:07,680 de personoj kun malsamaj komputilo agordoj por ĉiuj 553 00:26:07,680 --> 00:26:09,800 agordi siajn maŝinojn en ĝuste la sama maniero 554 00:26:09,800 --> 00:26:11,700 tiel ke ni povas ĉiuj esti sur la sama paĝo. 555 00:26:11,700 --> 00:26:15,240 >> Do kion ni, anstataŭe, do en CS50 estas ni donos al vi 556 00:26:15,240 --> 00:26:18,349 norma medio, Linuksa medio tio 557 00:26:18,349 --> 00:26:20,140 tuj rigardi iomete iu kiel ĉi tio. 558 00:26:20,140 --> 00:26:22,980 Vi vidos pli de tio en la Problemo Ara 1 especificación kiu 559 00:26:22,980 --> 00:26:25,330 iros enreta tiu vendredo nokte. 560 00:26:25,330 --> 00:26:28,360 >> Kaj kion tio signifas estas ke vi nun 561 00:26:28,360 --> 00:26:32,060 tuj povos elŝuti kaj instali programon 562 00:26:32,060 --> 00:26:33,650 nomata CS50 Appliance. 563 00:26:33,650 --> 00:26:36,275 Kaj vi tuj malŝarĝos kaj instali alian programon nomata 564 00:26:36,275 --> 00:26:40,300 oni hypervisor, kiu estas nur fancy vojon realigi tion. 565 00:26:40,300 --> 00:26:44,600 Ĉu vi posedas Mac aŭ PC aŭ Linuksa komputilo aŭ Solaris komputilo, 566 00:26:44,600 --> 00:26:46,830 aŭ kion ajn freneza mastruma sistemon vi uzas, 567 00:26:46,830 --> 00:26:49,820 vi tuj elŝuti programon nomata hypervisor tio 568 00:26:49,820 --> 00:26:53,350 tuj kuras la CS50 Appliance sur via komputilo 569 00:26:53,350 --> 00:26:55,430 negrave kion via mastruma sistemo estas. 570 00:26:55,430 --> 00:27:00,640 A hypervisor alivorte konvertas niaj aĵoj al ĉiu lingvo, 571 00:27:00,640 --> 00:27:03,850 ajn instrukciojn via propra komputilo komprenas. 572 00:27:03,850 --> 00:27:04,962 >> Do tiu estas layering. 573 00:27:04,962 --> 00:27:06,920 Kaj cetere, jen estas ia de temática en komputilo 574 00:27:06,920 --> 00:27:08,722 scienco, la konstruaĵo sur supro de aĵoj. 575 00:27:08,722 --> 00:27:09,680 Vi povus havi Windows. 576 00:27:09,680 --> 00:27:10,710 Vi povus havi Mac VIN. 577 00:27:10,710 --> 00:27:12,960 Sed ekde la venonta semajno vi tuj malŝarĝis 578 00:27:12,960 --> 00:27:14,980 libera peco de programaro nomata hypervisor. 579 00:27:14,980 --> 00:27:17,800 Vi tuj malŝarĝis peco programaro nomata CS50 Appliance. 580 00:27:17,800 --> 00:27:21,050 >> Tio tuj kuras en la hypervisor, kiuj tuj kuras en via komputilo. 581 00:27:21,050 --> 00:27:23,030 Kaj la fina rezulto estas ke ĉiuj el ni volas 582 00:27:23,030 --> 00:27:26,220 havas simplan fenestro ŝatas tion en via Mac aŭ PC 583 00:27:26,220 --> 00:27:30,160 kiu donas al ni la iluzion de ĉiu kurante la sama mastruma sistemo, 584 00:27:30,160 --> 00:27:32,800 sen iu ajn alia trafo en via komputilo. 585 00:27:32,800 --> 00:27:34,870 Kaj vi povas tutekrana kaj esence konduti 586 00:27:34,870 --> 00:27:37,550 kvazaux vi kuras kun mastruma sistemo nomita Linukso, 587 00:27:37,550 --> 00:27:40,270 kiu estas kion la CS50 Appliance estas bazita sur. 588 00:27:40,270 --> 00:27:42,930 >> Do ni vere uzas ĉi nun skribi programon. 589 00:27:42,930 --> 00:27:45,450 Vi povas skribi programon uzante Microsoft Word. 590 00:27:45,450 --> 00:27:48,160 Vi povas skribi programon uzante TextEdit, aŭ Notepad, 591 00:27:48,160 --> 00:27:51,880 aŭ WordPad, aŭ sufiĉe tre ajna vorto prilaborado programo vi iam uzis. 592 00:27:51,880 --> 00:27:55,174 Sed la realaĵo estas kiu ne devus uzi vere neniu el tiuj programoj. 593 00:27:55,174 --> 00:27:57,840 Vi certe ne devus uzi iu kiel Microsoft Word, kiu 594 00:27:57,840 --> 00:28:01,120 havas aŭdacan Alfrontante kaj kursivo kaj grandaj tiparoj kaj malgrandaj tiparoj, 595 00:28:01,120 --> 00:28:03,560 ĉar la komputilo ne zorgas pri iu ajn el tio. 596 00:28:03,560 --> 00:28:05,600 Ĉiuj komputilo tuj zorgas pri estas 597 00:28:05,600 --> 00:28:09,040 Angla kiel instrukcioj skribitaj en C. 598 00:28:09,040 --> 00:28:12,050 >> Do kion ni faros interne de la CS50 Appliance 599 00:28:12,050 --> 00:28:14,290 estas uzi programon libere disponeblaj, kaj ĝi estas 600 00:28:14,290 --> 00:28:17,360 pre-instalita en tiu aparato, nomita Gedit. 601 00:28:17,360 --> 00:28:22,280 Kaj Gedit estas nur súper simpla tekstoredaktilo kiel Mac VIN la TextEdit, 602 00:28:22,280 --> 00:28:26,200 kiel Windows Notepad ke tuj aspektas iom io tiamaniere. 603 00:28:26,200 --> 00:28:28,910 >> Do ni vere ne rigardi diapozitivojn de tiu. 604 00:28:28,910 --> 00:28:32,580 Sed ni vere iru en la medio mem. 605 00:28:32,580 --> 00:28:36,090 Mi tuj iros antaŭen kaj ensalutu, en tiu alia fenestro 606 00:28:36,090 --> 00:28:40,910 al mia CS50 Appliance, kion mi havas pre-instalita sur mia tekkomputilo tie. 607 00:28:40,910 --> 00:28:43,771 >> Rimarku ke, kiel Windows kaj Mac VIN, ĝi estos akiris iujn menuoj. 608 00:28:43,771 --> 00:28:45,520 Kiel Windows metas ĝin tie anstataŭe 609 00:28:45,520 --> 00:28:47,020 de Mac VIN, kiu metas ĝin tie. 610 00:28:47,020 --> 00:28:48,930 Sed la realaĵo estas kiu estas ĉiaj la sama. 611 00:28:48,930 --> 00:28:50,770 Kaj tie estas tuta faskon da programaro. 612 00:28:50,770 --> 00:28:51,770 Ekzistas Dropbox. 613 00:28:51,770 --> 00:28:54,780 Ekzistas tuta fasko da akcesoraj, grafika programoj kiuj ni 614 00:28:54,780 --> 00:28:56,430 uzi poste en la termino por problemo aroj. 615 00:28:56,430 --> 00:28:59,650 Ekzistas foliumilo konstruita en tia ke tio estas plena fledged komputilo 616 00:28:59,650 --> 00:29:01,240 ene de komputilo. 617 00:29:01,240 --> 00:29:04,170 >> Sed mi tuj klaku ĉi maldekstra blanka ikono tie, 618 00:29:04,170 --> 00:29:05,890 kiu estas la ikono por Gedit. 619 00:29:05,890 --> 00:29:09,650 Kaj tuj malfermu fenestron kiu havas tri paneloj al ĝi, 620 00:29:09,650 --> 00:29:12,590 maldekstra unu, pinta, kaj fundo unu. 621 00:29:12,590 --> 00:29:16,071 >> Nun estas en ĉi supre dekstre kiu Mi iras al efektive skribi iun kodon. 622 00:29:16,071 --> 00:29:16,820 Do ni faru ĉi ,. 623 00:29:16,820 --> 00:29:19,040 Mi tuj iras al Dosierhistorio, Konservi. 624 00:29:19,040 --> 00:29:22,100 Kaj eble vi neniam vidis tiu aparta fenestro antaŭe. 625 00:29:22,100 --> 00:29:23,620 Sed ĉi tio estas kiel Mac OS aŭ Vindozo. 626 00:29:23,620 --> 00:29:25,490 Estas nur fenestro kun ĉiuj dosierujoj 627 00:29:25,490 --> 00:29:27,290 ke mi havas interne de tiu komputilo. 628 00:29:27,290 --> 00:29:30,320 >> Kaj mi tuj savos kiel la dosiero hello.c. 629 00:29:30,320 --> 00:29:32,690 Kaj mi tuj iros antaŭeniris kaj klaku Save. 630 00:29:32,690 --> 00:29:36,364 Kaj nun rimarkas Mi havas langeto ĉe supro maldekstra nomita hello.c. 631 00:29:36,364 --> 00:29:38,280 Do probable bela familiara, eĉ se vi havas ne 632 00:29:38,280 --> 00:29:40,240 uzas ĉi aparta programo antaŭe. 633 00:29:40,240 --> 00:29:44,890 >> Kaj nun mi iras al entajpi tiujn sufiĉe kamufla sekvenco de ordonoj 634 00:29:44,890 --> 00:29:46,360 ke ni vidis antaŭ momento. 635 00:29:46,360 --> 00:29:49,330 Inkluzivi, norma I / O.h. 636 00:29:49,330 --> 00:29:50,600 Pli sur kiuj poste. 637 00:29:50,600 --> 00:29:55,670 Mez ĉefa malplenon, malfermita krispa streĉa, fermita frizita krampoj. 638 00:29:55,670 --> 00:30:01,570 Kaj tiam ene de tie Mi opinias estas kie ni havis "saluton mondo" punktokomo. 639 00:30:01,570 --> 00:30:03,100 Kaj nun savas. 640 00:30:03,100 --> 00:30:08,780 >> Do tiu estas programo skribita en C, skribita, do, en fontkodon. 641 00:30:08,780 --> 00:30:10,720 Sed mi ne povas kuri ĉi programo. 642 00:30:10,720 --> 00:30:13,390 Mi ia volas duobligi klaku sur ikono ie, 643 00:30:13,390 --> 00:30:16,390 sed neniu ikono ekzistas aliaj ol la fonta kodo dosiero. 644 00:30:16,390 --> 00:30:20,359 Kion pli, estas la procezo nun Mi bezonas kuri ĉi tiun dosieron per? 645 00:30:20,359 --> 00:30:21,150 Publiko: Compiler. 646 00:30:21,150 --> 00:30:22,399 DAVID J. Malan: Do kompililon. 647 00:30:22,399 --> 00:30:24,890 Do en malsamaj komputiloj tion fari en diversaj manieroj. 648 00:30:24,890 --> 00:30:27,480 Sed kion ni faris ĉi tie en la CS50 Appliance tio 649 00:30:27,480 --> 00:30:31,260 reprezentanto de kiel vi povus faru tion en multaj malsamaj sistemoj, 650 00:30:31,260 --> 00:30:34,036 Estas mi simple tuj kuri komando nomis konsisto. 651 00:30:34,036 --> 00:30:35,660 Kaj ŝminko estas laŭvorte tuj faros. 652 00:30:35,660 --> 00:30:36,640 Faru al mi programon. 653 00:30:36,640 --> 00:30:39,060 >> Do fari tuj kuri kompililon por mi. 654 00:30:39,060 --> 00:30:42,160 Kaj la nomo de la programo Mi volas fari estas saluton. 655 00:30:42,160 --> 00:30:43,510 Nun faru estas programo. 656 00:30:43,510 --> 00:30:47,170 Kaj fari estas inteligenta sufiĉe por rimarkas ke se mi diras ke saluton, 657 00:30:47,170 --> 00:30:50,980 ĝi tuj rigardi aŭtomate por dosiero nomata hello.c 658 00:30:50,980 --> 00:30:53,420 simple ĉar tio estas la vojo ĝi estas agordita. 659 00:30:53,420 --> 00:31:00,300 >> Do kiam mi nun batis Entajpu tie ĉi freneza kamufla linion ĝuste got ekzekutita. 660 00:31:00,300 --> 00:31:02,720 Kaj fidi min, antaŭ longa, ene malmultaj tagoj, 661 00:31:02,720 --> 00:31:05,590 vi komprenas, kion ĉiuj de tiu sensencaĵo rimedoj. 662 00:31:05,590 --> 00:31:11,150 Sed nuntempe, nur scias ke fari deĉenigis ekzekuto de tradukilo. 663 00:31:11,150 --> 00:31:13,290 En aliaj vortoj, ĝi trovis kompililon sur mia komputilo 664 00:31:13,290 --> 00:31:14,820 tio estas pre-instalita sur la CS50 Appliance 665 00:31:14,820 --> 00:31:16,560 ke ni transdonu al vi en Problemo Ara 1. 666 00:31:16,560 --> 00:31:20,990 Kaj tiam prenis hello.c kiel enigo kaj produktis ŝajne 667 00:31:20,990 --> 00:31:23,040 _0s_ Kaj _1s_ kiel eligo. 668 00:31:23,040 --> 00:31:29,410 >> Kaj defaŭlte kio faras estas ĝi ŝparas tiuj _0s_ kaj _1s_ en dosiero nomita saluton. 669 00:31:29,410 --> 00:31:33,180 Kaj tamen tiu sintakso tro multobligita esti nova al vi, simple dirante dot 670 00:31:33,180 --> 00:31:37,110 slash hello tuj estos la signifas per kiu mi kuros ĉi programo. 671 00:31:37,110 --> 00:31:40,360 >> Por nun kaj por almenaŭ paro de semajnoj, preskaŭ ĉiuj de la programoj 672 00:31:40,360 --> 00:31:44,230 ni skribas tuj estos en nigra kaj blanka teksto fenestroj. 673 00:31:44,230 --> 00:31:47,006 Neniu musoj, neniu musklako, sen fenestroj, neniu ikonoj. 674 00:31:47,006 --> 00:31:49,630 Ni tuj konservi ĝin simpla kaj centri en la suba ideoj 675 00:31:49,630 --> 00:31:52,490 komence antaŭ ol atingi ion alta nivelo, ekzemple, 676 00:31:52,490 --> 00:31:56,410 kiel la rompo el ludo kiu parolis proksimume en la unua prelego pasintsemajne. 677 00:31:56,410 --> 00:32:00,820 >> Do kiam mi batis Entajpu tie, estas ekvivalenta en teksto nur medio 678 00:32:00,820 --> 00:32:03,272 duobligi klaki ikonon nomita saluton. 679 00:32:03,272 --> 00:32:05,480 Kion vi atendas volo okazi kiam mi batis Entajpu do? 680 00:32:05,480 --> 00:32:07,120 >> Publikon: ĝi devos presi "saluton mondo". 681 00:32:07,120 --> 00:32:10,000 >> DAVID J. Malan: Ojala ĝi presos "saluton mondo". 682 00:32:10,000 --> 00:32:11,370 Kaj ĝi efektive faris. 683 00:32:11,370 --> 00:32:13,690 Nun ekzistas jam kelkaj kamufla sintakso tie. 684 00:32:13,690 --> 00:32:15,950 Ni malantaŭenigi por ĝuste momenton kaj vidi se ni 685 00:32:15,950 --> 00:32:19,530 Ne povas komenci infiriendo nur laboreti, klopodante kaj senfortigxon, 686 00:32:19,530 --> 00:32:21,130 pri kio okazas tie. 687 00:32:21,130 --> 00:32:23,609 Kio se mi liveras de la backslash n? 688 00:32:23,609 --> 00:32:25,650 Nun iuj el vi, kiuj estas planita antaŭ probable 689 00:32:25,650 --> 00:32:27,054 scias instantáneamente kion tio signifas. 690 00:32:27,054 --> 00:32:29,220 Sed por tiuj el vi, kiuj estas neniam planita antaŭ, 691 00:32:29,220 --> 00:32:34,052 almenaŭ pensas al vi mem kio okazas ŝanĝi kiam mi rerun tiun programon? 692 00:32:34,052 --> 00:32:37,010 Do mi tuj reiri malsupren al mia iom nigra kaj blanka fenestro, kiu 693 00:32:37,010 --> 00:32:39,290 Estas la fenestro en kiu Mi povas kompili ĉi. 694 00:32:39,290 --> 00:32:41,130 Mi iras recompilar saluton. 695 00:32:41,130 --> 00:32:43,520 Ni tuj vidos la sama kamufla sekvenco de ordonoj. 696 00:32:43,520 --> 00:32:45,719 Kaj Mi faros dot oblikvo saluton. 697 00:32:45,719 --> 00:32:48,260 Kaj nun iu, se vi volas, kiuj neniam planita antaŭ, 698 00:32:48,260 --> 00:32:49,770 kio povus esti malsama tiu tempo? 699 00:32:49,770 --> 00:32:50,020 Yeah. 700 00:32:50,020 --> 00:32:51,840 >> Publikon: ĝi ne haltos presi "saluton mondo". 701 00:32:51,840 --> 00:32:52,660 >> DAVID J. Malan: Ĝi okazas to-- bedaŭras? 702 00:32:52,660 --> 00:32:54,210 >> Publikon: ĝi ne ĉesos presi ĝin? 703 00:32:54,210 --> 00:32:55,810 >> DAVID J. Malan: Ĝi ne faros halti presi "saluton mondo". 704 00:32:55,810 --> 00:32:56,560 Do ne estas malbona ideo. 705 00:32:56,560 --> 00:32:58,633 Aliaj ideoj? 706 00:32:58,633 --> 00:32:59,132 Yeah. 707 00:32:59,132 --> 00:33:00,060 >> Publiko: Eraro mesaĝo? 708 00:33:00,060 --> 00:33:01,750 >> DAVID J. Malan: Eraro mesaĝon, OK, povas esti. 709 00:33:01,750 --> 00:33:02,250 Kion alian? 710 00:33:02,250 --> 00:33:05,479 Publikon: ĝi povus presi la krampo kun punktokomo tiel? 711 00:33:05,479 --> 00:33:08,270 DAVID J. Malan: Might presi la krampo kun punktokomo tiel. 712 00:33:08,270 --> 00:33:11,950 Do eble tio backslash do estas iuj ia terminous ke gravas. 713 00:33:11,950 --> 00:33:14,860 Ajna alia pensoj? 714 00:33:14,860 --> 00:33:16,412 >> Do ĉiuj bonaj ideoj. 715 00:33:16,412 --> 00:33:18,370 Kaj fakte, ĝi okazas esti erarmesaĝon. 716 00:33:18,370 --> 00:33:20,400 Tio estas probable la plej verŝajna esti la respondo ĝenerale 717 00:33:20,400 --> 00:33:22,420 por la venontaj semajnoj kiel ni lernas kodigi tie. 718 00:33:22,420 --> 00:33:27,680 >> Sed nun memoras ke komputiloj nur fari kion vi diros al ili fari. 719 00:33:27,680 --> 00:33:30,400 Multe kiel la ridinda arakido butero kaj ĵeleo ekzemplo. 720 00:33:30,400 --> 00:33:33,860 Niaj homaj komputiloj nur supozis faru kion vi sciigis ilin fari. 721 00:33:33,860 --> 00:33:36,250 Do en ĉi tiu kazo, se vi Ne diru al la komputilo 722 00:33:36,250 --> 00:33:41,190 movi ke palpebrumante kursoron al la sekva linio, ĝi ne faros tion. 723 00:33:41,190 --> 00:33:45,390 Do kiam mi kuros ĉi programo nun rimarkos la diferencon. 724 00:33:45,390 --> 00:33:46,900 >> Aspektas kiel cimon. 725 00:33:46,900 --> 00:33:49,190 Estas estetika cimon, eble. 726 00:33:49,190 --> 00:33:53,310 Sed kio estas malsama pri ĉi eligo kontre la lasta evidente? 727 00:33:53,310 --> 00:33:53,810 Yeah. 728 00:33:53,810 --> 00:33:54,920 >> Publiko: Ne faru novan linion. 729 00:33:54,920 --> 00:33:56,586 >> DAVID J. Malan: Ne faru novan linion. 730 00:33:56,586 --> 00:33:58,740 Nun tiuj el vi, kiuj havas eble faris retpaĝoj 731 00:33:58,740 --> 00:34:01,910 antaŭe, eble vi scias pri la BR etikedo aŭ paragrafo etikedo, 732 00:34:01,910 --> 00:34:03,120 tre simila en spirito. 733 00:34:03,120 --> 00:34:06,680 A retumilo ignoros vin ĝis Vi rakontos ĝin precize kion fari. 734 00:34:06,680 --> 00:34:10,020 Simile, estas lingvo kiel C nur faros kion vi diros al fari. 735 00:34:10,020 --> 00:34:12,730 >> Do la kialo ke ĉiuj tiuj ekzemploj, 736 00:34:12,730 --> 00:34:15,350 tiel malproksime, havi specon de hazarde havis ĉi backslash 737 00:34:15,350 --> 00:34:18,560 en tie, tiu estas la rimedoj per kiu vi esprimas vin 738 00:34:18,560 --> 00:34:21,380 kiel novan linion karaktero, por tiel diri. 739 00:34:21,380 --> 00:34:26,219 Kaj vi povas ia dankas, eble, ke tio aspektus speco de stulta 740 00:34:26,219 --> 00:34:27,070 Se nenio alia. 741 00:34:27,070 --> 00:34:29,150 Se mi volus nova linio, nur bati Eniru kaj tiam speco 742 00:34:29,150 --> 00:34:32,219 de butchering la kodo kiel tiu ne vere frotas al vi la ĝustan vojon. 743 00:34:32,219 --> 00:34:33,830 Kaj eĉ se vi ne vere gravas je ĉi tiu punkto, 744 00:34:33,830 --> 00:34:35,830 Vi rimarkos ke tio ne estas aparte 745 00:34:35,830 --> 00:34:37,870 vetas koderon. 746 00:34:37,870 --> 00:34:39,969 >> Kaj kion la mondo decidis jaroj estas 747 00:34:39,969 --> 00:34:43,420 ke kiam vi volas meti la kursoro sur nova linio eksplicite, 748 00:34:43,420 --> 00:34:46,332 Vi devas eksplicite diri nova linio, backslash n. 749 00:34:46,332 --> 00:34:48,040 Kaj tie estas iu alia simboloj tiel. 750 00:34:48,040 --> 00:34:50,719 Sed nuntempe ni nur enfokusigi backslash n. 751 00:34:50,719 --> 00:34:53,790 >> Nun ni faru la programo iom pli interesa. 752 00:34:53,790 --> 00:34:59,200 Mi tuj iros antaŭen kaj tiu tempo malfermi novan dosieron. 753 00:34:59,200 --> 00:35:02,520 Mi iras por savi tion kiel saluton-1.c. 754 00:35:02,520 --> 00:35:05,540 Kaj ĝuste por piedbatoj, mi tuj iri metis ĝin en mian Dropbox dosierujo. 755 00:35:05,540 --> 00:35:09,030 >> Kiel vi vidas en la CS50 dokumentado por la aparato, 756 00:35:09,030 --> 00:35:11,210 poste tiun semajnon por Problem Ŝanĝu 1, ni kuraĝigas 757 00:35:11,210 --> 00:35:13,230 vin uzi Dropbox aŭ iu ekvivalenta servo, 758 00:35:13,230 --> 00:35:15,430 ĉar tiam ĉiu el via kodo estas tuj estos asist aŭtomate. 759 00:35:15,430 --> 00:35:17,830 Kaj tiel tio estas kial mi havas malaperis en tiun dosierujon tie. 760 00:35:17,830 --> 00:35:20,230 >> Kaj nun mi iras al skribi iomete malsaman programon. 761 00:35:20,230 --> 00:35:24,740 Inkluzivi, norma I / O.h, int ĉefa malplenon. 762 00:35:24,740 --> 00:35:29,660 Kaj poste tien printf, saluton mondo, kio estas ekzakte la sama kiel antaŭe. 763 00:35:29,660 --> 00:35:32,450 >> Sed nun mi volas presi ion ke estas iom malsama. 764 00:35:32,450 --> 00:35:34,800 Mi volas presi, diri, "Saluton, David." 765 00:35:34,800 --> 00:35:37,590 Bone, do evidente, devus espereble 766 00:35:37,590 --> 00:35:40,360 esti la kazo ke se mi recompilar tiu programo, rerun ĝi, 767 00:35:40,360 --> 00:35:41,840 ĝi tuj diru "saluton, David." 768 00:35:41,840 --> 00:35:45,160 >> Sed kio se mi volas enkonduki tiu speco de variablo, 769 00:35:45,160 --> 00:35:49,240 la nocio de kontenero kiu tuj stoki D-al-v-i-d kaj ne malfacile kodo 770 00:35:49,240 --> 00:35:50,600 en mia programo. 771 00:35:50,600 --> 00:35:53,430 Nu kio se mi komencas fari ion similan? 772 00:35:53,430 --> 00:35:57,120 >> String s, do tiu estas variablo. 773 00:35:57,120 --> 00:36:00,250 Se vi volas cxeno, a.k.a. vorton aŭ frazon. 774 00:36:00,250 --> 00:36:03,485 Vico da signoj estas kion ni en programado nomas ŝnureto. 775 00:36:03,485 --> 00:36:06,610 Ni nur tuj genéricamente alvoko ĝi s, ĉar ĝi estas bela simpla nomo. 776 00:36:06,610 --> 00:36:08,010 Sed mi povus nomi ĝi nenion. 777 00:36:08,010 --> 00:36:12,920 >> Mi tuj diros kordo s egaluloj citaĵo unquote, "Davido", punktokomo. 778 00:36:12,920 --> 00:36:18,330 Kaj nun mi volas enigi D-al-v-i-d al kio mi presado. 779 00:36:18,330 --> 00:36:23,720 Kaj antaŭ ol ni vidis teaser sur la ekrano de iuj specialaj sintakso 780 00:36:23,720 --> 00:36:26,050 ke ni permesis al anstataŭanto en valoro. 781 00:36:26,050 --> 00:36:29,250 Kio estis la speciala simbolo kelkaj diapozitivoj monato? 782 00:36:29,250 --> 00:36:30,040 >> Do procento. 783 00:36:30,040 --> 00:36:33,830 Siatempe estis procento d por dekuma nombro. 784 00:36:33,830 --> 00:36:35,850 Tio vere ne ŝajnas adekvata tie. 785 00:36:35,850 --> 00:36:38,650 Rezultas tie estas alia procento simbolo, 786 00:36:38,650 --> 00:36:42,810 kio procento s, kiu staras por lokokupilon por ŝnuro. 787 00:36:42,810 --> 00:36:49,350 >> Do nun, tre simple, mi tuj iros fari saluton-1, 788 00:36:49,350 --> 00:36:54,210 ĉar tiu dosiero nomiĝas hello-1.c kaj batis Enter. 789 00:36:54,210 --> 00:36:56,230 Kaj mi ŝraŭbita supren. 790 00:36:56,230 --> 00:36:57,394 Kio okazas? 791 00:36:57,394 --> 00:37:00,560 Nu, jen kie ni devas komenci estimi ke ni estas en tiu komando 792 00:37:00,560 --> 00:37:02,810 linio medio, tiu Nur teksto medio. 793 00:37:02,810 --> 00:37:06,114 Mankas musklako sur ikonoj kiel dosierujoj nun. 794 00:37:06,114 --> 00:37:07,280 Kaj pensi reen antaŭ momento. 795 00:37:07,280 --> 00:37:10,740 En kio dosierujo faris mi diras Mi gardas mian kodon? 796 00:37:10,740 --> 00:37:11,657 Do la Demetujo dosierujo. 797 00:37:11,657 --> 00:37:12,989 Povus esti nomata nenion. 798 00:37:12,989 --> 00:37:14,530 Sed pasas al nomi Dropbox. 799 00:37:14,530 --> 00:37:18,380 Do mi iel bezonas duobligi klaki sur ke Dropbox dosierujon por ricevi 800 00:37:18,380 --> 00:37:21,657 en ĝin kaj akiri ĉe Mian kodo nomita hello-1.c. 801 00:37:21,657 --> 00:37:24,490 Fakte, mi iros antaŭen kaj minimumigi fenestron por nur momento. 802 00:37:24,490 --> 00:37:27,560 Nur kiel Windows kaj Mac VIN, estas dosierujoj en Linukso. 803 00:37:27,560 --> 00:37:29,410 Esas dosierujoj en la CS50 Appliance. 804 00:37:29,410 --> 00:37:32,380 Estas nur ĝuste nun ni internigante nin al ĉi teksto medio. 805 00:37:32,380 --> 00:37:34,700 >> Sed se mi duobligi klaki en Dropbox, rimarki tie 806 00:37:34,700 --> 00:37:37,210 estas la dosiero kiun mi volas kompili. 807 00:37:37,210 --> 00:37:41,430 Sed mi bezonas tiun nigran kaj blankan fina fenestro, por tiel diri. 808 00:37:41,430 --> 00:37:45,750 Sed mi bezonas, sekve, movi en tiu dosierujo aŭ dosierujo. 809 00:37:45,750 --> 00:37:48,290 Do iomete arcane, sed Vi alkutimiĝos al tio tro. 810 00:37:48,290 --> 00:37:50,430 >> En la mondo de Linukso, kiu denove estas la mastruma 811 00:37:50,430 --> 00:37:54,860 Sistemo ni kuras ene de la CS50 Appliance, ekzistas komando nomita KD. 812 00:37:54,860 --> 00:37:58,310 Kio signifas ke mi povas fari KD, spaco, Dropbox. 813 00:37:58,310 --> 00:37:59,900 KD, ŝanĝo dosierujo. 814 00:37:59,900 --> 00:38:00,400 Ĝuste. 815 00:38:00,400 --> 00:38:02,890 Reen en la tago, kiam oni estis elpensi komputiloj kaj mastrumaj 816 00:38:02,890 --> 00:38:05,806 sistemoj kiel tiu, ili volis tajpi la malplej pulsbatoj eblas. 817 00:38:05,806 --> 00:38:08,760 Do la plej facila maniero por diri ŝanĝo dosierujo estis KD. 818 00:38:08,760 --> 00:38:13,910 >> Do se mi batis KD, spaco Dropbox, rimarki kio ŝanĝiĝis tie. 819 00:38:13,910 --> 00:38:16,480 Ene de krampoj La aparato estas afabla 820 00:38:16,480 --> 00:38:19,360 de humoring mi kaj memorigi min kie mi estas. 821 00:38:19,360 --> 00:38:21,480 Do la malferma dosierujo estas Dropbox. 822 00:38:21,480 --> 00:38:24,950 Se mi nun tajpas ls por lerta, denove konciza, 823 00:38:24,950 --> 00:38:27,540 ĉar la homo ne volas tajpi reen en la tago l-i-s-t. 824 00:38:27,540 --> 00:38:29,300 Do ili anstataŭe faris ls. 825 00:38:29,300 --> 00:38:30,110 >> Eniri. 826 00:38:30,110 --> 00:38:35,740 Rimarku ke mi vidas du aĵojn, saluton-1.c, kaj tiam ĉi kripta afero, fonto 1m. 827 00:38:35,740 --> 00:38:38,310 Tio estas nur mia maniero diri fontkodon por semajno 1 lundo. 828 00:38:38,310 --> 00:38:42,020 Tio estas la dosierujo mi elŝutis el CS50 la retejo kiun mi faris pli frue hodiaŭ 829 00:38:42,020 --> 00:38:43,990 kaj simple metu ĝin en la aparato anticipe. 830 00:38:43,990 --> 00:38:47,550 >> Sed nuntempe la sola afero ni zorgas pri faras ĉi programo. 831 00:38:47,550 --> 00:38:50,440 Do kiam mi tajpas fari saluton-1, Enter. 832 00:38:50,440 --> 00:38:51,320 Damn ĝin. 833 00:38:51,320 --> 00:38:53,060 Io misokazis. 834 00:38:53,060 --> 00:38:54,580 Do ni turmentus tiu aparte. 835 00:38:54,580 --> 00:38:58,489 Kaj bedaŭrinde tio estas kie aferoj preni iom estresante unue, 836 00:38:58,489 --> 00:39:00,280 almenaŭ se vi havas neniam planita antaŭe. 837 00:39:00,280 --> 00:39:00,980 >> Mia dio. 838 00:39:00,980 --> 00:39:04,990 Mi verkis du linio programo kaj Mi havas kvar liniojn de eraroj. 839 00:39:04,990 --> 00:39:07,180 Do kio okazas tie. 840 00:39:07,180 --> 00:39:11,370 Unuavice ĉiam rulumi reen supren kaj trovu la unuan erarmesaĝon, 841 00:39:11,370 --> 00:39:15,730 ĉar ofte tradukiloj simple akiri konfuzita per kio vi kaj mi. 842 00:39:15,730 --> 00:39:17,000 Kompililoj estas bela muta. 843 00:39:17,000 --> 00:39:18,360 Ili estos nur fari kion Vi rakontos ilin fari. 844 00:39:18,360 --> 00:39:21,484 Kaj se vi konfuzas ilin, ili estas nur tuj speco de ĵeti siajn manojn 845 00:39:21,484 --> 00:39:25,010 kaj eble ĵeti pli erarmesaĝojn ol estas reale grava. 846 00:39:25,010 --> 00:39:26,380 >> Do ni rigardu la unua. 847 00:39:26,380 --> 00:39:27,540 Super kamufla unue. 848 00:39:27,540 --> 00:39:31,050 Sed rimarki, jen la nomo de la dosiero, en kiu mi ŝraŭbita supren ŝajne. 849 00:39:31,050 --> 00:39:36,570 Dupunkto 5, dupunkto 5 simple signifas la linio 5, je la kvina karaktero. 850 00:39:36,570 --> 00:39:39,760 Do kvina kolumno de karakteroj, se vi volas, eraro. 851 00:39:39,760 --> 00:39:41,870 Uzo de nedeklarita ensalutilo kordo. 852 00:39:41,870 --> 00:39:43,120 Ĉu vi volas diri norma n? 853 00:39:43,120 --> 00:39:44,850 >> Ne, mi volis diri kordo. 854 00:39:44,850 --> 00:39:47,640 Kaj tiam ĝi estas speco de kopiado kaj interglui 855 00:39:47,640 --> 00:39:50,700 kion mi tajpis vere eltiros mian atenton kie mi ŝraŭbita supren. 856 00:39:50,700 --> 00:39:54,260 Do ial C, aŭ almenaŭ la tradukilo 857 00:39:54,260 --> 00:39:56,470 ne komprenas la vorton ŝnuro. 858 00:39:56,470 --> 00:39:57,890 Kaj tio estas ĉar ni faris ĝin. 859 00:39:57,890 --> 00:40:01,440 Do kordo ne ekzistas en C. Kio CS50 faras, 860 00:40:01,440 --> 00:40:03,380 por la unuaj malmultaj semajnoj nur de la klaso, 861 00:40:03,380 --> 00:40:05,700 Estas ni havigi iujn trejnado radoj, por tiel diri. 862 00:40:05,700 --> 00:40:11,160 Kaj ni metas tiujn trejnado radoj ene de speciala dosiero nomata CS50.h. 863 00:40:11,160 --> 00:40:14,970 >> Do tio estas la dua el du dosiero nomoj kiuj ŝajne finiĝi dot h. 864 00:40:14,970 --> 00:40:16,300 Ni malantaŭenigi. 865 00:40:16,300 --> 00:40:19,360 Printf estas deklaro aŭ funkcio kiu ŝajne presu ion 866 00:40:19,360 --> 00:40:20,580 al la ekrano. 867 00:40:20,580 --> 00:40:23,470 Sed vi ne vidos min, implementar printf, dekstre. 868 00:40:23,470 --> 00:40:26,360 Iu jarojn implementado printf. 869 00:40:26,360 --> 00:40:30,420 En kio dosieron vi Wager li aŭ ŝi metis la efektivigo 870 00:40:30,420 --> 00:40:34,270 por printf, la kodo por printf? 871 00:40:34,270 --> 00:40:36,860 >> En dosiero nomata norma I / O.h. 872 00:40:36,860 --> 00:40:39,930 Fakte, ĝi estas verŝajne en du dosierojn, standard I / O.h, 873 00:40:39,930 --> 00:40:42,650 kio signifas kaplinion dosiero, kaj norma I / O.c, 874 00:40:42,650 --> 00:40:44,060 kio signifas C fontkodon. 875 00:40:44,060 --> 00:40:48,220 Do li aŭ ŝi antaŭ kelkaj jaroj plopped la kodo kiun ili skribis en tiun dosieron 876 00:40:48,220 --> 00:40:51,240 tiel ke homoj kiel ni jarojn poste povas inkluzivi ĝin, 877 00:40:51,240 --> 00:40:53,040 por tiel diri, en nia propra programoj. 878 00:40:53,040 --> 00:40:56,320 >> Kaj efektive, jen kion la funto signo sekvata de la vorto inkluzivas faras. 879 00:40:56,320 --> 00:41:00,250 Ĝi aspektas sur la loka malmola disko, Trovas la dosiero nomata norma I / O.h, 880 00:41:00,250 --> 00:41:03,840 kaj tiam efike kopioj kaj pastoj gxin interne de mia propra dosiero. 881 00:41:03,840 --> 00:41:07,210 Do nun mia programo scias kiom presi al la ekrano. 882 00:41:07,210 --> 00:41:11,120 >> Do per tiu logiko, kie Estas kordo difinita? 883 00:41:11,120 --> 00:41:12,260 >> Publiko: CS50.h. 884 00:41:12,260 --> 00:41:13,290 >> DAVID J. Malan: CS50.h. 885 00:41:13,290 --> 00:41:15,540 Kaj efektive, jen kion ni, la kerno bastonon faris. 886 00:41:15,540 --> 00:41:19,590 Ni elpensis kelkajn datumtipoj, tiel diri, kiel kordo, 887 00:41:19,590 --> 00:41:22,370 krom tiuj kiujn vi akiri senpage, kiel int. 888 00:41:22,370 --> 00:41:26,010 Kaj ni vidos aliaj kiel signo por karaktero kaj kelkaj pli. 889 00:41:26,010 --> 00:41:30,670 Ene de CS50.h ŝajne estas almenaŭ iuj mencio de kordo. 890 00:41:30,670 --> 00:41:34,980 >> Do lasu min iri antaŭen kaj rerun make hello-1. 891 00:41:34,980 --> 00:41:37,100 Mi zomi denove kaj transiras la fingrojn. 892 00:41:37,100 --> 00:41:41,370 Nun farinte unu ŝanĝi Mi riparis plej aferoj. 893 00:41:41,370 --> 00:41:42,100 Sed malbenita ĝin. 894 00:41:42,100 --> 00:41:44,290 Pli cent da datumoj argumentoj. 895 00:41:44,290 --> 00:41:45,980 Kion mi faru malĝusta tiu tempo? 896 00:41:45,980 --> 00:41:47,420 >> Do estas ankoraŭ bela kamufla. 897 00:41:47,420 --> 00:41:51,560 Sed tiu eraro estas en linio 7 kaj karaktero 21. 898 00:41:51,560 --> 00:41:53,880 Do ni iru rigardi tien. 899 00:41:53,880 --> 00:41:55,350 Ĝi estas iom subtila. 900 00:41:55,350 --> 00:41:59,167 Sed se vi pensas pri kion la fundamentaj ideoj jen, 901 00:41:59,167 --> 00:42:00,500 eble ni povas turmentus tiu aparte. 902 00:42:00,500 --> 00:42:02,300 >> Do printf estas la nomo de la funkcio. 903 00:42:02,300 --> 00:42:04,960 Parentezoj, tiel malproksima, estas same kiel kion ni metis ĉirkaŭ 904 00:42:04,960 --> 00:42:07,005 La aĵoj ni pasante kiel enigoj al funkcio. 905 00:42:07,005 --> 00:42:08,921 Bone, nur arbitra homa konvencio. 906 00:42:08,921 --> 00:42:09,919 Uzu krampoj. 907 00:42:09,919 --> 00:42:12,460 Ene de tiuj krampoj ni estis metante citiloj, 908 00:42:12,460 --> 00:42:14,810 kaj do kiel cxeno "saluton mondo". 909 00:42:14,810 --> 00:42:18,160 >> Sed en tiu frua ekzemplo tre mallonge faris ni rigardas kun Scratch. 910 00:42:18,160 --> 00:42:22,590 Kaj ni havis la procento d, kion alian estis ene de tiuj krampoj 911 00:42:22,590 --> 00:42:23,730 ke mi vokis parole? 912 00:42:23,730 --> 00:42:24,230 Yeah. 913 00:42:24,230 --> 00:42:28,166 >> Publiko: Do ​​estas kion vi prenas [Inaudible] de ene [inaudible] 914 00:42:28,166 --> 00:42:30,200 kion tiuj [inaudible]? 915 00:42:30,200 --> 00:42:31,200 DAVID J. Malan: Ĝuste. 916 00:42:31,200 --> 00:42:32,700 Do ni havis la procento d. 917 00:42:32,700 --> 00:42:36,620 Sed tiam ni devis fermi citaĵo, komo, vendotablo. 918 00:42:36,620 --> 00:42:37,120 Ĝuste. 919 00:42:37,120 --> 00:42:40,680 Ni specifita kion ni volas fari kiel lokokupilon. 920 00:42:40,680 --> 00:42:44,621 Do kion mi faros ĉi tie komo Kion vi volas, ke mi metis? 921 00:42:44,621 --> 00:42:45,120 Publiko: S. 922 00:42:45,120 --> 00:42:46,828 DAVID J. Malan: S, ĉar s en tiu kazo 923 00:42:46,828 --> 00:42:48,700 estas la nomo de la stokado ujo. 924 00:42:48,700 --> 00:42:50,180 Ĝi estas la nomo de tiu glaso bovlo. 925 00:42:50,180 --> 00:42:53,610 Dum antaŭe estis nombrilo en tiu simpla Scratch ekzemplo ni rigardis. 926 00:42:53,610 --> 00:42:56,630 Do nun farinte du ŝanĝoj, lasu min zomi 927 00:42:56,630 --> 00:42:59,800 kaj provi ankoraŭfoje kompili tiun programon. 928 00:42:59,800 --> 00:43:01,596 >> Nun mi vidas ke kamufla lineo. 929 00:43:01,596 --> 00:43:03,470 Sed tio fakte nomo de la tradukilo. 930 00:43:03,470 --> 00:43:04,886 Tin estas la nomo de la tradukilo. 931 00:43:04,886 --> 00:43:07,100 Faru estas nur ŝparas min la kapdoloro de iam 932 00:43:07,100 --> 00:43:09,830 tajpado tiu longa freneza komando ekstere. 933 00:43:09,830 --> 00:43:14,900 Do nun se mi dot slash hello-1, Mi devas vidi "saluton, David." 934 00:43:14,900 --> 00:43:16,450 >> Bela underwhelming, kvankam, dekstra? 935 00:43:16,450 --> 00:43:18,158 Ni povis esti farita tio multe pli simple 936 00:43:18,158 --> 00:43:20,940 sen paroli pri variabloj kaj CS50.h kaj ĉiuj tion. 937 00:43:20,940 --> 00:43:23,080 Do ni faru ĝin iom pli interesa. 938 00:43:23,080 --> 00:43:31,010 >> Krom CS50.h, havi aĵojn kiel kordo 939 00:43:31,010 --> 00:43:34,550 deklaris, la CS50 biblioteko ankaŭ havas kelkajn funkciojn. 940 00:43:34,550 --> 00:43:38,520 Do ĝuste kiel antaŭ jaroj, iu skribis printf kaj metis ĝin en norma I / O.h 941 00:43:38,520 --> 00:43:39,530 kaj iu alia dosiero. 942 00:43:39,530 --> 00:43:44,010 >> Ni, la CS50 bastonon skribis funkcio nomata GetChar, GetDouble, GetFloat, 943 00:43:44,010 --> 00:43:47,610 GetInt, GetLongLong, GetString, kaj ni metu tiujn ene dosieron 944 00:43:47,610 --> 00:43:49,890 nomata CS50.h kaj CS50.c. 945 00:43:49,890 --> 00:43:51,880 Kaj ni metis ilin enen de la CS50 Appliance. 946 00:43:51,880 --> 00:43:53,880 Kaj homoj povas ankaŭ elŝuti ilin enreta se 947 00:43:53,880 --> 00:43:55,880 deziras meti ilin sur sian propraj komputiloj tiel. 948 00:43:55,880 --> 00:44:00,880 Kiu estas diri ke ni kreis funkcioj kiuj ricevas enigon el la uzanto. 949 00:44:00,880 --> 00:44:02,930 Mi ne scias kion ĉiuj de tiuj datumtipoj estas. 950 00:44:02,930 --> 00:44:06,490 GetInt estas speco de simpla, kiel ricevi entjero iel de la uzanto. 951 00:44:06,490 --> 00:44:09,980 Kaj GetString estas verŝajne kiel get vorto aux kondamno de la uzanto. 952 00:44:09,980 --> 00:44:11,770 >> Do ni enfokusigi tion. 953 00:44:11,770 --> 00:44:14,710 Kaj mi tuj iros reen en la aparaton kaj mi tuj iros antaŭen 954 00:44:14,710 --> 00:44:20,790 kaj savi la dosiero kiel, ni vokas ĝi hello-2.c kiel mia dua versio. 955 00:44:20,790 --> 00:44:23,030 Kaj ni faru kelkajn ŝanĝojn. 956 00:44:23,030 --> 00:44:25,800 >> Tiu tempo anstataŭ hard kodigo David, 957 00:44:25,800 --> 00:44:29,120 faras nekredeble konsekvenca sed underwhelming programo, 958 00:44:29,120 --> 00:44:32,640 kio se mi anstataŭ fari GetString? 959 00:44:32,640 --> 00:44:35,660 Nun rimarki GetString havas malferman parentezo, 960 00:44:35,660 --> 00:44:38,500 fermita parentezo, ĉar ĝi ne bezonas neniun enigaĵon. 961 00:44:38,500 --> 00:44:40,850 Ĝi simple tuj iros akiri ĉenon de la uzanto. 962 00:44:40,850 --> 00:44:42,460 >> Kaj nun unu vorton en alia sintakso. 963 00:44:42,460 --> 00:44:45,439 Punktokomojn nur fini linion de kodo. 964 00:44:45,439 --> 00:44:46,730 Vi ne bezonas ilin ĉie. 965 00:44:46,730 --> 00:44:48,896 Sed tio nur signifas min farita kun ĉi tiu linio de kodo. 966 00:44:48,896 --> 00:44:51,080 Lasu min movi al alia deklaro aŭ funkcio. 967 00:44:51,080 --> 00:44:53,010 String deklaras variablon. 968 00:44:53,010 --> 00:44:55,920 Kordo estas kiel diri donu al mi bovlon, bonvolu. 969 00:44:55,920 --> 00:44:57,940 Kaj lasu min metis ĉenon en ĝi. 970 00:44:57,940 --> 00:44:59,430 >> Kaj nun la egala signo. 971 00:44:59,430 --> 00:45:03,510 Kio estas la egalsigno esence ekvivalenta al? 972 00:45:03,510 --> 00:45:04,500 >> Publiko: Asigni. 973 00:45:04,500 --> 00:45:06,190 >> DAVID J. Malan: Jes, atribuante valoron. 974 00:45:06,190 --> 00:45:09,872 Do se mi, ekzemple, alvoko tiu funkcio GetString, 975 00:45:09,872 --> 00:45:12,830 kaj ni vidos en momento tio tuj instigas la uzanton por ŝnuro. 976 00:45:12,830 --> 00:45:17,810 Ĉi tio estas kiel lasi min tiam skribi D-al-v-i-d sur peco de papero. 977 00:45:17,810 --> 00:45:21,060 Kaj kiam mi diras kordo s egalas GetString, 978 00:45:21,060 --> 00:45:24,140 egala vere ne signifas egala en C programado. 979 00:45:24,140 --> 00:45:27,880 Ĝi signifas atribui la dekstra flanko al la maldekstra flanko. 980 00:45:27,880 --> 00:45:29,510 >> Do mi metis ĉenon. 981 00:45:29,510 --> 00:45:32,785 Kaj la egalsigno signifas meti ŝin en la stokado ujo nomata s. 982 00:45:32,785 --> 00:45:36,730 Kaj tiam pasas ĉi ekstere al printf por fakte faras lia afero. 983 00:45:36,730 --> 00:45:39,790 >> Do la fina rezulto tiam tuj rigardi iom malsama. 984 00:45:39,790 --> 00:45:40,840 Ni kreos hello-2. 985 00:45:40,840 --> 00:45:43,940 986 00:45:43,940 --> 00:45:45,260 Ĉu povus funkcii. 987 00:45:45,260 --> 00:45:46,450 Vi sekvante kune. 988 00:45:46,450 --> 00:45:47,940 Faru hello-2 funkciis. 989 00:45:47,940 --> 00:45:52,640 Dot slash hello-2, Enter. 990 00:45:52,640 --> 00:45:54,620 >> Mi ŝajnas havi senfinan buklo aŭ io. 991 00:45:54,620 --> 00:45:55,453 Nenio okazas. 992 00:45:55,453 --> 00:45:56,134 Kial? 993 00:45:56,134 --> 00:45:57,805 >> Publiko: Ĝi faras senfinan banton. 994 00:45:57,805 --> 00:45:59,430 DAVID J. Malan: ĝi estas malfinia ciklo. 995 00:45:59,430 --> 00:46:02,710 Ĝi estas speco de atendu por mi efektive provizas ĝin per kelkaj enigo. 996 00:46:02,710 --> 00:46:05,800 Do lasu min antaŭeniri kaj tajpu en David, kaj batis Enter. 997 00:46:05,800 --> 00:46:07,230 Kaj nun diras "saluton, David." 998 00:46:07,230 --> 00:46:09,040 Se mi kuri denove. 999 00:46:09,040 --> 00:46:11,530 Ni entajpu Rob, "saluton, Rob." 1000 00:46:11,530 --> 00:46:13,900 >> Nun tiu estas la plej malbona uzantinterfaco eterne. 1001 00:46:13,900 --> 00:46:16,110 La uzanto estas ŝajne supozita scii kion fari. 1002 00:46:16,110 --> 00:46:17,120 Sed ne gravas. 1003 00:46:17,120 --> 00:46:19,570 Uzante tiujn sama konstruaĵo blokoj same kiel en Scratch, 1004 00:46:19,570 --> 00:46:24,980 ni povas solvi tiun problemon kaj diru iu kiel via nomo bonvolu, dupunkto, 1005 00:46:24,980 --> 00:46:27,820 spaco, fermita citaĵo, proksima parentezo, punktokomo. 1006 00:46:27,820 --> 00:46:30,680 Tiel multa denove silliness kun la sintakso. 1007 00:46:30,680 --> 00:46:34,040 >> Sed rimarki Mi ĵus aldonis puzlo peco super ĉi tiu 1008 00:46:34,040 --> 00:46:35,280 kaj super tiu ĉi. 1009 00:46:35,280 --> 00:46:38,870 Do nun se mi rerun ĉi, saluton-2, Enter. 1010 00:46:38,870 --> 00:46:41,180 Atendu minuton. 1011 00:46:41,180 --> 00:46:41,830 Kio okazas? 1012 00:46:41,830 --> 00:46:43,570 Tio ne kondutas ajn malsame. 1013 00:46:43,570 --> 00:46:44,200 Yeah. 1014 00:46:44,200 --> 00:46:46,010 >> Publiko: Vi ne kuris fari denove. 1015 00:46:46,010 --> 00:46:47,968 >> DAVID J. Malan: Mi ne kuri fari denove, dekstre. 1016 00:46:47,968 --> 00:46:49,430 Do mi ŝanĝis mian fontkodon. 1017 00:46:49,430 --> 00:46:50,638 Sed denove, ne estas tiu fluo. 1018 00:46:50,638 --> 00:46:54,530 Fontkodo per la tradukilo donas vi novan celkodo aŭ _0s_ kaj _1s_. 1019 00:46:54,530 --> 00:47:00,209 Do mi bezonas reale rerun make hello-2 Entajpu. 1020 00:47:00,209 --> 00:47:01,750 OK, iu ŝajnas esti okazinta. 1021 00:47:01,750 --> 00:47:04,220 Dot slash hello-2. 1022 00:47:04,220 --> 00:47:05,390 Via nomo bonvolu. 1023 00:47:05,390 --> 00:47:09,990 Kaj esti klara nun, kial la kursoron sur la sama linio? 1024 00:47:09,990 --> 00:47:10,490 Ĝuste. 1025 00:47:10,490 --> 00:47:13,020 Mi ne metis la backslash n supren tie en mia kodo. 1026 00:47:13,020 --> 00:47:16,110 Do nun mi povas skribi iu kiel Daven, Enter. 1027 00:47:16,110 --> 00:47:18,710 Mi povas kuri ĝin denove kaj tajpu iu kiel Gabe, Enter, 1028 00:47:18,710 --> 00:47:22,250 kaj ni preni malsaman programon denove kaj denove kaj denove. 1029 00:47:22,250 --> 00:47:28,940 >> Nun finfine ni tuj bezonas uzi kelkajn malsamajn kapablojn. 1030 00:47:28,940 --> 00:47:32,860 Ni bezonas enkonduki finfine iuj kondiĉojn por fari tion kondiĉe. 1031 00:47:32,860 --> 00:47:35,550 Eble loops do ni povas fari aferojn denove kaj denove. 1032 00:47:35,550 --> 00:47:38,220 >> Eble estus bela se ni povus apliki niajn proprajn funkciojn, 1033 00:47:38,220 --> 00:47:41,355 kiel ni povus apliki niajn proprajn printf aŭ nia propra versio de GetString 1034 00:47:41,355 --> 00:47:45,870 kaj GetFlow, ĉar finfine eĉ uzante ĉi komandlinio medio 1035 00:47:45,870 --> 00:47:49,780 ni povas fari eĉ la plej vide interesa aferoj. 1036 00:47:49,780 --> 00:47:51,950 >> Efektive en konkludo lasu min fari tion. 1037 00:47:51,950 --> 00:47:54,020 Mi tuj iros antaŭen kaj fermi tiujn fenestrojn 1038 00:47:54,020 --> 00:47:57,400 kaj malfermi tiu piktogramo tie, kio estas nur granda 1039 00:47:57,400 --> 00:48:00,020 versio de tiu inkrustita fina fenestro. 1040 00:48:00,020 --> 00:48:02,329 Do Gedit havas ne nur la loko por Mia kodo, 1041 00:48:02,329 --> 00:48:05,620 sed ankaŭ konstruita en fina fenestro, la nigra kaj blanka fenestro kie mi povas kuri 1042 00:48:05,620 --> 00:48:06,230 ordonas. 1043 00:48:06,230 --> 00:48:08,600 >> Mi ĵus okazis malfermi pli grandan version de tiu. 1044 00:48:08,600 --> 00:48:11,170 Kaj nun mi iros en la dosierujo ke mi jam 1045 00:48:11,170 --> 00:48:13,150 meti en antaŭas sur la kurso de afiŝinto. 1046 00:48:13,150 --> 00:48:16,720 Kaj mi tuj iros antaŭen kaj malfermi dosieron nomatan thadgavin.c, 1047 00:48:16,720 --> 00:48:18,710 kiu estis skribita de iu alia. 1048 00:48:18,710 --> 00:48:21,220 >> Kaj se ni rigardas tiun, tiu ne estas la tipo de kodo 1049 00:48:21,220 --> 00:48:24,370 ni skribos ekde La celo de ĉi tiu kodo 1050 00:48:24,370 --> 00:48:28,450 estis skribi la plej belaj rigardas kodo kiu li aŭ ŝi povus, 1051 00:48:28,450 --> 00:48:31,290 senkonsidere ĉu aŭ ne alia homo povus iam 1052 00:48:31,290 --> 00:48:33,660 kompreni tiun kodon. 1053 00:48:33,660 --> 00:48:37,050 >> Ja, ĉiu jaro estas kio estas nomata obfuscated C konkurson, kiu 1054 00:48:37,050 --> 00:48:39,570 Estas por reala geeks kiu skribas kodo, ke neniu alia povas legi, 1055 00:48:39,570 --> 00:48:42,050 sed kiu faras ion aŭ vere simplaj aŭ vere mirinda. 1056 00:48:42,050 --> 00:48:43,890 Kaj ni pensis ke ni konkludi kun tiu rigardo 1057 00:48:43,890 --> 00:48:48,300 en iu kiu estas sufiĉe miriga eble vi vidis iam antaŭe. 1058 00:48:48,300 --> 00:48:52,650 Sed ni finos pri tiu noto, skalara oblikvo, thadgavin. 1059 00:48:52,650 --> 00:48:53,860 Ĉi tiam estas kio atendas. 1060 00:48:53,860 --> 00:48:57,140 1061 00:48:57,140 --> 00:48:58,500 >> Estas tio por CS50. 1062 00:48:58,500 --> 00:48:59,935 Ni vidos vin merkredon. 1063 00:48:59,935 --> 00:49:04,284 1064 00:49:04,284 --> 00:49:10,016 >> [MUZIKO Ludante] 1065 00:49:10,016 --> 00:53:31,883