1 00:00:08,119 --> 00:00:11,630 [Powered by Google Translate] Дејвид Џ MALAN: Добро, ова е CS50, и ова е 2 00:00:11,630 --> 00:00:14,790 почетокот на недела две. 3 00:00:14,790 --> 00:00:16,300 Ви благодариме. 4 00:00:16,300 --> 00:00:19,000 Дозволете ни да започне овде со еден телефонски повик. 5 00:00:19,000 --> 00:00:30,005 Јас сум за да го бирате 617-бубачки-CS50. 6 00:00:30,005 --> 00:00:31,230 CS50: Ова е CS50. 7 00:00:31,230 --> 00:00:33,930 За шатлот Момче, притиснете 1. 8 00:00:33,930 --> 00:00:36,660 Да се ​​започне одново, притиснете 9. 9 00:00:36,660 --> 00:00:38,180 Дејвид Џ MALAN: Па рече тој за шатлот Момче, притиснете 1. 10 00:00:38,180 --> 00:00:41,560 Па ние ќе притиснете 1. 11 00:00:41,560 --> 00:00:43,230 CS50: Која е вашата потекло? 12 00:00:43,230 --> 00:00:45,340 За quad, притиснете 1. 13 00:00:45,340 --> 00:00:47,080 Mather, притиснете 2. 14 00:00:47,080 --> 00:00:49,240 Boylston, притиснете 3. 15 00:00:49,240 --> 00:00:51,280 Ламонт, притиснете 4. 16 00:00:51,280 --> 00:00:53,210 Mem сала, притиснете 5. 17 00:00:53,210 --> 00:00:55,660 Да се ​​започне одново, притиснете 0. 18 00:00:55,660 --> 00:00:59,590 Дејвид Џ MALAN: Ќе притиснете 1 за quad. 19 00:00:59,590 --> 00:01:03,610 CS50: Следна шатл остава ова многу минута во 13:10, и 20 00:01:03,610 --> 00:01:09,820 потоа во 01:20, 01:30, 01:40. 21 00:01:09,820 --> 00:01:12,030 Ова е CS50. 22 00:01:12,030 --> 00:01:15,570 >> Дејвид Џ MALAN: Значи ова е глас CS50 е. 23 00:01:15,570 --> 00:01:18,030 И тоа е пример на видовите на конечниот проекти, за 24 00:01:18,030 --> 00:01:19,500 пример, можете да отхапвам кон 25 00:01:19,500 --> 00:01:20,600 На крајот на семестарот. 26 00:01:20,600 --> 00:01:23,840 На пример, дека shuttleboy.cs50.net постои - 27 00:01:23,840 --> 00:01:28,200 всушност проект кој јас прв пат напиша по преземањето CS51 28 00:01:28,200 --> 00:01:29,740 назад кога бев додипломски. 29 00:01:29,740 --> 00:01:32,250 И инспирација тука беше тогаш, сите тие имаа беше 30 00:01:32,250 --> 00:01:34,320 печатени шатл-автобус графиците, и немаше 31 00:01:34,320 --> 00:01:35,970 Поимот потрага работите онлајн. 32 00:01:35,970 --> 00:01:38,730 И така јас вид на гулаб во еден викенд, преточена преку 33 00:01:38,730 --> 00:01:41,460 печатени распоред, и тоа пренесен на компјутерска програма. 34 00:01:41,460 --> 00:01:43,790 Во тоа време, на компјутерска програма што се случи да биде напишана 35 00:01:43,790 --> 00:01:47,110 во В И навистина да сте ја истрча со пишување шатлот момче во 36 00:01:47,110 --> 00:01:48,600 трепка прашува како сме правеле досега. 37 00:01:48,600 --> 00:01:50,450 Но, со текот на годините, тоа прерасна во еден момент 38 00:01:50,450 --> 00:01:51,390 пораки бот. 39 00:01:51,390 --> 00:01:53,970 Тоа е еволуирале од неодамна во оваа веб страна, во 40 00:01:53,970 --> 00:01:57,720 СМС-базирана алатка, како и во овој глас-базирана алатка. 41 00:01:57,720 --> 00:02:00,170 И ова е да алудираат на видови на работи што можете да 42 00:02:00,170 --> 00:02:02,380 направите за себе до крајот на семестар. 43 00:02:02,380 --> 00:02:05,490 >> На пример, постои, верзијата СМС на шатлот Момче се случува 44 00:02:05,490 --> 00:02:06,510 да работат како што следи. 45 00:02:06,510 --> 00:02:10,880 Ако, на вашиот мобилен телефон, можете да испратите текстуална порака до 41.411 и 46 00:02:10,880 --> 00:02:14,300 потоа да ја пратите посебен симбол sboy, за шатлот Момче, 47 00:02:14,300 --> 00:02:18,350 проследено со А и Б, каде што е потеклото и Б е 48 00:02:18,350 --> 00:02:19,070 дестинација - 49 00:02:19,070 --> 00:02:21,030 на пример, Boylston простор Quad - 50 00:02:21,030 --> 00:02:23,330 она што треба да се вратат во рок од неколку секунди е текст 51 00:02:23,330 --> 00:02:25,820 порака од шатлот Момче ви кажува точно кога 52 00:02:25,820 --> 00:02:28,990 следните неколку автобуси се, од таа точка А ќе дека 53 00:02:28,990 --> 00:02:29,640 точката B. 54 00:02:29,640 --> 00:02:32,510 И ова е една поопшта пример за она што е познат како 55 00:02:32,510 --> 00:02:33,920 со користење на API. 56 00:02:33,920 --> 00:02:36,930 >> Така на пример, ова овде е само shuttleboy.cs50.net, на 57 00:02:36,930 --> 00:02:39,300 вистински веб-базирани инкарнација на тоа. 58 00:02:39,300 --> 00:02:42,480 Но податоците што нагласува ова и други апликации кои CS50 59 00:02:42,480 --> 00:02:45,560 има развиено сите се изложени на сите тука во форма 60 00:02:45,560 --> 00:02:49,340 на API, апликација програмски интерфејс. 61 00:02:49,340 --> 00:02:52,220 И тоа е само фенси начин да се каже дека луѓето сакаме на 62 00:02:52,220 --> 00:02:56,010 Интернет и другите имаат поминато некое време создавање 63 00:02:56,010 --> 00:02:59,970 софтвер кој можете да го користите со цел да зграби податоци од нас и 64 00:02:59,970 --> 00:03:02,510 потоа се изгради свој апликации на врвот 65 00:03:02,510 --> 00:03:03,840 на тој податоци. 66 00:03:03,840 --> 00:03:06,610 Така на пример, оваа шатлот Момче API страница тука, што 67 00:03:06,610 --> 00:03:09,390 се случува да биде во CS50 прирачник, суштински документи 68 00:03:09,390 --> 00:03:13,080 како можете да се обратите за поставување CS50 сервери за податоци. 69 00:03:13,080 --> 00:03:16,240 На пример, ако сте запознаени со CSV датотеки, запирка 70 00:03:16,240 --> 00:03:18,940 одвоени вредности, овие се само вид на брз и нечиста 71 00:03:18,940 --> 00:03:20,310 Excel-како датотеки. 72 00:03:20,310 --> 00:03:23,110 Така можете да побарате шатлот момче за сите податоци за сите 73 00:03:23,110 --> 00:03:25,090 куќи и нивниот ГПС координати, и ќе добиете 74 00:03:25,090 --> 00:03:27,300 назад, во суштина, табеларни пресметки, како што тоа 75 00:03:27,300 --> 00:03:30,820 тогаш може да прочитате во програмата на свој и потоа 76 00:03:30,820 --> 00:03:33,250 генерира резултати, како шатлот Момче себе 77 00:03:33,250 --> 00:03:34,160 се случува да се прави. 78 00:03:34,160 --> 00:03:37,030 За оние кои се повеќе запознаени, помодерен податоци репрезентации 79 00:03:37,030 --> 00:03:39,420 вклучуваат JSON, JavaScript Цел Нотација. 80 00:03:39,420 --> 00:03:40,620 Нешто ќе ти се врати кон 81 00:03:40,620 --> 00:03:41,720 На крајот на семестарот. 82 00:03:41,720 --> 00:03:45,440 >> Но, повторно, ова е само една од неколкуте на сопствени API-CS50 е. 83 00:03:45,440 --> 00:03:48,320 И возбудлива работа е сега, овие денови, Facebook и 84 00:03:48,320 --> 00:03:51,110 Твитер и Google и доста секој популарен сајт од 85 00:03:51,110 --> 00:03:54,130 таму има некој вид на API, што значи дека ако го прочитате 86 00:03:54,130 --> 00:03:56,620 документација за нивниот веб-сајт, можете регистрирате за 87 00:03:56,620 --> 00:03:59,980 сметка, тогаш може да почне пишувањето софтвер на врвот на 88 00:03:59,980 --> 00:04:03,680 она што алатки или податоци кои компанијата има нуди. 89 00:04:03,680 --> 00:04:06,210 И така еден од нашите наставни соработници неколку години назад 90 00:04:06,210 --> 00:04:07,620 напиша верзија Mac на ова. 91 00:04:07,620 --> 00:04:10,990 Па на линкот под наслов Mac тука во горниот лев агол, можете да всушност 92 00:04:10,990 --> 00:04:13,940 преземете Mac OS графичка контрола која работи на свој Mac да го стори 93 00:04:13,940 --> 00:04:15,040 истите видови на нештата. 94 00:04:15,040 --> 00:04:17,970 Така, тоа е за сите градење на врвот на збирки на податоци, како овие. 95 00:04:17,970 --> 00:04:21,839 Но повеќе за тоа кон крајот на семестарот. 96 00:04:21,839 --> 00:04:25,780 >> Значи, да се нурне во реално брзо да се работи за грешка, само да се вид на се 97 00:04:25,780 --> 00:04:27,990 работи загрее и денес, и се сетам на некои од 98 00:04:27,990 --> 00:04:29,660 работи ние погледна минатата недела. 99 00:04:29,660 --> 00:04:32,840 Особено, дозволете ми да оди напред и да се повлече, да речеме, 100 00:04:32,840 --> 00:04:34,080 овој пример тука. 101 00:04:34,080 --> 00:04:37,500 Buggy1.c, ова е достапна на веб-страницата на курсот ако сакате 102 00:04:37,500 --> 00:04:40,250 сакал да го преземете и да ѕиркаат наоколу себе. 103 00:04:40,250 --> 00:04:43,520 Но, ајде да зумирате тука во оваа прилично кратка програма, и само 104 00:04:43,520 --> 00:04:46,550 супер-брз повториме на некои од основните градежни блокови кои 105 00:04:46,550 --> 00:04:48,880 ние навистина се случува само започнете преземањето здраво за готово. 106 00:04:48,880 --> 00:04:51,860 >> Па сина работи, во алинеите 1 до 9, се само 107 00:04:51,860 --> 00:04:53,670 софтбол прашања. 108 00:04:53,670 --> 00:04:54,590 Значи овие се само коментари. 109 00:04:54,590 --> 00:04:56,230 Тие немаат функционална смисла. 110 00:04:56,230 --> 00:04:58,460 Но тие се коментари во смисла дека тие се забележува дека 111 00:04:58,460 --> 00:05:02,010 Јас, човечки, направени за себе, така што во предавање и по 112 00:05:02,010 --> 00:05:04,340 предавање, јас всушност може да се сети што оваа програма 113 00:05:04,340 --> 00:05:07,120 прави без да се чита преку неа линија по линија и 114 00:05:07,120 --> 00:05:08,990 Пресоздавањето историја во мојот ум. 115 00:05:08,990 --> 00:05:11,000 Покрај тоа, ако јас рака на оваа програма за некој друг како 116 00:05:11,000 --> 00:05:14,420 вас, тоа е многу појасна за вас, бидејќи на коментари како ова, 117 00:05:14,420 --> 00:05:16,680 што на програмата е всушност прави, или барем она што 118 00:05:16,680 --> 00:05:18,210 програмата би требало да се прави. 119 00:05:18,210 --> 00:05:20,760 Дали е или не е точно е друго прашање целосно. 120 00:05:20,760 --> 00:05:25,040 Сега, во C, со мулти-линија коментари, се сети дека на линија 121 00:05:25,040 --> 00:05:27,880 еден тука е магијата симбол, / *. 122 00:05:27,880 --> 00:05:30,380 Тоа значи тука доаѓа на почетокот на коментар. 123 00:05:30,380 --> 00:05:34,560 И ништо друго не е важно се додека не стигне до крајот терминатор, 124 00:05:34,560 --> 00:05:36,700 која е * /, спротивното. 125 00:05:36,700 --> 00:05:39,120 Значи фактот дека имам 80-некои чудни ѕвезди овде од 126 00:05:39,120 --> 00:05:41,550 лево кон десно е навистина само естетски детал. 127 00:05:41,550 --> 00:05:43,370 Тоа нема функционална смисла. 128 00:05:43,370 --> 00:05:44,490 >> Сега како за линија 11? 129 00:05:44,490 --> 00:05:46,940 Што значи тоа го направи во однос на Едноставен? 130 00:05:51,560 --> 00:05:52,540 Што е тоа? 131 00:05:52,540 --> 00:05:54,280 ПУБЛИКАТА: Вклучува стандарден. 132 00:05:54,280 --> 00:05:54,740 Дејвид Џ MALAN: Добро, добро. 133 00:05:54,740 --> 00:05:57,500 Па тоа вклучува stdio.h библиотека. 134 00:05:57,500 --> 00:05:58,230 Значи она што значи тоа? 135 00:05:58,230 --> 00:06:01,570 Па, во таа датотека, stdio.h, се еден куп на 136 00:06:01,570 --> 00:06:03,320 функција декларации - 137 00:06:03,320 --> 00:06:05,290 што е, кодот кој некој друг го напишал. 138 00:06:05,290 --> 00:06:08,160 И совршен пример на функција која е прогласена во 139 00:06:08,160 --> 00:06:10,250 stdio.h е - 140 00:06:10,250 --> 00:06:11,980 кои омилена до сега? 141 00:06:11,980 --> 00:06:14,300 Значи printf, еден од оние кои најчесто да ги користат, секако 142 00:06:14,300 --> 00:06:15,840 на почетокот, од кои библиотеката е таму. 143 00:06:15,840 --> 00:06:19,290 Ако исклучам таа линија на кодот, ѕвекот се случува да се развикам 144 00:06:19,290 --> 00:06:22,550 во мене нешто во врска со користење на непријавена симбол. 145 00:06:22,550 --> 00:06:24,930 Нешто непријавена е веројатно клучни зборови, бидејќи 146 00:06:24,930 --> 00:06:27,770 не сме информирани компајлерот она што printf изгледа 147 00:06:27,770 --> 00:06:29,230 сакал ако ние го вклучите таа линија. 148 00:06:29,230 --> 00:06:31,830 И повеќе долу на Земјата, навистина, она што таа линија е велејќи дека е 149 00:06:31,830 --> 00:06:34,890 отвори таа датотека, stdio.h, каде и да е на серверот 150 00:06:34,890 --> 00:06:38,200 хард диск, или хард диск уредот, и копи-паста тоа 151 00:06:38,200 --> 00:06:40,240 право таму во мојот датотека, без моја 152 00:06:40,240 --> 00:06:41,730 морале да го направите тоа рачно. 153 00:06:41,730 --> 00:06:44,420 >> Сега, откако ќе се фаќате тука до главна, пред долго ќе почнеме со 154 00:06:44,420 --> 00:06:46,900 надразнување, освен она што int и она празнина е. 155 00:06:46,900 --> 00:06:48,430 Но, за сега, да се погледне на три линии 156 00:06:48,430 --> 00:06:50,350 во рок од 17 15 преку. 157 00:06:50,350 --> 00:06:52,250 Ова овде тврдам како кабриолет. 158 00:06:52,250 --> 00:06:54,900 Линија 7 во моите коментари се вели дека "треба да се печати 10 159 00:06:54,900 --> 00:06:59,410 звезди, но не. "Зошто ова не се печати, всушност, 160 00:06:59,410 --> 00:07:01,097 10 како ѕвезди? 161 00:07:01,097 --> 00:07:02,347 ПУБЛИКАТА: [Беззвучен]. 162 00:07:05,210 --> 00:07:05,800 Дејвид Џ MALAN: Токму така. 163 00:07:05,800 --> 00:07:08,720 Значи забележите дека ние сме почнуваат да се смета од 0. 164 00:07:08,720 --> 00:07:10,780 И ова е всушност конвенција во програмирање и 165 00:07:10,780 --> 00:07:13,230 компјутерски науки поопшто, почнуваат да се смета 166 00:07:13,230 --> 00:07:14,610 од 0 наместо на 1. 167 00:07:14,610 --> 00:07:16,690 И ова навистина само произлегува од фактот дека, за 168 00:07:16,690 --> 00:07:18,940 пример, кога имавме осум лица се на сцената, кога 169 00:07:18,940 --> 00:07:20,680 никој не е подигање на својата рака, тие беа 170 00:07:20,680 --> 00:07:22,340 сите ефективно нули. 171 00:07:22,340 --> 00:07:24,260 И така тоа е само вид на компјутерски конвенцијата така, 172 00:07:24,260 --> 00:07:26,030 затоа, да се започне сметано од 0. 173 00:07:26,030 --> 00:07:29,130 Ако тоа е најмал број може да се претставуваат во бинарна. 174 00:07:29,130 --> 00:07:32,270 >> Значи тука сме отворени иницијализацијата јас на 0. 175 00:07:32,270 --> 00:07:34,230 Ние постави i еднаква на 0. 176 00:07:34,230 --> 00:07:37,780 Но, тогаш не сум направил оваа грешка тука, велејќи дека е помала или 177 00:07:37,780 --> 00:07:38,820 еднаква на 10. 178 00:07:38,820 --> 00:07:41,700 Но, ако мислите дека преку, ако почнам на 0 и тогаш ќе одам 179 00:07:41,700 --> 00:07:46,410 до 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, јас сум всушност ќе 180 00:07:46,410 --> 00:07:49,980 печати од 11 ѕвезди на екранот, бидејќи јас сум качил 181 00:07:49,980 --> 00:07:52,410 до и еднакви на 10. 182 00:07:52,410 --> 00:07:55,090 Па лесно поправи тука тогаш е она? 183 00:07:55,090 --> 00:07:56,070 ПУБЛИКАТА: [Беззвучен]. 184 00:07:56,070 --> 00:07:57,350 Дејвид Џ MALAN: Само промените на помалку од. 185 00:07:57,350 --> 00:07:59,700 Ако навистина сакате, можете да го направите тоа. 186 00:07:59,700 --> 00:08:01,370 Но, во принцип, тоа е намуртен врз. 187 00:08:01,370 --> 00:08:04,020 И така почнува да се смета од 0 е само нешто што треба да 188 00:08:04,020 --> 00:08:05,510 обично се користи за да се. 189 00:08:05,510 --> 00:08:07,810 Сега, она што за целата оваа конструкција во себе и за себе? 190 00:08:07,810 --> 00:08:10,640 Оваа линија 15 demarks на за телефонска линија. 191 00:08:10,640 --> 00:08:12,510 Така што не е во функција. 192 00:08:12,510 --> 00:08:13,640 Тоа е само изјава. 193 00:08:13,640 --> 00:08:16,180 Тоа е looping конструкт, како што видовме во нула. 194 00:08:16,180 --> 00:08:17,600 И има три дела. 195 00:08:17,600 --> 00:08:19,740 Забележете дека постои првиот дел на 196 00:08:19,740 --> 00:08:21,350 на левата страна на точка-запирка. 197 00:08:21,350 --> 00:08:24,200 Има средишниот дел меѓу двете semicolons. 198 00:08:24,200 --> 00:08:26,250 А потоа, тука е на десната страна кон десно 199 00:08:26,250 --> 00:08:27,640 на втората точка-запирка. 200 00:08:27,640 --> 00:08:31,822 Сега, првата од овие не се она што? 201 00:08:31,822 --> 00:08:33,679 ПУБЛИКАТА: [Беззвучен]. 202 00:08:33,679 --> 00:08:34,270 Дејвид Џ MALAN: Назад таму? 203 00:08:34,270 --> 00:08:34,816 Да? 204 00:08:34,816 --> 00:08:35,980 ПУБЛИКАТА: Иницијализација. 205 00:08:35,980 --> 00:08:36,850 >> Дејвид Џ MALAN: Иницијализација. 206 00:08:36,850 --> 00:08:37,840 Значи она што значи ова? 207 00:08:37,840 --> 00:08:40,690 Имаме прогласи променлива наречена i. 208 00:08:40,690 --> 00:08:43,840 Тоа е од тип int, бидејќи јас сум наведени int i. 209 00:08:43,840 --> 00:08:46,470 И јас сум јас иницијализацијата на вредноста на 0. 210 00:08:46,470 --> 00:08:47,730 Значи она што е ова навистина зборуваш? 211 00:08:47,730 --> 00:08:50,680 Тоа е ефикасно велејќи дека на компјутерот еј, дај ми доволно 212 00:08:50,680 --> 00:08:53,660 меморија, доволно RAM меморија, за да ги собере голем број, а потоа го ставаат на 213 00:08:53,660 --> 00:08:56,130 број 0 во тој дел од RAM меморија. 214 00:08:56,130 --> 00:08:59,100 И како настрана, колку е голема е int обично, во внатрешноста на најмалку 215 00:08:59,100 --> 00:09:00,280 на уредот? 216 00:09:00,280 --> 00:09:01,000 ПУБЛИКАТА: 32-битна. 217 00:09:01,000 --> 00:09:01,670 Дејвид Џ MALAN: 32 бита. 218 00:09:01,670 --> 00:09:04,890 Па тоа значи дека ми даде 32 бита, инаку познат како 4 бајти, 219 00:09:04,890 --> 00:09:07,250 и го стави на вредност 0 во него, што е прилично лесно, бидејќи 220 00:09:07,250 --> 00:09:09,110 Тоа само значи постави сите делови на 0. 221 00:09:09,110 --> 00:09:11,690 >> Па сега, вториот дел тука е состојба. 222 00:09:11,690 --> 00:09:14,590 И состојба, како што сугерира името, е она што се проверува 223 00:09:14,590 --> 00:09:18,100 повторно и повторно и повторно, како и тоа дали е точно или неточно. 224 00:09:18,100 --> 00:09:21,410 Значи ова е само велејќи направи ги следниве линии на код - 225 00:09:21,410 --> 00:09:23,950 имено линија 16, бидејќи тоа е само една требуван 226 00:09:23,950 --> 00:09:24,820 под - 227 00:09:24,820 --> 00:09:26,980 толку долго како што е помалку од 10. 228 00:09:26,980 --> 00:09:30,520 И по секоја итерација преку овој циклус, направете го 229 00:09:30,520 --> 00:09:33,840 incrementation, кој во овој случај е i + +. 230 00:09:33,840 --> 00:09:35,580 Сега, тоа не мора да биде i + +. 231 00:09:35,580 --> 00:09:37,610 Тоа може да биде i -. 232 00:09:37,610 --> 00:09:39,860 Но, ако сум го правела тоа, она што однесувањето се случува 233 00:09:39,860 --> 00:09:41,370 да се биде на оваа програма? 234 00:09:41,370 --> 00:09:42,290 Публика: Тоа ќе биде бесконечна јамка. 235 00:09:42,290 --> 00:09:44,060 Дејвид Џ MALAN: Тоа ќе биде некој вид на бескрајна јамка, 236 00:09:44,060 --> 00:09:47,720 освен ако имаат среќа по негативните 2 милијарди или така. 237 00:09:47,720 --> 00:09:51,320 Можеби работите ќе заврши околу, само по природа на конечни 238 00:09:51,320 --> 00:09:53,930 бројот на битови што се распределени за Инт. 239 00:09:53,930 --> 00:09:56,270 Но, тоа е, секако, ќе iterate далеку повеќе од 10 и 240 00:09:56,270 --> 00:09:58,630 сигурно повеќе од 11 пати тука. 241 00:09:58,630 --> 00:10:02,240 >> И сега, како настрана, да сфатат дека јас + + и јас - 242 00:10:02,240 --> 00:10:04,420 се навистина само синтаксички шеќер. 243 00:10:04,420 --> 00:10:07,210 Тоа е само стенографија нотација за она што е малку повеќе 244 00:10:07,210 --> 00:10:08,720 експлицитно напишано како што следува: 245 00:10:08,720 --> 00:10:11,200 i = i + 1. 246 00:10:11,200 --> 00:10:13,460 Тоа е идентична со i + +. 247 00:10:13,460 --> 00:10:15,860 Тоа само вид на изгледа поубава да се каже i + +. 248 00:10:15,860 --> 00:10:17,490 Тоа е повеќе содржаен, повеќе читлив. 249 00:10:17,490 --> 00:10:19,030 И така повеќето луѓе го направите тоа, наместо. 250 00:10:19,030 --> 00:10:21,840 Но, ова е идентична функционално да 251 00:10:21,840 --> 00:10:22,900 она што го видоа. 252 00:10:22,900 --> 00:10:27,770 Значи во кратки, брз лек тука е само да се каже iterate i 253 00:10:27,770 --> 00:10:30,690 од 0 целиот пат до помалку од 10. 254 00:10:30,690 --> 00:10:32,700 И тогаш навистина ќе добие 10 ѕвезди. 255 00:10:32,700 --> 00:10:33,430 >> Значи, да се обидат ова. 256 00:10:33,430 --> 00:10:35,310 Дозволете ми да се отвори терминал на дното. 257 00:10:35,310 --> 00:10:37,420 Дозволете ми да одат во директориумот дека ова е внатре 258 00:10:37,420 --> 00:10:40,030 И јас одам да го компајлирате рачно со ѕвекот за сега. 259 00:10:40,030 --> 00:10:44,880 А јас одам да ги собере тие како buggy1.c, Enter. 260 00:10:44,880 --> 00:10:50,280 И сега buggy1, зошто постои таква датотека или директориум 261 00:10:50,280 --> 00:10:52,026 наречен buggy1? 262 00:10:52,026 --> 00:10:53,850 ПУБЛИКАТА: [Беззвучен]. 263 00:10:53,850 --> 00:10:54,240 Дејвид Џ MALAN: Да. 264 00:10:54,240 --> 00:10:55,420 Така, тоа е, всушност, наречен a.out. 265 00:10:55,420 --> 00:10:57,480 Значи се потсетиме само ако стартувате ѕвекот, каде ѕвекот е 266 00:10:57,480 --> 00:11:00,420 компајлер, а вие не го наведете името кое сакате да 267 00:11:00,420 --> 00:11:03,550 им даде на вашата програма, тоа се случува да се стандардно a.out. 268 00:11:03,550 --> 00:11:05,030 Значи, навистина, ако го направам ls - 269 00:11:05,030 --> 00:11:05,510 Упс. 270 00:11:05,510 --> 00:11:07,680 И јас didn't - на црно-бело прашање некои од 271 00:11:07,680 --> 00:11:08,840 ќе се соочи не е утврдена. 272 00:11:08,840 --> 00:11:10,670 Но, дозволете ми да го направите тоа. 273 00:11:10,670 --> 00:11:14,570 Ние имаме a.out на левата страна има. 274 00:11:14,570 --> 00:11:17,360 Значи ние треба да се кандидира a.out наместо buggy1. 275 00:11:17,360 --> 00:11:19,140 >> Па дозволете ми да оди напред и да го направите тоа. 276 00:11:19,140 --> 00:11:22,840 . / A.out, Enter. 277 00:11:22,840 --> 00:11:26,160 И јас очигледно не го направи она што? 278 00:11:26,160 --> 00:11:26,620 ПУБЛИКАТА: Save. 279 00:11:26,620 --> 00:11:27,390 Дејвид Џ MALAN: Зачувај ми датотека. 280 00:11:27,390 --> 00:11:31,520 Така што е лесно да се реши со притискање Контрола С, или ќе 281 00:11:31,520 --> 00:11:33,450 Датотека, Зачувај, како и во повеќето програми. 282 00:11:33,450 --> 00:11:36,360 Дозволете ми да одат надолу тука, го исчистите екранот, внесете ја повторно. 283 00:11:36,360 --> 00:11:37,960 И таму е уште една бубачка. 284 00:11:37,960 --> 00:11:41,618 Значи она што се случува - 285 00:11:41,618 --> 00:11:42,980 ПУБЛИКАТА: Вие не го собира. 286 00:11:42,980 --> 00:11:44,040 Дејвид Џ MALAN: Ах, добро. 287 00:11:44,040 --> 00:11:45,010 Јас не го собира. 288 00:11:45,010 --> 00:11:47,250 Како идиот, јас барам во кодот за да ја видите она што е погрешно. 289 00:11:47,250 --> 00:11:51,275 Значи ѕвекот buggy1.c, сега a.out. 290 00:11:51,275 --> 00:11:52,640 И Phew, спасен. 291 00:11:52,640 --> 00:11:55,090 >> Па тоа изгледа малку грдо, бидејќи нема нова линија 292 00:11:55,090 --> 00:11:55,970 никаде во програмата. 293 00:11:55,970 --> 00:11:57,390 Но, повторно, тоа е само естетски детал. 294 00:11:57,390 --> 00:11:59,430 И барем ако ги броиме оние надвор, ние треба да 295 00:11:59,430 --> 00:12:01,160 сега види 10 како ѕвездите. 296 00:12:01,160 --> 00:12:03,260 Па, она што за овој вториот загревање пример? 297 00:12:03,260 --> 00:12:07,750 Значи во buggy2, тврдам дека оваа верзија, исто така, ќе се печати 298 00:12:07,750 --> 00:12:10,110 10 ѕвезди, по еден на линија. 299 00:12:10,110 --> 00:12:12,340 Значи ова време, имам линија карактер, само за да бидете 300 00:12:12,340 --> 00:12:13,520 работите малку поубав. 301 00:12:13,520 --> 00:12:15,410 Но, наместо она што го добиваме е ова. 302 00:12:15,410 --> 00:12:19,590 Па дозволете ми да направам ѕвекот buggy2.c, Enter. 303 00:12:19,590 --> 00:12:21,790 Сега е повторно повика a.out. 304 00:12:21,790 --> 00:12:23,130 Enter. 305 00:12:23,130 --> 00:12:26,900 Јас само види еден нов линија, само последната нова линија која 306 00:12:26,900 --> 00:12:29,370 се движи мојата линија на следната линија. 307 00:12:29,370 --> 00:12:32,660 А сепак јасно Сум бил печатење *, а потоа нова линија, 308 00:12:32,660 --> 00:12:33,990 *, А потоа нова линија. 309 00:12:33,990 --> 00:12:35,490 Но она што е бубачка тука? 310 00:12:35,490 --> 00:12:35,974 Да? 311 00:12:35,974 --> 00:12:37,224 ПУБЛИКАТА: [Беззвучен]. 312 00:12:39,850 --> 00:12:40,470 >> Дејвид Џ MALAN: Токму така. 313 00:12:40,470 --> 00:12:44,110 Па за разлика од некои јазици, како Пајтон, каде вовлекување 314 00:12:44,110 --> 00:12:46,030 всушност има функционална смисла, во 315 00:12:46,030 --> 00:12:47,150 јазик како C - 316 00:12:47,150 --> 00:12:49,140 како што ќе видиме, PHP, JavaScript - 317 00:12:49,140 --> 00:12:51,940 вовлекувањето е навистина само за доброто на луѓето. 318 00:12:51,940 --> 00:12:55,690 Значи фактот дека јас сум вовлечен линија 16 и 17 изгледа одлично, 319 00:12:55,690 --> 00:12:57,530 но тоа нема функционална смисла тука. 320 00:12:57,530 --> 00:13:00,700 Ако сакам двете линии да се изврши како дел од за 321 00:13:00,700 --> 00:13:05,140 јамка, тогаш мора да ги приложи во големи загради со тоа. 322 00:13:05,140 --> 00:13:08,540 Вие само може да се намали тој агол и изостави кадрава загради ако 323 00:13:08,540 --> 00:13:10,036 што е случај? 324 00:13:10,036 --> 00:13:10,410 ПУБЛИКАТА: Само една линија. 325 00:13:10,410 --> 00:13:11,130 Дејвид Џ MALAN: Само една линија. 326 00:13:11,130 --> 00:13:15,280 Значи тоа е само вид на убав вид на синтаксата детали, така што 327 00:13:15,280 --> 00:13:17,900 да не губат време во пишување на три линии, од кои две се 328 00:13:17,900 --> 00:13:20,040 кадрави загради, само да се напише една линија код. 329 00:13:20,040 --> 00:13:21,650 Но, ако имате два или повеќе линии, ние 330 00:13:21,650 --> 00:13:22,860 навистина треба да го направите тоа. 331 00:13:22,860 --> 00:13:24,210 >> Па сега нека ме спаси ова. 332 00:13:24,210 --> 00:13:27,140 Дозволете ми да одиме напред и повторно да се кандидира ѕвекот. 333 00:13:27,140 --> 00:13:31,375 Тогаш дозволете ми повторување a.out, и сега јас ги добие по еден на линија. 334 00:13:31,375 --> 00:13:33,670 Сега, a.out повторно е вид на нем име за програмата. 335 00:13:33,670 --> 00:13:37,500 Како можам да кажам ѕвекот да всушност ми даде името на датотеката 336 00:13:37,500 --> 00:13:39,820 тоа е повеќе user-friendly, како buggy2 себе? 337 00:13:43,200 --> 00:13:44,466 А малку повеќе јасно? 338 00:13:44,466 --> 00:13:45,220 ПУБЛИКАТА: [Беззвучен]. 339 00:13:45,220 --> 00:13:47,810 Дејвид Џ MALAN: OK, па јас всушност може да земе многу 340 00:13:47,810 --> 00:13:51,000 user-friendly кратенка и само напиши направи buggy2. 341 00:13:51,000 --> 00:13:53,840 Јас не специфицирате. В во овој случај, и притиснете Enter. 342 00:13:53,840 --> 00:13:58,530 И она што го прават не е тоа компајлира buggy2.c за мене од страна на 343 00:13:58,530 --> 00:14:00,260 барајќи ѕвекот да го направи тоа. 344 00:14:00,260 --> 00:14:05,100 Поточно, тој го повикува ѕвекот, бега ѕвекот користење начин повеќе 345 00:14:05,100 --> 00:14:08,540 командната линија аргументи или прекинувачи отколку што всушност треба. 346 00:14:08,540 --> 00:14:11,270 Со текот на времето, ние ќе се вратам на она што сите овие различни 347 00:14:11,270 --> 00:14:13,810 криптичната тиренце изрази значи. 348 00:14:13,810 --> 00:14:16,910 Но, за сега, тоа е само мене заштеда на проблеми на 349 00:14:16,910 --> 00:14:19,600 мора да се запамети и да ја внесувате од сите оние 350 00:14:19,600 --> 00:14:21,150 различни тиренце изрази. 351 00:14:21,150 --> 00:14:23,240 И главата на тоа на крајот е 352 00:14:23,240 --> 00:14:25,900 дека сега имам buggy2. 353 00:14:25,900 --> 00:14:27,480 Ако сакате да го направите тоа рачно, иако, јас 354 00:14:27,480 --> 00:14:28,775 наместо да го направите тоа - 355 00:14:28,775 --> 00:14:34,110 ѕвекот-о buggy2 а потоа buggy2.c. 356 00:14:34,110 --> 00:14:37,980 И дека слично ќе ми даде фајл наречен buggy2. 357 00:14:37,980 --> 00:14:39,710 >> Значи во кратки, ѕвекот е компајлерот. 358 00:14:39,710 --> 00:14:43,080 Направи е само user-friendly алатка која ќе биде со користење на повеќе 359 00:14:43,080 --> 00:14:44,420 и повеќе, бидејќи тоа само ќе почне да 360 00:14:44,420 --> 00:14:47,330 поедностави работите за нас. 361 00:14:47,330 --> 00:14:49,430 И ние се врати 0, на крај. 362 00:14:49,430 --> 00:14:51,890 За сега, само затоа, но ние ќе започнеме надразнување тој дел 363 00:14:51,890 --> 00:14:52,930 денес и во средата. 364 00:14:52,930 --> 00:14:55,560 Било какви прашања на која било од ова? 365 00:14:55,560 --> 00:14:56,450 Да? 366 00:14:56,450 --> 00:14:58,234 ПУБЛИКАТА: [Беззвучен] 367 00:14:58,234 --> 00:15:00,020 ЛС во наводници таму? 368 00:15:00,020 --> 00:15:01,710 Дејвид Џ MALAN: OK. 369 00:15:01,710 --> 00:15:05,880 Кога ќе внесе ls во наводници, што ме прави некоја магија 370 00:15:05,880 --> 00:15:07,160 зад сцената за да се утврди грешка. 371 00:15:07,160 --> 00:15:09,370 Го заборавив, како ние сме биле кажува многу за вас на 372 00:15:09,370 --> 00:15:11,600 дискусија, да се направи - 373 00:15:11,600 --> 00:15:17,220 ние ќе го направите ова сега - sudo yum-y ажурирање appliance50. 374 00:15:17,220 --> 00:15:19,790 Whoops, дека тоа е напишано во право. 375 00:15:19,790 --> 00:15:23,240 Значи уредот е како оперативен систем. 376 00:15:23,240 --> 00:15:25,650 Тоа е водење овој оперативен систем наречен Fedora. 377 00:15:25,650 --> 00:15:27,450 И сега, бидејќи на мојот бавен интернет конекција, јас сум 378 00:15:27,450 --> 00:15:28,260 навистина hosed. 379 00:15:28,260 --> 00:15:31,620 Па трчање sudo yum update, како што ви кажам да се направи во 380 00:15:31,620 --> 00:15:34,080 проблем во собата, во суштина е како трчање автоматски ажурирања 381 00:15:34,080 --> 00:15:35,420 во Mac OS или Windows. 382 00:15:35,420 --> 00:15:37,280 А причината за водење ова на самиот почеток на 383 00:15:37,280 --> 00:15:39,640 проблем во собата е затоа што кога ние направивме на апаратот, јас 384 00:15:39,640 --> 00:15:42,480 збркана, а јас случајно направи на сите ваши програми изгледаат 385 00:15:42,480 --> 00:15:45,210 црна боја на црна екран, кој е зошто вие не сте ги гледаат 386 00:15:45,210 --> 00:15:45,860 од стандардните. 387 00:15:45,860 --> 00:15:48,020 Но, најновата верзија на апаратот поправки ова. 388 00:15:48,020 --> 00:15:50,500 И јас ќе утврдат дека во текот на пауза еднаш имам интернет 389 00:15:50,500 --> 00:15:51,280 конекција. 390 00:15:51,280 --> 00:15:54,630 >> Па цитати само крие мојата грешка, многу дискретно, 391 00:15:54,630 --> 00:15:55,730 очигледно. 392 00:15:55,730 --> 00:15:56,980 Други прашања? 393 00:15:59,750 --> 00:16:00,668 Да? 394 00:16:00,668 --> 00:16:02,012 ПУБЛИКАТА: Каде да доаѓаат од? 395 00:16:02,012 --> 00:16:03,810 [Беззвучен] 396 00:16:03,810 --> 00:16:04,280 Дејвид Џ MALAN: Добро прашање. 397 00:16:04,280 --> 00:16:05,460 Каде да доаѓаат од? 398 00:16:05,460 --> 00:16:09,390 Тоа е Линукс програма која постои за многу години, додека 399 00:16:09,390 --> 00:16:10,570 пред CS50. 400 00:16:10,570 --> 00:16:12,930 И тоа доаѓа со оперативен систем како Fedora. 401 00:16:12,930 --> 00:16:14,830 Тоа не доаѓа од CS50 библиотека. 402 00:16:14,830 --> 00:16:17,560 Всушност, само работите кои доаѓаат од CS50 библиотека 403 00:16:17,560 --> 00:16:20,470 досега, што видовме, се GetString, GetInt, сите 404 00:16:20,470 --> 00:16:25,550 оние Земете функции, и зборот стринг, и до одреден 405 00:16:25,550 --> 00:16:26,575 степен, зборот bool. 406 00:16:26,575 --> 00:16:29,180 Но, ние ќе закачам дека освен кога ќе се нурне во CS50 407 00:16:29,180 --> 00:16:30,580 апаратот себе. 408 00:16:30,580 --> 00:16:32,820 >> Така да, уште едно прашање тука. 409 00:16:32,820 --> 00:16:36,636 ПУБЛИКАТА: Кога ќе рече да, а потоа кабриолет, како не на 410 00:16:36,636 --> 00:16:39,980 компјутерски знаат [Беззвучен]? 411 00:16:39,980 --> 00:16:40,520 Дејвид Џ MALAN: Добро прашање. 412 00:16:40,520 --> 00:16:43,830 Значи, кога сте само стартувајте го buggy1 или да buggy2, како 413 00:16:43,830 --> 00:16:45,220 прави знаеш? 414 00:16:45,220 --> 00:16:49,900 Значи по дифолт, ако го напишете направи buggy1, направи изглед за 415 00:16:49,900 --> 00:16:52,330 фајл наречен buggy1.c. 416 00:16:52,330 --> 00:16:55,570 И тогаш се извршува соодветни ѕвекот команди, 417 00:16:55,570 --> 00:17:00,380 тоа највисок стандардниот излез фајл наречен a.out. 418 00:17:00,380 --> 00:17:03,670 Всушност, ако се погледне во она што го направи, она што - 419 00:17:03,670 --> 00:17:04,839 ајде да престанам ова. 420 00:17:04,839 --> 00:17:09,530 Ако ги погледнеме во она што го прават е всушност прави, бидете buggy2, 421 00:17:09,530 --> 00:17:10,470 тоа е веќе во тек. 422 00:17:10,470 --> 00:17:13,020 Па нека ме отстрани РМ команда, 423 00:17:13,020 --> 00:17:14,319 програма напишав порано. 424 00:17:14,319 --> 00:17:17,319 Пишување Y-Е-С да потврди дека сакате да го отстраните. 425 00:17:17,319 --> 00:17:20,480 Ако јас сега го прават, забележи дека во овој многу долга линија, 426 00:17:20,480 --> 00:17:22,980 таму е ова последното нешто тука,-о buggy2. 427 00:17:22,980 --> 00:17:26,959 Сите го прави поминува тој аргумент, така да се каже, да се 428 00:17:26,959 --> 00:17:29,665 Ѕвекот, така што јас не мора да го напишеш себе. 429 00:17:29,665 --> 00:17:32,660 >> Добро, така што брзо неколку административни 430 00:17:32,660 --> 00:17:33,470 пораки. 431 00:17:33,470 --> 00:17:36,940 Така и за делови, кои официјално започна оваа доаѓаат 432 00:17:36,940 --> 00:17:38,970 Недела, секогаш ќе сакате да се донесе, ако 433 00:17:38,970 --> 00:17:40,120 го имате, лаптоп. 434 00:17:40,120 --> 00:17:42,570 Ако не имаат лаптоп, не допре до мене од страна на 435 00:17:42,570 --> 00:17:43,580 ме намалувањето е-мејл. 436 00:17:43,580 --> 00:17:44,810 И ние ќе дознаам тек на работа. 437 00:17:44,810 --> 00:17:47,100 Што генерално ќе најдете во делот е дека тие се дел 438 00:17:47,100 --> 00:17:48,770 концептуални, дел практично. 439 00:17:48,770 --> 00:17:52,190 Ние конкретно ќе користат дел од прашањата, дел од 440 00:17:52,190 --> 00:17:54,110 на недела проблем во собата, да одиме преку некои од 441 00:17:54,110 --> 00:17:55,820 концептуални материјал од предавање. 442 00:17:55,820 --> 00:17:57,480 И тоа е во тековниот проблем во собата. 443 00:17:57,480 --> 00:18:00,010 И ние исто така ќе се нурне во некои рацете на активности, понекогаш 444 00:18:00,010 --> 00:18:02,190 од кои ќе бидат потребни да се поднесат, понекогаш на 445 00:18:02,190 --> 00:18:02,830 која нема. 446 00:18:02,830 --> 00:18:04,630 На пример, ова првата недела, тие се наменети само како 447 00:18:04,630 --> 00:18:05,780 загревање вежба. 448 00:18:05,780 --> 00:18:07,800 И ќе најдете дека овие проблеми се навистина само тоа. 449 00:18:07,800 --> 00:18:10,220 Тие се наменети да бидат прилично мали, но не е задолжително 450 00:18:10,220 --> 00:18:13,100 тривијални програми, да пишувам, кои не се нужно 451 00:18:13,100 --> 00:18:16,230 возбудлив и за самите себе, но се добри можности за 452 00:18:16,230 --> 00:18:19,620 практикуваат со синтакса, со нови функции, во удобноста на 453 00:18:19,620 --> 00:18:21,900 делот каде што имаш неколку од своите соученици претстави како 454 00:18:21,900 --> 00:18:22,870 како и вашите ТФ. 455 00:18:22,870 --> 00:18:26,210 >> И што ќе правиме со текот на времето е да се користи алатка наречена CS50 простори, 456 00:18:26,210 --> 00:18:28,940 при што наместо само со помош на CS50 апарати, ќе 457 00:18:28,940 --> 00:18:32,450 наместо да одат на веб страница во прелистувачот, каде што ќе бидат во можност 458 00:18:32,450 --> 00:18:35,610 да се напише кодот во прозорецот на прелистувачот при секција. 459 00:18:35,610 --> 00:18:38,240 А потоа, ако се одлучат во, вашата настава колеги тогаш може да покаже 460 00:18:38,240 --> 00:18:40,980 што и да е сте пишување на вашиот екран во вашиот интернет пребарувач 461 00:18:40,980 --> 00:18:43,930 прозорец нагоре во предниот дел на класа, дали анонимно или 462 00:18:43,930 --> 00:18:47,250 јавно, така што тој или таа, тогаш може да оди преку со 463 00:18:47,250 --> 00:18:50,080 соучениците што направи добро, она што не прават добро. 464 00:18:50,080 --> 00:18:52,750 И повторно, остатокот увери сето ова може да биде убаво анонимизирани. 465 00:18:52,750 --> 00:18:54,410 Но тоа ќе биде убава можност за многу повеќе 466 00:18:54,410 --> 00:18:56,810 интерактивност од нешто како предавање дозволува. 467 00:18:56,810 --> 00:18:58,910 >> Во меѓувреме, ние ќе ги имаат овие работи вика супер 468 00:18:58,910 --> 00:19:01,610 секции, кои се задолжително, но се отворени за секого во 469 00:19:01,610 --> 00:19:04,030 класата, така што можете да го направите ова повеќе колективно за 470 00:19:04,030 --> 00:19:05,190 Проблемот се постави еден. 471 00:19:05,190 --> 00:19:06,010 Тука е распоред. 472 00:19:06,010 --> 00:19:08,870 Ова е, исто така, испратени на почетната страница на cs50.net. 473 00:19:08,870 --> 00:19:10,850 Забележете дека таму ќе биде хакер специфични 474 00:19:10,850 --> 00:19:12,430 еден утре попладне. 475 00:19:12,430 --> 00:19:15,460 И ние ќе снимаат еден денес и една утре и пост оние 476 00:19:15,460 --> 00:19:16,720 онлајн во рок од 24 часа. 477 00:19:16,720 --> 00:19:19,370 Значи не, ако не може да се направи било кој од овие времиња, да се грижите. 478 00:19:19,370 --> 00:19:22,720 И повторно, распоредот е присутен во cs50.net. 479 00:19:22,720 --> 00:19:25,350 >> Во однос на sectioning себе, треба да имаат добивано и еден 480 00:19:25,350 --> 00:19:28,520 e-mail инструкции да одат на почетната страница од пребарувачот на курсот да се најде 481 00:19:28,520 --> 00:19:29,610 од вашиот секција. 482 00:19:29,610 --> 00:19:32,890 Ако живот се промени и што треба да го промените вашиот дел, 483 00:19:32,890 --> 00:19:33,560 не е проблем. 484 00:19:33,560 --> 00:19:37,900 Врати се дека истата адреса, cs50.net/section, еднина, 485 00:19:37,900 --> 00:19:40,090 и ќе ги пополните слична форма, така што ќе може да 486 00:19:40,090 --> 00:19:41,260 тогаш ни даде вашите преференци. 487 00:19:41,260 --> 00:19:43,360 И ние ќе се надоврзе до крајот на недела за тоа што можеме да 488 00:19:43,360 --> 00:19:44,240 Сместување во хотел. 489 00:19:44,240 --> 00:19:49,530 Минатата недела се сети дека ние предложи користење CS50 дискутираат, 490 00:19:49,530 --> 00:19:51,370 текот на дискусија алатка, во предавање. 491 00:19:51,370 --> 00:19:53,680 Па моравме 40 прашања кои беа поставени и 492 00:19:53,680 --> 00:19:54,720 одговори во текот на предавањето. 493 00:19:54,720 --> 00:19:56,280 Па се чинеше да работат добро, па ќе продолжи 494 00:19:56,280 --> 00:19:57,180 обидувајќи се да го направите тоа. 495 00:19:57,180 --> 00:19:59,600 Ако, во текот на предавањето, не само да се чувствуваат удобно за подигање 496 00:19:59,600 --> 00:20:00,780 твојата рака, не е проблем. 497 00:20:00,780 --> 00:20:04,640 Оди до cs50.net/discuss, пост таму, и еден од нашите наставни 498 00:20:04,640 --> 00:20:07,270 соработници или ќе одговорам по електронски пат или се подигне нивната 499 00:20:07,270 --> 00:20:10,620 рака во ваше име анонимно да прашам, во зависност 500 00:20:10,620 --> 00:20:12,470 од природата на прашањето. 501 00:20:12,470 --> 00:20:15,000 И во смисла на повратни информации, генерално psets ќе биде 502 00:20:15,000 --> 00:20:16,760 враќа во рок од една недела. 503 00:20:16,760 --> 00:20:19,080 Бидејќи е потребно малку време за делови за да се постигне 504 00:20:19,080 --> 00:20:22,430 рамнотежа, првиот pset, 0 и 1, ќе биде малку 505 00:20:22,430 --> 00:20:24,130 одложен работи се смират. 506 00:20:24,130 --> 00:20:27,130 Но, Stay tuned за тоа во неделите што доаѓаат. 507 00:20:27,130 --> 00:20:29,750 >> Добро, така нека ме стави на моите сериозни 508 00:20:29,750 --> 00:20:31,040 глас за само еден миг. 509 00:20:31,040 --> 00:20:32,690 Значи ова е всушност една интересна климата да биде 510 00:20:32,690 --> 00:20:35,210 имаат оваа дискусија, што со сите други работи 511 00:20:35,210 --> 00:20:37,310 случува на кампусот во врска со тоа. 512 00:20:37,310 --> 00:20:40,220 Но CS50 има сигурно имаше својата историја на овој 513 00:20:40,220 --> 00:20:43,360 тема, во колку што секоја година, на овој курс, за многу 514 00:20:43,360 --> 00:20:46,910 години, Привремена одбори околу 3% од класа. 515 00:20:46,910 --> 00:20:51,620 Ова е последната година, 2011, CS50 Привремена качија 35 студенти. 516 00:20:51,620 --> 00:20:54,120 Ова не е, мислам, поради недостаток на јасност. 517 00:20:54,120 --> 00:20:56,760 Сфатат дека во програмата на курсот, постои страница 518 00:20:56,760 --> 00:20:59,020 изјава објаснувајќи каде линиите се. 519 00:20:59,020 --> 00:21:01,350 Дека истата изјава се повторува на секој еден од 520 00:21:01,350 --> 00:21:03,070 Проблемот поставува на една страница. 521 00:21:03,070 --> 00:21:05,760 >> Па јас се спомене оваа денес навистина само за да бидете 522 00:21:05,760 --> 00:21:07,030 луѓе свесни за ова. 523 00:21:07,030 --> 00:21:08,080 И се обидовме различни нешта. 524 00:21:08,080 --> 00:21:10,630 И она што мислев дека ќе направите денес е само земи еден момент да 525 00:21:10,630 --> 00:21:13,830 всушност се погледне во некои од минатите случаи кои доаѓаат. 526 00:21:13,830 --> 00:21:16,160 Наместо да ги задржи овие како валкани место, всушност, 527 00:21:16,160 --> 00:21:19,170 истакнам она што студентите имаат направено и како можеме да ја открие 528 00:21:19,170 --> 00:21:21,630 тоа и навистина она Општата мотивација е за 529 00:21:21,630 --> 00:21:23,950 дури и по овој разговор. 530 00:21:23,950 --> 00:21:27,060 Па со тоа, рече, линијата суштина е ова - 531 00:21:27,060 --> 00:21:29,200 на наставната програма, ти си добредојде, да се охрабруваат да 532 00:21:29,200 --> 00:21:30,210 разговара со соучениците. 533 00:21:30,210 --> 00:21:31,910 Тоа е целата цел да се има овие заеднички 534 00:21:31,910 --> 00:21:34,470 работното време во Annenberg и охрабрување на луѓето за 535 00:21:34,470 --> 00:21:35,755 финалниот проект да работат заедно. 536 00:21:35,755 --> 00:21:38,590 Но е повлечена линија кога станува збор време да всушност пишува 537 00:21:38,590 --> 00:21:39,790 вашата крајна решение. 538 00:21:39,790 --> 00:21:42,590 Говорејќи на англиски јазик, сосема во ред, говорејќи во псевдо код, 539 00:21:42,590 --> 00:21:43,400 сосема во ред. 540 00:21:43,400 --> 00:21:46,340 Испраќање на соученик вашиот pset, допуштајќи им да се погледне во текот 541 00:21:46,340 --> 00:21:48,610 на екранот како рацете продолжи пишување, 542 00:21:48,610 --> 00:21:50,110 над линија, како и. 543 00:21:50,110 --> 00:21:52,250 Гледам на програмата за конкретната линии. 544 00:21:52,250 --> 00:21:55,850 >> Но, само за да наслика слика на тоа како ова е жал 545 00:21:55,850 --> 00:21:58,370 реалноста, да сфатат дека постојат веб-сајтови надвор таму дека 546 00:21:58,370 --> 00:22:01,490 имаат решенија од оваа класа и многу други класи. 547 00:22:01,490 --> 00:22:04,940 Фактот дека или околу 3% од вас знаат дека тоа постои 548 00:22:04,940 --> 00:22:07,240 значи дека ние знаеме дека тоа постои. 549 00:22:07,240 --> 00:22:09,340 На фактот дека постојат веб-сајтови како овој, каде што 550 00:22:09,340 --> 00:22:11,540 да плаќаат некого за да всушност се направи вашиот проблем поставува - ова беше 551 00:22:11,540 --> 00:22:13,450 вистински случај кој излезе минатата година. 552 00:22:13,450 --> 00:22:15,790 Ова е веб-сајт се нарекува odesk.com. 553 00:22:15,790 --> 00:22:20,090 И Тим беше името на лицето тука кој беше објавување на 554 00:22:20,090 --> 00:22:24,580 овој веб-сајт и побара некој да го стори неговиот pset 7 во 555 00:22:24,580 --> 00:22:25,570 конкретниов случај. 556 00:22:25,570 --> 00:22:28,350 Па, odesk.com е многу Гугл-можност, и ние исто така се 557 00:22:28,350 --> 00:22:30,310 многу добар во Googling. 558 00:22:30,310 --> 00:22:32,360 Овде, исто така, постојат сајтови - и ова е прилично 559 00:22:32,360 --> 00:22:34,234 крволочен, искрено. 560 00:22:34,234 --> 00:22:38,050 [Смеа] 561 00:22:38,050 --> 00:22:39,610 Дејвид Џ MALAN: На смешно нешто во врска со овој сајт е ако 562 00:22:39,610 --> 00:22:41,970 го прочитате За страница, тие зборуваат за нивните корпоративни 563 00:22:41,970 --> 00:22:44,390 култура и како услуги на клиентите е нивниот број-еден 564 00:22:44,390 --> 00:22:46,190 приоритет, за да бидете сигурни дека вашите задачи се 565 00:22:46,190 --> 00:22:47,890 се претвори во на време. 566 00:22:47,890 --> 00:22:50,580 >> Но со сета сериозност, пак, фактот дека овие сајтови 567 00:22:50,580 --> 00:22:52,910 постојат, сфаќаме, исто така, се осведомен на 568 00:22:52,910 --> 00:22:53,730 овие видови на сајтови. 569 00:22:53,730 --> 00:22:55,890 И да ви даде чувство за тоа што претставува ова генерално 570 00:22:55,890 --> 00:22:58,570 потребно, ние обично немаат големи скандали каде што луѓето 571 00:22:58,570 --> 00:23:01,080 се соработува на било каков вид на масовно, туку 572 00:23:01,080 --> 00:23:04,540 тоа е овие ноќни моменти на слабост, каде што треба да 573 00:23:04,540 --> 00:23:07,550 многу да се направи, тоа е 4:00, ти си исцрпени, а вие 574 00:23:07,550 --> 00:23:09,770 мислат за себе, добро, дозволете ми да ги погледне во моето 575 00:23:09,770 --> 00:23:11,770 цимер или кодот на мојот пријател или слично. 576 00:23:11,770 --> 00:23:14,800 И манифестации на оваа жал вклучуваат Студентски 577 00:23:14,800 --> 00:23:17,640 А поднесување вакво нешто и Студентски Б поднесување 578 00:23:17,640 --> 00:23:20,370 вакво нешто, што секако, во компјутер 579 00:23:20,370 --> 00:23:23,830 науката класа, е неверојатно лесен за компјутерски научници 580 00:23:23,830 --> 00:23:25,690 да се открие со софтвер. 581 00:23:25,690 --> 00:23:28,410 Ова е уште една заедничка парадигма, каде што сум вид на 582 00:23:28,410 --> 00:23:31,010 работи заедно на некој, можеби зборува во 583 00:23:31,010 --> 00:23:32,360 Македонски, само парична казна, pseudocode. 584 00:23:32,360 --> 00:23:35,080 Но, тогаш станува збор време за да всушност ги достават и psets 585 00:23:35,080 --> 00:23:37,910 само да се разменуваат преку e-mail или Dropbox или слично. 586 00:23:37,910 --> 00:23:41,120 Но, во обид да го направи тоа помалку очигледно дека ова е 587 00:23:41,120 --> 00:23:44,830 она што се случило, тогаш ова е она што се доставени. 588 00:23:44,830 --> 00:23:47,880 Ова, исто така, не патување до добро напишани парчиња 589 00:23:47,880 --> 00:23:50,360 софтвер како ние мора да всушност се открие 590 00:23:50,360 --> 00:23:51,280 овие видови на нештата. 591 00:23:51,280 --> 00:23:53,760 И навистина она што го правиме е кандидира софтвер кој ги споредува сите 592 00:23:53,760 --> 00:23:55,540 оваа година поднесоци против сите изминатата година 593 00:23:55,540 --> 00:23:57,380 поднесоци, против се што се наоѓаат на 594 00:23:57,380 --> 00:24:00,060 Интернет, против секоја работа веб таму. 595 00:24:00,060 --> 00:24:01,710 Тоа е многу автоматски. 596 00:24:01,710 --> 00:24:05,665 И така го правиме ова навистина во голема праведност до 97% кои 597 00:24:05,665 --> 00:24:07,760 се навистина работат ослите исклучите во овој и во други 598 00:24:07,760 --> 00:24:11,530 класи и пуштање во сето тоа напор, така што работата 599 00:24:11,530 --> 00:24:13,030 тие конечно поднесе е свој. 600 00:24:13,030 --> 00:24:14,220 И можам да одам на со векови. 601 00:24:14,220 --> 00:24:16,030 >> Овие се само неколку случаи од минатата година. 602 00:24:16,030 --> 00:24:19,350 Неколку студентите поднесува овие датотеки идентично за pset 2, 603 00:24:19,350 --> 00:24:22,460 pset 3, pset 4, pset 5, pset 6, pset 9. 604 00:24:22,460 --> 00:24:26,360 Во овој случај, тоа е квиз 0 и во минатата година, каде што двајца 605 00:24:26,360 --> 00:24:29,570 студентите поднесе идентично оваа реченица меѓу многу 606 00:24:29,570 --> 00:24:32,210 други, "Барањето од типот -" точка, точка, точка. 607 00:24:32,210 --> 00:24:34,530 Па дури и во класа на 600 не ја открие оваа 608 00:24:34,530 --> 00:24:36,310 на поднесените квизови. 609 00:24:36,310 --> 00:24:39,080 Значи во кратки, ова - искрено, мразам имаат овој вид на 610 00:24:39,080 --> 00:24:41,300 разговор - но ова е навистина намерно напор 611 00:24:41,300 --> 00:24:43,540 оваа година да се обиде да се вози надолу тој број. 612 00:24:43,540 --> 00:24:45,650 Бидејќи иако ние велат дека овие видови на нештата секој 613 00:24:45,650 --> 00:24:48,100 година, мислам дека реалноста на тоа што се засновала тоа за неколку 614 00:24:48,100 --> 00:24:50,800 повеќе секунди од вообичаеното, а всушност само укажува 615 00:24:50,800 --> 00:24:53,600 дека она што може да изгледа како, еј, не е толку голема работа, барем 616 00:24:53,600 --> 00:24:56,390 сетам на овој момент, и во праведноста на 617 00:24:56,390 --> 00:25:00,100 себе и за своите соученици тука. 618 00:25:00,100 --> 00:25:02,480 Значи, ако некогаш имате било какви прашања за тоа каде линија 619 00:25:02,480 --> 00:25:04,290 е, молам само да допрат до мене лично. 620 00:25:04,290 --> 00:25:07,190 Но одговорот е секогаш, целосно истакна во 621 00:25:07,190 --> 00:25:09,090 последен момент, готовина во на крајот на денот. 622 00:25:09,090 --> 00:25:11,080 Или ако тоа е прашање на немање било доцна дена, 623 00:25:11,080 --> 00:25:12,900 искрено, ми мејл лично. 624 00:25:12,900 --> 00:25:14,110 Ќе дознаам нешто надвор. 625 00:25:14,110 --> 00:25:17,480 Ве молиме не стави вашето време тука на Харвард во ризик. 626 00:25:17,480 --> 00:25:18,570 >> Сега, јас мислев дека треба да олекчи расположение, па јас 627 00:25:18,570 --> 00:25:20,264 вклучени на ова како на следниот слајд. 628 00:25:20,264 --> 00:25:22,770 [Смеа] 629 00:25:22,770 --> 00:25:23,630 Дејвид Џ MALAN: Овој вебсајт беше големо. 630 00:25:23,630 --> 00:25:24,820 Јас всушност доби малку расеан. 631 00:25:24,820 --> 00:25:26,330 Има оваа. 632 00:25:26,330 --> 00:25:29,590 И тогаш ова беше неверојатно. 633 00:25:29,590 --> 00:25:35,190 Океј, па мислите за тоа маче доцна во ноќта кога се вршат 634 00:25:35,190 --> 00:25:36,040 тие одлуки. 635 00:25:36,040 --> 00:25:40,110 Добро, па назад до повеќе да се забавуваат и помалку сериозни работи, како 636 00:25:40,110 --> 00:25:40,780 услови. 637 00:25:40,780 --> 00:25:43,900 >> Добро, така што зборуваше кратко за нив. 638 00:25:43,900 --> 00:25:46,080 Ова е нешто што е веројатно доста запознаен од 639 00:25:46,080 --> 00:25:47,260 светот на нула. 640 00:25:47,260 --> 00:25:49,860 И во светот на нула, имаме оваа потреба понекогаш да 641 00:25:49,860 --> 00:25:51,110 одат направи вилушки на патот. 642 00:25:51,110 --> 00:25:54,840 Или го направите тоа или тоа или тоа друга работа тука. 643 00:25:54,840 --> 00:25:58,990 И кога ќе сакате да го направите ова, можеме да го користиме, во C сега, ова ако 644 00:25:58,990 --> 00:26:00,860 друго изградба. 645 00:26:00,860 --> 00:26:06,420 И тогаш тука имаме Булова изрази. 646 00:26:06,420 --> 00:26:09,260 На пример, Булова изрази тука, ние може или 647 00:26:09,260 --> 00:26:12,260 нив заедно, во смисла дека имаме оваа состојба или 648 00:26:12,260 --> 00:26:13,200 таа состојба. 649 00:26:13,200 --> 00:26:15,100 Ние можеме и нив заедно, во смисла дека ние сакаме да 650 00:26:15,100 --> 00:26:17,710 проверете оваа состојба и таа состојба. 651 00:26:17,710 --> 00:26:22,440 И тука имаме еден гајтан изјава сега, што не е толку 652 00:26:22,440 --> 00:26:26,040 слични синтаксички на оние видови на услови, но тоа 653 00:26:26,040 --> 00:26:30,160 ни овозможува да се направи еквивалент на ако друго ако друго ако, друго 654 00:26:30,160 --> 00:26:34,990 ако, и како со едноставно ги набројува од случај до случај 655 00:26:34,990 --> 00:26:36,670 од случај до случај. 656 00:26:36,670 --> 00:26:38,370 Значи видовме оние последен пат. 657 00:26:38,370 --> 00:26:40,430 А потоа почнавме допирање на нешта како петелки. 658 00:26:40,430 --> 00:26:42,070 Видовме еден од овие само еден миг пред. 659 00:26:42,070 --> 00:26:44,180 Но, постојат овие други looping конструкции. 660 00:26:44,180 --> 00:26:46,370 >> На пример, овој овде. 661 00:26:46,370 --> 00:26:50,140 Така, додека (состојба), дали ова нешто повторно и повторно. 662 00:26:50,140 --> 00:26:53,070 Значи во основа, она што се чини дека се различни помеѓу овој 663 00:26:53,070 --> 00:26:55,760 за јамка и тоа додека јамка овде? 664 00:27:00,810 --> 00:27:05,045 Ова за телефонска линија и тоа додека јамка. 665 00:27:05,045 --> 00:27:07,840 Да? 666 00:27:07,840 --> 00:27:08,800 Што е тоа? 667 00:27:08,800 --> 00:27:10,050 ПУБЛИКАТА: [Беззвучен]. 668 00:27:14,632 --> 00:27:15,120 Дејвид Џ MALAN: Добро. 669 00:27:15,120 --> 00:27:17,130 Значи додека во за телефонска линија состојба, не е јасно 670 00:27:17,130 --> 00:27:17,940 повеќе синтакса. 671 00:27:17,940 --> 00:27:20,560 Има оваа иницијализација, таму е ова ажурирање. 672 00:27:20,560 --> 00:27:23,820 Подолго време јамка, има само оваа состојба. 673 00:27:23,820 --> 00:27:26,630 Така ми се чини дека тоа е малку pared надолу наспроти за 674 00:27:26,630 --> 00:27:28,770 јамка, што значи дека ако сакаме да имаме променливи и сакаме 675 00:27:28,770 --> 00:27:30,800 да имаат incrementation, ние всушност треба да 676 00:27:30,800 --> 00:27:32,500 направите ова работа себе. 677 00:27:32,500 --> 00:27:34,420 >> Па дозволете ми да оди напред и да се отвори gedit. 678 00:27:34,420 --> 00:27:36,320 Дозволете ми да ги префрлиме на апаратот. 679 00:27:36,320 --> 00:27:38,110 И ајде да го направите брзо малку пример дека 680 00:27:38,110 --> 00:27:40,550 разликува една од овие од другите. 681 00:27:40,550 --> 00:27:42,490 И во задниот дел на мојот ум тука, јас треба да кажам една работа. 682 00:27:42,490 --> 00:27:44,120 Јас конкретно споменато името Тим. 683 00:27:44,120 --> 00:27:47,740 Тим е всушност некој дека ученикот се обиде да се најде да се направи 684 00:27:47,740 --> 00:27:48,680 нивната домашна работа за нив. 685 00:27:48,680 --> 00:27:51,280 Немавме Тим во таа секција. 686 00:27:51,280 --> 00:27:53,690 Па се реализира, не би откриле студент, тоа не беше студент. 687 00:27:53,690 --> 00:27:55,720 Тоа беше случајна личност на интернет вршење на работите 688 00:27:55,720 --> 00:27:57,180 преку полномошник минатата година. 689 00:27:57,180 --> 00:27:58,670 Значи сметаме дека, исто така. 690 00:27:58,670 --> 00:28:00,630 Значи во овој случај тука, дозволете ми да оди напред и да 691 00:28:00,630 --> 00:28:02,810 отвори нова датотека. 692 00:28:02,810 --> 00:28:04,800 Датотека, Нови. 693 00:28:04,800 --> 00:28:06,050 Ова ми дава табот тука. 694 00:28:06,050 --> 00:28:09,940 Дозволете ми да оди напред и да ја зачувате како loop.c. 695 00:28:09,940 --> 00:28:11,810 Дозволете ми да одат и кликнете на Save. 696 00:28:11,810 --> 00:28:15,340 А потоа долу тука, ајде да одиме напред и да почне пишување 697 00:28:15,340 --> 00:28:16,605 # Include . 698 00:28:19,116 --> 00:28:20,520 Дозволете ми да зумирате внатре 699 00:28:20,520 --> 00:28:23,410 Сега ние ќе направиме int главната (празно). 700 00:28:23,410 --> 00:28:30,020 Сега дозволете ми да оди напред и да се направи за (int i = 0; з < 701 00:28:30,020 --> 00:28:33,480 ох, 10; i + +). 702 00:28:33,480 --> 00:28:36,620 И сега ќе одам да одат напред и се печати на ѕвездата што 703 00:28:36,620 --> 00:28:37,890 направи порано. 704 00:28:37,890 --> 00:28:39,390 А потоа на крајот на оваа програма, ние сме само ќе 705 00:28:39,390 --> 00:28:41,130 печати нова линија, само така што мојата линија 706 00:28:41,130 --> 00:28:42,470 не изгледа сите неуредна. 707 00:28:42,470 --> 00:28:45,170 врати 0. 708 00:28:45,170 --> 00:28:47,610 Изгледа синтаксички исправни? 709 00:28:47,610 --> 00:28:48,040 Досега. 710 00:28:48,040 --> 00:28:48,560 Дали ќе видиме. 711 00:28:48,560 --> 00:28:51,290 >> Па дозволете ми да одзумирате, одам во мојата терминален прозорец. 712 00:28:51,290 --> 00:28:54,570 И дозволете ми да оди напред и да ја стартувате јамка, затоа што ова го нарече 713 00:28:54,570 --> 00:28:55,690 нешто loop.c. 714 00:28:55,690 --> 00:28:56,780 Така осигурајте се јамка. 715 00:28:56,780 --> 00:28:57,840 Чини да ги собере ред. 716 00:28:57,840 --> 00:29:00,210 Дозволете ми да се кандидира јамка, а сега Enter. 717 00:29:00,210 --> 00:29:01,820 И се чини дека се печатени 10 ѕвезди. 718 00:29:01,820 --> 00:29:03,780 Па да ја конвертираме во време јамка и да видиме што 719 00:29:03,780 --> 00:29:05,220 видови на прашања што патувањето е над. 720 00:29:05,220 --> 00:29:11,290 Така, наместо тоа, дозволете ми да одат во тука и да кажам додека јас е 721 00:29:11,290 --> 00:29:12,760 помалку од 10 - 722 00:29:12,760 --> 00:29:14,910 дозволете ми да се ослободи од за телефонска линија. 723 00:29:14,910 --> 00:29:17,170 ОК, па ние имаме неколку проблеми веќе. 724 00:29:17,170 --> 00:29:21,110 Значи состојбата е иста, но јас сум очигледно недостасува 725 00:29:21,110 --> 00:29:21,680 иницијализација. 726 00:29:21,680 --> 00:29:23,840 Јас сум недостасува incrementation. 727 00:29:23,840 --> 00:29:28,020 Значи она што треба компајлерот може да ми кажете кога се обидувам да 728 00:29:28,020 --> 00:29:29,170 компајлирате оваа програма? 729 00:29:29,170 --> 00:29:29,666 Да? 730 00:29:29,666 --> 00:29:31,154 ПУБЛИКАТА: [Беззвучен]. 731 00:29:31,154 --> 00:29:31,650 >> Дејвид Џ MALAN: Добро. 732 00:29:31,650 --> 00:29:34,180 Па затоа се случува да се каже нешто како непријавена - во овој 733 00:29:34,180 --> 00:29:35,280 случај, јас променлива. 734 00:29:35,280 --> 00:29:37,980 И навистина, употреба на непријавена идентификатор i. 735 00:29:37,980 --> 00:29:40,960 Па така ова е во контраст со јазици како PHP и 736 00:29:40,960 --> 00:29:43,120 Пајтон и Руби, со која некои од вас може да биде запознаен, 737 00:29:43,120 --> 00:29:44,820 каде што можете да само вид на Започни со користење на променливи 738 00:29:44,820 --> 00:29:47,420 Willy-каде и не мора да се грижите за прогласувајќи ги 739 00:29:47,420 --> 00:29:48,560 експлицитно секогаш. 740 00:29:48,560 --> 00:29:51,770 Во Ц и во јазици како Java и C + +, што треба да биде 741 00:29:51,770 --> 00:29:53,020 супер експлицитни. 742 00:29:53,020 --> 00:29:55,760 И ако сакате променлива наречена јас, имаш да ми кажеш 743 00:29:55,760 --> 00:29:57,360 каков вид на променлива е тоа. 744 00:29:57,360 --> 00:29:59,360 Па ние ќе мора да го надминете овој како што следува. 745 00:29:59,360 --> 00:30:05,510 Одам да мора да одат до тука и напишете int i, па затоа, 746 00:30:05,510 --> 00:30:07,860 Имам прогласи променлива наречена i. 747 00:30:07,860 --> 00:30:09,180 Сега, јас сум прескокнат еден чекор. 748 00:30:09,180 --> 00:30:11,340 Сум очигледно не го иницијализира, но ајде да видиме дали дека во 749 00:30:11,340 --> 00:30:13,650 Најмалку марки ѕвекот престанат да се жалат. 750 00:30:13,650 --> 00:30:15,770 Значи, дозволете ми римејк оваа програма. 751 00:30:15,770 --> 00:30:16,770 >> Добро, сега тоа е само жалејќи 752 00:30:16,770 --> 00:30:17,870 за различни причини. 753 00:30:17,870 --> 00:30:21,130 "Променлива" i "се деиницијализира кога се користи тука." Сите права, па 754 00:30:21,130 --> 00:30:22,340 тоа е прилично експлицитни. 755 00:30:22,340 --> 00:30:25,510 Иницијализира само значи поставување еднаква вредност. 756 00:30:25,510 --> 00:30:30,820 И ние не го направиле тоа, па дозволете ми да се обиде еднаква на 0. 757 00:30:30,820 --> 00:30:35,030 Сега ајде да се обидеме тоа повторно и повторно да се кандидира ѕвекот. 758 00:30:35,030 --> 00:30:36,140 Составувач тоа време. 759 00:30:36,140 --> 00:30:37,210 И јас сум за да го стартувате. 760 00:30:37,210 --> 00:30:43,120 Но, голем стари бесконечна јамка, бидејќи јас сум направено 761 00:30:43,120 --> 00:30:45,530 иницијализација, Јас го направив на состојбата, но јас никогаш не го направиле 762 00:30:45,530 --> 00:30:47,030 било каков вид на incrementation. 763 00:30:47,030 --> 00:30:48,780 Па како можам да направам на incrementation? 764 00:30:48,780 --> 00:30:51,170 Па, во време јамка, таа се чувствува како јас ќе одам да имаат 765 00:30:51,170 --> 00:30:54,180 да го стори тоа во внатрешноста на јамка, бидејќи многу сличен на првиот 766 00:30:54,180 --> 00:30:56,570 недела примери за тоа looping конструкции, како и со 767 00:30:56,570 --> 00:30:59,040 на чорапи и со авто-броење, моравме да го 768 00:30:59,040 --> 00:31:01,550 нешто на самиот крај, како да се вратиме на следната линија. 769 00:31:01,550 --> 00:31:05,040 Што ако одам напред и да го направите ова i + + тука? 770 00:31:05,040 --> 00:31:06,030 Да не дури собере. 771 00:31:06,030 --> 00:31:06,890 Фати ме веќе. 772 00:31:06,890 --> 00:31:09,704 Што не е во ред овде? 773 00:31:09,704 --> 00:31:10,690 ПУБЛИКАТА: [Беззвучен]. 774 00:31:10,690 --> 00:31:11,770 >> Дејвид Џ MALAN: Значи тоа не е дефинитивно int. 775 00:31:11,770 --> 00:31:13,080 Тоа е з. 776 00:31:13,080 --> 00:31:15,110 И тркалезните загради, како порано, 777 00:31:15,110 --> 00:31:16,800 вовлекување не е доволно. 778 00:31:16,800 --> 00:31:18,410 Па сега имам оваа конструкција. 779 00:31:18,410 --> 00:31:21,780 Така, додека i е помал од 10, печати ѕвезда, 780 00:31:21,780 --> 00:31:23,220 тогаш јас прираст. 781 00:31:23,220 --> 00:31:25,680 И начинот додека јамка работи е дека веднаш штом ќе го погоди 782 00:31:25,680 --> 00:31:29,630 дното на јамка, која во овој случај изгледа како линија 10, 783 00:31:29,630 --> 00:31:32,880 тоа се случува да се врати во алинеја 6, на која точка на 784 00:31:32,880 --> 00:31:34,400 состојба ќе бидат проверени уште еднаш. 785 00:31:34,400 --> 00:31:37,500 И ако јас се уште е помалку од 10, ние ќе направиме линии 8 и 786 00:31:37,500 --> 00:31:41,250 тогаш 9, тогаш ние ќе погоди 10, и се врати на 6, повторно и 787 00:31:41,250 --> 00:31:45,580 повторно и повторно и повторно, толку долго како што е помалку од 10. 788 00:31:45,580 --> 00:31:47,860 Па ајде повторно да се кандидира направите тука. 789 00:31:47,860 --> 00:31:48,940 >> Океј, ние сме собрани во ред. 790 00:31:48,940 --> 00:31:50,300 Дозволете ми да прегласување јамка. 791 00:31:50,300 --> 00:31:52,620 И сега тоа всушност изгледа да се работи. 792 00:31:52,620 --> 00:31:55,100 Значи предности и minuses тука? 793 00:31:55,100 --> 00:31:58,910 Па, засега не е всушност збир од ПЛО - 794 00:31:58,910 --> 00:31:59,420 толку слатко. 795 00:31:59,420 --> 00:32:01,870 Добро, тоа беше - ах, тоа беше несреќен случај. 796 00:32:01,870 --> 00:32:05,200 Добро, па ајде да се вратиме на за телефонска линија. 797 00:32:05,200 --> 00:32:07,530 Значи за петелки се убаво, бидејќи тие се супер експлицитни. 798 00:32:07,530 --> 00:32:09,720 И иако тие се малку clunky да се напише, тоа е 799 00:32:09,720 --> 00:32:11,500 многу моќен и тоа ви овозможува да направите 800 00:32:11,500 --> 00:32:12,980 повеќе работи одеднаш. 801 00:32:12,980 --> 00:32:16,240 Додека петелки не чини да имаат огромно количество на вредност само 802 00:32:16,240 --> 00:32:18,500 сепак, поради тоа што се чувствува како ние само треба да направите повеќе работа. 803 00:32:18,500 --> 00:32:20,670 Ние треба да се стави на иницијализација до тука, 804 00:32:20,670 --> 00:32:23,480 ажурирање тука долу, и ние треба да се запамети да го направите сето тоа. 805 00:32:23,480 --> 00:32:26,260 Па ќе видиме во времето што додека петелки всушност позајми 806 00:32:26,260 --> 00:32:29,380 се само различни контексти, различни податоци 807 00:32:29,380 --> 00:32:33,900 структури како листи и хаш маси, работите ние ќе дојдеме до 808 00:32:33,900 --> 00:32:34,970 средината на семестарот. 809 00:32:34,970 --> 00:32:37,900 Но, за сега, знаеме дека има овој трет тип познат како не- 810 00:32:37,900 --> 00:32:38,480 додека јамка. 811 00:32:38,480 --> 00:32:39,540 И ние го видел ова кратко. 812 00:32:39,540 --> 00:32:41,830 И ова може да биде супер корисни со pset 1. 813 00:32:41,830 --> 00:32:45,570 Било кое време сакате да направите нешто и потоа проверете дали 814 00:32:45,570 --> 00:32:48,940 корисникот соработувал, и ако тие не, го направи тоа повторно, не- 815 00:32:48,940 --> 00:32:51,460 додека јамка помага на самата да тој вид на логика. 816 00:32:51,460 --> 00:32:55,640 Бидејќи како нарачување од врвот до дното тука сугерира, 817 00:32:55,640 --> 00:32:57,750 се буквално значи го направите тоа. 818 00:32:57,750 --> 00:32:59,830 И дали ова повторно и повторно, она што може да биде? 819 00:32:59,830 --> 00:33:03,000 Можеби тоа значи повикување GetInt или GetString а потоа 820 00:33:03,000 --> 00:33:05,830 проверка на вредноста на GetInt или GetString а потоа вика 821 00:33:05,830 --> 00:33:08,260 на корисникот, ако тие не соработувале со поставување на нив 822 00:33:08,260 --> 00:33:10,100 повторно и повторно и повторно. 823 00:33:10,100 --> 00:33:11,730 Каде што сакате да се направи нешто еднаш, 824 00:33:11,730 --> 00:33:13,210 тогаш проверете некои состојба. 825 00:33:13,210 --> 00:33:14,110 >> Значи, да се обидат ова. 826 00:33:14,110 --> 00:33:17,130 Дозволете ми да го променат тоа сега на една не-додека јамка. 827 00:33:17,130 --> 00:33:18,830 И јас одам да се оди напред и направете го следново. 828 00:33:18,830 --> 00:33:21,830 Затоа направете го следново. 829 00:33:21,830 --> 00:33:26,870 Да направиме int i = GetInt (), но ајде прво кажете на корисникот 830 00:33:26,870 --> 00:33:27,410 што да правам. 831 00:33:27,410 --> 00:33:29,050 Па малку различен тоа време. 832 00:33:29,050 --> 00:33:31,270 "Дајте ми еден int". 833 00:33:31,270 --> 00:33:32,910 Па јас ќе го користите printf за тоа. 834 00:33:32,910 --> 00:33:35,740 И сега ќе одам да одат надолу тука, и јас одам да го направите тоа 835 00:33:35,740 --> 00:33:41,520 додека јас е, да речеме, поголема од - 836 00:33:41,520 --> 00:33:47,540 ајде да видиме, i е, да речеме, помалку од 0, или јас е 837 00:33:47,540 --> 00:33:48,730 поголем од 10. 838 00:33:48,730 --> 00:33:51,810 Со други зборови, сакам број од 1 до 9, само 839 00:33:51,810 --> 00:33:52,720 произволно. 840 00:33:52,720 --> 00:33:55,290 Затоа, јас сум со користење на комбинација Булова израз тука за да 841 00:33:55,290 --> 00:33:59,930 бидете сигурни дека јас е помал од 0 или поголема од 10, во кој 842 00:33:59,930 --> 00:34:02,530 случај јас ќе го направите ова јамка тука повторно. 843 00:34:02,530 --> 00:34:04,400 Значи, повторно, го прават тоа - 844 00:34:04,400 --> 00:34:08,480 додека јас е помал од 0 или i е поголема од 10. 845 00:34:08,480 --> 00:34:11,440 >> Па сега ајде да одиме напред и да го направите ова еднаш сме го направиле тоа. 846 00:34:11,440 --> 00:34:13,270 Ајде само се направи брзо разумност проверка. 847 00:34:13,270 --> 00:34:18,929 printf ("Благодарам, јас е% d", i). 848 00:34:18,929 --> 00:34:21,350 Значи ова едноставна програма прашува корисникот за int, 849 00:34:21,350 --> 00:34:24,000 прави сигурни дека тоа е во рамките на некои опсег, 1-9 инклузивен, 850 00:34:24,000 --> 00:34:26,280 а потоа благодарение на корисникот со потсетување им го она што тие само 851 00:34:26,280 --> 00:34:27,940 внесе во, како малку здрав разум чек. 852 00:34:27,940 --> 00:34:30,659 Но, ајде да видиме дали тоа функционира како што треба. 853 00:34:30,659 --> 00:34:34,533 Дозволете ми да одиме со главата надолу тука и повторно да се кандидира направи јамка. 854 00:34:34,533 --> 00:34:35,350 Hmm. 855 00:34:35,350 --> 00:34:38,600 "Употреба на непријавена идентификатор" i ". Тоа е чудно. 856 00:34:38,600 --> 00:34:41,509 Мислев дека реши тоа. 857 00:34:45,489 --> 00:34:47,560 Истиот симптом, но различен код. 858 00:34:47,560 --> 00:34:47,899 Да? 859 00:34:47,899 --> 00:34:50,191 ПУБЛИКАТА: [Беззвучен] внатрешноста на две, мораме да 860 00:34:50,191 --> 00:34:52,639 [Беззвучен]. 861 00:34:52,639 --> 00:34:53,260 >> Дејвид Џ MALAN: Токму така. 862 00:34:53,260 --> 00:34:55,989 Значи ова всушност нè води до една тема познато како опсегот. 863 00:34:55,989 --> 00:34:59,350 Излегува дека C, повторно, тоа навистина ќе ве однесе во буквална смисла. 864 00:34:59,350 --> 00:35:02,970 И ако се направи нешто вака каде што прогласи int 865 00:35:02,970 --> 00:35:06,120 а потоа го додели некои вредност, но ќе го направите тоа внатрешноста на 866 00:35:06,120 --> 00:35:09,840 пар на тркалезните загради, она Ц не е тоа претпоставува дека 867 00:35:09,840 --> 00:35:14,800 само сакаат оние 32 бита познат како јас да постои во рамките на 868 00:35:14,800 --> 00:35:18,200 контекст на тие кадрави загради, во контекст на линии 869 00:35:18,200 --> 00:35:22,420 6 до 9. Па јас се декларира, а тоа е доделен 870 00:35:22,420 --> 00:35:26,530 вредност во алинеја 8, но веднаш штом ќе излезете надвор од 871 00:35:26,530 --> 00:35:30,270 алинеја 9 под заграда кадрава, јас повеќе не е во 872 00:35:30,270 --> 00:35:31,910 обемот, така да се каже. 873 00:35:31,910 --> 00:35:35,030 S-C-О-П-Е. Тоа веќе не е во вистинскиот контекст. 874 00:35:35,030 --> 00:35:37,940 Па сега не постои јас, па тоа е како да не сме имале дури и 875 00:35:37,940 --> 00:35:38,770 објави тоа на сите. 876 00:35:38,770 --> 00:35:41,520 >> Значи она што е фикс потоа за вакво нешто, ако 877 00:35:41,520 --> 00:35:44,300 Причината е тоа што јас се декларира во големи загради, кој 878 00:35:44,300 --> 00:35:45,120 е очигледно лошо? 879 00:35:45,120 --> 00:35:45,410 Тука? 880 00:35:45,410 --> 00:35:46,820 ПУБЛИКАТА: [Беззвучен]. 881 00:35:46,820 --> 00:35:47,150 Дејвид Џ MALAN: Да. 882 00:35:47,150 --> 00:35:48,710 Па ние може да се иницијализира надвор. 883 00:35:48,710 --> 00:35:53,530 Па дозволете ми да оди напред и да го избришете декларација делови при 884 00:35:53,530 --> 00:35:55,820 Јас се определи видот, и дозволете ми да го направи до тука. 885 00:35:55,820 --> 00:36:00,220 Значи во линија 5, сега вели: "Дај ми една int." Го нарекуваат i. 886 00:36:00,220 --> 00:36:03,400 Забележите во алинеја 9, јас не сакате да го направите ова, бидејќи јас 887 00:36:03,400 --> 00:36:04,830 веќе имаш 32 бита. 888 00:36:04,830 --> 00:36:06,140 Не сакам да го прашуваат компјутерот за 889 00:36:06,140 --> 00:36:07,630 различни 32 бита. 890 00:36:07,630 --> 00:36:09,850 Сакам да користам истите тие 32 бита. 891 00:36:09,850 --> 00:36:13,190 И сега бидејќи јас е прогласена во линија 5, тоа е уште legit 892 00:36:13,190 --> 00:36:16,550 да ја користите во линија 11 и линија 12. 893 00:36:16,550 --> 00:36:19,310 >> Па дозволете ми да се обиде да го прекомпајлирате ова и да видиме 894 00:36:19,310 --> 00:36:20,490 ако ѕвекот запира вика. 895 00:36:20,490 --> 00:36:22,380 направи јамка. 896 00:36:22,380 --> 00:36:25,470 Па сега тоа е "имплицитна изјава на функцијата 897 00:36:25,470 --> 00:36:29,880 "GetInt" е неправилен во C99. "Што е тоа? 898 00:36:29,880 --> 00:36:30,400 Да? 899 00:36:30,400 --> 00:36:32,330 ПУБЛИКАТА: [Беззвучен]. 900 00:36:32,330 --> 00:36:32,690 Дејвид Џ MALAN: Да. 901 00:36:32,690 --> 00:36:35,520 Па сега дека јас сум всушност користење GetInt, ова не е нешто 902 00:36:35,520 --> 00:36:38,190 дека само доаѓа со C. Ова доаѓа од CS50. 903 00:36:38,190 --> 00:36:39,890 Значи ние треба овој овде. 904 00:36:39,890 --> 00:36:41,450 И дозволете ми да се вратиме на брза надолу 905 00:36:41,450 --> 00:36:43,500 тука и повторно да се кандидира направи. 906 00:36:43,500 --> 00:36:44,160 Океј, конечно. 907 00:36:44,160 --> 00:36:46,270 Сега ние сме решени дека и други грешки. 908 00:36:46,270 --> 00:36:48,930 А сега допуштете ми се кандидира јамка и да видиме што се случува. 909 00:36:48,930 --> 00:36:51,740 "Дајте ми еден int." Јас ќе ја даде 11. 910 00:36:51,740 --> 00:36:53,100 Јас ќе го даде -1. 911 00:36:53,100 --> 00:36:54,470 Јас ќе го даде foo. 912 00:36:54,470 --> 00:36:56,080 Јас ќе ја даде 5. 913 00:36:56,080 --> 00:36:57,450 И сега тоа навистина функционира. 914 00:36:57,450 --> 00:36:59,410 Но брзо се промени за причина тука. 915 00:36:59,410 --> 00:37:02,800 Зошто велат дека тоа се обидете повторно еден од овие моменти, но ми даде 916 00:37:02,800 --> 00:37:03,920 int другите три пати? 917 00:37:03,920 --> 00:37:05,500 Зошто е тоа однесување различен? 918 00:37:05,500 --> 00:37:06,980 Публика: го даде стринг. 919 00:37:06,980 --> 00:37:07,830 Дејвид Џ MALAN: Молам? 920 00:37:07,830 --> 00:37:08,570 ПУБЛИКАТА: Ти ја даде стринг. 921 00:37:08,570 --> 00:37:08,990 Дејвид Џ MALAN: Да. 922 00:37:08,990 --> 00:37:11,450 Па ние го даде стринг во овој трет обид, 923 00:37:11,450 --> 00:37:12,490 кога јас ја внеле foo. 924 00:37:12,490 --> 00:37:13,200 Foo е стринг. 925 00:37:13,200 --> 00:37:14,340 Тоа не е очигледно int. 926 00:37:14,340 --> 00:37:17,500 И начинот на кој CS50 има имплементирано GetInt е дека ние 927 00:37:17,500 --> 00:37:20,330 не провери дали нешто е помалку од 0 или поголема од 10 928 00:37:20,330 --> 00:37:22,260 за вас, бидејќи како да знаеме однапред каков вид на 929 00:37:22,260 --> 00:37:23,130 int сакате? 930 00:37:23,130 --> 00:37:25,880 Но, ние минимално може да се провери за вас, не на корисникот најмалку 931 00:37:25,880 --> 00:37:26,730 напишете број? 932 00:37:26,730 --> 00:37:30,500 И ако тие не, ние се развикам на корисникот со отчукување на "обидете се повторно" за 933 00:37:30,500 --> 00:37:31,440 на екранот. 934 00:37:31,440 --> 00:37:34,210 >> Така, сега имаме една програма која е looping. Во ред. 935 00:37:34,210 --> 00:37:37,070 Сега, кој од нив е вид на подобра конструкција? 936 00:37:37,070 --> 00:37:39,060 Значи ова е местото каде што работите почнуваат да се добие малку неуредна, на 937 00:37:39,060 --> 00:37:42,360 фактот дека мора да се сеќавам да декларирате променлива се тука 938 00:37:42,360 --> 00:37:44,630 ако сакате да ја користите во внатрешноста на некои 939 00:37:44,630 --> 00:37:46,460 кадрави загради и надвор. 940 00:37:46,460 --> 00:37:48,490 Но, дури и ако тоа изгледа малку криптичната на прв 941 00:37:48,490 --> 00:37:50,750 поглед, само повторно, се сеќаваш на едноставна логика. 942 00:37:50,750 --> 00:37:54,630 Со цел да се користи ништо во C, без разлика дали тоа е функција или 943 00:37:54,630 --> 00:37:57,680 тоа е променлива, што треба да се вклучи ако тоа е во функција 944 00:37:57,680 --> 00:37:59,770 во некои библиотека, или треба да се изјасни. 945 00:37:59,770 --> 00:38:02,405 Но сега треба да биде екстра свесен за фактот дека 946 00:38:02,405 --> 00:38:04,940 сте го прогласи во вистинската опсегот. 947 00:38:04,940 --> 00:38:08,150 Не го стави премногу цврсто во внатрешноста на загради. 948 00:38:08,150 --> 00:38:09,410 >> Значи, дозволете ми, всушност, се тркалаат назад. 949 00:38:09,410 --> 00:38:12,660 Ако се вратиме на нашиот пример од погоре, и јас одам 950 00:38:12,660 --> 00:38:19,245 назад за int, int i = 0; з <10; i + +, и јас 951 00:38:19,245 --> 00:38:26,370 направи printf ѕвезди, како таков, и потоа да го затворите paren, а сега 952 00:38:26,370 --> 00:38:30,410 printf i е сега - 953 00:38:30,410 --> 00:38:33,500 според истата логика, што ќе се случи кога се обидувам да 954 00:38:33,500 --> 00:38:35,500 компајлирате оваа програма? 955 00:38:35,500 --> 00:38:36,790 ПУБЛИКАТА: Невалиден идентификатор. 956 00:38:36,790 --> 00:38:38,560 Дејвид Џ MALAN: Значи тоа е уште еден неправилен идентификатор, 957 00:38:38,560 --> 00:38:39,470 Непријавената идентификатор. 958 00:38:39,470 --> 00:38:41,810 Сега, причината е малку поинаква. 959 00:38:41,810 --> 00:38:44,370 Има очигледно нема кадрави загради тука, но исто 960 00:38:44,370 --> 00:38:46,790 идеја, истата приказна на опсегот важи. 961 00:38:46,790 --> 00:38:50,340 Ако имате прогласи променлива како што внатрешноста на 962 00:38:50,340 --> 00:38:53,960 за телефонска линија, дури и ако не сте експлицитно напишано кадрава 963 00:38:53,960 --> 00:38:56,980 протези, мислам на нив ментално како уште се таму, во кој 964 00:38:56,980 --> 00:39:00,310 случај јас е валиден само во внатрешноста на за телефонска линија. 965 00:39:00,310 --> 00:39:03,080 Тоа не е валидна штом ќе стигнете до следната линија, која во 966 00:39:03,080 --> 00:39:05,090 овој случај е сега 10. 967 00:39:05,090 --> 00:39:09,060 Значи само неколку прашања од делокругот и слично. 968 00:39:09,060 --> 00:39:12,620 Сите права, било какви прашања? 969 00:39:12,620 --> 00:39:15,310 >> Добро, така што ова е вид на тривијални малку програма, 970 00:39:15,310 --> 00:39:17,450 печатење само ѕвездички. 971 00:39:17,450 --> 00:39:20,400 Но, да видиме ако се сеќавате оваа песна тука. 972 00:39:20,400 --> 00:39:22,530 Ова е неверојатно досадни песна на децата ќе пее на 973 00:39:22,530 --> 00:39:23,550 на школскиот автобус и слично. 974 00:39:23,550 --> 00:39:25,990 Но, она што е убаво за него е дека тој ја има оваа cyclicity, 975 00:39:25,990 --> 00:39:27,910 при што е "99 шишиња од пиво на ѕидот, 976 00:39:27,910 --> 00:39:28,520 99 шишиња од пиво. 977 00:39:28,520 --> 00:39:31,030 Земете еден надолу, минува, тоа околу, 98 шишиња од пиво на 978 00:39:31,030 --> 00:39:34,330 ѕид. "И тогаш песната повторува 97, потоа 96, потоа 979 00:39:34,330 --> 00:39:38,040 95, потоа 94, па сè до 0, ако навистина разбра 980 00:39:38,040 --> 00:39:38,920 далеку во автобус. 981 00:39:38,920 --> 00:39:41,960 Значи ова е убав програма за сортирање на спроведување, бидејќи мојата 982 00:39:41,960 --> 00:39:43,650 Бог, ако може само да ја имплементираат оваа со неколку 983 00:39:43,650 --> 00:39:46,660 линии на код, можете да плукаат целиот текст на овој 984 00:39:46,660 --> 00:39:48,240 песна доста брзо. 985 00:39:48,240 --> 00:39:50,420 Но на патот, можеме да почнеме да сега разграничат некои 986 00:39:50,420 --> 00:39:52,460 на овие основни looping конструкции и сега, исто така, 987 00:39:52,460 --> 00:39:55,830 воведе функции кои ние самите пишуваат, да се вратите вредности 988 00:39:55,830 --> 00:39:57,020 кои се поминува низ. 989 00:39:57,020 --> 00:39:58,910 Но прво, зошто да не се оди напред и да се нашите пет минути 990 00:39:58,910 --> 00:39:59,320 скрши тука? 991 00:39:59,320 --> 00:40:01,480 И кога ќе се вратам, ќе пее оваа песна. 992 00:40:05,680 --> 00:40:08,760 >> Сите права, па ние сме назад. 993 00:40:08,760 --> 00:40:11,850 И кога велам ние сега ќе ја пее оваа песна, мислам 994 00:40:11,850 --> 00:40:13,250 програмски, не вербално. 995 00:40:13,250 --> 00:40:19,370 Значи тука имаме beer1.c, која е една имплементација на овој 996 00:40:19,370 --> 00:40:20,580 одредена песна. 997 00:40:20,580 --> 00:40:23,110 И само да биде јасно, за оние кои се запознаени со она што 998 00:40:23,110 --> 00:40:24,460 оваа работа изгледа, дозволете ми да оди напред 999 00:40:24,460 --> 00:40:27,070 и да beer1, Enter. 1000 00:40:27,070 --> 00:40:30,400 Сега дозволете ми да се кандидира beer1, и што ќе видиме - колку шишиња 1001 00:40:30,400 --> 00:40:31,140 на пиво ќе има? 1002 00:40:31,140 --> 00:40:33,240 Јас ќе напишеш во 99, како песна вели. 1003 00:40:33,240 --> 00:40:34,040 Enter. 1004 00:40:34,040 --> 00:40:35,650 И сега, ако ние се движите низ - 1005 00:40:35,650 --> 00:40:38,280 Упс - ако скролувате низ сето ова, ќе видиме дека 1006 00:40:38,280 --> 00:40:41,350 ова навистина пее целата песна. 1007 00:40:44,050 --> 00:40:44,540 Почекајте една минута. 1008 00:40:44,540 --> 00:40:46,240 Мој лизгач е малку збркана. 1009 00:40:46,240 --> 00:40:47,940 Ајде да го користите поголем прозорец. 1010 00:40:47,940 --> 00:40:53,500 Значи beer1, 99, таму ќе одиме. 1011 00:40:53,500 --> 00:40:56,420 Значи тука имаме целата песна, испеана многу побрзо од 1012 00:40:56,420 --> 00:40:58,450 компјутер отколку што можеше да биде со нас. 1013 00:40:58,450 --> 00:41:00,340 Значи забележите, сепак, цикличната природа тука. 1014 00:41:00,340 --> 00:41:03,380 Таа вели 99, потоа 99, потоа "се еден надолу, го предадете 1015 00:41:03,380 --> 00:41:04,740 околу ", тогаш 98. 1016 00:41:04,740 --> 00:41:06,640 И сега тоа се повторува одново и одново. 1017 00:41:06,640 --> 00:41:08,840 >> Значи ова е всушност добра можност за некој вид на 1018 00:41:08,840 --> 00:41:10,400 looping изградба. 1019 00:41:10,400 --> 00:41:12,950 Забележете дека Јас сум вид на сечење агол тука. 1020 00:41:12,950 --> 00:41:15,960 Забележете дека јас велам "98 шишиња од пиво на ѕидот, 1021 00:41:15,960 --> 00:41:19,010 97 шишиња од пиво на ѕидот ", а тоа беше само така 1022 00:41:19,010 --> 00:41:21,640 дека кога ќе дојде до еден шишиња од пиво, јас немам 1023 00:41:21,640 --> 00:41:23,300 да се грижите за англиски граматика. 1024 00:41:23,300 --> 00:41:25,790 Но, ние исто така може да го надминете овој со малку на ако 1025 00:41:25,790 --> 00:41:26,910 состојба, можеби. 1026 00:41:26,910 --> 00:41:30,110 Ако овој број е еднина, оди напред и да каже "шише", 1027 00:41:30,110 --> 00:41:31,840 инаку, ако тоа е множина, велат "шишиња". 1028 00:41:31,840 --> 00:41:34,150 Но, за сега, јас сум целосно намалување на тој агол. 1029 00:41:34,150 --> 00:41:35,520 Да видиме што имаме тука. 1030 00:41:35,520 --> 00:41:37,150 Значи ние имаме некои коментари на врвот. 1031 00:41:37,150 --> 00:41:39,450 Јас сум вклучувајќи ги и овие две библиотеки, како 1032 00:41:39,450 --> 00:41:41,140 ние сме најчесто биле. 1033 00:41:41,140 --> 00:41:43,610 И сега дозволете ми да дојдете до првиот 1034 00:41:43,610 --> 00:41:44,990 реалните линии на код. 1035 00:41:44,990 --> 00:41:47,020 Линија 17 започна главниот. 1036 00:41:47,020 --> 00:41:50,610 Линија 21 и 20 има колку шишиња од пиво ќе има? 1037 00:41:50,610 --> 00:41:52,060 И тогаш јас го нарекувам GetInt. 1038 00:41:52,060 --> 00:41:53,800 И сега имам малку здрав разум чек. 1039 00:41:53,800 --> 00:41:57,030 >> Значи ова е конвенцијата што ние сега ќе почнеме донесување на 1040 00:41:57,030 --> 00:41:59,620 повеќе ригорозно проверете влез на корисникот. 1041 00:41:59,620 --> 00:42:01,710 Понекогаш едноставно не сакаат да ги поттикне повторно 1042 00:42:01,710 --> 00:42:02,630 и повторно и повторно. 1043 00:42:02,630 --> 00:42:05,620 Ако корисникот завртки и не соработуваат, парична казна. 1044 00:42:05,620 --> 00:42:07,430 Цигарите и едноставно не се справи со нив. 1045 00:42:07,430 --> 00:42:08,990 И така тоа е она што јас го правам тука. 1046 00:42:08,990 --> 00:42:12,520 Ако n е помал од 1, јас сум само ќе се развикам на корисникот, 1047 00:42:12,520 --> 00:42:14,330 "За жал, тоа не прави никаква смисла." И тогаш ќе одам да 1048 00:42:14,330 --> 00:42:16,650 произволно врати 1. 1049 00:42:16,650 --> 00:42:18,550 Значи, повторно, ова е само конвенцијата да се навикнеш на. 1050 00:42:18,550 --> 00:42:19,850 За сега, однесете го на верата. 1051 00:42:19,850 --> 00:42:22,700 Но, до сега, ние секогаш се враќа 0, бидејќи 1052 00:42:22,700 --> 00:42:25,204 што рековме враќање 0 означува она? 1053 00:42:25,204 --> 00:42:26,000 ПУБЛИКАТА: Успех. 1054 00:42:26,000 --> 00:42:27,320 Дејвид Џ MALAN: Успех, тоа е се. 1055 00:42:27,320 --> 00:42:29,740 Па сега дека ние сме конечно почна да размислува за 1056 00:42:29,740 --> 00:42:31,330 не успеси - 1057 00:42:31,330 --> 00:42:33,760 со други зборови, агол случаи, грешка услови - 1058 00:42:33,760 --> 00:42:37,520 сега имам бесконечен снабдување, или барем четири милијарди 1059 00:42:37,520 --> 00:42:39,790 можни работи што може да тргне наопаку во мојот програми. 1060 00:42:39,790 --> 00:42:42,300 И јас да почнете да ги доделување поединечни броеви. 1061 00:42:42,300 --> 00:42:44,340 Сега, генерално е доволно само да се вратат 1062 00:42:44,340 --> 00:42:45,730 нешто друго од 0. 1063 00:42:45,730 --> 00:42:48,040 Така ние ќе едноставно да се врати 1 за сега. 1064 00:42:48,040 --> 00:42:51,440 Но причината за враќање 1 е дека веднаш штом ќе се врати 1065 00:42:51,440 --> 00:42:55,110 1, погоди што се случува со остатокот од програмата? 1066 00:42:55,110 --> 00:42:55,720 Се запира. 1067 00:42:55,720 --> 00:42:56,560 Тоа е тоа. 1068 00:42:56,560 --> 00:42:59,150 Значи фактот дека јас сум се враќаат 1 е ефикасно 1069 00:42:59,150 --> 00:43:02,950 краток спој извршување на оваа програма, така што 1070 00:43:02,950 --> 00:43:06,780 ништо под линија 27 ќе продолжи извршување. 1071 00:43:06,780 --> 00:43:09,210 Штом главни се враќа, тоа е тоа. 1072 00:43:09,210 --> 00:43:13,160 >> Добро, па ако корисникот не соработуваат и доаѓаме до линијата 30 1073 00:43:13,160 --> 00:43:15,680 бидејќи тие ја внеле во легитимен број, овде е мојата 1074 00:43:15,680 --> 00:43:16,990 Спроведувањето на оваа песна. 1075 00:43:16,990 --> 00:43:19,050 Па јас прв печати од нова линија карактер, само за 1076 00:43:19,050 --> 00:43:19,880 естетика. 1077 00:43:19,880 --> 00:43:21,500 Јас сега имаат за телефонска линија. 1078 00:43:21,500 --> 00:43:22,930 И ќе забележите правам нешта во малку 1079 00:43:22,930 --> 00:43:23,880 на поинаква насока. 1080 00:43:23,880 --> 00:43:26,210 Јас не треба да направите помалку отколку, јас не треба да направите + +. 1081 00:43:26,210 --> 00:43:30,660 Јас наместо да се каже иницијализира со променлива i, поставете го еднаква на 1082 00:43:30,660 --> 00:43:35,080 n, бројот на корисникот внесе во, тогаш направете го следново, па 1083 00:43:35,080 --> 00:43:39,590 додека i е поголема од 0, тогаш јас - 1084 00:43:39,590 --> 00:43:42,070 Откако ќе завршите еден повторување на овој циклус. 1085 00:43:42,070 --> 00:43:44,310 Значи ние можеме да сметаме надолу со помош на за телефонска линија, како и. 1086 00:43:44,310 --> 00:43:47,520 Сега, ова е доста една недела работи сега, со printf. 1087 00:43:47,520 --> 00:43:51,770 Значи печати "% d шишиња од пиво на ѕидот." Печати "% d 1088 00:43:51,770 --> 00:43:54,990 шишиња од пиво. "" Земете еден надолу, поминуваат околу него. "Печати 1089 00:43:54,990 --> 00:43:58,880 "% D шишиња од пиво на ѕидот." Значи тоа е уште% d, но 1090 00:43:58,880 --> 00:44:02,770 забележите дека аргументот на printf се менува. 1091 00:44:02,770 --> 00:44:05,840 По запирката, јас имам, затоа што сакам да кажам 99. 1092 00:44:05,840 --> 00:44:08,590 По ова запирка, јас имам, затоа што сакам да кажам 99. 1093 00:44:08,590 --> 00:44:14,030 По ова запирка, јас имам - 1, затоа што сакам да кажам 98 во 1094 00:44:14,030 --> 00:44:16,260 овој прв повторување, и така натаму. 1095 00:44:16,260 --> 00:44:18,520 И сега овде, јас само имаат некои глупави малку забелешка. 1096 00:44:18,520 --> 00:44:22,270 А потоа линијата 42, ќе се вратам 0 по договор, означува дека 1097 00:44:22,270 --> 00:44:23,650 сè е во ред. 1098 00:44:23,650 --> 00:44:24,490 >> Така што ако јас goofed? 1099 00:44:24,490 --> 00:44:26,350 Што честа грешка тука може да биде? 1100 00:44:26,350 --> 00:44:29,200 Па, што ако јас случајно рече добро, јас сакам да се избројат 1101 00:44:29,200 --> 00:44:31,640 одредување на 0, сакам 0 шишиња од пиво на ѕидот? 1102 00:44:31,640 --> 00:44:34,620 Значи јас велам, i е поголема или еднаква на 0. 1103 00:44:34,620 --> 00:44:38,920 Што се случува да биде симптом кој јас сега да видам дали можам прекомпајлирате 1104 00:44:38,920 --> 00:44:41,173 beer1 и да ја стартувате тоа? 1105 00:44:41,173 --> 00:44:42,120 ПУБЛИКАТА: Негативни. 1106 00:44:42,120 --> 00:44:43,590 Дејвид Џ MALAN: Да, тоа е ќе одат негативни. 1107 00:44:43,590 --> 00:44:45,950 Ова е off-по-еден грешка, неверојатно 1108 00:44:45,950 --> 00:44:47,270 Честа грешка да се направи. 1109 00:44:47,270 --> 00:44:48,960 Да, всушност, оди назад кон терминален прозорец и направете го тоа 1110 00:44:48,960 --> 00:44:50,620 тука, па можеме да видиме повеќе во исто време. 1111 00:44:50,620 --> 00:44:53,280 Внесете, 99 шишиња од пиво. 1112 00:44:53,280 --> 00:44:56,580 Блиски, но отидовме некогаш толку малку предалеку. 1113 00:44:56,580 --> 00:45:00,500 Ние ја отпеа песната премногу далеку долу, како што ние сега се погоди 1114 00:45:00,500 --> 00:45:01,510 негативен број. 1115 00:45:01,510 --> 00:45:03,680 Значи тоа сосема не работат. 1116 00:45:03,680 --> 00:45:06,450 >> Добро, така што лесно може да одреди дека со одење назад кон 1117 00:45:06,450 --> 00:45:07,650 начинот на кој таа некогаш беше. 1118 00:45:07,650 --> 00:45:10,360 Но, она што се некои можности сега за 1119 00:45:10,360 --> 00:45:11,190 подобрување? 1120 00:45:11,190 --> 00:45:17,200 Па, дозволете ми отвори beer2.c и дојдете долу тука и да преземат 1121 00:45:17,200 --> 00:45:19,310 погледне во оваа верзија. 1122 00:45:19,310 --> 00:45:21,370 Што е првото нешто што јурнува нанадвор во вас, како различни 1123 00:45:21,370 --> 00:45:23,715 во оваа верзија тука? 1124 00:45:23,715 --> 00:45:24,190 ПУБЛИКАТА: [Беззвучен]. 1125 00:45:24,190 --> 00:45:26,510 Дејвид Џ MALAN: Да, па нема повеќе јас, затоа што тоа се случило да 1126 00:45:26,510 --> 00:45:29,350 ме знаеш што, јас барам на корисникот за n, и тогаш јас сум 1127 00:45:29,350 --> 00:45:33,580 поставување i еднаков на n, а потоа сум јас менува, но јас никогаш не сум 1128 00:45:33,580 --> 00:45:34,590 допирање n повторно. 1129 00:45:34,590 --> 00:45:37,390 Значи она што е грижам е точка од вас доделување на уште 32 1130 00:45:37,390 --> 00:45:45,210 битови се нарекува Јас само така што можам да имаат различни променлива? 1131 00:45:45,210 --> 00:45:47,960 Значи во овој случај, јас вид на признаа дека непотребно 1132 00:45:47,960 --> 00:45:49,190 дизајн функција. 1133 00:45:49,190 --> 00:45:52,730 И јас сум сега се случува да се каже додека n е поголема од 0, одете 1134 00:45:52,730 --> 00:45:56,180 напред и печатење на истата песна, полагање на n да printf како 1135 00:45:56,180 --> 00:46:00,210 Вториот аргумент, и n - 1 како втор аргумент тука долу. 1136 00:46:00,210 --> 00:46:02,930 А потоа на секоја итерација на овој циклус, одиме напред и само 1137 00:46:02,930 --> 00:46:05,080 декриминирачките n себе. 1138 00:46:05,080 --> 00:46:06,960 Сега, функционално, оваа програма 1139 00:46:06,960 --> 00:46:08,010 се случува да бидат идентични. 1140 00:46:08,010 --> 00:46:10,730 Ако јас напишете 99, n започнува во 99. 1141 00:46:10,730 --> 00:46:12,890 Јас декриминирачките, некоја вредност, некоја вредност, некоја вредност. 1142 00:46:12,890 --> 00:46:15,875 Одам да ги добиете сите на патот надолу до "Еден шише пиво на 1143 00:46:15,875 --> 00:46:16,740 ѕидот, едно шише од пиво. 1144 00:46:16,740 --> 00:46:18,020 Земете еден надолу, поминуваат околу него. 1145 00:46:18,020 --> 00:46:21,480 0 шишиња од пиво на ѕидот. "На крајот, бидејќи јас не 1146 00:46:21,480 --> 00:46:23,200 добиете состојба точни. 1147 00:46:23,200 --> 00:46:24,280 Тоа е поголем од 0. 1148 00:46:24,280 --> 00:46:26,220 Јас не ја прават оваа грешка. 1149 00:46:26,220 --> 00:46:28,470 >> Така што е подобро, верзија еден или верзија двајца? 1150 00:46:31,380 --> 00:46:33,480 Па слушнав еден куп на мрморења за двајца. 1151 00:46:33,480 --> 00:46:34,730 Зошто две? 1152 00:46:37,210 --> 00:46:38,225 Што е тоа? 1153 00:46:38,225 --> 00:46:39,215 ПУБЛИКАТА: [Беззвучен]. 1154 00:46:39,215 --> 00:46:40,070 Дејвид Џ MALAN: О, во ред. 1155 00:46:40,070 --> 00:46:42,870 Така што не ќе одат под 0, но се сеќавам, во верзија еден, 1156 00:46:42,870 --> 00:46:45,870 оригиналниот правиот верзија не одат под 0 или. 1157 00:46:45,870 --> 00:46:48,340 Значи се сеќавам дека ова е правиот верзија. 1158 00:46:48,340 --> 00:46:51,630 Па ајде барем споредуваат две точни верзии. 1159 00:46:51,630 --> 00:46:53,300 Што е аргумент во полза на верзија 1160 00:46:53,300 --> 00:46:55,146 две се, mmm, подобро? 1161 00:46:55,146 --> 00:46:55,642 Да? 1162 00:46:55,642 --> 00:46:57,630 ПУБЛИКАТА: Таа користи помалку простор. 1163 00:46:57,630 --> 00:46:59,530 Дејвид Џ MALAN: Океј, па тоа го користи помалку простор, нели? 1164 00:46:59,530 --> 00:47:02,900 Каде верзија оној што се користи 32 бита за n, а потоа уште 1165 00:47:02,900 --> 00:47:07,680 32 бита за i. 1166 00:47:07,680 --> 00:47:10,060 Верзија две користи само 32 бита за n, така што 1167 00:47:10,060 --> 00:47:11,700 чини да се биде плус. 1168 00:47:11,700 --> 00:47:12,950 Други мисли? 1169 00:47:18,070 --> 00:47:21,520 Сака ли некој да се аргументира во полза на еден? 1170 00:47:21,520 --> 00:47:22,070 Да? 1171 00:47:22,070 --> 00:47:25,240 ПУБЛИКАТА: Мора да се користи дополнителна линија на кодот за n -. 1172 00:47:25,240 --> 00:47:26,090 >> Дејвид Џ MALAN: Океј, секако. 1173 00:47:26,090 --> 00:47:26,960 Значи тоа е фер. 1174 00:47:26,960 --> 00:47:29,040 Значи ова само, барем за мене - 1175 00:47:29,040 --> 00:47:31,940 Мислам, ова всушност се чувствува малку Messier, фактот дека 1176 00:47:31,940 --> 00:47:35,120 Не може да се најде на капсулирало сите мои логика во една 1177 00:47:35,120 --> 00:47:38,030 убава линија, за телефонска линија, како за телефонска линија може. 1178 00:47:38,030 --> 00:47:40,240 Еве, јас вид на треба да тактика на овој n - 1179 00:47:40,240 --> 00:47:41,120 на крајот од циклусот, бидејќи 1180 00:47:41,120 --> 00:47:42,550 тоа е логично потребно. 1181 00:47:42,550 --> 00:47:45,190 Но, тоа вид на ме трие на погрешен начин, само затоа што тоа 1182 00:47:45,190 --> 00:47:48,260 чини одвоени од логиката на се тука, иако, 1183 00:47:48,260 --> 00:47:49,430 повторно, тоа е потребно. 1184 00:47:49,430 --> 00:47:50,990 Други мисли? 1185 00:47:50,990 --> 00:47:51,490 Да? 1186 00:47:51,490 --> 00:47:52,740 ПУБЛИКАТА: [Беззвучен]. 1187 00:47:57,990 --> 00:47:58,350 >> Дејвид Џ MALAN: Да. 1188 00:47:58,350 --> 00:48:00,730 Па што ако наместо тоа, на крајот на песната, сакав да 1189 00:48:00,730 --> 00:48:02,950 испечатите повторно на името на песната? 1190 00:48:02,950 --> 00:48:05,660 Како "Ви благодариме за играње 99 шишиња од пиво", или нешто 1191 00:48:05,660 --> 00:48:06,690 глупо, како тоа? 1192 00:48:06,690 --> 00:48:09,750 Но поентата е, што сакав пристап до оригиналната вредност. 1193 00:48:09,750 --> 00:48:13,180 Фактот дека сте мутирани или променета n на секој 1194 00:48:13,180 --> 00:48:16,330 повторување и затоа го уништија неговата оригинална вредност 1195 00:48:16,330 --> 00:48:18,650 значи дека едноставно не може да го направи тоа на крајот. 1196 00:48:18,650 --> 00:48:20,660 Сега, веројатно, ние јасно не сакате да го направите 1197 00:48:20,660 --> 00:48:21,450 дека во оваа програма. 1198 00:48:21,450 --> 00:48:22,350 Па кој се грижи? 1199 00:48:22,350 --> 00:48:23,630 Но, тоа е многу валидна поента. 1200 00:48:23,630 --> 00:48:25,520 И да бидам искрен, има навистина никој 1201 00:48:25,520 --> 00:48:26,630 вистинскиот одговор тука. 1202 00:48:26,630 --> 00:48:28,740 Тие се двете подеднакво точни. 1203 00:48:28,740 --> 00:48:30,210 Јас би можеле да бидат убедени или начин. 1204 00:48:30,210 --> 00:48:33,310 Јас ќе кажам дека, општо земено, тоа е добра принцип, ако 1205 00:48:33,310 --> 00:48:36,030 побара од корисникот за некои вредност и ќе се чуваат во променлива 1206 00:48:36,030 --> 00:48:38,730 како n, само вид на во принцип, тоа е веројатно добра 1207 00:48:38,730 --> 00:48:40,160 да го задржи дека наоколу. 1208 00:48:40,160 --> 00:48:43,400 И сите податоци што сакате да мутира повторно и повторно, само 1209 00:48:43,400 --> 00:48:46,030 се даде копија од таа променлива, само така што ќе 1210 00:48:46,030 --> 00:48:47,830 имаат пристап до оригиналот. 1211 00:48:47,830 --> 00:48:51,040 Ќе се трошат 32 повеќе битови, но реалноста е оваа 1212 00:48:51,040 --> 00:48:53,490 компјутер, како, два гигабајти RAM меморија овие денови, 1213 00:48:53,490 --> 00:48:55,310 и ние сме quibbling над 32 битови? 1214 00:48:55,310 --> 00:48:56,320 Навистина не е толку голем договор. 1215 00:48:56,320 --> 00:48:58,550 Па дури и на овој уред тука, со половина свирка или 1216 00:48:58,550 --> 00:49:01,700 GIGABYTE на RAM меморија, 32 бита наспроти 64 бита, 1217 00:49:01,700 --> 00:49:02,920 не е толку голем договор. 1218 00:49:02,920 --> 00:49:05,890 Секако денес, тоа ќе биде начин совладан од големината 1219 00:49:05,890 --> 00:49:08,400 на самата програма, која ќе биде неколку стотини 1220 00:49:08,400 --> 00:49:10,890 килобајти, ако не и неколку мегабајти, овие денови. 1221 00:49:10,890 --> 00:49:13,550 >> Толку разумни загриженост, нема еден точен одговор. 1222 00:49:13,550 --> 00:49:15,490 Но барем тоа се мисли дека треба да почне да 1223 00:49:15,490 --> 00:49:16,790 одат преку вашиот ум? 1224 00:49:16,790 --> 00:49:19,600 Бидејќи во pset 0, иако ние навистина само очекува 1225 00:49:19,600 --> 00:49:22,340 коректност, или барем одрекува разни грешки кои 1226 00:49:22,340 --> 00:49:25,440 можеби сте наишле, како што се движиме напред, дизајнот е 1227 00:49:25,440 --> 00:49:27,910 ќе биде уште еден клучен аспект, и двете од пишување код 1228 00:49:27,910 --> 00:49:29,770 а исто така и нашите оценување код. 1229 00:49:29,770 --> 00:49:32,310 И така барем даде смета дека вакви работи. 1230 00:49:32,310 --> 00:49:35,590 И само затоа што нешто работи не значи дека тоа е добро, 1231 00:49:35,590 --> 00:49:37,130 тоа не значи дека е добро дизајниран. 1232 00:49:37,130 --> 00:49:38,820 И тоа е една од работите на наставата соработници и 1233 00:49:38,820 --> 00:49:41,990 Проблемот сетови ќе ни помогне да закачам дел текот на времето. 1234 00:49:41,990 --> 00:49:45,020 >> Па, она што за, да речеме, оваа верзија тука? 1235 00:49:45,020 --> 00:49:49,090 Дозволете ми да се направи нешто малку секси тука во еден момент. 1236 00:49:49,090 --> 00:49:50,740 Прво дозволете ми да се ослободи од ова. 1237 00:49:50,740 --> 00:49:54,120 И сега ајде да го надминете овој граматички прашање. 1238 00:49:54,120 --> 00:49:58,780 Значи во оваа верзија, сакам да го поправат граматика, така што, 1239 00:49:58,780 --> 00:50:02,460 наместо само велат parenthetical с, како "шише" 1240 00:50:02,460 --> 00:50:03,360 или "шишиња" - 1241 00:50:03,360 --> 00:50:04,900 Не сакам да се намали тој агол - 1242 00:50:04,900 --> 00:50:08,350 Исто така, сакам да се динамички печатење на зборот "шишиња" 1243 00:50:08,350 --> 00:50:12,820 или "шише", а со тоа користејќи променливи овие% s денес. 1244 00:50:12,820 --> 00:50:16,550 Па јас треба да условно провери што е вредноста на i. 1245 00:50:16,550 --> 00:50:19,590 И ако тоа е 1, сакам да кажам "шише", а ако е нешто 1246 00:50:19,590 --> 00:50:23,115 друго, сакам да кажам "шишиња". Значи, да се обидат да го направите тоа. 1247 00:50:23,115 --> 00:50:31,340 Значи, ако јас == 1, тогаш дозволете ми да оди напред и да пријават - 1248 00:50:31,340 --> 00:50:34,080 Ми треба стринг, па нека ми направи стринг S1, затоа што тоа е 1249 00:50:34,080 --> 00:50:36,070 првата низа Јас се грижат за право сега. 1250 00:50:36,070 --> 00:50:40,980 Одам да се каже "шише". И тогаш, ајде да видиме, стринг 1251 00:50:40,980 --> 00:50:43,110 S2 - и јас ќе објасни каде ќе одам во еден момент - 1252 00:50:43,110 --> 00:50:47,650 "Шишиња". Значи се потсетиме дека во оваа песна, ние треба да бидат способни 1253 00:50:47,650 --> 00:50:50,580 да се печати работи, два различни зборови потенцијално. 1254 00:50:50,580 --> 00:50:53,590 Значи, ако се погледне назад тука, забележите дека кога ќе дојде до 1255 00:50:53,590 --> 00:50:56,440 овој пример тука ", две шишиња пиво на ѕидот, 1256 00:50:56,440 --> 00:50:59,490 две шишиња пиво, земи една долу, тоа помине околу "Сакам 1257 00:50:59,490 --> 00:51:02,380 оваа четврта линија до сега велат "едно шише од пиво на 1258 00:51:02,380 --> 00:51:04,900 ѕид ". Па јас треба да одлучи, дали сакам да кажам" шишиња "или 1259 00:51:04,900 --> 00:51:07,780 "Шише"? Па јас одам да произволно се каже, во ред, 1260 00:51:07,780 --> 00:51:10,530 Одам да сега декларирате променлива наречена S1, стринг 1261 00:51:10,530 --> 00:51:13,830 еден, што се случува да се добие вклучени тука и тука, 1262 00:51:13,830 --> 00:51:16,070 затоа што тие зборови се секогаш идентични, само затоа што на 1263 00:51:16,070 --> 00:51:17,290 природата на песната. 1264 00:51:17,290 --> 00:51:20,100 И јас одам да се јавите S2 она збор што сакате да го 1265 00:51:20,100 --> 00:51:21,560 на крајот се појави тука долу. 1266 00:51:21,560 --> 00:51:25,530 Сега, буквално, 99 пати од 100, тоа нема да биде 1267 00:51:25,530 --> 00:51:28,820 исти и во двете од овие случаи, бидејќи 3 е множина, 2 е 1268 00:51:28,820 --> 00:51:30,200 множина, 4 е множина. 1269 00:51:30,200 --> 00:51:34,640 Но, во овој агол случај, каде што дојде до 2, а потоа 1 или 1270 00:51:34,640 --> 00:51:37,250 дури 1 и потоа 0, ми треба оваа логика. 1271 00:51:37,250 --> 00:51:41,020 Па морам да поминете некое време во мојот код добивање на тоа право. 1272 00:51:41,020 --> 00:51:47,530 Значи, ако јас го направите ова, ако јас == 1, потоа во собата S1 еднаква на "шише" 1273 00:51:47,530 --> 00:51:52,010 и S2 еднаква на "шишиња", бидејќи тоа ќе биде за 1 1274 00:51:52,010 --> 00:51:56,340 шише, и тоа ќе биде за 0 шишиња. 1275 00:51:56,340 --> 00:51:58,250 И тука, она што го прави ова претставува? 1276 00:51:58,250 --> 00:51:59,780 Само да биде јасно. 1277 00:51:59,780 --> 00:52:00,620 Ова е само еден коментар. 1278 00:52:00,620 --> 00:52:03,730 Значи фактот дека може да има една линија коментари што значи 1279 00:52:03,730 --> 00:52:06,110 можат да коментираат кодот како овој, но уште еден заеднички 1280 00:52:06,110 --> 00:52:09,050 парадигма, исто така, е дека ако имаш супер-кратка фраза која 1281 00:52:09,050 --> 00:52:11,410 сакате да се стави и тоа е само повеќе може да се чита да се стави 1282 00:52:11,410 --> 00:52:13,270 тоа право на крајот на линија код, можете да 1283 00:52:13,270 --> 00:52:15,230 апсолутно се направи нешто како ова. 1284 00:52:15,230 --> 00:52:20,150 >> Па сега што ако јас го направите ова? Друго, ако не е еднаква на 1. 1285 00:52:20,150 --> 00:52:21,620 Значи тресне еднакво - 1286 00:52:21,620 --> 00:52:23,150 фантастичен точка е познат како "тресне". 1287 00:52:23,150 --> 00:52:25,080 Значи тресне = 1. 1288 00:52:25,080 --> 00:52:28,530 Значи, ако јас не е еднаква на 1, она што можам наместо сакате да направите? 1289 00:52:28,530 --> 00:52:31,700 Па, првиот збор што сакам да биде она што? 1290 00:52:34,620 --> 00:52:40,030 Значи стринг 1 треба да биде "шишиња" за множина шишиња, 1291 00:52:40,030 --> 00:52:42,440 и тогаш ова ќе биде множина "шишиња", како и, за сега. 1292 00:52:42,440 --> 00:52:43,800 И ние ќе се види дали ова всушност добива ни да 1293 00:52:43,800 --> 00:52:44,870 каде што сакате да одите. 1294 00:52:44,870 --> 00:52:47,680 Па сега ако дојдете тука, забележуваат дека сум приклучување 1295 00:52:47,680 --> 00:52:50,170 не само јас, туку S1. 1296 00:52:50,170 --> 00:52:51,860 Јас сум приклучување на i и s1. 1297 00:52:51,860 --> 00:52:54,440 А потоа долу тука, јас сум минус 1, која е иста како 1298 00:52:54,440 --> 00:52:55,920 пред, но s2. 1299 00:52:55,920 --> 00:52:58,730 Со други зборови, сакам англискиот збор да се промени врз основа 1300 00:52:58,730 --> 00:52:59,930 на оваа логика. 1301 00:52:59,930 --> 00:53:03,310 Сега, има веќе некои проблеми во овој код. 1302 00:53:03,310 --> 00:53:08,460 Што е скршен веќе надвор од портата тука? 1303 00:53:08,460 --> 00:53:10,796 Да? 1304 00:53:10,796 --> 00:53:13,210 ПУБЛИКАТА: [Беззвучен]. 1305 00:53:13,210 --> 00:53:13,800 >> Дејвид Џ MALAN: Токму така. 1306 00:53:13,800 --> 00:53:16,030 Па јас веќе прекршила лекција од опсегот. 1307 00:53:16,030 --> 00:53:19,610 Значи јас сум прогласена S1 и S2, но јас сум го направил во внатрешноста на 1308 00:53:19,610 --> 00:53:22,980 кадрави загради, што значи да, овој код ќе работат до 1309 00:53:22,980 --> 00:53:27,430 до линија 42, но штом ќе го погоди линија 43, погоди што не 1310 00:53:27,430 --> 00:53:28,900 не постои? 1311 00:53:28,900 --> 00:53:32,600 Па, погоди што веќе не е во опсегот - ниту S1 или S2. 1312 00:53:32,600 --> 00:53:33,780 Значи ние треба да го надминете овој. 1313 00:53:33,780 --> 00:53:36,180 Значи, да ми ја избришете декларации. 1314 00:53:36,180 --> 00:53:39,320 И јас ќе ја напушти променлива имиња и да го избришете овој овде 1315 00:53:39,320 --> 00:53:40,120 и да го избришете овој овде. 1316 00:53:40,120 --> 00:53:43,557 И во она линии треба јас навистина пријават овие работи? 1317 00:53:43,557 --> 00:53:44,960 ПУБЛИКАТА: [Беззвучен]. 1318 00:53:44,960 --> 00:53:45,410 Дејвид Џ MALAN: Да, па веројатно 1319 00:53:45,410 --> 00:53:46,850 право тука, 33-носталгичната. 1320 00:53:46,850 --> 00:53:50,670 Значи стринг S1 и потоа стринг s2. 1321 00:53:50,670 --> 00:53:51,950 И што излезе, можам да го направите тоа. 1322 00:53:51,950 --> 00:53:54,260 Ако сте прогласување две променливи од ист тип, 1323 00:53:54,260 --> 00:53:57,420 можете да всушност само користете запирка и го правам тоа во C. Сите 1324 00:53:57,420 --> 00:53:58,970 право, па сега имам две променливи - 1325 00:53:58,970 --> 00:53:59,860 S1 и S2. 1326 00:53:59,860 --> 00:54:02,000 Јас сум ги доделување вредности во овие 1327 00:54:02,000 --> 00:54:04,210 услови тука, или тука. 1328 00:54:04,210 --> 00:54:06,690 И тогаш јас сум ги користите долу. 1329 00:54:06,690 --> 00:54:10,960 Колку добро е овој сега се случува на работа? 1330 00:54:10,960 --> 00:54:12,740 >> Па, тоа е уште малку кабриолет, но ајде барем видите 1331 00:54:12,740 --> 00:54:13,730 колку далеку сме добиле. 1332 00:54:13,730 --> 00:54:16,500 Па дозволете ми да оди напред и да beer3. 1333 00:54:16,500 --> 00:54:17,695 Дали е ова beer3? 1334 00:54:17,695 --> 00:54:19,410 Да, ова е beer3. 1335 00:54:19,410 --> 00:54:21,510 И сега дозволете ми да оди напред и да ја стартувате beer3. 1336 00:54:21,510 --> 00:54:23,820 399 99. 1337 00:54:23,820 --> 00:54:25,840 Ние веројатно да го прескокнете повеќето од нив. 1338 00:54:25,840 --> 00:54:29,100 И овде, гледам во тоа. 1339 00:54:29,100 --> 00:54:31,110 "Еден шише пиво на ѕидот, едно шише пиво, да 1340 00:54:31,110 --> 00:54:34,306 еден долу, тоа помине околу, 0 шишиња од пиво на ѕидот. " 1341 00:54:34,306 --> 00:54:37,570 Но јас сум цртање вашето внимание само половина од решението. 1342 00:54:37,570 --> 00:54:39,620 Вид на зезнав тука. 1343 00:54:39,620 --> 00:54:43,030 Така, се чини дека на работ случаи се јавуваат кога се еднакво што 1344 00:54:43,030 --> 00:54:44,030 две вредности? 1345 00:54:44,030 --> 00:54:45,020 ПУБЛИКАТА: 2, 1. 1346 00:54:45,020 --> 00:54:46,190 Дејвид Џ MALAN: 2 и 1. 1347 00:54:46,190 --> 00:54:48,180 Тоа не 1 и не е 1. 1348 00:54:48,180 --> 00:54:51,890 Тоа е навистина само овие последните две строфи на песната. 1349 00:54:51,890 --> 00:54:53,890 Значи она што можам наместо сакате да направите? 1350 00:54:53,890 --> 00:54:58,890 Па јас се чини дека се фатени на случај каде што ако јас се == до 1, 1351 00:54:58,890 --> 00:55:02,240 тогаш првиот збор е "шише", но вториот збор 1352 00:55:02,240 --> 00:55:07,230 е "шишиња". Но, тука, сакам да ја промените оваа да биде == 2. 1353 00:55:07,230 --> 00:55:08,570 И ако ова е случај, она што сакам 1354 00:55:08,570 --> 00:55:09,620 првиот збор да биде? 1355 00:55:09,620 --> 00:55:10,430 ПУБЛИКАТА: "шишиња". 1356 00:55:10,430 --> 00:55:12,890 Дејвид Џ MALAN: "шишиња", па за две шишиња. 1357 00:55:12,890 --> 00:55:14,690 А потоа овој збор треба да биде - 1358 00:55:14,690 --> 00:55:15,340 ПУБЛИКАТА: "шише". 1359 00:55:15,340 --> 00:55:17,316 Дејвид Џ MALAN: "Шише", еднина. 1360 00:55:20,430 --> 00:55:25,160 >> Добро, ајде да одзумирате, врати овде, прегласување направи, 1361 00:55:25,160 --> 00:55:28,590 прегласувањето beer3, тип 99 повторно. 1362 00:55:28,590 --> 00:55:30,710 Океј, "Сегментација на вина (јадро фрлени)." 1363 00:55:30,710 --> 00:55:32,780 Што направив погрешно? 1364 00:55:36,050 --> 00:55:38,722 ПУБЛИКАТА: Вие немаат вредност [Беззвучен]. 1365 00:55:38,722 --> 00:55:40,480 Дејвид Џ MALAN: Ах, одлична точка. 1366 00:55:40,480 --> 00:55:43,310 Добро, така што не е во ред овде? 1367 00:55:43,310 --> 00:55:45,450 Значи сегментација грешка, и ние сме всушност ќе се види 1368 00:55:45,450 --> 00:55:49,020 ова неколку пати и во иднина, намерно. 1369 00:55:49,020 --> 00:55:51,030 Но, за сега, што тоа всушност значи? 1370 00:55:51,030 --> 00:55:53,620 А сегментација грешка речиси секогаш значи дека имате 1371 00:55:53,620 --> 00:55:56,760 некако обиделе да пристапите меморија, RAM меморија во вашиот компјутер, 1372 00:55:56,760 --> 00:56:00,600 дека Вие не го поседувате, дека не сте всушност побара од 1373 00:56:00,600 --> 00:56:02,050 оперативниот систем за. 1374 00:56:02,050 --> 00:56:04,440 Значи во овој случај, забележи она што јас го направив, која е 1375 00:56:04,440 --> 00:56:05,870 недостатоци во мојата логика. 1376 00:56:05,870 --> 00:56:09,500 Имам доделен S1 и S2 вредност ако јас изнесува 1. 1377 00:56:09,500 --> 00:56:11,590 Јас сум исто така направено што ако јас изнесува 2. 1378 00:56:11,590 --> 00:56:13,710 Но, јас не го направиле тоа во неограничен број на други 1379 00:56:13,710 --> 00:56:14,690 можности - 1380 00:56:14,690 --> 00:56:17,940 особено, 3 или 4 или точка, точка, точка, 99. 1381 00:56:17,940 --> 00:56:20,100 Значи еден фикс за ова само може да биде ајде 1382 00:56:20,100 --> 00:56:22,190 имаат друг состојба. 1383 00:56:22,190 --> 00:56:26,780 И дозволете ми да одат во тука и да кажам S1 изнесува - 1384 00:56:26,780 --> 00:56:28,180 она што треба да биде тука? 1385 00:56:28,180 --> 00:56:28,750 ПУБЛИКАТА: [Беззвучен]. 1386 00:56:28,750 --> 00:56:30,460 >> Дејвид Џ MALAN: "шишиња", бидејќи во чест случај, 1387 00:56:30,460 --> 00:56:32,020 тоа е само истото. 1388 00:56:32,020 --> 00:56:35,580 Значи еднаква понуда, unquote "шишиња". Значи за множина 1389 00:56:35,580 --> 00:56:41,010 шишиња, а потоа се тука, за множина шишиња. 1390 00:56:41,010 --> 00:56:44,580 Океј, па сега дозволете ми да се вратам на мојот терминален прозорец, 1391 00:56:44,580 --> 00:56:47,200 прекомпајлирате, повторно го кандидира. 1392 00:56:47,200 --> 00:56:48,440 99. 1393 00:56:48,440 --> 00:56:49,150 Whew. 1394 00:56:49,150 --> 00:56:50,610 И ајде да направиме еден брз разумност проверка. 1395 00:56:50,610 --> 00:56:52,400 Технички, ние би сакале да ги прочитате сите од овие да бидете сигурни дека 1396 00:56:52,400 --> 00:56:53,370 тие се точни, но ајде да погледнеме 1397 00:56:53,370 --> 00:56:54,640 најмалку познатите виновници. 1398 00:56:54,640 --> 00:56:57,370 3 шишиња, 2 шишиња, 2 шишиња, 1 1399 00:56:57,370 --> 00:57:00,380 шише, 1 шише, 0 шишиња. 1400 00:57:00,380 --> 00:57:03,080 Ние се чини дека барем тоа фиксна за сега. 1401 00:57:03,080 --> 00:57:06,010 Но фати тука е дека она што бог страшна збрка ова е 1402 00:57:06,010 --> 00:57:07,470 само за да реши еден глуп 1403 00:57:07,470 --> 00:57:09,540 еден карактер граматички детали. 1404 00:57:09,540 --> 00:57:11,150 Па таму е вид на причина што си ја скратам овој агол 1405 00:57:11,150 --> 00:57:14,090 порано, бидејќи тоа е само сосема досадно да мора да 1406 00:57:14,090 --> 00:57:15,020 ја напишам оваа многу код. 1407 00:57:15,020 --> 00:57:17,530 Но излегува дека има малку поелегантни начини на 1408 00:57:17,530 --> 00:57:20,110 изразување на иста работа. 1409 00:57:20,110 --> 00:57:22,040 И можеме да го направите тоа како што следува. 1410 00:57:22,040 --> 00:57:23,890 >> Дозволете ми да ја напушти оваа на екранот за момент и 1411 00:57:23,890 --> 00:57:27,320 воведе нешто познат како тројна оператор. 1412 00:57:27,320 --> 00:57:29,600 Ова е вид на една лагер тоа е само со цел да ја направиме нашата 1413 00:57:29,600 --> 00:57:31,880 живее малку sexier, како што вети. 1414 00:57:31,880 --> 00:57:33,130 И јас одам да го направите тоа како што следува. 1415 00:57:33,130 --> 00:57:35,810 Дај ми низа наречен S1, и дозволете ми да 1416 00:57:35,810 --> 00:57:37,200 доделите како што следува. 1417 00:57:37,200 --> 00:57:39,900 (I == 1)? 1418 00:57:39,900 --> 00:57:47,820 "Шише", инаку "шишиња". Стринг s2 добива (i == 2)? 1419 00:57:47,820 --> 00:57:52,670 "Шише", инаку "шишиња". 1420 00:57:52,670 --> 00:57:57,050 Па што тогаш е разликата тука? 1421 00:57:57,050 --> 00:57:59,370 Овие две линии на код, Јас го застапувам гледиштето, може да 1422 00:57:59,370 --> 00:58:02,200 замени целата оваа збрка. 1423 00:58:02,200 --> 00:58:04,280 Значи јас го нарекувам хаос, само поради тоа што вид на ме трие на 1424 00:58:04,280 --> 00:58:05,940 погрешен начин дека тоа е толку многу линии на код. 1425 00:58:05,940 --> 00:58:06,650 Не е во ред. 1426 00:58:06,650 --> 00:58:07,700 Тоа не е лошо дизајн. 1427 00:58:07,700 --> 00:58:10,140 Како, тоа е совршено точно и совршено добро. 1428 00:58:10,140 --> 00:58:12,970 Но кодирање добива досадни, ако треба да се изразат така 1429 00:58:12,970 --> 00:58:15,530 По ѓаволите конкретно повторно и повторно и повторно со едноставен 1430 00:58:15,530 --> 00:58:16,620 сценарио се допаѓа ова. 1431 00:58:16,620 --> 00:58:19,470 Па C има некои кратенки се допаѓа ова. 1432 00:58:19,470 --> 00:58:24,270 Па ова во суштина е велејќи прогласи низа наречен S1 и 1433 00:58:24,270 --> 00:58:32,610 доделите или оваа вредност или оваа вредност ако јас е == - 1434 00:58:32,610 --> 00:58:35,290 Жал ми е, јас треба да кажам ова појасно. 1435 00:58:35,290 --> 00:58:41,680 Декларирате променлива S1, додели оваа вредност ако ова е вистина. 1436 00:58:41,680 --> 00:58:44,280 Инаку, додели оваа вредност. 1437 00:58:44,280 --> 00:58:47,220 Значи со други зборови, ова е вид на една линија начин на 1438 00:58:47,220 --> 00:58:51,490 велејќи дека ако друго туку прави една задача на патот. 1439 00:58:51,490 --> 00:58:55,540 Значи, ако јас е 1, тогаш оди напред и ова го нарекуваат "шише". И 1440 00:58:55,540 --> 00:58:59,830 тогаш ова друго, го нарекуваат "шишиња". Во меѓувреме, S2, на 1441 00:58:59,830 --> 00:59:04,060 вториот збор дека ние треба да се дефинира, ако јас изнесува 2, ние ќе 1442 00:59:04,060 --> 00:59:08,350 постави S2 да "шише". Инаку, тоа е поставено на "шишиња". И она што 1443 00:59:08,350 --> 00:59:11,460 тоа значи сега е можам да одат преку овој и избришете сите 1444 00:59:11,460 --> 00:59:12,860 оние линии на код. 1445 00:59:12,860 --> 00:59:17,220 И кога велам, малку смешно, дека ова е сега 1446 00:59:17,220 --> 00:59:20,060 sexier, тоа е sexier во вид на стилска смисла. 1447 00:59:20,060 --> 00:59:22,660 Фактот дека функционално, овој код е, всушност, ќе 1448 00:59:22,660 --> 00:59:24,610 направи иста работа. 1449 00:59:24,610 --> 00:59:26,890 И иако тоа може да изгледа малку криптичната на прв 1450 00:59:26,890 --> 00:59:29,250 поглед, бидејќи ние не го видел ова конструкција пред, јас би 1451 00:59:29,250 --> 00:59:31,850 тврдат дека тоа е крајот ќе биде многу повеќе 1452 00:59:31,850 --> 00:59:34,820 читлив и толку многу полесно за ние, луѓето да се најде на 1453 00:59:34,820 --> 00:59:36,830 се разбере, бидејќи сега вие само може да се прочита 1454 00:59:36,830 --> 00:59:38,830 код сите во една линија. 1455 00:59:38,830 --> 00:59:41,550 Тоа е сепак слични во духот на дали, кога тоа е 1456 00:59:41,550 --> 00:59:44,920 состојба и тогаш тоа е она што е внатре во ако и овој 1457 00:59:44,920 --> 00:59:46,480 е она што е внатре во друго. 1458 00:59:46,480 --> 00:59:49,450 Но, можеме да го направите ова само многу повеќе елегантно. 1459 00:59:49,450 --> 00:59:52,650 >> И ако Јас сега одам се враќам на терминал, ја брише сите 1460 00:59:52,650 --> 00:59:55,530 на оние линии и да се замени нив со само овие две, 1461 00:59:55,530 --> 01:00:00,150 прекомпајлирате, прегласување шишиња од пиво со 99, известување дека мојата 1462 01:00:00,150 --> 01:00:03,350 граматиката е, всушност, се уште точно. 1463 01:00:03,350 --> 01:00:06,160 Значи, повторно, нешто да се започне. 1464 01:00:06,160 --> 01:00:08,840 2 шишиња од пиво, 1 шише пиво. 1465 01:00:08,840 --> 01:00:09,370 Изгледа во право. 1466 01:00:09,370 --> 01:00:10,100 Да. 1467 01:00:10,100 --> 01:00:13,900 Па ние имаме многу повеќе содржаен решение. 1468 01:00:13,900 --> 01:00:16,020 Па ова, исто така, како можете да добиете повеќе удобно со C не, 1469 01:00:16,020 --> 01:00:18,630 мора со првиот pset или дури и втората, но 1470 01:00:18,630 --> 01:00:21,170 сфатат дека овие конструкции да ни овозможи да се прават работите некогаш 1471 01:00:21,170 --> 01:00:22,810 повеќе елегантно. 1472 01:00:22,810 --> 01:00:25,200 Сега ајде да направиме една друга работа тука. 1473 01:00:25,200 --> 01:00:31,460 Дозволете ми да оди напред и да се отвори return1.c. 1474 01:00:31,460 --> 01:00:34,340 Сега ајде да почнеме да се реши уште еден проблем во начинот на кој 1475 01:00:34,340 --> 01:00:37,140 ни овозможува да напишете повеќе софистицирани код. 1476 01:00:37,140 --> 01:00:39,960 >> Значи тука е едноставна мала програма чија цел во животот 1477 01:00:39,960 --> 01:00:41,870 е за зголемување вредности. 1478 01:00:41,870 --> 01:00:43,100 И всушност, ајде да направиме чекор назад. 1479 01:00:43,100 --> 01:00:44,400 Дозволете ми да го направите тоа рачно. 1480 01:00:44,400 --> 01:00:52,200 Дозволете ми да се направи вклучуваат и int главната (празно). 1481 01:00:52,200 --> 01:00:53,450 И дозволете ми да се јавите на оваа increment.c. 1482 01:00:57,150 --> 01:00:58,570 И она што сакам да направам? 1483 01:00:58,570 --> 01:01:02,240 Одам да се оди напред и да се каже нешто како - 1484 01:01:02,240 --> 01:01:04,280 ние ќе се јавите на броеви иста - 1485 01:01:04,280 --> 01:01:04,980 int x. 1486 01:01:04,980 --> 01:01:13,670 Значи int x добива 2; printf x е% d, нова линија, х. 1487 01:01:13,670 --> 01:01:16,780 Па јас сум пишување брзо, но вид на познати работи сега. 1488 01:01:16,780 --> 01:01:18,830 Потоа јас ќе одам да направите X + +. 1489 01:01:18,830 --> 01:01:21,710 Потоа јас ќе одам да се печати истата реченица повторно. 1490 01:01:21,710 --> 01:01:24,550 А потоа јас ќе одам да се врати 0 само да се откажат од програмата. 1491 01:01:24,550 --> 01:01:25,960 Добро, така што ова е програма со која 1492 01:01:25,960 --> 01:01:26,960 зголемување на број. 1493 01:01:26,960 --> 01:01:29,830 Тоа е прв случува да се иницијализира нешто до 2, а потоа тоа е 1494 01:01:29,830 --> 01:01:33,470 ќе го прираст и печатење на тоа повторно. 1495 01:01:33,470 --> 01:01:36,930 >> Значи, да се кандидира прираст, неверојатно едноставна програма. 1496 01:01:36,930 --> 01:01:40,940 Но, претпоставувам дека сега сакам да коцка вредност, затоа направете го 1497 01:01:40,940 --> 01:01:42,490 нешто донекаде произволна. 1498 01:01:42,490 --> 01:01:45,140 И јас всушност сакате да направите x добива коцка од неа. 1499 01:01:45,140 --> 01:01:47,570 Па јас да го користите она што се нарекува функцијата Pow, но јас не 1500 01:01:47,570 --> 01:01:48,650 навистина знаат каде е тоа уште. 1501 01:01:48,650 --> 01:01:50,580 Па ќе одам да се направи ова на старомоден начин. 1502 01:01:50,580 --> 01:01:54,550 x пати ова е еднакво на x пати x пати х. 1503 01:01:54,550 --> 01:01:56,880 Па јас сум местење Рубикова коцка вредност, множење тоа само по себе повторно 1504 01:01:56,880 --> 01:02:00,440 и повторно и повторно, така што ќе го добиеме моќ 1505 01:02:00,440 --> 01:02:02,050 од 3 во овој случај. 1506 01:02:02,050 --> 01:02:06,000 Па сега на броеви треба да се печати треба да биде, како што ќе видиме 1507 01:02:06,000 --> 01:02:08,450 тука - прават прираст, па тоа е всушност навистина не прираст 1508 01:02:08,450 --> 01:02:10,260 повеќе, но ние ќе го напушти името сам - 1509 01:02:10,260 --> 01:02:11,590 2, а потоа 8. 1510 01:02:11,590 --> 01:02:17,670 Сега, имаме почетоците на можност за прочистување 1511 01:02:17,670 --> 01:02:21,570 тука, при што ова местење Рубикова коцка работа на множење на бројот 1512 01:02:21,570 --> 01:02:24,680 само по себе по себе по себе се чувствува како тоа само може да биде 1513 01:02:24,680 --> 01:02:27,920 корисно да се има како функција, слично како некој одлучи 1514 01:02:27,920 --> 01:02:30,430 години - знаете, вид на корисни ако еден од нас седнува 1515 01:02:30,430 --> 01:02:33,120 и пишува printf, така што остатокот од светот да го користите, 1516 01:02:33,120 --> 01:02:36,160 зошто да не се седне и да напише функција наречена коцка 1517 01:02:36,160 --> 01:02:39,250 која го прави ова местење Рубикова коцка за нас, па ние не треба рачно да 1518 01:02:39,250 --> 01:02:41,500 спроведување на идејата за местење Рубикова коцка вредности овде? 1519 01:02:41,500 --> 01:02:44,040 >> Значи едноставен пример, но, ајде да одиме напред и користат ова е како 1520 01:02:44,040 --> 01:02:46,280 можност да се напише нашите сопствени функција. 1521 01:02:46,280 --> 01:02:49,110 Па досега, ние сме се користи само главните, и ние сме користеле други 1522 01:02:49,110 --> 01:02:51,780 луѓето функции, но ние не го имаат напишано нашите сопствени. 1523 01:02:51,780 --> 01:02:52,650 Значи тука ќе одиме. 1524 01:02:52,650 --> 01:02:56,330 Одам да се оди напред и да се напише функција наречена коцка. 1525 01:02:56,330 --> 01:02:58,490 И јас ќе одам да имаат преземе влез. 1526 01:02:58,490 --> 01:03:02,070 Па нејзиниот влез ќе биде цел број. 1527 01:03:02,070 --> 01:03:03,570 И што е тоа ќе го направи? 1528 01:03:03,570 --> 01:03:08,500 Тоа се случува да се изјасни int излез = влез пати влез 1529 01:03:08,500 --> 01:03:09,880 пати влез. 1530 01:03:09,880 --> 01:03:12,190 И тогаш се случува да се врати таа излез. 1531 01:03:12,190 --> 01:03:14,500 И тогаш мора да биде специфична сега. 1532 01:03:14,500 --> 01:03:16,820 Оваа функција ќе се врати int. 1533 01:03:16,820 --> 01:03:19,130 Значи тука тогаш е како што би напишете своја сопствена функции. 1534 01:03:19,130 --> 01:03:20,850 Прво одлучи што е името на вашиот 1535 01:03:20,850 --> 01:03:21,720 функција ќе биде. 1536 01:03:21,720 --> 01:03:23,964 И, генерално, нешто објаснување е добро, па ќе се 1537 01:03:23,964 --> 01:03:25,060 нарекуваат коцка. 1538 01:03:25,060 --> 01:03:27,180 Потоа мора да се определи што тоа се случува да се врати, она што е 1539 01:03:27,180 --> 01:03:28,240 своето производство ќе биде. 1540 01:03:28,240 --> 01:03:29,595 И ние немаме што многу опции сеуште. 1541 01:03:29,595 --> 01:03:32,260 Int, char, плови, bool, стринг. 1542 01:03:32,260 --> 01:03:34,260 За сега, јас ќе одам да се држиме со int, затоа што го сакаат тоа 1543 01:03:34,260 --> 01:03:35,880 да се врати цел број. 1544 01:03:35,880 --> 01:03:38,770 Потоа мора да се определи што нејзините влезови, доколку ги има, се. 1545 01:03:38,770 --> 01:03:41,570 И ако коцка зема аргумент, потребно нешто помеѓу 1546 01:03:41,570 --> 01:03:44,970 загради, мора да се даде тој аргумент име, така што 1547 01:03:44,970 --> 01:03:47,860 можете да го наречеме нешто како сте спроведување или пишување 1548 01:03:47,860 --> 01:03:50,550 оваа функција, и ќе мора да го даде тип, кој во овој 1549 01:03:50,550 --> 01:03:51,810 случај ќе биде int. 1550 01:03:51,810 --> 01:03:54,690 Значи во кратки, коцка е функција која зема целобројна 1551 01:03:54,690 --> 01:03:57,560 како влезни и враќа цел број како излез. 1552 01:03:57,560 --> 01:03:59,240 >> Значи она што не го прават тоа со тоа влез? 1553 01:03:59,240 --> 01:04:03,710 Па, во линија 14, изјавувам променлива наречена излез, и јас 1554 01:04:03,710 --> 01:04:07,410 додели на вредноста, влез пати влез пати влез. 1555 01:04:07,410 --> 01:04:11,490 А потоа ќе се вратам излез. 1556 01:04:11,490 --> 01:04:14,890 Па како можам да го користите овој тогаш? 1557 01:04:14,890 --> 01:04:19,210 Што да си ги променам овие истакнати ликови on-line 1558 01:04:19,210 --> 01:04:21,006 7 да се, мислиш? 1559 01:04:21,006 --> 01:04:21,800 ПУБЛИКАТА: [Беззвучен]. 1560 01:04:21,800 --> 01:04:25,570 Дејвид Џ MALAN: Да, така коцка на x. 1561 01:04:25,570 --> 01:04:28,290 Значи x е променлива, што значи дека има некои вредност. 1562 01:04:28,290 --> 01:04:30,190 За среќа, тоа е од тип integer. 1563 01:04:30,190 --> 01:04:34,280 И бидејќи x е цел број, тоа значи дека можам да го помине во коцка. 1564 01:04:34,280 --> 01:04:39,500 И иако јас сум највисок вредноста на x со вредноста 1565 01:04:39,500 --> 01:04:42,780 на коцка x, како што беше случај досега, секој пат кога ќе 1566 01:04:42,780 --> 01:04:46,150 имаат еднакви знак и на линија на кодот, работи на десната 1567 01:04:46,150 --> 01:04:49,090 добива извршува, а потоа добива доделени на 1568 01:04:49,090 --> 01:04:50,150 вредност на левата страна. 1569 01:04:50,150 --> 01:04:52,950 Па редоследот на операциите е како ние ќе се надеваме. 1570 01:04:52,950 --> 01:04:56,620 Значи оваа работа? 1571 01:04:56,620 --> 01:04:58,410 Па, дозволете ми да одат надолу тука. 1572 01:04:58,410 --> 01:04:59,970 Дозволете ми да се отвори мојот терминален прозорец. 1573 01:04:59,970 --> 01:05:03,610 Дозволете ми да се направи прираст, Enter. 1574 01:05:03,610 --> 01:05:07,140 "Имплицитна изјава на 'коцка' функција е валиден во 1575 01:05:07,140 --> 01:05:13,700 C99. "Како настрана, C99 однесува на јазик C, како што беше 1576 01:05:13,700 --> 01:05:16,790 дефинирани во 1999 година, која беше ажурирање во текот на верзијата од 1577 01:05:16,790 --> 01:05:19,360 1989 година, која е надградба над оригиналот. 1578 01:05:19,360 --> 01:05:21,740 Значи тоа е сите што тоа значи. 1579 01:05:21,740 --> 01:05:24,250 >> Па што значи тоа дека "имплицитна изјава на 1580 01:05:24,250 --> 01:05:26,790 'коцка' функција е валиден? "Тоа е право тука. 1581 01:05:26,790 --> 01:05:28,430 Тоа е во право, таму во линија 12. 1582 01:05:28,430 --> 01:05:30,460 ПУБЛИКАТА: [Беззвучен]. 1583 01:05:30,460 --> 01:05:30,730 Дејвид Џ MALAN: Што е тоа? 1584 01:05:30,730 --> 01:05:32,470 Публика: Тоа не е порано. 1585 01:05:32,470 --> 01:05:33,540 Дејвид Џ MALAN: Тоа не е порано. 1586 01:05:33,540 --> 01:05:34,740 Значи ова е нешто. 1587 01:05:34,740 --> 01:05:38,190 Ц е вид на глупави, или C компајлери се вид на глупави. 1588 01:05:38,190 --> 01:05:41,060 Тие навистина само го направи она што им каже да го стори. 1589 01:05:41,060 --> 01:05:44,770 И тие, особено, само ја прочитате вашата код врвот до дното, 1590 01:05:44,770 --> 01:05:45,620 лево кон десно. 1591 01:05:45,620 --> 01:05:49,140 Значи, ако на компајлерот, ѕвекот, е читањето на вашата шифра, алинеја 1, го 1592 01:05:49,140 --> 01:05:50,120 фигури како да го направите тоа. 1593 01:05:50,120 --> 01:05:50,940 О, тука доаѓа главната. 1594 01:05:50,940 --> 01:05:53,000 Океј, дозволете ми да оди напред и да декларирате променлива x. 1595 01:05:53,000 --> 01:05:54,160 Дозволете ми да печати нешто. 1596 01:05:54,160 --> 01:05:55,890 Линија 7, она што е грижам е коцка? 1597 01:05:55,890 --> 01:05:58,230 Тоа не е прогласена во stdio.h. 1598 01:05:58,230 --> 01:06:00,950 Тоа не доаѓа со В Јас немам идеја што да прави. 1599 01:06:00,950 --> 01:06:03,960 И така ѕвекот само bails и поднесе оставка со тоа порака за грешка. 1600 01:06:03,960 --> 01:06:05,850 Значи можеме да го надминете овој во неколку начини. 1601 01:06:05,850 --> 01:06:10,530 Ние можеме да ги учат ѕвекот она што коцката е од само се движи кога 1602 01:06:10,530 --> 01:06:11,820 декларација е. 1603 01:06:11,820 --> 01:06:14,640 Па јас се намали и атипичен тоа на врвот на главната. 1604 01:06:14,640 --> 01:06:17,770 Сега сфати дека само затоа што главен повеќе не е прв, тоа е 1605 01:06:17,770 --> 01:06:19,150 уште извршена од стандардните. 1606 01:06:19,150 --> 01:06:20,060 Главните е главен. 1607 01:06:20,060 --> 01:06:21,022 Тоа е стандардно името на функцијата. 1608 01:06:21,022 --> 01:06:22,930 Не е важно каде е во датотека. 1609 01:06:22,930 --> 01:06:26,910 Но барем сега ѕвекот го видел коцка пред да го користите. 1610 01:06:26,910 --> 01:06:28,500 Да видиме дали ѕвекот е посреќен сега. 1611 01:06:28,500 --> 01:06:31,410 Направете пораст, тоа го компајлирате тоа време. 1612 01:06:31,410 --> 01:06:33,060 >> Дозволете ми да се кандидира прираст. 1613 01:06:33,060 --> 01:06:34,810 И навистина, се чини дека да се работи. 1614 01:06:34,810 --> 01:06:36,810 Сега, може да излезе со сценарија на крајот каде што 1615 01:06:36,810 --> 01:06:38,650 тоа не е изводливо да се стави секоја функција 1616 01:06:38,650 --> 01:06:39,740 над секоја друга функција. 1617 01:06:39,740 --> 01:06:42,140 Ќе се заглавени во оваа бескрајна јамка во реалноста, 1618 01:06:42,140 --> 01:06:43,480 каде што овој човек сака да биде тука, но овој 1619 01:06:43,480 --> 01:06:44,390 човек треба да биде таму. 1620 01:06:44,390 --> 01:06:45,830 Така што не е секогаш работа. 1621 01:06:45,830 --> 01:06:49,020 Па за среќа, C има повеќе домот решение. 1622 01:06:49,020 --> 01:06:50,790 Одам да се стави ова повторно таму каде што беше, само затоа што 1623 01:06:50,790 --> 01:06:53,390 преферираат, како прашање на принцип, дека главната секогаш ќе биде 1624 01:06:53,390 --> 01:06:55,550 на врвот, бидејќи тоа е само убаво да се види она што оваа програма 1625 01:06:55,550 --> 01:06:56,920 прави по дифолт. 1626 01:06:56,920 --> 01:06:58,950 И она што јас ќе одам да направите овде горе е декларираат она што се нарекува 1627 01:06:58,950 --> 01:07:00,250 прототип. 1628 01:07:00,250 --> 01:07:05,730 Одам да се ре-искажам коцка функција од страна буквално 1629 01:07:05,730 --> 01:07:07,180 копирање и вметнување. 1630 01:07:07,180 --> 01:07:08,290 Всушност, тоа не е буквално. 1631 01:07:08,290 --> 01:07:13,060 Значи буквално копирање и вметнување линија 15 1632 01:07:13,060 --> 01:07:15,160 погоре алинеја 6. 1633 01:07:15,160 --> 01:07:17,010 Не е важно она што линијата ова завршува на. 1634 01:07:17,010 --> 01:07:18,380 Се случува да биде на линија 4. 1635 01:07:18,380 --> 01:07:19,950 Но тоа не мора да биде пред главниот. 1636 01:07:19,950 --> 01:07:21,150 Но ја забележат разликата. 1637 01:07:21,150 --> 01:07:24,100 Алинеја 4 завршува со точка-запирка, што значи еј, 1638 01:07:24,100 --> 01:07:27,510 Ѕвекот, земајте мојот збор за тоа дека постои функција 1639 01:07:27,510 --> 01:07:31,350 наречен коцка која ги зема int и враќа int. 1640 01:07:31,350 --> 01:07:33,020 Но, јас не сум ќе ти кажам што е тоа уште. 1641 01:07:33,020 --> 01:07:35,180 Само знам дека јас ветувам дека ќе ви каже на крајот. 1642 01:07:35,180 --> 01:07:38,490 И навистина, сега тоа е во ред дека ова е долу. 1643 01:07:38,490 --> 01:07:41,275 >> Значи ова е обично подобро, затоа што тогаш на врвот на 1644 01:07:41,275 --> 01:07:44,240 Вашата датотека, можете само да штракаат исклучите, скорострелен, една линија 1645 01:07:44,240 --> 01:07:46,470 секој, што имињата на вашите функции се, кои се нивните 1646 01:07:46,470 --> 01:07:49,120 влезови се, кои се нивните резултати се. 1647 01:07:49,120 --> 01:07:52,210 И да биде појасно, влез обично значи аргумент или 1648 01:07:52,210 --> 01:07:54,110 параметар, синоними. 1649 01:07:54,110 --> 01:07:56,890 Излез значи повратната вредност, она што го прави 1650 01:07:56,890 --> 01:07:58,700 рака назад кон мене. 1651 01:07:58,700 --> 01:08:03,420 Значи во овој случај тука, коцка е прогласена на врвот, но 1652 01:08:03,420 --> 01:08:06,940 дефинирани, инаку позната како имплементирани, на дното. 1653 01:08:06,940 --> 01:08:09,620 Па сега да се вратиме овде и повторно да се кандидира тоа. 1654 01:08:09,620 --> 01:08:13,430 Па сега дозволете ми да одиме напред и повторно да се кандидира направи, повторно да се кандидира прираст. 1655 01:08:13,430 --> 01:08:16,500 И тоа сега се чини дека се работи само парична казна. 1656 01:08:16,500 --> 01:08:19,450 Па сега можеме да одиме напред и фактор на нешто како 1657 01:08:19,450 --> 01:08:23,720 пиво пример во оваа четврта верзија. 1658 01:08:23,720 --> 01:08:25,590 Па дозволете ми да дојдете овде. 1659 01:08:25,590 --> 01:08:28,149 И ќе забележите дека јас вид на ја презеде оваа лекција за срцето само сега. 1660 01:08:28,149 --> 01:08:31,140 Фактот дека сум бил пеење на истата строфа повторно и 1661 01:08:31,140 --> 01:08:34,130 повторно и повторно, на истиот рефрен линија во песната, ја чувствував 1662 01:08:34,130 --> 01:08:36,439 типот на зошто не сум фактор кој надвор во функција? 1663 01:08:36,439 --> 01:08:38,470 И навистина, ова треба да биде еден од мотивации. 1664 01:08:38,470 --> 01:08:40,960 Покрај фактот дека некој друг во светот можеби ќе сакате 1665 01:08:40,960 --> 01:08:42,390 да се користи коцка функција - 1666 01:08:42,390 --> 01:08:44,560 тоа е добра причина да се фактор нешто и напишете ја вашата 1667 01:08:44,560 --> 01:08:45,720 сопствени функција - 1668 01:08:45,720 --> 01:08:48,720 ако има парче код во вашата програма дека само прави 1669 01:08:48,720 --> 01:08:51,370 концептуална смисла, дека вид на сакаат да го даде 1670 01:08:51,370 --> 01:08:53,740 име - како во овој случај, хор - 1671 01:08:53,740 --> 01:08:57,380 тогаш слично може да напише дека како посебна функција. 1672 01:08:57,380 --> 01:08:59,560 Вие не треба да се напише се што е во главната ако тоа само 1673 01:08:59,560 --> 01:09:02,609 се чувствува почиста да го издвојат и го даде името. 1674 01:09:02,609 --> 01:09:05,529 >> Значи во овој случај тука, забележите дека имам коментар на врвот 1675 01:09:05,529 --> 01:09:06,859 оваа функција дека само пее за 1676 01:09:06,859 --> 01:09:08,630 утврдени број на шишиња. 1677 01:09:08,630 --> 01:09:10,609 Забележете тука дека јас не треба да се јавите на овие 1678 01:09:10,609 --> 01:09:12,520 работите влез и излез. 1679 01:09:12,520 --> 01:09:16,090 Всушност, овој пат само се нарекува мојот влез б за шише. 1680 01:09:16,090 --> 01:09:19,960 И ќе забележите тука, неважечки сугерира што? 1681 01:09:19,960 --> 01:09:21,309 Тоа хор - 1682 01:09:21,309 --> 01:09:22,660 ПУБЛИКАТА: не го вратат. 1683 01:09:22,660 --> 01:09:23,870 Дејвид Џ MALAN: не враќа вредност. 1684 01:09:23,870 --> 01:09:26,800 И навистина, функции не треба да се врати вредности. 1685 01:09:26,800 --> 01:09:28,060 Тие само може да се направи нешто. 1686 01:09:28,060 --> 01:09:30,270 Тие можат да имаат она што се нарекува несакани ефекти, кои во овој 1687 01:09:30,270 --> 01:09:33,109 случај е само еден куп на печатење на екранот. 1688 01:09:33,109 --> 01:09:36,580 Значи забележите дека овој код овде, јас буквално само украдов од 1689 01:09:36,580 --> 01:09:37,680 претходниот пример. 1690 01:09:37,680 --> 01:09:39,930 Единствената разлика е, наместо користење јас како мојата 1691 01:09:39,930 --> 01:09:42,890 променлива, јас сум сега користење б како мојата променлива. 1692 01:09:42,890 --> 01:09:45,880 Значи имам б долу тука, имам б долу тука, имам б 1693 01:09:45,880 --> 01:09:47,109 минус 1 доле. 1694 01:09:47,109 --> 01:09:49,279 Но кодот е иста. 1695 01:09:49,279 --> 01:09:52,529 Но, само за да ви покаже колку е можеме да го користиме ова, дозволете ми да одат 1696 01:09:52,529 --> 01:09:56,780 напред и всушност ја промените оваа да биде за телефонска линија. 1697 01:09:56,780 --> 01:10:03,850 за (int i = n; з> n; з -). 1698 01:10:03,850 --> 01:10:06,230 >> Па јас украдени дека од нашите претходни пример. 1699 01:10:06,230 --> 01:10:08,970 Претходно, тоа е во ред 37 дека ќе имаат отворени 1700 01:10:08,970 --> 01:10:10,640 пеење оваа досадни песна. 1701 01:10:10,640 --> 01:10:15,810 Но, наместо тоа, јас сум само ќе сега го нарекуваат хорот на i. 1702 01:10:15,810 --> 01:10:16,870 Готово. 1703 01:10:16,870 --> 01:10:20,260 Така, сега во секој повторување на овој циклус, јас ова го нарекуваат други 1704 01:10:20,260 --> 01:10:22,220 функција, хор, кои се случи да пишувам. 1705 01:10:22,220 --> 01:10:24,110 Тоа не е напишана од некој друг години. 1706 01:10:24,110 --> 01:10:27,930 Но хор, пак, користи printf за печатење 1707 01:10:27,930 --> 01:10:29,840 од овие четири линии. 1708 01:10:29,840 --> 01:10:32,720 Но, фактот дека јас сум повикувајќи хор повторно и повторно во 1709 01:10:32,720 --> 01:10:35,900 јамка значи дека јас ќе одам да се добие, на самиот крај, 1710 01:10:35,900 --> 01:10:39,310 иста песна како што имам досега. 1711 01:10:39,310 --> 01:10:42,130 Значи во кратки, сега ако се погледне назад на мојот код, иако 1712 01:10:42,130 --> 01:10:44,240 функционално ова е еквивалент забележите дека тоа е 1713 01:10:44,240 --> 01:10:46,020 почнуваат да се добие дури и повеќе читлив. 1714 01:10:46,020 --> 01:10:48,410 Јас точно не знам како GetInt 1715 01:10:48,410 --> 01:10:49,250 се спроведува. 1716 01:10:49,250 --> 01:10:52,050 Искрено, јас не знам како хор се спроведува. 1717 01:10:52,050 --> 01:10:52,970 Но, тоа не е важно за мене. 1718 01:10:52,970 --> 01:10:55,620 Не ми е гајле, бидејќи сега може да се најде на, како човечки, да се прочита 1719 01:10:55,620 --> 01:10:57,050 ова од врвот до дното. 1720 01:10:57,050 --> 01:10:59,950 И бидејќи функциите се именувани според она што 1721 01:10:59,950 --> 01:11:02,910 направи, мојот кодот е се повеќе читлив. 1722 01:11:02,910 --> 01:11:05,190 И како нашите програми се многу посложени - 1723 01:11:05,190 --> 01:11:07,220 до крајот на семестар, ќе бидат писмено стотици линии 1724 01:11:07,220 --> 01:11:10,970 на код во јазици како PHP и го вклучите Javascript-и слично - 1725 01:11:10,970 --> 01:11:13,550 ќе најдете дека тоа е многу полесно отколку да ги пратите на 1726 01:11:13,550 --> 01:11:14,080 што сте го направиле. 1727 01:11:14,080 --> 01:11:15,810 И кога ќе почнете да соработува со пријатели или 1728 01:11:15,810 --> 01:11:19,010 партнери или колеги, ќе бидете во можност да пишувам многу повеќе 1729 01:11:19,010 --> 01:11:22,910 масивни програми од страна почнуваат да се остваруваат овие основни 1730 01:11:22,910 --> 01:11:23,990 градежни блокови. 1731 01:11:23,990 --> 01:11:25,550 >> Па со тоа, рече, зошто да не го нарекуваат еден ден? 1732 01:11:25,550 --> 01:11:27,190 И ние ќе се видиме во среда. 1733 01:11:27,190 --> 01:11:33,611 [Аплауз]