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