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