1 00:00:00,000 --> 00:00:11,952 2 00:00:11,952 --> 00:00:13,800 >> Дејвид Џ MALAN: Значи ова е CS50. 3 00:00:13,800 --> 00:00:18,970 И тоа беше CS50 е Колтон Ogden, за повеќе од кој е музика може да 4 00:00:18,970 --> 00:00:22,820 преземете во soundcloud.com/cs50. 5 00:00:22,820 --> 00:00:26,690 >> Така, денес ние се фокусира уште повеќе на уметноста на програмирање. 6 00:00:26,690 --> 00:00:28,980 И ние се каде што замина минатата недела, фокусирајќи се 7 00:00:28,980 --> 00:00:31,660 на нула, што беше тоа графички програмскиот јазик. 8 00:00:31,660 --> 00:00:35,490 И да ги преземат работите надолу на пониско ниво, со користење на повеќе традиционални програмирање 9 00:00:35,490 --> 00:00:38,420 јазик познат како C. Но на патот, сфаќајќи 10 00:00:38,420 --> 00:00:40,730 дека истите идеи ние зборуваше за минатиот петок 11 00:00:40,730 --> 00:00:44,390 ќе се повтори не само во оваа јазик C, но во повеќето секој друг 12 00:00:44,390 --> 00:00:46,350 дека ние се погледне на овој семестар. 13 00:00:46,350 --> 00:00:50,247 >> Па ние ова го нарече нешто тука она што минатиот пат? 14 00:00:50,247 --> 00:00:51,830 Ова е претставник на една изјава. 15 00:00:51,830 --> 00:00:53,080 Па ние ова го нарече соопштението. 16 00:00:53,080 --> 00:00:54,100 И тоа го прави нешто. 17 00:00:54,100 --> 00:00:56,910 Тоа е инструкција дека компјутер или нула може да се изврши. 18 00:00:56,910 --> 00:00:59,910 И оттука, да, исто така, да почне повикувајќи нешто како ова функција, 19 00:00:59,910 --> 00:01:02,070 од причини што наскоро ќе видиме. 20 00:01:02,070 --> 00:01:03,681 >> Во меѓувреме, видовме вакви работи. 21 00:01:03,681 --> 00:01:05,680 И овие се обично познат како она што конструира? 22 00:01:05,680 --> 00:01:06,240 >> ПУБЛИКАТА: јамка. 23 00:01:06,240 --> 00:01:06,860 >> Дејвид Џ MALAN: Значи јамка. 24 00:01:06,860 --> 00:01:07,943 Така прилично јасна. 25 00:01:07,943 --> 00:01:09,470 Тоа буквално го прави она што го кажува. 26 00:01:09,470 --> 00:01:12,210 И во нула, ако сакате да ставам повеќе загатка парчиња во таму, 27 00:01:12,210 --> 00:01:13,950 парче ќе расте за да го собере. 28 00:01:13,950 --> 00:01:16,790 И ќе видиме дека во C можеме да го стори истото. 29 00:01:16,790 --> 00:01:20,000 >> Друг вид на јамка, иако, во нула може да биде засекогаш, 30 00:01:20,000 --> 00:01:21,820 или има било кој број на други пристапи. 31 00:01:21,820 --> 00:01:24,150 Но, ајде да земе повеќе генералист изглед, со лице 32 00:01:24,150 --> 00:01:27,402 тоа е веројатно доста познато, на јамки поопшто. 33 00:01:27,402 --> 00:01:29,110 Марк Цукерберг: Еден нешто што компјутерите 34 00:01:29,110 --> 00:01:31,860 се навистина добри во е повторување команди. 35 00:01:31,860 --> 00:01:33,910 Како човек, ќе добие навистина досадно ако 36 00:01:33,910 --> 00:01:36,730 мораше да го прават истото многу пати по ред. 37 00:01:36,730 --> 00:01:40,530 Но, компјутерот може да го прават истото милиони па дури и милијарди пати, 38 00:01:40,530 --> 00:01:43,290 и не се досадуваат, и да можат да го спроведе навистина добро. 39 00:01:43,290 --> 00:01:45,650 >> Така на пример, ако сакаше да сакаат сите 40 00:01:45,650 --> 00:01:48,840 на Фејсбук среќен роденден од нив испраќање на е-маил, 41 00:01:48,840 --> 00:01:51,550 тоа би можело да ме однесе повеќе од еден век да всушност пишува надвор 42 00:01:51,550 --> 00:01:53,000 сите оние пораки за секого. 43 00:01:53,000 --> 00:01:57,780 Но со само неколку линии на код, што можам имаат систем испрати е-маил за секој 44 00:01:57,780 --> 00:01:59,930 на Фејсбук кои сакаат им среќен роденден. 45 00:01:59,930 --> 00:02:02,730 Значи тоа е она што јамки и зошто тие се вредни и нешто 46 00:02:02,730 --> 00:02:04,740 дека компјутерите можат да прават многу добро. 47 00:02:04,740 --> 00:02:05,630 >> Дејвид Џ MALAN: Значи, ако сте биле на примателот 48 00:02:05,630 --> 00:02:07,820 на некои од CS50 и Простор Dropbox на крајот, 49 00:02:07,820 --> 00:02:10,590 тоа е всушност токму она што ние направи, употребувајќи го кодот доста како тоа. 50 00:02:10,590 --> 00:02:12,600 Ние во суштина имаат големо табела во која 51 00:02:12,600 --> 00:02:15,016 луѓе се внесување на нивните имиња и-мејл адреси. 52 00:02:15,016 --> 00:02:18,160 И ние напиша мал малку на кодот кој може да iterate во текот на тие адреси 53 00:02:18,160 --> 00:02:21,860 и плукаат уникатен адреси во случај некој поднесени неколку пати. 54 00:02:21,860 --> 00:02:25,120 А потоа, ние испрати еден автоматски е-мејл од бот CS50 е, 55 00:02:25,120 --> 00:02:27,190 вклучувајќи забава код. 56 00:02:27,190 --> 00:02:29,290 >> Сега ние, исто така, погледна овој изградба последен пат. 57 00:02:29,290 --> 00:02:33,100 И ова е особено пример за она што? 58 00:02:33,100 --> 00:02:35,050 Значи, да, Булова израз. 59 00:02:35,050 --> 00:02:37,050 И формата се подразбира да го фати тоа како добро. 60 00:02:37,050 --> 00:02:39,966 Сите такви прашања на формираат точно или неточно во гребење 61 00:02:39,966 --> 00:02:41,590 ќе изгледа малку нешто како ова. 62 00:02:41,590 --> 00:02:43,200 И ние го нарекуваме овој Булова израз. 63 00:02:43,200 --> 00:02:46,170 Тоа е навистина точно или неточно, да или не. 64 00:02:46,170 --> 00:02:49,150 Тоа е начин на одговарање на прашање. 65 00:02:49,150 --> 00:02:52,420 >> А во меѓувреме можете да го користите овие Булова изрази во внатрешноста на конструкции 66 00:02:52,420 --> 00:02:54,720 како овие, кои од Се разбира постојат услови 67 00:02:54,720 --> 00:02:57,259 или гранки, пословичен вилушки на патот. 68 00:02:57,259 --> 00:02:59,550 И тие може да се гледа само како ова, но тие исто така може да 69 00:02:59,550 --> 00:03:02,080 се elses поврзани со нив. 70 00:03:02,080 --> 00:03:05,820 И ти всушност може да има три начин вилушка во патот или четири начин вилушка 71 00:03:05,820 --> 00:03:08,340 на патот, со едноставно вгнездени овие работи, 72 00:03:08,340 --> 00:03:10,510 како што ќе видите во гребење ако веќе не сте. 73 00:03:10,510 --> 00:03:13,550 И како можете да го направите во C, како и. 74 00:03:13,550 --> 00:03:16,810 >> Ајде да се земе друг генералист погледнеме еден alumnist, како и, што 75 00:03:16,810 --> 00:03:21,490 може да предизвика поинаков пристап на овие работи вика услови. 76 00:03:21,490 --> 00:03:24,060 >> Бил Гејтс: Луѓето прават одлуки секој ден. 77 00:03:24,060 --> 00:03:27,530 На пример, пред да одите надвор да вид на имаат ако изјава во која се вели, 78 00:03:27,530 --> 00:03:31,480 дали врне дожд тогаш јас треба да се добие мојата јакна. 79 00:03:31,480 --> 00:03:36,820 И компјутери се неверојатни еднаш ќе одлучи оние видови на извештаи, 80 00:03:36,820 --> 00:03:42,280 дека тие сигурно може да се изврши тие работи на неверојатни брзина. 81 00:03:42,280 --> 00:03:48,240 И така компјутерска програма навистина е малку математика и некои 82 00:03:48,240 --> 00:03:53,050 ако извештаи каде одлуката добива направен. 83 00:03:53,050 --> 00:03:55,020 >> Дејвид Џ MALAN: Значи како што можеби знаете, тоа е 84 00:03:55,020 --> 00:03:57,880 луѓе како Бил Гејтс, Пол Ален, и други 85 00:03:57,880 --> 00:04:00,240 дека навистина започна на т.н. персонален компјутер 86 00:04:00,240 --> 00:04:01,990 револуција пред неколку години. 87 00:04:01,990 --> 00:04:04,140 Мислев дека, пред да нурне во некои administrivia, 88 00:04:04,140 --> 00:04:09,920 ние би се однесуваат на приказна од Албакерки, Ново Мексико музеј на природна историја 89 00:04:09,920 --> 00:04:13,650 и науката каде што некои од Бил Гејтс и најстарите приказни Пол Ален 90 00:04:13,650 --> 00:04:17,470 се раскажува како што го имаме сега денешната компјутери и Macs и многу повеќе. 91 00:04:17,470 --> 00:04:22,390 За ова, сепак, ние треба двајца волонтери кои имаат многу добра нарација гласови 92 00:04:22,390 --> 00:04:23,735 да се прочита сценариото на глас. 93 00:04:23,735 --> 00:04:25,530 >> Добро, како за во таму. 94 00:04:25,530 --> 00:04:26,120 Ајде до. 95 00:04:26,120 --> 00:04:27,770 И како за пред тука. 96 00:04:27,770 --> 00:04:28,340 Ајде надолу. 97 00:04:28,340 --> 00:04:29,600 Се земе вашата места тука. 98 00:04:29,600 --> 00:04:32,444 Како вие момци излезе, неколку на административни пораки. 99 00:04:32,444 --> 00:04:34,360 sectioning, процесот за избор на секција, 100 00:04:34,360 --> 00:04:36,068 ќе започне оваа Среда до петок. 101 00:04:36,068 --> 00:04:38,400 Повеќе за тоа оваа доаѓаат Среда во предавање. 102 00:04:38,400 --> 00:04:41,770 >> Супер делови, пак, се нешто што ние нудиме следната недела 103 00:04:41,770 --> 00:04:45,310 при што целата класа е поканет да учествуваат во прилично големи размери 104 00:04:45,310 --> 00:04:47,690 дела, еден повеќе удобен, еден помалку удобно. 105 00:04:47,690 --> 00:04:51,340 И ние ќе го објави детали на тоа, како и, подоцна оваа недела. 106 00:04:51,340 --> 00:04:53,310 >> Во меѓувреме делови, самите себе, ќе започне 107 00:04:53,310 --> 00:04:57,241 во три од курсот недела, нула индекс, што значи тоа се неколку недели 108 00:04:57,241 --> 00:04:57,740 надвор. 109 00:04:57,740 --> 00:04:58,450 Па не се грижи. 110 00:04:58,450 --> 00:05:01,014 Уште не сте се пропушти нешто заедно оние линии. 111 00:05:01,014 --> 00:05:03,930 Во меѓувреме, во меѓувреме, ако имате било какви прашања административно, 112 00:05:03,930 --> 00:05:08,120 е-мејл мене и Девон и Габе и Роб на оваа адреса тука. 113 00:05:08,120 --> 00:05:10,320 >> И на крај, проблемот поставени 0 е, се разбира, надвор. 114 00:05:10,320 --> 00:05:12,320 Можеби тоа го забележал на веб-страницата на курсот. 115 00:05:12,320 --> 00:05:14,840 Тоа треба да ви обезбеди со сите одговори на прашања 116 00:05:14,840 --> 00:05:18,250 може да има на патот за да започнете со проблемот во собата. 117 00:05:18,250 --> 00:05:21,430 Но, ако се најдете потреба од подадена рака, 118 00:05:21,430 --> 00:05:25,020 со сите средства да присуствува на работното време, Понеделник, вторник, среда, четврток 119 00:05:25,020 --> 00:05:27,290 на оваа недела во вечерните часови во четири јадење сали. 120 00:05:27,290 --> 00:05:31,650 Видите дека рачно таму за деталите каде работното време ќе биде. 121 00:05:31,650 --> 00:05:34,000 >> Сега ајде да ги исполнат нашите двајца гости тука и денес. 122 00:05:34,000 --> 00:05:34,740 Што е вашето име? 123 00:05:34,740 --> 00:05:35,290 >> Џеј PAUL: Џеј Павле. 124 00:05:35,290 --> 00:05:36,880 >> Дејвид Џ MALAN: Џеј Павле, убаво да ви се исполнат. 125 00:05:36,880 --> 00:05:37,330 >> ХИКАРИ: Hikari. 126 00:05:37,330 --> 00:05:37,975 >> Дејвид Џ MALAN: Hikari? 127 00:05:37,975 --> 00:05:38,250 >> ХИКАРИ: Hikari. 128 00:05:38,250 --> 00:05:38,810 >> Дејвид Џ MALAN: Hikari. 129 00:05:38,810 --> 00:05:39,790 Ница да ви се исполнат, како и. 130 00:05:39,790 --> 00:05:42,123 Џеј Павле и Hikari имаат во пред нив на овие музички 131 00:05:42,123 --> 00:05:45,100 стои две сценарија дека јас печатени од ова утро од Ново Мексико 132 00:05:45,100 --> 00:05:46,692 музеј на природна историја и наука. 133 00:05:46,692 --> 00:05:48,400 И она што мислев Јас би го сторила на надземни 134 00:05:48,400 --> 00:05:52,830 е ја придружува вашиот рецитирање на сценариото и оваа историја 135 00:05:52,830 --> 00:05:54,700 со некои визуелни слики, нема изненадувања. 136 00:05:54,700 --> 00:05:57,512 >> И она што го направив во однапред е prehighlight на вашата скрипта 137 00:05:57,512 --> 00:05:59,470 што треба да го прочитате, и она што треба да го прочитате. 138 00:05:59,470 --> 00:06:00,920 И ние ќе суштина само алтернативни ставови. 139 00:06:00,920 --> 00:06:03,211 Па тоа е многу како може да го направиле во англиски класа. 140 00:06:03,211 --> 00:06:06,875 Тоа е навистина принудат на публиката да веруваат во својата приказна тука. 141 00:06:06,875 --> 00:06:07,600 Ќе ние? 142 00:06:07,600 --> 00:06:13,272 Значи приказната е тука, имаме ОСНОВНИ, а почнува во Кембриџ. 143 00:06:13,272 --> 00:06:18,750 >> Џеј PAUL: Тоа беше зима 1974 година, во Кембриџ, Масачусетс 144 00:06:18,750 --> 00:06:20,240 каде што зимите може да биде ладно. 145 00:06:20,240 --> 00:06:22,800 А брада, долги коса колеџ осипување име 146 00:06:22,800 --> 00:06:27,280 Пол Ален беше drudging низ Харвард Квадратни, се апсорбира во своите мисли. 147 00:06:27,280 --> 00:06:31,050 Неговата главна преокупација во тие денови беше како да се добие неговиот пријател, Бил Гејтс, 148 00:06:31,050 --> 00:06:34,974 да се откажат од училиште и ќе во бизнис со него. 149 00:06:34,974 --> 00:06:37,890 ХИКАРИ: Двете веќе нема преку голем број на бизнис потфати 150 00:06:37,890 --> 00:06:40,850 заедно, со почеток во Бреговина училиште во Сиетл, каде што 151 00:06:40,850 --> 00:06:45,220 тие биле платени во слободен компјутер време на тестирање на ПДП-10 компјутер на локално време 152 00:06:45,220 --> 00:06:46,580 споделување на компанијата. 153 00:06:46,580 --> 00:06:50,930 Најновите план бил да се откажат од училиште и формира софтверска компанија. 154 00:06:50,930 --> 00:06:53,440 Ален го напушти Вашингтон Државниот универзитет. 155 00:06:53,440 --> 00:06:58,380 Но, во последен момент, Гејтс одлучи да се држиме со Харвард. 156 00:06:58,380 --> 00:07:02,080 >> Џеј PAUL: Тој ден, преминувањето на Харвард Плоштад, Ален забележан во јануари, 157 00:07:02,080 --> 00:07:07,530 1975 прашање на Популарни Електроника со земјата запирање наслов, 158 00:07:07,530 --> 00:07:11,900 Првата во светот minicomputer комплет да ривал комерцијални модели. 159 00:07:11,900 --> 00:07:14,430 Под наслов беше слика на една мала кутија 160 00:07:14,430 --> 00:07:16,160 украсени со светилки и прекинувачи. 161 00:07:16,160 --> 00:07:19,770 Тоа беше наречен MITS Алтаир 8800. 162 00:07:19,770 --> 00:07:24,100 И Ален знаеше ова беше тоа што тој бил барате. 163 00:07:24,100 --> 00:07:26,350 >> ХИКАРИ: Денови на што следеше дискусија. 164 00:07:26,350 --> 00:07:30,170 Ален и Гејтс сфати Значењето на Алтаир. 165 00:07:30,170 --> 00:07:32,480 Тие разговараа често за микропроцесори 166 00:07:32,480 --> 00:07:35,250 и се чека да види што ќе се направи со нив. 167 00:07:35,250 --> 00:07:39,770 Сега имаше minicomputer комплет на на насловната страница на Популарни Електроника. 168 00:07:39,770 --> 00:07:42,830 Тоа очигледно немаше софтвер сепак. 169 00:07:42,830 --> 00:07:46,830 Тие замисли нација на програмери опаѓачки на дозволи. 170 00:07:46,830 --> 00:07:49,590 И така тие се нарекува, Ед Робертс, на чело на компанијата, 171 00:07:49,590 --> 00:07:53,330 кои тврдат дека имаат верзија на Basic Програмирање јазик речиси подготвен 172 00:07:53,330 --> 00:07:54,710 за Алтаир. 173 00:07:54,710 --> 00:07:55,570 Тие не. 174 00:07:55,570 --> 00:07:58,910 И Roberts мора да знае тие не. 175 00:07:58,910 --> 00:08:03,170 Тој е добивање на 10 повици на ден од луѓе кои имале основно речиси готов. 176 00:08:03,170 --> 00:08:05,570 И неговата вообичаениот одговор беше "Првиот човек 177 00:08:05,570 --> 00:08:11,090 кој покажува со работна ОСНОВНИ добива договорот. " 178 00:08:11,090 --> 00:08:13,910 >> Џеј PAUL: Гејтс и Ален никогаш не видел Алтаир. 179 00:08:13,910 --> 00:08:17,600 Тие не ни го видел Интел 8080 микропроцесор 180 00:08:17,600 --> 00:08:19,060 во срцето на Алтаир. 181 00:08:19,060 --> 00:08:21,470 Но, неколку години порано Ален го напишал програма 182 00:08:21,470 --> 00:08:25,220 на супер компјутер кој имитиран операцијата на претходен Intel 183 00:08:25,220 --> 00:08:26,217 микропроцесор. 184 00:08:26,217 --> 00:08:28,300 И овој пат тие ќе го прават истото. 185 00:08:28,300 --> 00:08:31,530 186 00:08:31,530 --> 00:08:34,380 >> ХИКАРИ: Со Интел 8080 упатството на своја страна, 187 00:08:34,380 --> 00:08:37,770 Ален седна на Харвард ПДП-10 компјутер 188 00:08:37,770 --> 00:08:42,010 и напиша на емулатор и софтвер алатки потребни за да се направи програмирањето. 189 00:08:42,010 --> 00:08:45,820 Во меѓувреме Гејтс престанавме да одиме на часови и се предаде 190 00:08:45,820 --> 00:08:48,120 на дизајнирање на основните, користење на секој трик 191 00:08:48,120 --> 00:08:53,130 знаеше да го добиете големина долу 4 килобајти. 192 00:08:53,130 --> 00:08:55,870 >> Џеј PAUL: Од во Албакерки, Ед Робертс доби повик од Гејтс 193 00:08:55,870 --> 00:08:59,754 прашуваат за детали за тоа како Алтаир ракува специфични рутини. 194 00:08:59,754 --> 00:09:01,170 Никој никогаш не побара досега. 195 00:09:01,170 --> 00:09:02,670 И Робертс почна да се заинтересираат. 196 00:09:02,670 --> 00:09:05,240 197 00:09:05,240 --> 00:09:07,970 >> ХИКАРИ: Со развојот алатки и дизајн подготвени, 198 00:09:07,970 --> 00:09:10,780 Гејтс и Ален напиша кодот на ПДП-10, 199 00:09:10,780 --> 00:09:16,060 регрутирање друго Харвард студент, Монте Davidoff, за да напишете математика рутини. 200 00:09:16,060 --> 00:09:19,450 По финалната вечер на програмирање, Ален се качил на авион 201 00:09:19,450 --> 00:09:22,970 за реализација на нивните основни да дозволи. 202 00:09:22,970 --> 00:09:25,800 Тој помина авионот исплива од загрижувачка. 203 00:09:25,800 --> 00:09:28,490 И назад во Кембриџ Гејтс е загрижувачка. 204 00:09:28,490 --> 00:09:32,100 Тие се тестираат своите основни и тоа работел на емулатор. 205 00:09:32,100 --> 00:09:35,444 Но, што ако емулатор е во ред? 206 00:09:35,444 --> 00:09:37,360 Џеј PAUL: Како авионот пристапи Албакерки, 207 00:09:37,360 --> 00:09:40,070 Ален сфати дека нивните ОСНОВНИ, сега уредно содржани 208 00:09:40,070 --> 00:09:42,460 на мал ролна удирани со тупаници хартија лента, ќе 209 00:09:42,460 --> 00:09:44,970 да е бескорисен без посебна програма, наречена подигнувач, дека 210 00:09:44,970 --> 00:09:47,550 ќе му каже на Алтаир како за да го прочитате хартија лента суштество 211 00:09:47,550 --> 00:09:49,620 хранат во телетип машина. 212 00:09:49,620 --> 00:09:52,970 , Го извади својот лаптоп и брзо напиша нешто надолу програма натоварувач 213 00:09:52,970 --> 00:09:56,819 во Собранието јазик, а потоа рачно преведе дека во 1S и 0-ти 214 00:09:56,819 --> 00:09:57,985 Алтаир би се разбере. 215 00:09:57,985 --> 00:10:00,530 216 00:10:00,530 --> 00:10:03,830 >> ХИКАРИ: Ален очекував чиста, малку, високо технолошка компанија 217 00:10:03,830 --> 00:10:05,470 се кандидира од страна на мажите во деловни костуми. 218 00:10:05,470 --> 00:10:09,210 Па тој беше изненаден кога Робертс исполнети него на аеродромот гледа како ранчот 219 00:10:09,210 --> 00:10:10,270 рака. 220 00:10:10,270 --> 00:10:12,070 Робертс исто така беше изненаден. 221 00:10:12,070 --> 00:10:16,340 Кога тој падна на Харвард програмер во скапи хотели, 222 00:10:16,340 --> 00:10:20,790 Ален мораше да признае дека тој не може да си дозволи собата. 223 00:10:20,790 --> 00:10:24,510 >> Џеј PAUL: MITS, сама по себе, беше се наоѓа во бајат лента трговски центар. 224 00:10:24,510 --> 00:10:27,040 Во внатрешноста на преполни Workbench беше Алтаир 225 00:10:27,040 --> 00:10:30,390 натоварен со 5 килобајти на меморија и поврзан со кабел 226 00:10:30,390 --> 00:10:32,030 на телетип машина. 227 00:10:32,030 --> 00:10:37,200 Робертс и главен инженер, Бил Јејтс, чекаше очекување 228 00:10:37,200 --> 00:10:40,660 како Ален toggled својот натоварувач програма во Алтаир. 229 00:10:40,660 --> 00:10:44,980 На телетип започна стабилно, како што влечат на хартија лента преку лента читателот. 230 00:10:44,980 --> 00:10:47,215 Тоа траеше можеби 15 минути да се вчита на програмата. 231 00:10:47,215 --> 00:10:52,110 Тогаш телетип нагло печатени меморија брза, тогаш подготвен брза, 232 00:10:52,110 --> 00:10:55,340 и Ален почна пишување неколку тест команди. 233 00:10:55,340 --> 00:10:57,400 Да изненадување на сите, софтверот работел. 234 00:10:57,400 --> 00:10:58,525 Имаше грешки, се разбира. 235 00:10:58,525 --> 00:11:02,070 Но, главната работа беше тоа работел. 236 00:11:02,070 --> 00:11:06,570 >> ХИКАРИ: Подоцна, на нивниот пат кон 3,00 $ ручек во Панчо е, оса долета 237 00:11:06,570 --> 00:11:10,470 во прозорецот на пикап камиони и искасаа Ален на раката. 238 00:11:10,470 --> 00:11:13,070 Но, во тој момент ништо не би можеле да ги расипат расположението. 239 00:11:13,070 --> 00:11:17,210 Алтаир сега ја имаше својата Basic, Првиот комерцијален софтвер за дома 240 00:11:17,210 --> 00:11:23,260 компјутер, направени од страна на Пол Ален и Бил Гејтс, деловното работење како на Microsoft. 241 00:11:23,260 --> 00:11:25,336 >> Дејвид Џ MALAN: Многу благодарение на нашите две читателите. 242 00:11:25,336 --> 00:11:30,690 >> [Аплауз] 243 00:11:30,690 --> 00:11:32,520 >> Дејвид Џ MALAN: Сега имате вашиот избор, 244 00:11:32,520 --> 00:11:35,880 пред да заминете, на светликаво или сјај во dark-- ох, 245 00:11:35,880 --> 00:11:40,810 почекате една секунда, wait-- светликаво и светат во темница слон 246 00:11:40,810 --> 00:11:42,534 од CS50 е Ченг Гонг. 247 00:11:42,534 --> 00:11:43,450 ХИКАРИ: Aw, ви благодарам. 248 00:11:43,450 --> 00:11:45,324 Дејвид Џ MALAN: Сите право, ти благодарам многу. 249 00:11:45,324 --> 00:11:49,855 [Аплауз] 250 00:11:49,855 --> 00:11:51,105 Дејвид Џ MALAN: Значи вистинска приказна. 251 00:11:51,105 --> 00:11:54,380 Ова е да се каже дека сите овие машини и леснотијата со која ние 252 00:11:54,380 --> 00:11:56,270 ги користат сега и да ги преземат здраво за готово, навистина 253 00:11:56,270 --> 00:12:00,070 почна тука, само неколку чекори од овој вистински театар. 254 00:12:00,070 --> 00:12:03,930 И сега денес, ако не сте биле, ова е Максвел Дворкин, компјутерот 255 00:12:03,930 --> 00:12:05,810 науки зграда, исто така зад аголот. 256 00:12:05,810 --> 00:12:09,760 И на вториот кат од овој зграда не висат три страници 257 00:12:09,760 --> 00:12:12,740 од оригиналниот извор кодот кој Бил Гејтс и Пол Ален напиша. 258 00:12:12,740 --> 00:12:14,770 Всушност, ако користењето зумирате во што можете да видите не само што 259 00:12:14,770 --> 00:12:17,350 нивните имиња во оригинални тип, но, исто така, 260 00:12:17,350 --> 00:12:22,100 своите потписи дека тие украсена со неколку години назад, кога тие последно угости. 261 00:12:22,100 --> 00:12:25,800 >> Но, она што е особено привлечна за ова е тоа што е утврдено да се направи 262 00:12:25,800 --> 00:12:29,760 е да се напише програма која би овозможи на другите луѓе да се напише 263 00:12:29,760 --> 00:12:30,950 свои програми. 264 00:12:30,950 --> 00:12:34,280 Во тоа време сите таму беше со овој Алтаир машина направени од страна на дозволи. 265 00:12:34,280 --> 00:12:40,020 И сите тие се потребни беше на некој начин на што го прави лесен за хобисти и луѓето 266 00:12:40,020 --> 00:12:45,300 како нас во оваа просторија да всушност програма дека без да мора разбирање 267 00:12:45,300 --> 00:12:49,060 Асемблерски код, или машина кодот, или не дај Боже, 0-ти и 1S. 268 00:12:49,060 --> 00:12:51,190 Ние програмери, како и оние кои се во оваа соба, ние 269 00:12:51,190 --> 00:12:54,070 сакате да бидете во можност да го изразат се многу повеќе како псевдо код 270 00:12:54,070 --> 00:12:57,330 дури и ако тоа е малку повеќе гнида пребирливи отколку што зборуваше минатата недела. 271 00:12:57,330 --> 00:13:00,970 Ние не сакаме да се напише кодот како овој, кои Пол Ален и Бил Гејтс не. 272 00:13:00,970 --> 00:13:04,850 Ние, наместо тоа, сакате да се напише код кој изгледа малку повеќе корисник пријателски. 273 00:13:04,850 --> 00:13:07,150 >> Сега ова е јазик познат како ОСНОВНИ. 274 00:13:07,150 --> 00:13:11,497 И броевите на линијата постојат она што го користите едноставно брои линии на код 275 00:13:11,497 --> 00:13:12,330 дека сте пишување. 276 00:13:12,330 --> 00:13:14,038 Ние дури и не мора да се го направите тоа овие денови. 277 00:13:14,038 --> 00:13:16,060 Но може да се види тука како ПРИНТ "Здраво, свет" 278 00:13:16,060 --> 00:13:18,660 навистина ќе веројатно печати само тоа. 279 00:13:18,660 --> 00:13:22,710 И така што Бил и Павле беше поттикне луѓето да се напише кодот вака 280 00:13:22,710 --> 00:13:27,240 наместо of-- ако се погледне на компјутерски науки wall-- кодот вака. 281 00:13:27,240 --> 00:13:29,290 >> Всушност, CS50 неодамна имаа можност 282 00:13:29,290 --> 00:13:32,540 да се седне со професор Хари Луис во Компјутерски науки оддел, кој 283 00:13:32,540 --> 00:13:34,640 всушност учи Бил Гејтс пред неколку години, 284 00:13:34,640 --> 00:13:38,460 и стои тука пред овие три страници на извадоци. 285 00:13:38,460 --> 00:13:39,560 Ајде да ги разгледаме. 286 00:13:39,560 --> 00:13:45,520 >> Хари Луис: Што имаме овде е листата на почетокот на парче софтвер 287 00:13:45,520 --> 00:13:50,240 напишани од страна на Бил Гејтс и Пол Ален, основачите на Мајкрософт. 288 00:13:50,240 --> 00:13:52,570 Па го кодот е интересно од две причини. 289 00:13:52,570 --> 00:13:55,480 Прво на сите, тоа стана Првиот производ на Microsoft, 290 00:13:55,480 --> 00:14:01,810 кој беше преведувач основните програмски јазик. 291 00:14:01,810 --> 00:14:04,940 И второ, тоа е еден од првите обиди 292 00:14:04,940 --> 00:14:10,580 да се создаде преведувач па обичните луѓето би можеле да ги користат персонални компјутери. 293 00:14:10,580 --> 00:14:12,670 >> Па Бил Гејтс беше додипломски на Харвард. 294 00:14:12,670 --> 00:14:14,820 Почнав да предава на Харвард во 1974 година. 295 00:14:14,820 --> 00:14:16,560 Ова беше направено во 1975 година. 296 00:14:16,560 --> 00:14:20,180 Па тоа беше почетокот на неговата кариера и на почетокот на мојата кариера. 297 00:14:20,180 --> 00:14:23,790 Јас всушност учи Бил во се разбира во тоа време. 298 00:14:23,790 --> 00:14:27,130 Пол Ален не беше Харвард студент, но тој 299 00:14:27,130 --> 00:14:31,020 бил во средно училиште соученик на Бил Гејтс. 300 00:14:31,020 --> 00:14:33,740 Ако дојде и да бараат на листата, ќе 301 00:14:33,740 --> 00:14:36,230 всушност се најде една третина име, Црна Davidoff, 302 00:14:36,230 --> 00:14:39,260 кој бил соученик Гејтс тука на Харвард. 303 00:14:39,260 --> 00:14:41,340 >> OK, па тука е интересен коментар тука. 304 00:14:41,340 --> 00:14:47,150 Таа вели: "Во 4K да ги избришете квадратен корен но за петелки уште треба да работат. " 305 00:14:47,150 --> 00:14:53,080 Добро, така што тоа значи е дека постои беа два начини да се состави оваа програма. 306 00:14:53,080 --> 00:14:57,860 Една од нив беше да се работи на верзија на овој Алтаир компјутер 307 00:14:57,860 --> 00:15:04,310 кои имаа само 4K зборови меморија, 4096 зборови на меморија. 308 00:15:04,310 --> 00:15:07,050 Но, големото верзија имаше 8К. 309 00:15:07,050 --> 00:15:09,770 И така што ова вели дека е дека во 4K верзија 310 00:15:09,770 --> 00:15:12,770 ти мораше да избришете некои кодот да го направите да се вклопуваат. 311 00:15:12,770 --> 00:15:14,790 И една од работите дека ќе бидат избришани 312 00:15:14,790 --> 00:15:16,290 ќе биде квадратен корен рутина. 313 00:15:16,290 --> 00:15:20,360 Но очигледно на за захват треба уште 314 00:15:20,360 --> 00:15:26,392 работи, дури и кога сте составувањето надолу за само 4K верзија на компјутер. 315 00:15:26,392 --> 00:15:29,350 Дејвид Џ MALAN: Значи една од темите, како што ќе видиме во компјутерски науки, 316 00:15:29,350 --> 00:15:31,430 е идејата за дели и апстракција, 317 00:15:31,430 --> 00:15:34,670 и навистина стои на рамениците на луѓе кои доаѓаат пред нас, не 318 00:15:34,670 --> 00:15:37,890 за разлика од некои од Бил Гејтс и Пол Ален наративен тука. 319 00:15:37,890 --> 00:15:40,080 И она што ова значи е што денес можеме да ги преземат за 320 00:15:40,080 --> 00:15:43,490 готово дека работите се всушност полесно за нас да се напише код. 321 00:15:43,490 --> 00:15:47,170 Навистина код, како што рече во петокот, е повеќе технички познат како изворен код. 322 00:15:47,170 --> 00:15:52,210 И тоа е тоа англиски како синтаксата тоа е повеќе соодветна и повеќе добро дефинирани 323 00:15:52,210 --> 00:15:55,480 од нешто како псевдо код, за која не постои формална дефиниција. 324 00:15:55,480 --> 00:15:58,320 >> И денес она што ние ќе да се фокусираат на е изворниот код 325 00:15:58,320 --> 00:16:01,010 што личи ова, што Мора да се признае на прв поглед 326 00:16:01,010 --> 00:16:02,690 изгледа сосема криптичната. 327 00:16:02,690 --> 00:16:08,540 И искрено, тоа е начинот на кој повеќе естетски комплекс од основната програма е. 328 00:16:08,540 --> 00:16:13,300 Сите оваа програма го прави, потсетиме, е она што не кажеме? 329 00:16:13,300 --> 00:16:14,990 Тоа само печати "Здраво светот." 330 00:16:14,990 --> 00:16:19,600 А сепак се погледне во сите на нешта што треба да заврши околу која многу едноставна фраза. 331 00:16:19,600 --> 00:16:21,750 Но пред долго на сите овие линии и повеќе 332 00:16:21,750 --> 00:16:24,800 ќе направи многу подобро чувство за вас. 333 00:16:24,800 --> 00:16:26,940 >> И протокот е како што следува. 334 00:16:26,940 --> 00:16:31,220 Она што ни треба на располагање е да се земе код, како извор 335 00:16:31,220 --> 00:16:32,340 кодот кој го видоа. 336 00:16:32,340 --> 00:16:35,060 И ние треба нова програма да ја извршите преку. 337 00:16:35,060 --> 00:16:39,130 Ние треба алгоритми кои можат да конвертирате изворен код, како таков, 338 00:16:39,130 --> 00:16:41,932 во објектниот код, 0-ти и 1S. 339 00:16:41,932 --> 00:16:43,890 Со други зборови, она што ние ќе научат денес 340 00:16:43,890 --> 00:16:46,620 е како да го направите ова, напишете изворниот код до врвот, 341 00:16:46,620 --> 00:16:49,930 Поминете го како влез на посебна програма позната како компајлер, 342 00:16:49,930 --> 00:16:52,140 а ние си оди за да се произведе објектниот код. 343 00:16:52,140 --> 00:16:54,600 Што е само стилизиран начин велејќи дека ние ќе се земе нешто 344 00:16:54,600 --> 00:16:58,350 кој изгледа вака, го предадете во програма наречена компајлер, 345 00:16:58,350 --> 00:17:01,210 производство на објектниот код што изгледа вака. 346 00:17:01,210 --> 00:17:04,720 >> Значи овие се буквално моделите на 0-ти и 1S 347 00:17:04,720 --> 00:17:08,550 дека се разбрани од страна на Интел компјутер овие денови, 348 00:17:08,550 --> 00:17:12,480 дека ако толкувани од страна на процесорот, мозокот во внатрешноста на компјутерот, 349 00:17:12,480 --> 00:17:16,130 буквално ќе се печати, едноставно, "Здраво светот." 350 00:17:16,130 --> 00:17:19,670 Сега има начин повеќе 0-ти и 1S отколку што Се надевам може да биде потребно за тоа. 351 00:17:19,670 --> 00:17:22,520 Но, тоа е затоа што ние градиме на добра зделка на сложеност 352 00:17:22,520 --> 00:17:24,270 дека ние отсега може да се земе здраво за готово. 353 00:17:24,270 --> 00:17:27,869 Со други зборови, многу паметни луѓе ни даде многу кул алатки 354 00:17:27,869 --> 00:17:32,480 и моќен софтвер со кој ние сега може да направи проекти од нашите сопствени. 355 00:17:32,480 --> 00:17:33,400 >> Па ајде да започнете. 356 00:17:33,400 --> 00:17:36,640 Додека минатиот петок, и за Проблем Постави 0 оваа недела, 357 00:17:36,640 --> 00:17:39,000 ќе се игра во свет што изгледа вака. 358 00:17:39,000 --> 00:17:42,180 Почнувајќи од денес и за проблемот Поставете 1 следната недела, кодот го 359 00:17:42,180 --> 00:17:45,410 се случува да се погледне малку повеќе криптичната, но функционално е 360 00:17:45,410 --> 00:17:46,940 ќе бидат исти. 361 00:17:46,940 --> 00:17:50,770 Па известување, врвот е нула, дното е В. Искрено гребење 362 00:17:50,770 --> 00:17:52,780 е многу повеќе корисник пријателски и пристапен. 363 00:17:52,780 --> 00:17:56,890 Но, ако сега се споредуваат визуелно горе дното, таму е еден вид на 00:59 364 00:17:56,890 --> 00:17:59,690 кореспонденција меѓу загатка парчиња и јазикот 365 00:17:59,690 --> 00:18:00,870 ние сме за да си игра со. 366 00:18:00,870 --> 00:18:04,420 Особено, велат, сини мозаик парче до врвот, 367 00:18:04,420 --> 00:18:08,370 очигледно е еквивалентно на она што клучни зборови или посебни фраза во овој јазик 368 00:18:08,370 --> 00:18:09,062 наречен C? 369 00:18:09,062 --> 00:18:09,770 ПУБЛИКАТА: printf. 370 00:18:09,770 --> 00:18:10,728 Дејвид Џ MALAN: printf. 371 00:18:10,728 --> 00:18:12,140 Тоа значи форматирана печатење. 372 00:18:12,140 --> 00:18:15,240 И тоа е само фенси начин на велејќи printf во C 373 00:18:15,240 --> 00:18:18,615 ќе биде изјава или функција кој печати нешто на екранот. 374 00:18:18,615 --> 00:18:19,990 Она што не го печати на екран? 375 00:18:19,990 --> 00:18:23,627 Што и да се каже да се внатре понуди, во загради. 376 00:18:23,627 --> 00:18:25,460 Значи, повторно, очигледно, има многу нешта 377 00:18:25,460 --> 00:18:27,990 дека треба да се задржи во умот, загради, наводници, semicolons, 378 00:18:27,990 --> 00:18:28,656 и сето ова. 379 00:18:28,656 --> 00:18:30,600 Но, сето тоа е вид на ирелевантна. 380 00:18:30,600 --> 00:18:33,660 Интересните готова брза за сега е дека да речеме блок во гребење 381 00:18:33,660 --> 00:18:37,520 е доста еквивалентно на на printf изјава во C. 382 00:18:37,520 --> 00:18:41,390 >> Во меѓувреме, жолта загатка парче до врвот, кога зелено знаме кликнато, 383 00:18:41,390 --> 00:18:44,736 е веројатно еквивалент на она што клучни зборови тука? 384 00:18:44,736 --> 00:18:45,360 ПУБЛИКАТА: Главни. 385 00:18:45,360 --> 00:18:46,359 Дејвид Џ MALAN: Значи главната. 386 00:18:46,359 --> 00:18:47,410 Можеби int, можеби неважечки. 387 00:18:47,410 --> 00:18:51,280 Но, главниот вид на звучи како тоа е важен и навистина е. 388 00:18:51,280 --> 00:18:54,080 Значи, кога зелено знаме кликнато е, пак, сложувалката парче 389 00:18:54,080 --> 00:18:56,390 што ја започна Целата програма на гребење. 390 00:18:56,390 --> 00:19:02,140 Но, ние се случува да сега почне повикувајќи дека главната, оваа функција, познат како главен. 391 00:19:02,140 --> 00:19:06,410 >> Сега во меѓувреме ние ќе генерализира овој како што следи. 392 00:19:06,410 --> 00:19:08,780 Ние може да се нарече велат функција. 393 00:19:08,780 --> 00:19:10,580 И тоа може да изгледа посебно вака. 394 00:19:10,580 --> 00:19:11,770 Па, она што за петелки? 395 00:19:11,770 --> 00:19:16,540 Ако сакаме да започнете конвертирање или преведување повеќе гребење на C, 396 00:19:16,540 --> 00:19:19,400 ова нешто овде очигледно само вели: "Здраво светот" засекогаш. 397 00:19:19,400 --> 00:19:23,060 Значи, ако се дружат овие сценарија со мачка во нула, 398 00:19:23,060 --> 00:19:26,560 тоа е само случува да се задржи велејќи во некој вид на цртан филм меур, 399 00:19:26,560 --> 00:19:29,922 "Здраво светот, Здраво светот, здраво светот ", реклама nauseum, засекогаш. 400 00:19:29,922 --> 00:19:33,130 Ако сакаме да се направи нешто слично во Ц, тоа се случува да се погледне малку криптичната. 401 00:19:33,130 --> 00:19:35,463 Но, ние може да се постигне истата резултати, како што ќе на крајот 402 00:19:35,463 --> 00:19:36,861 дознаете, со синтаксата вака. 403 00:19:36,861 --> 00:19:39,360 Одам да го користите printf, повторно, бидејќи на крајот на денот 404 00:19:39,360 --> 00:19:42,040 Сакам да се печати "Здраво светот." 405 00:19:42,040 --> 00:19:45,610 И јас сум очигледно со користење на клучен збор, која не е засекогаш. 406 00:19:45,610 --> 00:19:47,320 Тоа е, наместо зборот време. 407 00:19:47,320 --> 00:19:49,650 Но само семантички во Англиски, додека вид на 408 00:19:49,650 --> 00:19:52,120 укажува на некој вид на јамка или циклус. 409 00:19:52,120 --> 00:19:55,070 >> Така што се случува да биде клучниот збор дека C користи. 410 00:19:55,070 --> 00:20:00,700 И додека точно, зошто додека вистински ефективно значи засекогаш? 411 00:20:00,700 --> 00:20:04,240 Па, додека, како што наскоро ќе цениме сè повеќе и повеќе, 412 00:20:04,240 --> 00:20:08,140 има оваа заграда веднаш до неа каде што може да се стави Булова израз. 413 00:20:08,140 --> 00:20:11,360 И толку долго како што изразување е вистина, овој законик, 414 00:20:11,360 --> 00:20:14,750 како што е означено помеѓу овие две кадрави загради, како што ќе им се јавам, 415 00:20:14,750 --> 00:20:16,880 само ќе продолжи да работи повторно и повторно. 416 00:20:16,880 --> 00:20:18,410 >> Значи вистина е вистина. 417 00:20:18,410 --> 00:20:20,900 Така, додека вистински средства само го направите ова засекогаш. 418 00:20:20,900 --> 00:20:23,480 Тоа е речиси глупаво изградба да се изразат. 419 00:20:23,480 --> 00:20:26,590 Но нема бил засекогаш клучни зборови во C. Имаше време. 420 00:20:26,590 --> 00:20:29,390 И таму беше многу едноставна Булова израз како вистина. 421 00:20:29,390 --> 00:20:32,210 Па така ова, ќе видиме, постигнува истиот резултат. 422 00:20:32,210 --> 00:20:33,890 >> Како инаку може да се спроведе телефонска линија? 423 00:20:33,890 --> 00:20:36,980 Па, во гребење може да тешко код одреден број 424 00:20:36,980 --> 00:20:39,430 итерациите во јамка овде. 425 00:20:39,430 --> 00:20:43,210 И така тоа е токму она што го може да се направи во оваа верзија на C, 426 00:20:43,210 --> 00:20:46,140 при што имаме т.н. за телефонска линија. 427 00:20:46,140 --> 00:20:49,850 И за јамка тука се случува да iterate, малку cryptically, 428 00:20:49,850 --> 00:20:54,100 од вредност 0 на до да, но помалку од 10. 429 00:20:54,100 --> 00:20:55,955 >> Сега променливи во гребење. 430 00:20:55,955 --> 00:20:57,830 Вие не може да имаат прилика да ги користат овие. 431 00:20:57,830 --> 00:21:02,516 Но, она што е поентата, воопшто, на променливата не велиме минатата недела? 432 00:21:02,516 --> 00:21:03,015 Што е тоа? 433 00:21:03,015 --> 00:21:03,780 >> ПУБЛИКАТА поени. 434 00:21:03,780 --> 00:21:05,200 >> Дејвид Џ MALAN: Да се ​​истакне? 435 00:21:05,200 --> 00:21:05,700 Ох, посочува. 436 00:21:05,700 --> 00:21:07,620 Добро, следење на поени, на пример, во играта. 437 00:21:07,620 --> 00:21:09,510 Или поопшто прави што со променлива? 438 00:21:09,510 --> 00:21:10,450 Која е користа од нив? 439 00:21:10,450 --> 00:21:10,825 >> ПУБЛИКАТА: Мемориски. 440 00:21:10,825 --> 00:21:11,750 >> Дејвид Џ MALAN: Да, па меморијата. 441 00:21:11,750 --> 00:21:13,000 Тоа е за чување на нешто. 442 00:21:13,000 --> 00:21:17,336 И вид на глупо визуелни јас се користи Последен пат беше вака стаклен сад. 443 00:21:17,336 --> 00:21:19,710 И ако сакаме да ги чувате нешто внатрешноста на променлива, 444 00:21:19,710 --> 00:21:21,918 на пример во моментов на вредност е шест, бидејќи има 445 00:21:21,918 --> 00:21:23,450 шест пинг-понг топки тука. 446 00:21:23,450 --> 00:21:26,158 Тоа е само некој вид на чување сад кој под хаубата 447 00:21:26,158 --> 00:21:30,030 се спроведува со битови, 0-ти и 1S, Сепак компјутер се случува да го направите тоа. 448 00:21:30,030 --> 00:21:32,900 >> Значи во нула, ако се сакате да имате променлива, 449 00:21:32,900 --> 00:21:34,840 може да се користат портокалов блок вака. 450 00:21:34,840 --> 00:21:37,050 Ние ќе се јавите дека контра во конкретниов случај. 451 00:21:37,050 --> 00:21:38,890 Јас го иницијализира на 0. 452 00:21:38,890 --> 00:21:41,080 И она што јас тогаш го стори? 453 00:21:41,080 --> 00:21:44,780 Засекогаш, велат шалтер, што ако си играат со што во нула, 454 00:21:44,780 --> 00:21:45,780 само ќе ја видите на гребење. 455 00:21:45,780 --> 00:21:49,920 Мачка или што костимот ќе се стави на него ќе зборува број во прашање. 456 00:21:49,920 --> 00:21:52,840 >> Промена противвредност од 1 е како ја зголемува од 1. 457 00:21:52,840 --> 00:21:56,580 И така ова ќе смета од она па што? 458 00:21:56,580 --> 00:21:59,114 Од 0 сусам бесконечност, или до гребење паузи, 459 00:21:59,114 --> 00:22:01,030 или додека сте вид на губат интерес во гледањето 460 00:22:01,030 --> 00:22:02,650 колку високо тој, всушност, може да смета. 461 00:22:02,650 --> 00:22:04,800 >> Па како можеме да ги конвертираме во Ц? 462 00:22:04,800 --> 00:22:06,480 Тоа се случува да се погледне малку криптичната. 463 00:22:06,480 --> 00:22:08,896 Но, повторно, ако се погледне во секој на овие редови поединечно 464 00:22:08,896 --> 00:22:10,410 тие вид на постава генерално. 465 00:22:10,410 --> 00:22:13,526 Значи очигледно int се случува да се има некои посебно значење во C. 466 00:22:13,526 --> 00:22:14,400 Ќе видиме тоа повторно. 467 00:22:14,400 --> 00:22:15,810 Како настрана, тоа значи цел број. 468 00:22:15,810 --> 00:22:16,990 Па тоа само значи број. 469 00:22:16,990 --> 00:22:18,920 Па тоа е од типот на стаклен сад Сакам, еден 470 00:22:18,920 --> 00:22:21,120 кои може да се сместат броеви, не пинг-понг топчиња. 471 00:22:21,120 --> 00:22:25,520 И јас одам да го користат знакот за еднаквост таму за да го доделите вредност од 0. 472 00:22:25,520 --> 00:22:29,440 Значи тоа е сосема како збир спротивни на 0, но во C. 473 00:22:29,440 --> 00:22:32,840 >> Во меѓувреме, додека вистинските, тоа беше еквивалент, се разбира, да се засекогаш, 474 00:22:32,840 --> 00:22:35,980 иако тоа е малку криптичната, а потоа внатрешноста на големи загради. 475 00:22:35,980 --> 00:22:39,188 И можете да мислам на овие големи загради, што можете да напишете на тастатурата, 476 00:22:39,188 --> 00:22:43,110 како навистина да биде како искривување во овие жолта јамка блокови во гребење. 477 00:22:43,110 --> 00:22:45,700 Тоа опфаќа повеќе линии на код. 478 00:22:45,700 --> 00:22:48,120 >> Printf е добивање на малку страшно сега, бидејќи јас 479 00:22:48,120 --> 00:22:51,120 види не само цитира во загради. 480 00:22:51,120 --> 00:22:55,160 Но, што друго е ново синтаксички во овој пример? 481 00:22:55,160 --> 00:22:57,300 Има еден отсто г. 482 00:22:57,300 --> 00:22:58,551 И тогаш обратна коса црта n е таму. 483 00:22:58,551 --> 00:23:00,883 Ние не се види дека пред, дури и иако јас не се споменува. 484 00:23:00,883 --> 00:23:01,886 Потоа, тука е запирка. 485 00:23:01,886 --> 00:23:03,010 И тогаш има контра. 486 00:23:03,010 --> 00:23:05,010 >> Но ќе видиме во само момент дека ова е само 487 00:23:05,010 --> 00:23:09,080 стандарден начин на велејќи печати "Децимален број", цитат, unquote, 488 00:23:09,080 --> 00:23:10,500 некои децимален број. 489 00:23:10,500 --> 00:23:13,370 Но јас ќе одам да ви кажам подоцна она што децимален број е. 490 00:23:13,370 --> 00:23:16,835 Значи фактот дека има запирка во оваа линија велејќи printf, 491 00:23:16,835 --> 00:23:18,710 значи се оди напред и печатење некои децимален број. 492 00:23:18,710 --> 00:23:23,110 О, и од начинот на кој, бројот е без оглед на вредноста на оваа променлива е. 493 00:23:23,110 --> 00:23:25,880 И така да се направи ова повеќе јасно, ќе видиме еден пример 494 00:23:25,880 --> 00:23:30,930 пред долго вклучуваат точно printf во контекст на недвижен C програми. 495 00:23:30,930 --> 00:23:33,472 >> Сега само за да заврши некои од овие конструкции. 496 00:23:33,472 --> 00:23:36,680 Булова изрази, вие не би можеле да имаат прилика да ги користат овие во вашата програма 497 00:23:36,680 --> 00:23:39,450 Но, можеби многу добро, особено ако се користи услови. 498 00:23:39,450 --> 00:23:43,460 И така овие два примери од Изгребете значи ако x е помалку од y, 499 00:23:43,460 --> 00:23:48,770 или ако x е помалку од y и y е помалку од z, како да се преведе тоа? 500 00:23:48,770 --> 00:23:50,810 >> Па, во Ц тоа е само ќе изгледа вака. 501 00:23:50,810 --> 00:23:55,300 А малку криптичната, повеќе загради, некои чудни ampersands, но во основа 502 00:23:55,300 --> 00:23:59,160 идеите се толку едноставно како што се во загатка парче светот. 503 00:23:59,160 --> 00:24:02,690 Ние сме едноставно проверка ако нешто е помалку од нешто друго. 504 00:24:02,690 --> 00:24:03,910 >> Како за услови? 505 00:24:03,910 --> 00:24:09,710 Во мало на англиски јазик, што го прави ова парче од гребење код мислите би рекол? 506 00:24:09,710 --> 00:24:11,050 >> ПУБЛИКАТА: споредува два броја. 507 00:24:11,050 --> 00:24:13,760 >> Дејвид Џ MALAN: споредува две броеви, и ако x е помалку од y 508 00:24:13,760 --> 00:24:14,860 вели дека толку многу. 509 00:24:14,860 --> 00:24:18,080 Ако x е поголема од y се вели колку, друго 510 00:24:18,080 --> 00:24:20,740 ако x е еднаква на y вели дека толку многу. 511 00:24:20,740 --> 00:24:22,180 Сега каде x и y доаѓаат од? 512 00:24:22,180 --> 00:24:22,680 Кој знае. 513 00:24:22,680 --> 00:24:25,380 Ова парче на гребење кодот е надвор од контекст. 514 00:24:25,380 --> 00:24:29,050 Но, она што сакате да го направите сега е се преведе тоа за само еден момент за да ја видите. 515 00:24:29,050 --> 00:24:31,660 >> Па како што можете да се чувствуваме удобно оваа недела во Проблем Постави 516 00:24:31,660 --> 00:24:34,190 0 игра во овој свет на левата страна, сфаќаат 517 00:24:34,190 --> 00:24:36,940 дека идеите не се менуваат оваа недела или следната или пошироко. 518 00:24:36,940 --> 00:24:38,690 Ние едноставно ќе се почнете со пишување работи 519 00:24:38,690 --> 00:24:41,240 на поинаков начин со нашите тастатура, наместо на нашите глувчето. 520 00:24:41,240 --> 00:24:44,577 >> Значи, ако x е помалку од y и има некои загради таму, 521 00:24:44,577 --> 00:24:47,160 тогаш има некои големи загради повторно да се вид на тоа капсулирало 522 00:24:47,160 --> 00:24:48,970 исто како и жолт загатка парчиња се направи. 523 00:24:48,970 --> 00:24:53,000 И јас одам да printf x е помалку од y и така натаму. 524 00:24:53,000 --> 00:24:56,540 >> Што е убаво за Ц, како што можете да видите овде, 525 00:24:56,540 --> 00:25:00,480 е тоа што вие не ја добиваат оваа гнездење, гнездење, вгнездени дека е нужно 526 00:25:00,480 --> 00:25:02,220 ќе им помогнам на вашиот код на правото. 527 00:25:02,220 --> 00:25:04,990 Вие наместо да се има сè постава уредно се допаѓа ова. 528 00:25:04,990 --> 00:25:08,960 Но тоа е само естетско детали ќе видиме повторно пред долго. 529 00:25:08,960 --> 00:25:09,660 >> Во ред. 530 00:25:09,660 --> 00:25:13,290 Така што нè враќа на овој криптичната програма во потрага. 531 00:25:13,290 --> 00:25:15,180 Ајде да всушност пишува некои код. 532 00:25:15,180 --> 00:25:16,830 Сега како да одите за пишување на код? 533 00:25:16,830 --> 00:25:21,310 Сите овие години дека сум во сопственост Mac или PC, десктоп или лаптоп, 534 00:25:21,310 --> 00:25:24,520 сте всушност имаа способност да започнете со пишување програмски код. 535 00:25:24,520 --> 00:25:27,050 Но ти си веројатно недостасува специјален тип на програма. 536 00:25:27,050 --> 00:25:28,470 Сигурно може да се напише код. 537 00:25:28,470 --> 00:25:30,740 Но, не можете секогаш, надвор од кутијата, 538 00:25:30,740 --> 00:25:34,210 конвертирате дека изворниот код во објектниот код, 0-ти и 1S 539 00:25:34,210 --> 00:25:35,619 без она што на вашиот компјутер? 540 00:25:35,619 --> 00:25:36,410 ПУБЛИКАТА: компајлерот. 541 00:25:36,410 --> 00:25:37,630 Дејвид Џ MALAN: Значи компајлер, нели. 542 00:25:37,630 --> 00:25:39,730 Сега повеќето од вас веројатно не поседуваат компајлер, 543 00:25:39,730 --> 00:25:41,259 никогаш не преземале компајлерот. 544 00:25:41,259 --> 00:25:44,300 Но ќе видите можете да го преземете како и повеќето било која друга парче софтвер. 545 00:25:44,300 --> 00:25:47,470 Во светот на оперативниот систем Mac OS, можеби симнете или ја преземале веќе 546 00:25:47,470 --> 00:25:50,437 нешто што се нарекува Xcode или GCC или ѕвекот. 547 00:25:50,437 --> 00:25:52,270 Ако доаѓаат од Прозорци светот може да 548 00:25:52,270 --> 00:25:56,190 ја преземале Visual Studio, Visual Basic, околини како што. 549 00:25:56,190 --> 00:25:59,200 Има десетици компајлери овие денови дека можете да го користите. 550 00:25:59,200 --> 00:26:01,940 Но помалку од овде е дека тоа ќе биде болка 551 00:26:01,940 --> 00:26:04,480 и, искрено, технолошки кошмар за стотици 552 00:26:04,480 --> 00:26:07,680 на луѓе со различни компјутерски конфигурации за сите 553 00:26:07,680 --> 00:26:09,800 конфигурирате нивните машини во токму на ист начин 554 00:26:09,800 --> 00:26:11,700 така што сите можеме да бидеме на истата страница. 555 00:26:11,700 --> 00:26:15,240 >> Значи она што ние, наместо тоа, го направи во CS50 е ние да ви даде 556 00:26:15,240 --> 00:26:18,349 стандарден средина, на Linux животната средина, кој е 557 00:26:18,349 --> 00:26:20,140 случува да се погледне малку нешто како ова. 558 00:26:20,140 --> 00:26:22,980 Ќе видите повеќе од ова во Проблемот Постави 1 спецификација која 559 00:26:22,980 --> 00:26:25,330 ќе одат онлајн овој петок навечер. 560 00:26:25,330 --> 00:26:28,360 >> И што значи тоа е тоа што отсега 561 00:26:28,360 --> 00:26:32,060 се случува да бидат во можност да преземете и инсталирате програмата 562 00:26:32,060 --> 00:26:33,650 наречен CS50 апаратот. 563 00:26:33,650 --> 00:26:36,275 И ви се случува да го симнете и инсталирате друга програма наречена 564 00:26:36,275 --> 00:26:40,300 хипервизорот, што е само еден фенси начин за постигнување на ова. 565 00:26:40,300 --> 00:26:44,600 Без разлика дали имате Mac или PC или Линукс компјутер или Соларис компјутер, 566 00:26:44,600 --> 00:26:46,830 или што и луди работа систем сте водење, 567 00:26:46,830 --> 00:26:49,820 ви се случува да симнете програма наречена хипервизорот тоа е 568 00:26:49,820 --> 00:26:53,350 ќе се кандидира на CS50 Апаратот на вашиот компјутер 569 00:26:53,350 --> 00:26:55,430 без разлика што вашиот оперативен систем е. 570 00:26:55,430 --> 00:27:00,640 А хипервизорот со други зборови го претвора нашите работи за кој било јазик, 571 00:27:00,640 --> 00:27:03,850 без оглед на упатствата на вашиот компјутер разбира. 572 00:27:03,850 --> 00:27:04,962 >> Значи ова е слоевите. 573 00:27:04,962 --> 00:27:06,920 И повторно, ова е вид тематски во компјутер 574 00:27:06,920 --> 00:27:08,722 науката, зграда на врвот на нештата. 575 00:27:08,722 --> 00:27:09,680 Вие би можеле да имаат на Windows. 576 00:27:09,680 --> 00:27:10,710 Вие би можеле да имаат Mac OS. 577 00:27:10,710 --> 00:27:12,960 Но, почнувајќи од следната недела ќе бидете ќе се симнат 578 00:27:12,960 --> 00:27:14,980 слободна парче софтвер наречена хипервизорот. 579 00:27:14,980 --> 00:27:17,800 Ви се случува да се симнат парче на софтвер наречен CS50 апаратот. 580 00:27:17,800 --> 00:27:21,050 >> Што се случува да се кандидира во хипервизорот, кој се случува да се кандидира на вашиот компјутер. 581 00:27:21,050 --> 00:27:23,030 И крајниот резултат е дека сите од нас ќе 582 00:27:23,030 --> 00:27:26,220 има едноставен прозорец како ова на вашиот Mac или PC 583 00:27:26,220 --> 00:27:30,160 кој ни дава илузија на сите работи на истиот оперативен систем, 584 00:27:30,160 --> 00:27:32,800 без било кој друг влијание на вашиот компјутер. 585 00:27:32,800 --> 00:27:34,870 И може да се цел екран тоа и во суштина се однесуваат 586 00:27:34,870 --> 00:27:37,550 како да се работи на оперативниот систем наречен Линукс, 587 00:27:37,550 --> 00:27:40,270 што е она што CS50 Апаратот се базира на. 588 00:27:40,270 --> 00:27:42,930 >> Значи, да всушност го користите овој сега да се напише програма. 589 00:27:42,930 --> 00:27:45,450 Може да се напише програма користење на Microsoft Word. 590 00:27:45,450 --> 00:27:48,160 Може да се напише програма користење на TextEdit, или Notepad, 591 00:27:48,160 --> 00:27:51,880 или WordPad, или доста било збор програмата за обработка некогаш сте се користи. 592 00:27:51,880 --> 00:27:55,174 Но, реалноста е дека не треба да го користите навистина било која од овие програми. 593 00:27:55,174 --> 00:27:57,840 Ти секако не треба да се користи нешто како Microsoft Word, која 594 00:27:57,840 --> 00:28:01,120 има храбри кои се соочува и закосени букви, и поголеми фонтови и помали фонтови, 595 00:28:01,120 --> 00:28:03,560 бидејќи компјутерот не се грижи за било кој од тоа. 596 00:28:03,560 --> 00:28:05,600 Сите компјутерот е ќе се грижат за е 597 00:28:05,600 --> 00:28:09,040 Англиски како инструкции напишан во C. 598 00:28:09,040 --> 00:28:12,050 >> Значи она што ние ќе направиме во на CS50 апарати 599 00:28:12,050 --> 00:28:14,290 е користење на програмата слободно на располагање, и тоа е 600 00:28:14,290 --> 00:28:17,360 пре-инсталиран во оваа апаратот, наречен Gedit. 601 00:28:17,360 --> 00:28:22,280 И Gedit е само супер едноставен текст едитор како TextEdit Mac OS е, 602 00:28:22,280 --> 00:28:26,200 како и на Windows Notepad за тоа ќе се погледне малку нешто како ова. 603 00:28:26,200 --> 00:28:28,910 >> Па да, всушност, не погледнете слајдови за тоа. 604 00:28:28,910 --> 00:28:32,580 Но, ајде да всушност одат во самата средина. 605 00:28:32,580 --> 00:28:36,090 Одам да се оди напред и да најавите, во овој другиот прозорец 606 00:28:36,090 --> 00:28:40,910 на мојот CS50 апарати, кои јас сум пред-инсталиран на мојот лаптоп овде. 607 00:28:40,910 --> 00:28:43,771 >> Забележете дека, како и на Windows и Mac OS, тоа е се здобија некои менија. 608 00:28:43,771 --> 00:28:45,520 Како Windows го става тоа таму долу, наместо 609 00:28:45,520 --> 00:28:47,020 на Mac OS, кој го става таму долу. 610 00:28:47,020 --> 00:28:48,930 Но, реалноста е дека е сите видови на истите. 611 00:28:48,930 --> 00:28:50,770 И тука е целата куп на софтвер. 612 00:28:50,770 --> 00:28:51,770 Има Dropbox. 613 00:28:51,770 --> 00:28:54,780 Постојат еден куп на додатоци, графички програми кои ќе 614 00:28:54,780 --> 00:28:56,430 користите подоцна во терминот за проблемот комплети. 615 00:28:56,430 --> 00:28:59,650 Има веб прелистувач изградена во така дека тоа е полноправно компјутер 616 00:28:59,650 --> 00:29:01,240 во внатрешноста на компјутер. 617 00:29:01,240 --> 00:29:04,170 >> Но јас ќе одам да кликнете на овој најлева бели икона тука, 618 00:29:04,170 --> 00:29:05,890 кој е на иконата за Gedit. 619 00:29:05,890 --> 00:29:09,650 И тоа ќе се отвори прозорец кој има три панели на него, 620 00:29:09,650 --> 00:29:12,590 на левата, на врвот еден, а на дното еден. 621 00:29:12,590 --> 00:29:16,071 >> Сега тоа е во овој врвот вистинскиот дека Одам да всушност пишува некои код. 622 00:29:16,071 --> 00:29:16,820 Значи, да го направите ова ,. 623 00:29:16,820 --> 00:29:19,040 Одам да одите на File, Save. 624 00:29:19,040 --> 00:29:22,100 А вие можеби никогаш нема да го виделе ова особено прозорецот пред. 625 00:29:22,100 --> 00:29:23,620 Но, ова е како Mac OS или Windows. 626 00:29:23,620 --> 00:29:25,490 Тоа е само прозорец со сите папки 627 00:29:25,490 --> 00:29:27,290 дека имам внатрешноста на овој компјутер. 628 00:29:27,290 --> 00:29:30,320 >> И јас одам да се спаси податотеката како hello.c. 629 00:29:30,320 --> 00:29:32,690 И јас одам да се оди напред и кликнете на Save. 630 00:29:32,690 --> 00:29:36,364 И сега забележите имам јазиче на горниот лев наречен hello.c. 631 00:29:36,364 --> 00:29:38,280 Па веројатно прилично запознаени дури и ако не сум 632 00:29:38,280 --> 00:29:40,240 користи оваа конкретна програма досега. 633 00:29:40,240 --> 00:29:44,890 >> И сега ќе одам да напишеш во тие прилично криптичната секвенца од команди 634 00:29:44,890 --> 00:29:46,360 што сме го виделе пред една момент. 635 00:29:46,360 --> 00:29:49,330 Вклучуваат, стандардни I / O.h. 636 00:29:49,330 --> 00:29:50,600 Повеќе за тоа наскоро. 637 00:29:50,600 --> 00:29:55,670 Int главната празнина, отворен кадрава заграда, затворен кадрава голема заграда. 638 00:29:55,670 --> 00:30:01,570 А потоа во внатрешноста на таму мислам дека е каде што имавме "Здраво светот" точка-запирка. 639 00:30:01,570 --> 00:30:03,100 И сега спаси. 640 00:30:03,100 --> 00:30:08,780 >> Значи ова е програма напишана во C, напишани, според тоа, во изворниот код. 641 00:30:08,780 --> 00:30:10,720 Но, јас не може само да ја извршите оваа програма. 642 00:30:10,720 --> 00:30:13,390 Јас вид на сакаат да се зголеми двојно кликнете на иконата некаде, 643 00:30:13,390 --> 00:30:16,390 но нема икона постои друг од изворниот код датотека. 644 00:30:16,390 --> 00:30:20,359 Што, пак, е процес сега дека Јас треба да ја извршите оваа датотека преку? 645 00:30:20,359 --> 00:30:21,150 ПУБЛИКАТА: компајлерот. 646 00:30:21,150 --> 00:30:22,399 Дејвид Џ MALAN: Значи компајлер. 647 00:30:22,399 --> 00:30:24,890 Значи во различни компјутери ќе го направите тоа на различни начини. 648 00:30:24,890 --> 00:30:27,480 Но, она што ние го направивме овде во на CS50 апарати, тоа е 649 00:30:27,480 --> 00:30:31,260 Претставникот за тоа како може да го направите тоа на многу различни системи, 650 00:30:31,260 --> 00:30:34,036 е јас сум едноставно ќе се извршите командата наречен направи. 651 00:30:34,036 --> 00:30:35,660 И да ја направат буквално ќе го направи тоа. 652 00:30:35,660 --> 00:30:36,640 Ме програма. 653 00:30:36,640 --> 00:30:39,060 >> Така осигурајте се се случува да се работи компајлер за мене. 654 00:30:39,060 --> 00:30:42,160 И името на програмата Сакам да се направи е здраво. 655 00:30:42,160 --> 00:30:43,510 Сега се направи е програма. 656 00:30:43,510 --> 00:30:47,170 И да е доволно да се паметни сфати дека ако кажам направи здраво, 657 00:30:47,170 --> 00:30:50,980 тоа се случува да се погледне автоматски за фајл наречен hello.c 658 00:30:50,980 --> 00:30:53,420 само затоа што тоа е начинот на кој се конфигурирани. 659 00:30:53,420 --> 00:31:00,300 >> Значи, кога јас сега хит Внесете тука, овој луди криптичната линија само што влегов погубен. 660 00:31:00,300 --> 00:31:02,720 И верувајте ми, пред долг, во рок од само неколку дена, 661 00:31:02,720 --> 00:31:05,590 ќе се разбере она што сите на глупости средства. 662 00:31:05,590 --> 00:31:11,150 Но, за сега, само знам дека го Активираните извршување на компајлерот. 663 00:31:11,150 --> 00:31:13,290 Со други зборови, тоа е пронајдена компајлер на мојот компјутер 664 00:31:13,290 --> 00:31:14,820 тоа е пре-инсталиран на CS50 апарати 665 00:31:14,820 --> 00:31:16,560 дека ќе го предаде на вас во Проблем Постави 1. 666 00:31:16,560 --> 00:31:20,990 И потоа зеде hello.c како влез, а во продукција очигледно 667 00:31:20,990 --> 00:31:23,040 0-ти и 1S како излез. 668 00:31:23,040 --> 00:31:29,410 >> И стандардно она што го прави тоа е тоа спасува оние 0-ти и 1S во датотека наречена здраво. 669 00:31:29,410 --> 00:31:33,180 И покрај тоа што оваа синтакса не би можеле да да биде ново за вас, едноставно велејќи точка 670 00:31:33,180 --> 00:31:37,110 намали здраво се случува да биде значи со која јас ја извршите оваа програма. 671 00:31:37,110 --> 00:31:40,360 >> За сега и за барем неколку недели, скоро сите програми 672 00:31:40,360 --> 00:31:44,230 Ви го пишуваме се случува да биде во црно и бело текст прозорци. 673 00:31:44,230 --> 00:31:47,006 Не глувци, без кликнување, без прозорци, без икони. 674 00:31:47,006 --> 00:31:49,630 Ние ќе биде едноставно и се фокусира на основните идеи 675 00:31:49,630 --> 00:31:52,490 на почетокот пред да дојдеме до нешто повисоко ниво, на пример, 676 00:31:52,490 --> 00:31:56,410 како пауза игра која ние разговаравме за во првото предавање минатата недела. 677 00:31:56,410 --> 00:32:00,820 >> Значи, кога јас хит Внесете тука, тоа е еквивалент во текст само на животната средина 678 00:32:00,820 --> 00:32:03,272 да се зголеми двојно кликнување на иконата здраво. 679 00:32:03,272 --> 00:32:05,480 Што очекувате волја се случи кога јас хит Внесете тогаш? 680 00:32:05,480 --> 00:32:07,120 >> ПУБЛИКАТА: Ќе се печати "Здраво светот." 681 00:32:07,120 --> 00:32:10,000 >> Дејвид Џ MALAN: Се надевам дека тоа ќе печати "Здраво светот." 682 00:32:10,000 --> 00:32:11,370 И навистина го направив тоа. 683 00:32:11,370 --> 00:32:13,690 Сега има некои криптичната синтакса тука. 684 00:32:13,690 --> 00:32:15,950 Ајде да ја премотам касетата за само момент и да видиме дали можеме 685 00:32:15,950 --> 00:32:19,530 не може да започне inferring само со tinkering, обиде и не успеа, 686 00:32:19,530 --> 00:32:21,130 за тоа што се случува овде. 687 00:32:21,130 --> 00:32:23,609 Што ако јас се ослободи од обратна коса црта n? 688 00:32:23,609 --> 00:32:25,650 Сега некои од вас кои сте програмиран пред веројатно 689 00:32:25,650 --> 00:32:27,054 знаат веднаш она што тоа значи. 690 00:32:27,054 --> 00:32:29,220 Но, за оние од вас кои сте никогаш програмиран пред, 691 00:32:29,220 --> 00:32:34,052 барем мислам за себе она што се случува да се менуваат кога јас повторување на оваа програма? 692 00:32:34,052 --> 00:32:37,010 Па јас ќе одам да се врати долу на мојот малку црна и бела боја прозорец, што 693 00:32:37,010 --> 00:32:39,290 е прозорец во кој Јас може да собере. 694 00:32:39,290 --> 00:32:41,130 Одам да го прекомпајлирате здраво. 695 00:32:41,130 --> 00:32:43,520 Ние ќе ги видат истите криптичната низа на команди. 696 00:32:43,520 --> 00:32:45,719 И јас ќе одам да направите точка коса црта здраво. 697 00:32:45,719 --> 00:32:48,260 И сега некој, ако сакате, кој никогаш не е програмиран пред, 698 00:32:48,260 --> 00:32:49,770 она што може да биде различно ова време? 699 00:32:49,770 --> 00:32:50,020 Да. 700 00:32:50,020 --> 00:32:51,840 >> ПУБЛИКАТА: Тоа нема да запре печатење "Здраво светот." 701 00:32:51,840 --> 00:32:52,660 >> Дејвид Џ MALAN: Тоа се случува to-- жал? 702 00:32:52,660 --> 00:32:54,210 >> ПУБЛИКАТА: Тоа нема да запре печатењето тоа? 703 00:32:54,210 --> 00:32:55,810 >> Дејвид Џ MALAN: Тоа нема запре печатењето "Здраво светот." 704 00:32:55,810 --> 00:32:56,560 Па не е лоша идеја. 705 00:32:56,560 --> 00:32:58,633 Други идеи? 706 00:32:58,633 --> 00:32:59,132 Да. 707 00:32:59,132 --> 00:33:00,060 >> ПУБЛИКАТА: Порака за грешка? 708 00:33:00,060 --> 00:33:01,750 >> Дејвид Џ MALAN: Грешка порака, во ред, може да биде. 709 00:33:01,750 --> 00:33:02,250 Што друго? 710 00:33:02,250 --> 00:33:05,479 ПУБЛИКАТА: Тоа може да печати заградата со точка-запирка, како? 711 00:33:05,479 --> 00:33:08,270 Дејвид Џ MALAN: Може да испечатите заградата со точка-запирка, како и. 712 00:33:08,270 --> 00:33:11,950 Па можеби тоа обратна коса црта тогаш е некој вид на terminous тоа е важно. 713 00:33:11,950 --> 00:33:14,860 Било кој друг мисли? 714 00:33:14,860 --> 00:33:16,412 >> Така што сите добри идеи. 715 00:33:16,412 --> 00:33:18,370 И всушност, тоа се случува да биде порака за грешка. 716 00:33:18,370 --> 00:33:20,400 Тоа е веројатно, најверојатно, да биде одговор воопшто 717 00:33:20,400 --> 00:33:22,420 за следните неколку недели како што учиме да код овде. 718 00:33:22,420 --> 00:33:27,680 >> Но сега за сега се сеќавам дека компјутерите само го направи она што им кажете да се направи. 719 00:33:27,680 --> 00:33:30,400 Слично како смешно кикирики путер и желе пример. 720 00:33:30,400 --> 00:33:33,860 Нашите човечки компјутери беа само би требало го направи она што им рекол да се направи. 721 00:33:33,860 --> 00:33:36,250 Значи во овој случај, ако не кажувај на компјутер 722 00:33:36,250 --> 00:33:41,190 да се движат што трепка курсорот до следната линија, тоа не се случува да го направи тоа. 723 00:33:41,190 --> 00:33:45,390 Па кога ќе ја извршите оваа програма сега, ја забележат разликата. 724 00:33:45,390 --> 00:33:46,900 >> Изгледа како бубачка. 725 00:33:46,900 --> 00:33:49,190 Тоа е естетски грешки, можеби. 726 00:33:49,190 --> 00:33:53,310 Но она што е различно врска со овој излез наспроти последниот очигледно? 727 00:33:53,310 --> 00:33:53,810 Да. 728 00:33:53,810 --> 00:33:54,920 >> ПУБЛИКАТА: Тоа не се направи нова линија. 729 00:33:54,920 --> 00:33:56,586 >> Дејвид Џ MALAN: Тоа не се направи нова линија. 730 00:33:56,586 --> 00:33:58,740 Сега оние од вас кои имаат можеби направи веб-страници 731 00:33:58,740 --> 00:34:01,910 пред, може да знам од БРА таг или став таг, 732 00:34:01,910 --> 00:34:03,120 Многу слични во духот. 733 00:34:03,120 --> 00:34:06,680 А веб прелистувачот ќе ги игнорира додека ќе го кажам точно што да прави. 734 00:34:06,680 --> 00:34:10,020 Слично на тоа, е јазик како C само ќе го направи она што го кажам да се направи. 735 00:34:10,020 --> 00:34:12,730 >> Така од причина што сите овие примери, 736 00:34:12,730 --> 00:34:15,350 досега, имаат вид на повремено имаше оваа обратна коса црта 737 00:34:15,350 --> 00:34:18,560 таму, тоа е средство со кој ќе се изразат 738 00:34:18,560 --> 00:34:21,380 како нова линија карактер, така да се каже. 739 00:34:21,380 --> 00:34:26,219 И можете вид на може да го цениме, можеби, дека тоа ќе изгледа глупаво 740 00:34:26,219 --> 00:34:27,070 ако ништо друго. 741 00:34:27,070 --> 00:34:29,150 Ако сакав нова линија, туку само притискање Внесете а потоа вид 742 00:34:29,150 --> 00:34:32,219 на butchering кодот допаѓа не треба навистина ќе си ги протриеш на вистински начин. 743 00:34:32,219 --> 00:34:33,830 Па дури и ако не навистина се грижат во овој момент, 744 00:34:33,830 --> 00:34:35,830 ќе сфатите дека ова не е особено 745 00:34:35,830 --> 00:34:37,870 добра гледа парче од код. 746 00:34:37,870 --> 00:34:39,969 >> И така она што во светот пред одлучи години е 747 00:34:39,969 --> 00:34:43,420 дека кога ќе сакате да се стави на курсорот на нова линија експлицитно, 748 00:34:43,420 --> 00:34:46,332 можете експлицитно да кажам нова линија, обратна коса црта n. 749 00:34:46,332 --> 00:34:48,040 И има некои други симболи како тоа. 750 00:34:48,040 --> 00:34:50,719 Но сега за сега ние само ќе се фокусира на обратна коса црта n. 751 00:34:50,719 --> 00:34:53,790 >> Сега ајде да се направи програма малку поинтересна. 752 00:34:53,790 --> 00:34:59,200 Одам да се оди напред и да овој пат се отвори нова датотека. 753 00:34:59,200 --> 00:35:02,520 Одам да се спаси ова како здраво-1.в. 754 00:35:02,520 --> 00:35:05,540 И само за клоци, јас ќе одам да одат стави ја во Моите Dropbox папка. 755 00:35:05,540 --> 00:35:09,030 >> Како што ќе видите во CS50 документација за апаратот, 756 00:35:09,030 --> 00:35:11,210 подоцна оваа недела за решавање на Поставете 1, ќе се поттикне 757 00:35:11,210 --> 00:35:13,230 можете да го користите Dropbox или некои еквивалент услуга, 758 00:35:13,230 --> 00:35:15,430 затоа што тогаш сите на вашиот код на ќе биде поддржана автоматски. 759 00:35:15,430 --> 00:35:17,830 И така тоа е причината зошто јас сум качил во оваа папка тука. 760 00:35:17,830 --> 00:35:20,230 >> И сега ќе одам да се напише малку поинаков програма. 761 00:35:20,230 --> 00:35:24,740 Вклучуваат, стандардни I / O.h, int главната неважечки. 762 00:35:24,740 --> 00:35:29,660 А потоа тука printf, Здраво светот, која е иста како порано. 763 00:35:29,660 --> 00:35:32,450 >> Но сега сакам да се печати нешто тоа е малку различен. 764 00:35:32,450 --> 00:35:34,800 Сакам да се печати, се каже, "Здраво, Дејвид." 765 00:35:34,800 --> 00:35:37,590 Добро, па очигледно, што треба се надевам 766 00:35:37,590 --> 00:35:40,360 да биде случај дека ако јас повторно компајлирајте оваа програма, повторување, 767 00:35:40,360 --> 00:35:41,840 тоа се случува да се каже "Здраво, Дејвид." 768 00:35:41,840 --> 00:35:45,160 >> Но, што ако сакам да се воведе овој вид на променлива, 769 00:35:45,160 --> 00:35:49,240 поимот на контејнер што се случува за да ја запази D-а-с-и-г и не е тешко законик 770 00:35:49,240 --> 00:35:50,600 во мојата програма. 771 00:35:50,600 --> 00:35:53,430 Па што ако почнам прави нешто вакво? 772 00:35:53,430 --> 00:35:57,120 >> Стринг а, така што ова е променлива. 773 00:35:57,120 --> 00:36:00,250 Ако сакате стринг, a.k.a. збор или фраза. 774 00:36:00,250 --> 00:36:03,485 А низа на карактери е она што ние во програмирање нарекуваат низа. 775 00:36:03,485 --> 00:36:06,610 Ние сме само ќе да се генерички повик тоа е, поради тоа што е убаво, едноставно име. 776 00:36:06,610 --> 00:36:08,010 Но можев да го наречеме нешто. 777 00:36:08,010 --> 00:36:12,920 >> Одам да се каже низа на еднаквите Цитат unquote "Давид", точка-запирка. 778 00:36:12,920 --> 00:36:18,330 И сега сакам да се вметне Д-на-в-и-г во она што јас сум за печатење. 779 00:36:18,330 --> 00:36:23,720 И пред видовме закачка на на екранот на некои специјална синтакса 780 00:36:23,720 --> 00:36:26,050 што ни е дозволено да замена во вредност. 781 00:36:26,050 --> 00:36:29,250 Она што беше посебна симбол пред неколку слајдови? 782 00:36:29,250 --> 00:36:30,040 >> Значи проценти. 783 00:36:30,040 --> 00:36:33,830 Во тоа време тоа беше проценти г за децимален број. 784 00:36:33,830 --> 00:36:35,850 Тоа навистина не изгледа многу значаен тука. 785 00:36:35,850 --> 00:36:38,650 Излегува постои друг проценти симбол, 786 00:36:38,650 --> 00:36:42,810 кој е проценти s, која стои за случаеви за низа. 787 00:36:42,810 --> 00:36:49,350 >> Па сега, многу едноставно, јас сум ќе одат направи здраво-1, 788 00:36:49,350 --> 00:36:54,210 бидејќи оваа датотека се нарекува Здраво-1.в, и притиснете ентер. 789 00:36:54,210 --> 00:36:56,230 И се зафркнав. 790 00:36:56,230 --> 00:36:57,394 Што се случува? 791 00:36:57,394 --> 00:37:00,560 Па, тука е местото каде што треба да почнат да цениме дека ние сме во оваа команда 792 00:37:00,560 --> 00:37:02,810 линија на животната средина, овој текст само средина. 793 00:37:02,810 --> 00:37:06,114 Нема кликнување на иконите како папки сега. 794 00:37:06,114 --> 00:37:07,280 И се сетам пред една момент. 795 00:37:07,280 --> 00:37:10,740 Во она што папка не велам Јас бев заштеда на мојот код? 796 00:37:10,740 --> 00:37:11,657 Па папката Dropbox. 797 00:37:11,657 --> 00:37:12,989 Можеше да се нарекува поинаку. 798 00:37:12,989 --> 00:37:14,530 Но тоа се случува да се нарече Dropbox. 799 00:37:14,530 --> 00:37:18,380 Па јас некако треба да кликнете два пати на дека Dropbox папка со цел да се добие 800 00:37:18,380 --> 00:37:21,657 во неа и да се во мојата код наречена здраво-1.в. 801 00:37:21,657 --> 00:37:24,490 Всушност, дозволете ми да оди напред и да се минимизираат овој прозорец за само еден миг. 802 00:37:24,490 --> 00:37:27,560 Исто како Windows и Mac OS, постојат папки во Линукс. 803 00:37:27,560 --> 00:37:29,410 Постојат папки во CS50 апаратот. 804 00:37:29,410 --> 00:37:32,380 Тоа е само сега ние сме задржувањето се на овој текст животната средина. 805 00:37:32,380 --> 00:37:34,700 >> Но, ако јас кликнете два пати на Dropbox, забележително 806 00:37:34,700 --> 00:37:37,210 е датотеката што сакате да го компајлирате. 807 00:37:37,210 --> 00:37:41,430 Но ми треба овој црно и бело терминален прозорец, така да се каже. 808 00:37:41,430 --> 00:37:45,750 Но ми треба, според тоа, да се движат во таа папка или директориум. 809 00:37:45,750 --> 00:37:48,290 Толку малку мистичен, но Ќе се навикнеш на овој премногу. 810 00:37:48,290 --> 00:37:50,430 >> Во светот на Линукс, кој повторно е оперативен 811 00:37:50,430 --> 00:37:54,860 систем ние сме трчање во внатрешноста на CS50 Апаратот, постои команда наречен ЦД. 812 00:37:54,860 --> 00:37:58,310 Што значи можам да направам ЦД, простор, Dropbox. 813 00:37:58,310 --> 00:37:59,900 ЦД, промена директориум. 814 00:37:59,900 --> 00:38:00,400 Право. 815 00:38:00,400 --> 00:38:02,890 Назад во денот, кога луѓето биле измислување компјутери и оперативни 816 00:38:02,890 --> 00:38:05,806 системи како ова, тие сакаа да внесете најмалку тастатурата е можно. 817 00:38:05,806 --> 00:38:08,760 Па најлесен начин да се каже Промена на директориум беше на CD. 818 00:38:08,760 --> 00:38:13,910 >> Значи, ако јас хит ЦД, простор Dropbox, забележи она што се смени овде. 819 00:38:13,910 --> 00:38:16,480 Внатре во загради апаратот е вид 820 00:38:16,480 --> 00:38:19,360 мене humoring и потсетувајќи ми каде сум. 821 00:38:19,360 --> 00:38:21,480 Па отворената папка е Dropbox. 822 00:38:21,480 --> 00:38:24,950 Ако јас сега пишувате ls за листа, повторно содржаен, 823 00:38:24,950 --> 00:38:27,540 затоа што луѓето не сакаат да ги Назад во текот на денот л-и-с-т. 824 00:38:27,540 --> 00:38:29,300 Па тие наместо да направи ls. 825 00:38:29,300 --> 00:38:30,110 >> Enter. 826 00:38:30,110 --> 00:38:35,740 Забележете гледам две работи, здраво-1.в, а потоа овој криптичната работа, извор 1 милион. 827 00:38:35,740 --> 00:38:38,310 Тоа е само мојот начин на велејќи изворниот код за понеделник недела 1. 828 00:38:38,310 --> 00:38:42,020 Тоа е папка Јас ја преземале од Веб-страница CS50 дека сум направил порано и денес 829 00:38:42,020 --> 00:38:43,990 и само да го стави во апаратот однапред. 830 00:38:43,990 --> 00:38:47,550 >> Но сега за сега единственото нешто што грижат за се што оваа програма. 831 00:38:47,550 --> 00:38:50,440 Па кога ќе напишеш направи здраво-1, Enter. 832 00:38:50,440 --> 00:38:51,320 По ѓаволите. 833 00:38:51,320 --> 00:38:53,060 Нешто не беше во ред. 834 00:38:53,060 --> 00:38:54,580 Значи, да се закачам оваа разлика. 835 00:38:54,580 --> 00:38:58,489 И за жал ова е местото каде што работи се добие малку стресни на прв, 836 00:38:58,489 --> 00:39:00,280 барем ако сте никогаш програмиран порано. 837 00:39:00,280 --> 00:39:00,980 >> Боже. 838 00:39:00,980 --> 00:39:04,990 Напишав две линија на програмата и Имам четири линии на грешки. 839 00:39:04,990 --> 00:39:07,180 Значи она што се случува тука. 840 00:39:07,180 --> 00:39:11,370 Прво и основно секогаш движете се назад и се најде на првата порака за грешка, 841 00:39:11,370 --> 00:39:15,730 бидејќи многу пати компајлери само се збунети од она што и јас. 842 00:39:15,730 --> 00:39:17,000 Компајлери се прилично глупави. 843 00:39:17,000 --> 00:39:18,360 Тие само ќе го направи она што ќе им кажете да се направи. 844 00:39:18,360 --> 00:39:21,484 И ако ги збуни, тие се само ќе вид на фрли своите раце 845 00:39:21,484 --> 00:39:25,010 а можеби фрли повеќе пораки за грешки отколку што се всушност релевантни. 846 00:39:25,010 --> 00:39:26,380 >> Па ајде да погледнеме во прв план. 847 00:39:26,380 --> 00:39:27,540 Супер криптичната на прв. 848 00:39:27,540 --> 00:39:31,050 Но известување, тука е името на датотека во која се зафркнав очигледно. 849 00:39:31,050 --> 00:39:36,570 Дебелото црево 5, дебелото црево 5 едноставно значи на алинеја 5 на петтата карактер. 850 00:39:36,570 --> 00:39:39,760 Па петта колона на карактери, ако сакате, грешка. 851 00:39:39,760 --> 00:39:41,870 Употреба на непријавена идентификатор стринг. 852 00:39:41,870 --> 00:39:43,120 Дали мислевте стандард n? 853 00:39:43,120 --> 00:39:44,850 >> Не, мислев стринг. 854 00:39:44,850 --> 00:39:47,640 И тогаш тоа е вид на копирање и вметнување 855 00:39:47,640 --> 00:39:50,700 она што го напишале навистина да се подготви мојот внимание од каде се зафркнав. 856 00:39:50,700 --> 00:39:54,260 Па поради некоја причина Ц, или барем на компајлерот 857 00:39:54,260 --> 00:39:56,470 не го разбира зборот стринг. 858 00:39:56,470 --> 00:39:57,890 И тоа е затоа што ја измисли. 859 00:39:57,890 --> 00:40:01,440 Па низа не постои во C. Што CS50 прави, 860 00:40:01,440 --> 00:40:03,380 за првите неколку недели само на класата, 861 00:40:03,380 --> 00:40:05,700 е ние обезбеди некои обуки тркала, така да се каже. 862 00:40:05,700 --> 00:40:11,160 И ќе стави овие обука тркала во внатрешноста на посебен фајл наречен CS50.h. 863 00:40:11,160 --> 00:40:14,970 >> Значи ова е вториот од двата датотека имиња кои очигледно заврши во точка ч. 864 00:40:14,970 --> 00:40:16,300 Ајде да ја премотам касетата. 865 00:40:16,300 --> 00:40:19,360 Printf е изјава или функција што очигледно печати нешто 866 00:40:19,360 --> 00:40:20,580 на екранот. 867 00:40:20,580 --> 00:40:23,470 Но ти не ме виде спроведување printf, нели. 868 00:40:23,470 --> 00:40:26,360 Некој пред неколку години спроведува printf. 869 00:40:26,360 --> 00:40:30,420 Во она што датотека ќе ви го облог или таа се стави на имплементацијата 870 00:40:30,420 --> 00:40:34,270 за printf, кодот за printf? 871 00:40:34,270 --> 00:40:36,860 >> Во датотека наречена стандард I / O.h. 872 00:40:36,860 --> 00:40:39,930 Всушност, тоа е веројатно во две датотеки, стандард I / O.h, 873 00:40:39,930 --> 00:40:42,650 која се залага за насловот датотека, и стандардни I / O.c, 874 00:40:42,650 --> 00:40:44,060 која се залага за C изворниот код. 875 00:40:44,060 --> 00:40:48,220 Па тој или таа пред неколку години plopped кодот кој што го напиша во таа датотека 876 00:40:48,220 --> 00:40:51,240 така што луѓето како нас години подоцна може да се вклучи, 877 00:40:51,240 --> 00:40:53,040 така да се каже, во нашите сопствени програми. 878 00:40:53,040 --> 00:40:56,320 >> И навистина, тоа е она што на фунтата знак проследено со зборот вклучуваат прави. 879 00:40:56,320 --> 00:41:00,250 Изгледа на локалните хард диск, се наоѓа на фајл наречен стандард I / O.h, 880 00:41:00,250 --> 00:41:03,840 а потоа ефикасно копии и пасти тоа внатрешноста на мојата датотека. 881 00:41:03,840 --> 00:41:07,210 Па сега мојата програма знае како да се испечати на екранот. 882 00:41:07,210 --> 00:41:11,120 >> Значи со таа логика, каде што е дефинирана низа? 883 00:41:11,120 --> 00:41:12,260 >> ПУБЛИКАТА: CS50.h. 884 00:41:12,260 --> 00:41:13,290 >> Дејвид Џ MALAN: CS50.h. 885 00:41:13,290 --> 00:41:15,540 И навистина, тоа е она што ние, јадрото кадар, имаат направено. 886 00:41:15,540 --> 00:41:19,590 Ние сме измислиле неколку типови на податоци, така да се каже, како стринг, 887 00:41:19,590 --> 00:41:22,370 во прилог на оние што добиете бесплатно, како int. 888 00:41:22,370 --> 00:41:26,010 И ќе видиме други како знак за лик и уште неколку. 889 00:41:26,010 --> 00:41:30,670 Внатрешноста на CS50.h очигледно е барем некои споменување на стрингот. 890 00:41:30,670 --> 00:41:34,980 >> Па сега дозволете ми да оди напред и повторување направи здраво-1. 891 00:41:34,980 --> 00:41:37,100 Ќе зумирате повторно и премине моите прсти. 892 00:41:37,100 --> 00:41:41,370 Сега со тоа што го направија еден промена јас фиксна повеќето работи. 893 00:41:41,370 --> 00:41:42,100 Но, тоа проклето. 894 00:41:42,100 --> 00:41:44,290 Повеќе проценти од податоците аргументи. 895 00:41:44,290 --> 00:41:45,980 Што направив погрешно ова време? 896 00:41:45,980 --> 00:41:47,420 >> Така, тоа е сè уште прилично криптичната. 897 00:41:47,420 --> 00:41:51,560 Но оваа грешка е на алинеја 7 и карактерот 21. 898 00:41:51,560 --> 00:41:53,880 Па ајде да одиме погледнете тука. 899 00:41:53,880 --> 00:41:55,350 Тоа е малку суптилни. 900 00:41:55,350 --> 00:41:59,167 Но, ако мислите дека за тоа што основните идеи тука се, 901 00:41:59,167 --> 00:42:00,500 можеби и ние може да се закачам оваа разлика. 902 00:42:00,500 --> 00:42:02,300 >> Значи printf е името на функцијата. 903 00:42:02,300 --> 00:42:04,960 Загради, досега, е исто како и она што ќе стави околу 904 00:42:04,960 --> 00:42:07,005 работи кои се поминува како влезни параметри во функција. 905 00:42:07,005 --> 00:42:08,921 Добро, само произволни човечки конвенција. 906 00:42:08,921 --> 00:42:09,919 Користете загради. 907 00:42:09,919 --> 00:42:12,460 Во внатрешноста на овие загради ние сме биле ставање двојни наводници, 908 00:42:12,460 --> 00:42:14,810 а потоа жиците како "Здраво светот." 909 00:42:14,810 --> 00:42:18,160 >> Но, во кои претходно пример многу накратко не гледаме со гребење. 910 00:42:18,160 --> 00:42:22,590 И имавме проценти г, што друго беше внатре на овие загради 911 00:42:22,590 --> 00:42:23,730 дека јас извика вербално? 912 00:42:23,730 --> 00:42:24,230 Да. 913 00:42:24,230 --> 00:42:28,166 >> ПУБЛИКАТА: Значи тоа е она што сте преземање [Беззвучен] од внатре [Беззвучен] 914 00:42:28,166 --> 00:42:30,200 она што овие [Беззвучен]? 915 00:42:30,200 --> 00:42:31,200 Дејвид Џ MALAN: Токму така. 916 00:42:31,200 --> 00:42:32,700 Значи имавме проценти г. 917 00:42:32,700 --> 00:42:36,620 Но тогаш имаше блиски понуда, запирка, шанкот. 918 00:42:36,620 --> 00:42:37,120 Право. 919 00:42:37,120 --> 00:42:40,680 Ние наведени она што го сакате да се направи како на случаеви. 920 00:42:40,680 --> 00:42:44,621 Значи она што јас ќе одам да направите тука е запирка, што сакаш да се стави? 921 00:42:44,621 --> 00:42:45,120 ПУБЛИКАТА: С. 922 00:42:45,120 --> 00:42:46,828 Дејвид Џ MALAN: S, бидејќи во овој случај 923 00:42:46,828 --> 00:42:48,700 е името на сад за чување. 924 00:42:48,700 --> 00:42:50,180 Тоа е името на тој стаклен сад. 925 00:42:50,180 --> 00:42:53,610 А пред тоа беше противвредност во таа едноставна гребење пример ние погледна. 926 00:42:53,610 --> 00:42:56,630 Па сега ја направи две промени, дозволете ми да зумирате 927 00:42:56,630 --> 00:42:59,800 и да се обидат уште еднаш да се компајлирате оваа програма. 928 00:42:59,800 --> 00:43:01,596 >> Сега гледам дека криптичната линија. 929 00:43:01,596 --> 00:43:03,470 Но, тоа е всушност името на компајлерот. 930 00:43:03,470 --> 00:43:04,886 Ѕвекот е името на компајлерот. 931 00:43:04,886 --> 00:43:07,100 Направи е само мене заштеда главоболка на некогаш 932 00:43:07,100 --> 00:43:09,830 пишување дека долго луди команда надвор. 933 00:43:09,830 --> 00:43:14,900 Па сега ако јас не dot намали здраво-1, Јас треба да се види "Здраво, Дејвид." 934 00:43:14,900 --> 00:43:16,450 >> Прилично underwhelming, иако, нели? 935 00:43:16,450 --> 00:43:18,158 Ние би можеле да имаат направено ова е многу повеќе, едноставно 936 00:43:18,158 --> 00:43:20,940 без зборуваме за променливите и CS50.h и сето тоа. 937 00:43:20,940 --> 00:43:23,080 Значи, да се направи тоа малку поинтересна. 938 00:43:23,080 --> 00:43:31,010 >> Во прилог на CS50.h, има нешта како низа 939 00:43:31,010 --> 00:43:34,550 прогласи, библиотеката CS50 исто така има неколку функции. 940 00:43:34,550 --> 00:43:38,520 Пред па како години, некој напишал printf и го стави во стандард I / O.h 941 00:43:38,520 --> 00:43:39,530 и некои други датотека. 942 00:43:39,530 --> 00:43:44,010 >> Ние, вработените CS50, напиша функција наречен GetChar, GetDouble, GetFloat, 943 00:43:44,010 --> 00:43:47,610 GetInt, GetLongLong, GetString, а ние се стави оние во внатрешноста на датотека 944 00:43:47,610 --> 00:43:49,890 наречен CS50.h и CS50.c. 945 00:43:49,890 --> 00:43:51,880 И ние ги стави внатре на CS50 апаратот. 946 00:43:51,880 --> 00:43:53,880 И луѓето можат, исто така, да ги преземете онлајн, ако тие 947 00:43:53,880 --> 00:43:55,880 сакате да ги стави на своите сопствени компјутери, како и. 948 00:43:55,880 --> 00:44:00,880 Кој е да се каже дека ние направивме функции кои се влез од корисникот. 949 00:44:00,880 --> 00:44:02,930 Јас не знам што сите на овие типови на податоци се. 950 00:44:02,930 --> 00:44:06,490 GetInt е вид на едноставни, како добиете број некако од страна на корисникот. 951 00:44:06,490 --> 00:44:09,980 И GetString е веројатно како GET еден збор или реченица од корисникот. 952 00:44:09,980 --> 00:44:11,770 >> Значи, да се фокусира на тоа. 953 00:44:11,770 --> 00:44:14,710 И јас ќе одам да се врати во апаратот и јас одам да се оди напред 954 00:44:14,710 --> 00:44:20,790 и спаси го овој фајл како, да ја наречеме тоа здраво-2.в како мојата втора верзија. 955 00:44:20,790 --> 00:44:23,030 И ајде да се направат неколку промени. 956 00:44:23,030 --> 00:44:25,800 >> Овој пат, наместо тешко кодирање Давид, кој 957 00:44:25,800 --> 00:44:29,120 го прави неверојатно конзистентни но underwhelming програма, 958 00:44:29,120 --> 00:44:32,640 што ако јас наместо направите GetString? 959 00:44:32,640 --> 00:44:35,660 Сега забележите GetString има отворена заграда, 960 00:44:35,660 --> 00:44:38,500 затворена заграда, бидејќи тоа не треба секој влез. 961 00:44:38,500 --> 00:44:40,850 Тоа е само случува да одам да купам низа од корисникот. 962 00:44:40,850 --> 00:44:42,460 >> А сега еден збор на другите синтакса. 963 00:44:42,460 --> 00:44:45,439 Semicolons само се стави крај на линија код. 964 00:44:45,439 --> 00:44:46,730 Вие не се потребни насекаде. 965 00:44:46,730 --> 00:44:48,896 Но, тоа само значи дека јас сум направи со оваа линија код. 966 00:44:48,896 --> 00:44:51,080 Дозволете ми да се движи кон друг изјава или функција. 967 00:44:51,080 --> 00:44:53,010 Стринг изјавува променлива. 968 00:44:53,010 --> 00:44:55,920 Стринг е како да кажеш ми даде една чаша, ве молам. 969 00:44:55,920 --> 00:44:57,940 И дозволете ми да се стави стринг со неа. 970 00:44:57,940 --> 00:44:59,430 >> И сега знак за еднаквост. 971 00:44:59,430 --> 00:45:03,510 Што е знак за еднаквост во суштина е еквивалентно на? 972 00:45:03,510 --> 00:45:04,500 >> ПУБЛИКАТА: Доделување. 973 00:45:04,500 --> 00:45:06,190 >> Дејвид Џ MALAN: Да, доделување на вредност. 974 00:45:06,190 --> 00:45:09,872 Значи, ако јас, на пример, повик оваа функција GetString, 975 00:45:09,872 --> 00:45:12,830 и ние ќе се види во еден момент тоа е ќе го извести корисникот за низа. 976 00:45:12,830 --> 00:45:17,810 Ова е како да ми овозможи да потоа напишете Д-на-в-и-г на ​​парче хартија. 977 00:45:17,810 --> 00:45:21,060 И кога велам низа на еднаква GetString, 978 00:45:21,060 --> 00:45:24,140 еднакви воопшто не значи еднакви во C програмскиот. 979 00:45:24,140 --> 00:45:27,880 Тоа значи додели од десната страна на левата страна. 980 00:45:27,880 --> 00:45:29,510 >> Па јас сум добил низа. 981 00:45:29,510 --> 00:45:32,785 И знак за еднаквост значи го стави во сад за чување наречен е. 982 00:45:32,785 --> 00:45:36,730 А потоа положи ова исклучување printf да всушност си ја работи својата работа. 983 00:45:36,730 --> 00:45:39,790 >> Па крајниот резултат тогаш се случува да се погледне малку различен. 984 00:45:39,790 --> 00:45:40,840 Ајде да го прават здраво-2. 985 00:45:40,840 --> 00:45:43,940 986 00:45:43,940 --> 00:45:45,260 Или би можеле да работат. 987 00:45:45,260 --> 00:45:46,450 Следите. 988 00:45:46,450 --> 00:45:47,940 Направи здраво-2 работел. 989 00:45:47,940 --> 00:45:52,640 Dot намали здраво-2, Enter. 990 00:45:52,640 --> 00:45:54,620 >> Јас се чини дека имаат бесконечен јамка или нешто. 991 00:45:54,620 --> 00:45:55,453 Ништо не се случува. 992 00:45:55,453 --> 00:45:56,134 Зошто? 993 00:45:56,134 --> 00:45:57,805 >> ПУБЛИКАТА: Тоа е правење бесконечна јамка. 994 00:45:57,805 --> 00:45:59,430 Дејвид Џ MALAN: Тоа е бесконечна јамка. 995 00:45:59,430 --> 00:46:02,710 Тоа е вид на чекање за мене да всушност го овозможи со некои влез. 996 00:46:02,710 --> 00:46:05,800 Значи, дозволете ми да оди напред и напишете во Давида, и притиснете ентер. 997 00:46:05,800 --> 00:46:07,230 И сега што вели: "Здраво, Дејвид." 998 00:46:07,230 --> 00:46:09,040 Ако јас се кандидира повторно. 999 00:46:09,040 --> 00:46:11,530 Ајде да напишете во Роб, "Здраво, Роб." 1000 00:46:11,530 --> 00:46:13,900 >> Сега ова е најлошото кориснички интерфејс било кога. 1001 00:46:13,900 --> 00:46:16,110 Корисникот е очигледно треба да знаат што да прават. 1002 00:46:16,110 --> 00:46:17,120 Но не е важно. 1003 00:46:17,120 --> 00:46:19,570 Користење на истите зграда блокови, исто како во нула, 1004 00:46:19,570 --> 00:46:24,980 може да се реши тој проблем и да каже нешто како вашето име, ве молиме, дебелото црево, 1005 00:46:24,980 --> 00:46:27,820 простор, затворен цитат, во близина загради, точка-запирка. 1006 00:46:27,820 --> 00:46:30,680 Толку многу повторно будалаштина со синтакса. 1007 00:46:30,680 --> 00:46:34,040 >> Но забележите јас сум само додаде загатка парче над оваа 1008 00:46:34,040 --> 00:46:35,280 а над оваа. 1009 00:46:35,280 --> 00:46:38,870 Па сега ако јас повторување ова, здраво-2, Enter. 1010 00:46:38,870 --> 00:46:41,180 Чекај малку. 1011 00:46:41,180 --> 00:46:41,830 Што е проблемот? 1012 00:46:41,830 --> 00:46:43,570 Тоа не е да се однесуваат поинаку. 1013 00:46:43,570 --> 00:46:44,200 Да. 1014 00:46:44,200 --> 00:46:46,010 >> ПУБЛИКАТА: Вие не работи направи повторно. 1015 00:46:46,010 --> 00:46:47,968 >> Дејвид Џ MALAN: Не се кандидира направи повторно, нели. 1016 00:46:47,968 --> 00:46:49,430 Па јас сменив изворниот код. 1017 00:46:49,430 --> 00:46:50,638 Но, повторно, не е тоа проток. 1018 00:46:50,638 --> 00:46:54,530 Изворниот код преку компајлер дава сте нов објект код, или 0-ти и 1S. 1019 00:46:54,530 --> 00:47:00,209 Па јас треба да всушност Репризата направи здраво-2 Enter. 1020 00:47:00,209 --> 00:47:01,750 Во ред, нешто се чини дека се случило. 1021 00:47:01,750 --> 00:47:04,220 Dot намали здраво-2. 1022 00:47:04,220 --> 00:47:05,390 Вашето име молам. 1023 00:47:05,390 --> 00:47:09,990 И да биде јасно сега, зошто е курсорот на иста линија? 1024 00:47:09,990 --> 00:47:10,490 Токму така. 1025 00:47:10,490 --> 00:47:13,020 Јас не се стави обратна коса црта n тука во мојот код. 1026 00:47:13,020 --> 00:47:16,110 Па сега можам да пишувам нешто како Daven, Enter. 1027 00:47:16,110 --> 00:47:18,710 Можам да го кандидира повторно и напишете нешто како Габе, Внесете, 1028 00:47:18,710 --> 00:47:22,250 и да добиеме поинаква програма повторно и повторно и повторно. 1029 00:47:22,250 --> 00:47:28,940 >> Сега на крајот ние ќе треба да се користи неколку различни способности. 1030 00:47:28,940 --> 00:47:32,860 Ние треба да се воведе на крајот некои услови да се прават работите условно. 1031 00:47:32,860 --> 00:47:35,550 Можеби петелки, така што можеме да направиме работи повторно и повторно. 1032 00:47:35,550 --> 00:47:38,220 >> Можеби тоа би било убаво ако ние би можеле да спроведат нашите сопствени функции, 1033 00:47:38,220 --> 00:47:41,355 како ние би можеле да се имплементираат нашите сопствени printf или нашата сопствена верзија на GetString 1034 00:47:41,355 --> 00:47:45,870 и GetFlow, бидејќи во крајна линија, дури и користите оваа команда линија на животната средина 1035 00:47:45,870 --> 00:47:49,780 можеме да направиме дури и најпознатите визуелно интересни работи. 1036 00:47:49,780 --> 00:47:51,950 >> Навистина во заклучокот дозволете ми да го направите тоа. 1037 00:47:51,950 --> 00:47:54,020 Одам да одиме напред и затворете овие прозорци 1038 00:47:54,020 --> 00:47:57,400 и отворете оваа икона тука, која е само поголеми 1039 00:47:57,400 --> 00:48:00,020 верзија на вградените терминален прозорец. 1040 00:48:00,020 --> 00:48:02,329 Па Gedit не само местото за мојот код, 1041 00:48:02,329 --> 00:48:05,620 но, исто така, вграден во терминал, црно и бело прозорец каде што може да се кандидира 1042 00:48:05,620 --> 00:48:06,230 команди. 1043 00:48:06,230 --> 00:48:08,600 >> Јас едноставно се случи да се отвори поголема верзија на ова. 1044 00:48:08,600 --> 00:48:11,170 И сега ќе одам да одат во папката каде што јас сум веќе 1045 00:48:11,170 --> 00:48:13,150 стави во однапред на веб-страницата на курсот. 1046 00:48:13,150 --> 00:48:16,720 И јас одам да се оди напред и да отворите датотека наречена thadgavin.c, 1047 00:48:16,720 --> 00:48:18,710 кој беше напишан од некој друг. 1048 00:48:18,710 --> 00:48:21,220 >> И ако гледаме на тоа, ова не е вид на код 1049 00:48:21,220 --> 00:48:24,370 ние ќе се пишува од целта на овој код 1050 00:48:24,370 --> 00:48:28,450 е да се напише најубаво во потрага кодот што тој или таа може, 1051 00:48:28,450 --> 00:48:31,290 без оглед на тоа дали или не друго човечко суштество би можеле некогаш 1052 00:48:31,290 --> 00:48:33,660 се разбере овој код. 1053 00:48:33,660 --> 00:48:37,050 >> Навистина, секоја година има она што е нарекува криење С натпревар, кој 1054 00:48:37,050 --> 00:48:39,570 е за реални видливо кои пишуваат кодот кој никој друг не може да прочитате, 1055 00:48:39,570 --> 00:48:42,050 но тоа не нешто или навистина едноставна или навистина неверојатни. 1056 00:48:42,050 --> 00:48:43,890 И ние сме мислеле дека би склучи со овој изглед 1057 00:48:43,890 --> 00:48:48,300 на нешто што е доста неверојатно Можеби сте виделе еднаш. 1058 00:48:48,300 --> 00:48:52,650 Но ние ќе се стави крај на овој белешка, точка црта, thadgavin. 1059 00:48:52,650 --> 00:48:53,860 Ова тогаш е она што го чека. 1060 00:48:53,860 --> 00:48:57,140 1061 00:48:57,140 --> 00:48:58,500 >> Тоа е тоа за CS50. 1062 00:48:58,500 --> 00:48:59,935 Ние ќе се видиме во средата. 1063 00:48:59,935 --> 00:49:04,284 1064 00:49:04,284 --> 00:49:10,016 >> [Музички] 1065 00:49:10,016 --> 00:53:31,883