1 00:00:00,000 --> 00:00:03,353 >> [Мусиц плаиинг] 2 00:00:03,353 --> 00:00:04,842 3 00:00:04,842 --> 00:00:06,050 Давид Малан: Здраво свима. 4 00:00:06,050 --> 00:00:07,777 Ово је ЦС50 је суперсецтион. 5 00:00:07,777 --> 00:00:09,860 Ассигнед Секције неће старт за још једну недељу. 6 00:00:09,860 --> 00:00:11,580 И тако данас, овде сам се-- 7 00:00:11,580 --> 00:00:12,122 >> МАРИЈА: Марија. 8 00:00:12,122 --> 00:00:14,163 Давид Малан: --то ствари Погледајмо проблема 9 00:00:14,163 --> 00:00:16,110 сет једну, курс је Прве недеље материјала, 10 00:00:16,110 --> 00:00:19,780 да те оријентисан са ЦС50 ИДЕ, мало Линук оперативни систем који је 11 00:00:19,780 --> 00:00:22,290 ради на ИДЕ, као и Погледајмо неке од транзиције 12 00:00:22,290 --> 00:00:25,730 од нуле до Ц водећих до проблема поставити један. 13 00:00:25,730 --> 00:00:28,340 >> Дакле, без даљег одлагања, у проблему сет један, 14 00:00:28,340 --> 00:00:30,520 ти ћеш бити представио ЦС50 ИДЕ, која 15 00:00:30,520 --> 00:00:33,230 ово програмирање веб-басед окружење које користимо како 16 00:00:33,230 --> 00:00:34,280 да пишу програме. 17 00:00:34,280 --> 00:00:37,280 То је дизајниран да изгледају веома подсећа типичног рачунара 18 00:00:37,280 --> 00:00:39,430 Систем ради функционалног Систем се зове Линук. 19 00:00:39,430 --> 00:00:42,440 Али то је у тзв облак, што значи да сви у разреду 20 00:00:42,440 --> 00:00:45,100 стварно има његов или њен властити рачун и користе га, као добро. 21 00:00:45,100 --> 00:00:48,950 >> Дакле, већина вас вероватно никада није користило Линук окружење пре или можда 22 00:00:48,950 --> 00:00:50,447 чак и командна линија окружење. 23 00:00:50,447 --> 00:00:52,280 И командна линија окружење је другачије. 24 00:00:52,280 --> 00:00:53,200 То је све текстуалне. 25 00:00:53,200 --> 00:00:54,730 То је све команде на тастатури. 26 00:00:54,730 --> 00:00:59,480 И то није Прелаз мишем, без иконе, нема дијалога прозори, нема менија. 27 00:00:59,480 --> 00:01:00,212 То је чисто текста. 28 00:01:00,212 --> 00:01:01,920 Дакле, прво, некако од осећа као корак 29 00:01:01,920 --> 00:01:04,434 уназад у смислу софистицираност. 30 00:01:04,434 --> 00:01:06,600 Али завршила се као много моћнији, свакако, 31 00:01:06,600 --> 00:01:08,510 за компјутерску научника, на крају. 32 00:01:08,510 --> 00:01:09,540 >> Дакле, хајде да погледамо. 33 00:01:09,540 --> 00:01:13,850 Овде сам у ЦС50.ио, преко којег можете пријавити на ЦС50 ИДЕ. 34 00:01:13,850 --> 00:01:17,414 И као много Сцратцх, ту је три основне области на овај екран. 35 00:01:17,414 --> 00:01:20,080 Дакле, на левој страни, имамо шта ће бити прегледач датотека. 36 00:01:20,080 --> 00:01:22,413 И ту је ова фасцикла у врх, који је сада празна 37 00:01:22,413 --> 00:01:24,690 јер сам се ослободила свих мојих датотеке пре суперсецтион. 38 00:01:24,690 --> 00:01:27,599 И то је место где ћемо саве Ц датотеке које пишемо. 39 00:01:27,599 --> 00:01:30,890 На горњем десном углу, имамо место где све наше кода ће да се написано. 40 00:01:30,890 --> 00:01:34,610 И заиста, ако кликнете на ово плус, ово ће ме пустити да изабере нову датотеку. 41 00:01:34,610 --> 00:01:38,310 И овде сам да почнем да пишем Ц кода или, Заиста, било који број других језика. 42 00:01:38,310 --> 00:01:42,670 >> А онда на дну, где је каже јхарвард @ иде50-- и твоја воља 43 00:01:42,670 --> 00:01:45,080 кажу нешто мало дифферент-- шта је ово зове? 44 00:01:45,080 --> 00:01:48,644 45 00:01:48,644 --> 00:01:49,310 Прозор терминала. 46 00:01:49,310 --> 00:01:49,570 Да. 47 00:01:49,570 --> 00:01:51,810 Дакле прозор терминала је тзв командне линије 48 00:01:51,810 --> 00:01:55,540 интерфејс преко којих можете комуницирати са основном оперативним системом. 49 00:01:55,540 --> 00:01:58,220 А за сада, идемо у да врло мало користи ово-- 50 00:01:58,220 --> 00:02:01,170 само да састави, да погледате поруке о грешкама које видимо, 51 00:02:01,170 --> 00:02:02,347 и да водимо програме. 52 00:02:02,347 --> 00:02:04,680 Али на крају, идемо да то учини много више, као добро. 53 00:02:04,680 --> 00:02:07,490 А можете чак и инсталирати софтвер и управља ваш радни простор 54 00:02:07,490 --> 00:02:09,066 у ЦС50 ИДЕ, као добро. 55 00:02:09,066 --> 00:02:10,440 Али више о том неком другом времену. 56 00:02:10,440 --> 00:02:12,689 >> Дакле, идемо напред и пишем врло једноставан програм само 57 00:02:12,689 --> 00:02:15,064 проћи кроз загревање у хелло.ц, што је можда 58 00:02:15,064 --> 00:02:16,480 најједноставнији програму можемо писати. 59 00:02:16,480 --> 00:02:18,330 Већ сам отворио нову картицу. 60 00:02:18,330 --> 00:02:24,310 Ја идем напред и кажу укључују стандардну ио.х. 61 00:02:24,310 --> 00:02:25,325 Затим инт маин (воид). 62 00:02:25,325 --> 00:02:28,930 63 00:02:28,930 --> 00:02:35,200 А онда принтф ("Хелло, Ворлд" обрнута коса црта н близак цитат, 64 00:02:35,200 --> 00:02:39,480 блиски заграде, и зарез. 65 00:02:39,480 --> 00:02:39,990 >> U redu. 66 00:02:39,990 --> 00:02:41,700 Тако да сада приметити мој прозор је Унтитлед. 67 00:02:41,700 --> 00:02:44,840 Зато сам врло брзо ће да иду до Филе, Саве. 68 00:02:44,840 --> 00:02:46,910 И важно је да Ја то не зовем "здраво". 69 00:02:46,910 --> 00:02:49,243 Дакле, врло честа грешка, посебно у проблему сет једна, 70 00:02:49,243 --> 00:02:52,530 је случајно да позовем своје Програм "вода" или "похлепни" или "Марио" 71 00:02:52,530 --> 00:02:53,890 или "кредит" или слично. 72 00:02:53,890 --> 00:02:55,970 Али ви заправо желите да се да ли имате екстензију 73 00:02:55,970 --> 00:02:58,928 јер је то једини начин на који преводилац и уредник и код 74 00:02:58,928 --> 00:03:00,710 зна да си ти заправо писање Ц кода. 75 00:03:00,710 --> 00:03:02,280 Па нека ми само напред и кликните на Саве. 76 00:03:02,280 --> 00:03:05,710 >> А сада, такође, шта ЦС50 ИДЕ учинила за нас је то такође 77 00:03:05,710 --> 00:03:07,120 синтакса је истакао све. 78 00:03:07,120 --> 00:03:08,822 Тако је направљена све врло живописна. 79 00:03:08,822 --> 00:03:10,780 А цијела сврха то није функционалан. 80 00:03:10,780 --> 00:03:14,290 То је само да скрене очи до концептуално различитих комада 81 00:03:14,290 --> 00:03:15,310 овог програма. 82 00:03:15,310 --> 00:03:17,570 Дакле, идемо напред и саставити ово. 83 00:03:17,570 --> 00:03:19,490 И могу саставити ово у неколико начина. 84 00:03:19,490 --> 00:03:22,010 И у Веек Оне, стара школа начин на који смо радили 85 00:03:22,010 --> 00:03:26,250 буквално био на команде лине-- "цланг хелло.ц." 86 00:03:26,250 --> 00:03:27,596 А онда сам притисните Ентер. 87 00:03:27,596 --> 00:03:29,720 И ништа не изгледа да се деси у терминал прозору. 88 00:03:29,720 --> 00:03:32,654 Али, шта је промену у ИДЕ? 89 00:03:32,654 --> 00:03:35,320 Где, опет, САТА само значи Integrisano razvojno okruženje. 90 00:03:35,320 --> 00:03:38,360 То је фенси начин да се каже ово интегрисано развојно 91 00:03:38,360 --> 00:03:40,620 окружење за развој софтвера. 92 00:03:40,620 --> 00:03:42,477 Дакле, шта је променити у УИ? 93 00:03:42,477 --> 00:03:44,310 Шта сте приметили то је другачије, Марија? 94 00:03:44,310 --> 00:03:47,100 >> МАРИЈА: Приметио сам нешто под ИДЕ50 фолдер овде. 95 00:03:47,100 --> 00:03:47,850 >> Давид Малан: Да. 96 00:03:47,850 --> 00:03:50,230 Дакле овде, не само имамо "хелло.ц." 97 00:03:50,230 --> 00:03:53,120 Такође имамо "а.оут", који је врста глупо име за програм. 98 00:03:53,120 --> 00:03:56,430 Али заиста, то је подразумевано име за Програм кад само саставити свој код 99 00:03:56,430 --> 00:03:59,110 и не кажем преводилац шта фајл на излаз. 100 00:03:59,110 --> 00:04:01,790 Дакле, ако желим да тече, ја треба да кажете цомпилер-- 101 00:04:01,790 --> 00:04:05,340 односно, морам да реци радни простор који сам 102 00:04:05,340 --> 00:04:09,780 желите да покренете програм под називом "а.оут." 103 00:04:09,780 --> 00:04:10,550 Ентер. 104 00:04:10,550 --> 00:04:12,474 А ту је и "здраво, свет. "сада" ./ ". 105 00:04:12,474 --> 00:04:13,390 је заиста битно. 106 00:04:13,390 --> 00:04:16,050 Иако обично имамо само пишу имена команди, 107 00:04:16,050 --> 00:04:19,060 када је програм си написан, не желим да кажем "./" 108 00:04:19,060 --> 00:04:22,460 јер то експлицитно говори Линук да желите да покренете програм под називом 109 00:04:22,460 --> 00:04:26,930 "а.оут" да је у овом, где тачка значи овај директоријум да сам тренутно 110 00:04:26,930 --> 00:04:31,600 у, који се дешава да буде зове радни простор ", а.оут. 111 00:04:31,600 --> 00:04:35,410 Јер ако сам рекао "а.оут," Ентер, Идем да се "а.оут команде не 112 00:04:35,410 --> 00:04:38,035 фоунд "јер је цомпутер-- јер сам измислио "а.оут;" 113 00:04:38,035 --> 00:04:40,910 није дошао са цомпутер-- не знам где да траже, 114 00:04:40,910 --> 00:04:43,590 иако је у праву носа, да се тако изразим. 115 00:04:43,590 --> 00:04:44,090 OK. 116 00:04:44,090 --> 00:04:49,910 Дакле, могли бисмо да променимо ово бити "цланг -о здраво хелло.ц." 117 00:04:49,910 --> 00:04:53,030 И ако сам погодио Ентер, који програм ће то излаз за мене? 118 00:04:53,030 --> 00:04:55,710 Како се зове датотеке? 119 00:04:55,710 --> 00:04:57,500 Да, позади. 120 00:04:57,500 --> 00:04:58,479 Tako je. "Zdravo." 121 00:04:58,479 --> 00:05:00,520 Дакле, "здраво" ће бити назив програма 122 00:05:00,520 --> 00:05:04,610 јер смо користили такозвани командна линија аргумент који је само 123 00:05:04,610 --> 00:05:08,120 начин мијењања понашања преводилац да заправо излаз 124 00:05:08,120 --> 00:05:09,450 специфичан назив датотеке. 125 00:05:09,450 --> 00:05:12,400 И заиста, ако зоом напоље и погледај овде, 126 00:05:12,400 --> 00:05:17,430 Сада имам не само "а.оут" и "хелло.ц", али и "здраво", као. 127 00:05:17,430 --> 00:05:22,410 Тако да сада могу да урадим "./хелло," Ентер. 128 00:05:22,410 --> 00:05:23,640 А ту је и "Хелло, Ворлд". 129 00:05:23,640 --> 00:05:25,640 Али ластли-- и ово ће сада бити конвенција 130 00:05:25,640 --> 00:05:27,590 користимо током цијеле семестар, типицалли-- 131 00:05:27,590 --> 00:05:30,070 је можете само рећи "да здраво." 132 00:05:30,070 --> 00:05:33,370 И заиста, каже да је до до сада зато што већ постоји. 133 00:05:33,370 --> 00:05:37,860 Пусти ме само напред и скинути са команда РМ, и "а.оут" - 134 00:05:37,860 --> 00:05:39,644 и реци "ремове редовну слику а.оут?" 135 00:05:39,644 --> 00:05:41,810 То само значи, ти си сигурни да желите да га обришете? 136 00:05:41,810 --> 00:05:42,880 Ја ћу да кажем да. 137 00:05:42,880 --> 00:05:46,690 И онда ћу уклонити "здраво" али не и "хелло.ц." 138 00:05:46,690 --> 00:05:49,920 Ја ћу да кажем "да" експлицитно, али "и" је довољна, такође. 139 00:05:49,920 --> 00:05:52,140 >> А сад приметио да сам тип лс-- који, опозив, 140 00:05:52,140 --> 00:05:55,540 значи лист-- све наводе од фајлова у мом фолдеру. 141 00:05:55,540 --> 00:05:57,850 И заиста, ако зоом напоље и погледај у горњем левом углу, 142 00:05:57,850 --> 00:05:59,730 потврђује да оно што је у овој фасцикли, чак и 143 00:05:59,730 --> 00:06:04,990 Иако је означен као ИДЕ50 овде а не радни простор, то је само "хелло.ц." 144 00:06:04,990 --> 00:06:09,152 И сада овде, ако И не "чине здраво", Ентер, 145 00:06:09,152 --> 00:06:12,360 сада видим много дуже него команду софистициранији команда која ће 146 00:06:12,360 --> 00:06:13,940 да буде користан у недељама које долазе. 147 00:06:13,940 --> 00:06:16,720 И сада могу да кажем "./хелло." 148 00:06:16,720 --> 00:06:19,257 >> Дакле, хајде да на брзину обилазак неки други Линук команде. 149 00:06:19,257 --> 00:06:21,840 Зашто онда не бисмо корак назад и заправо погледате Ц више 150 00:06:21,840 --> 00:06:25,020 генерално, транзиције од нуле на Ц, и закључују погледом 151 00:06:25,020 --> 00:06:27,305 на првој проблем постављена у Ц. У реду. 152 00:06:27,305 --> 00:06:30,430 Зато ћу ићи напред и само чист до мог радног простора са Цонтрол-Л само 153 00:06:30,430 --> 00:06:31,429 да би екран уредан. 154 00:06:31,429 --> 00:06:33,520 Али то нема функционалне утичу другачије. 155 00:06:33,520 --> 00:06:35,820 >> Подсетимо се да смо видели неколико команди сада. 156 00:06:35,820 --> 00:06:39,900 Тако смо видели Цланг, која генерално ви неће морати да ручно изврши више. 157 00:06:39,900 --> 00:06:41,650 Уместо тога ћемо користити марке. 158 00:06:41,650 --> 00:06:45,290 Али ми такође видели лс, што показује списак фајлова у мом директоријуму. 159 00:06:45,290 --> 00:06:48,750 А сада зашто је тамо-- Постоје две фајловима, "здраво" и "хелло.ц." 160 00:06:48,750 --> 00:06:52,240 Зашто је звезда или Астериск после "здраво"? 161 00:06:52,240 --> 00:06:54,900 Шта је то значи, на на оно што смо видели у једној недељи? 162 00:06:54,900 --> 00:06:58,852 163 00:06:58,852 --> 00:07:00,400 Šta misliš? 164 00:07:00,400 --> 00:07:02,742 Шта је звезда значи? 165 00:07:02,742 --> 00:07:04,614 >> МАРИЈА: за-- програма "Здраво"? 166 00:07:04,614 --> 00:07:05,530 Давид Малан: "Здраво *". 167 00:07:05,530 --> 00:07:06,330 Да. 168 00:07:06,330 --> 00:07:07,760 Oh da? 169 00:07:07,760 --> 00:07:08,639 О, извршна. 170 00:07:08,639 --> 00:07:09,180 Tako je. 171 00:07:09,180 --> 00:07:10,890 То значи да "здраво" је извршна. 172 00:07:10,890 --> 00:07:13,430 И заиста, зато Ја могу да урадим "./хелло." 173 00:07:13,430 --> 00:07:13,930 U redu. 174 00:07:13,930 --> 00:07:15,179 Дакле, шта још могу да урадим овде? 175 00:07:15,179 --> 00:07:17,290 Па, испоставило се да могу такође стварају директоријуме. 176 00:07:17,290 --> 00:07:20,924 Па нека ми само напред и стварају, на пример, "псет1" директоријум. 177 00:07:20,924 --> 00:07:23,590 И проблем сет спецификација ће вас управо то урадили, 178 00:07:23,590 --> 00:07:25,260 тако да не морате да памтите данас. 179 00:07:25,260 --> 00:07:27,340 Али "мкдир псет1" изгледа да нема утицаја. 180 00:07:27,340 --> 00:07:30,540 Али опет, нема порука о грешци је генерално добра ствар. 181 00:07:30,540 --> 00:07:34,060 Дакле, ако сам тип "ЛС" сада-- Ах, сада Имам извршну датотеку под називом 182 00:07:34,060 --> 00:07:36,570 "здраво" и Ц фајл под називом "хелло.ц." 183 00:07:36,570 --> 00:07:40,860 А онда траилинг сласх, тако да Говорим, значи да је ово директоријум. 184 00:07:40,860 --> 00:07:42,510 >> И заиста, сада желим да га отворим. 185 00:07:42,510 --> 00:07:45,730 И не двоструко кликнути на њу као у ГУИ, графичко окружење. 186 00:07:45,730 --> 00:07:48,550 Ја кажете уместо тога "ЦД псет1." 187 00:07:48,550 --> 00:07:49,640 Ентер. 188 00:07:49,640 --> 00:07:53,100 Ништа занимљиво изгледа има догодило осим мог малог линији 189 00:07:53,100 --> 00:07:57,300 овдје-- ово је Линука начин подсјећајући ми где сам, па шта фасцикла је отворен. 190 00:07:57,300 --> 00:08:00,080 То ме само говори експлицитно насупрот графички. 191 00:08:00,080 --> 00:08:05,100 И ако откуцате "лс", зашто не видим други питати одмах, мислите, 192 00:08:05,100 --> 00:08:07,269 када сам листу садржај псет1? 193 00:08:07,269 --> 00:08:09,310 МАРИЈА: Вероватно не имао ништа унутра. 194 00:08:09,310 --> 00:08:09,630 Давид Малан: Да. 195 00:08:09,630 --> 00:08:11,510 Дакле немамо очигледно створена ништа тамо 196 00:08:11,510 --> 00:08:13,150 јер сам створио директоријум. 197 00:08:13,150 --> 00:08:17,690 Сада, ако сам желео да створи филе-- за пример, могао бих да креирате нову датотеку. 198 00:08:17,690 --> 00:08:20,190 И онда да одем у Саве и сачувајте га као, 199 00:08:20,190 --> 00:08:23,090 као, "марио.ц" ако радите стандардни издање псет једног. 200 00:08:23,090 --> 00:08:27,610 И онда, као и сваки Мац или ПЦ, само изаберите фолдер "псет1, Саве. 201 00:08:27,610 --> 00:08:28,740 И сада је датотека је празна. 202 00:08:28,740 --> 00:08:31,160 Али хајде да зоом ин поново за секунду. 203 00:08:31,160 --> 00:08:32,470 Хајде да урадимо лс овде. 204 00:08:32,470 --> 00:08:34,470 Сада видимо "марио.ц". 205 00:08:34,470 --> 00:08:37,850 >> Дакле, постоји неколико других команди које вреде имајући у виду преко времена-- готово 206 00:08:37,850 --> 00:08:41,200 јасно, или Контрола-Л је оно што сам био ударање; мкдир смо видели; 207 00:08:41,200 --> 00:08:45,240 РМ смо видели, као и, што је за уклањање или брисање фајла. 208 00:08:45,240 --> 00:08:49,310 Пазите можете алсо-- и, ако се осврнемо на онлине туторијала ћете рм рф 209 00:08:49,310 --> 00:08:52,630 је врло чест начин да се каже обрисати фолдер који има ствари у њој. 210 00:08:52,630 --> 00:08:54,280 Само будите супер, супер опрезни. 211 00:08:54,280 --> 00:08:58,780 рф рекурсивно значи делете шта год да је 212 00:08:58,780 --> 00:09:01,150 покушавате да избришете и насилно га избрисати. 213 00:09:01,150 --> 00:09:04,630 Дакле, рекурзиван значи да ако је фасцикла са фолдер са фолдер са неком фолдеру, 214 00:09:04,630 --> 00:09:05,690 брисање свих њих. 215 00:09:05,690 --> 00:09:08,680 И силом значи чак и не аск ме да или не, ја сам сигуран? 216 00:09:08,680 --> 00:09:11,960 Дакле, то је супер опасна начин брисање пуно ствари брзо. 217 00:09:11,960 --> 00:09:17,210 Али беваре-- пречесто Да ли постоји Интрепид Студент случајно брисање, рецимо, псет 218 00:09:17,210 --> 00:09:18,000 један, на пример. 219 00:09:18,000 --> 00:09:19,833 >> МАРИЈА: А ако они само раде -р, иду 220 00:09:19,833 --> 00:09:21,870 да их питам о свакој датотеци. 221 00:09:21,870 --> 00:09:22,790 >> Давид Малан: Који је умерено досадан. 222 00:09:22,790 --> 00:09:23,480 >> МАРИЈА: Да. 223 00:09:23,480 --> 00:09:25,813 >> Давид Малан: Зато тако да многи од нас, само укључена, 224 00:09:25,813 --> 00:09:27,070 сам у навику коришћења рф. 225 00:09:27,070 --> 00:09:27,861 Али то је опасно. 226 00:09:27,861 --> 00:09:29,010 Дакле, купац чувајте. 227 00:09:29,010 --> 00:09:31,050 А онда МВ је некако занимљиво по имену. 228 00:09:31,050 --> 00:09:33,600 Дакле, ово је потез команде, која се осећа мало чудно 229 00:09:33,600 --> 00:09:37,260 зато што заиста можете га користити за преместите датотеке са једног места на друго. 230 00:09:37,260 --> 00:09:39,970 На пример, претпоставимо да сам забрљао. 231 00:09:39,970 --> 00:09:43,660 Претпоставимо да сам створио нови фајл за псет. 232 00:09:43,660 --> 00:09:46,320 И то сачувати као "грееди.ц." 233 00:09:46,320 --> 00:09:49,970 Али претпостављам да је случајно да га сачувате у ИДЕ50-- тако да је у мом радном простору самој 234 00:09:49,970 --> 00:09:51,580 а не у псет1. 235 00:09:51,580 --> 00:09:53,960 >> Можете видети колико у горњем левом углу. 236 00:09:53,960 --> 00:09:55,284 Ту је "грееди.ц." 237 00:09:55,284 --> 00:09:56,450 А ту је и неколико решења. 238 00:09:56,450 --> 00:09:58,324 Дакле, једна, могу користити Супер разумљив начин 239 00:09:58,324 --> 00:09:59,740 да само превлачењем и испуштањем. 240 00:09:59,740 --> 00:10:01,910 И то би стварно решили овај проблем. 241 00:10:01,910 --> 00:10:04,967 Али данас, ми покушавамо да погледате што више волшебни али моћне начини 242 00:10:04,967 --> 00:10:05,550 да се то уради. 243 00:10:05,550 --> 00:10:07,880 Дакле, дозволите ми да "ЛС" у псет1. 244 00:10:07,880 --> 00:10:09,690 И видим само "марио.ц." 245 00:10:09,690 --> 00:10:13,450 Пусти ме само напред и уради "цд ..". 246 00:10:13,450 --> 00:10:15,320 Дакле, ЦД-поново је промена директоријум. 247 00:10:15,320 --> 00:10:18,130 ".." Значи шта, иако? 248 00:10:18,130 --> 00:10:21,100 Последњи пут када сам рекао "ЦД псет1 "да иде у псет1. 249 00:10:21,100 --> 00:10:24,360 Дакле, када кажем "цд ..", шта ја то радим? 250 00:10:24,360 --> 00:10:24,910 Уназад. 251 00:10:24,910 --> 00:10:25,150 Да. 252 00:10:25,150 --> 00:10:26,750 >> Тако да ће тзв родитеља. 253 00:10:26,750 --> 00:10:29,730 Иди један ниво горе, као и излазак из фолдера. 254 00:10:29,730 --> 00:10:30,500 Тако Ентер. 255 00:10:30,500 --> 00:10:31,900 И заиста, види шта је урадио. 256 00:10:31,900 --> 00:10:37,070 То ме преселио само у радни простор уместо од у псет1, који је у радном простору. 257 00:10:37,070 --> 00:10:39,710 И сада, ако сам тип "ЛС", постоји гомила ствари. 258 00:10:39,710 --> 00:10:41,650 У постоји "грееди.ц". 259 00:10:41,650 --> 00:10:48,720 Дакле, сада пусти ме да користим МВ дословно мове "грееди.ц" у псет1. 260 00:10:48,720 --> 00:10:51,120 И тако много Линук команде раде баш овако. 261 00:10:51,120 --> 00:10:54,470 Они узимају никакве аргументе или иду један аргумент или они узимају два командна линија 262 00:10:54,470 --> 00:10:55,449 аргументи и тако даље. 263 00:10:55,449 --> 00:10:57,240 И у овом случају, то је дословно ради оно што 264 00:10:57,240 --> 00:11:01,670 каже, иако суццинцтли-- мове грееди.ц у псет1. 265 00:11:01,670 --> 00:11:02,310 Ентер. 266 00:11:02,310 --> 00:11:03,310 Ништа изгледа да се деси. 267 00:11:03,310 --> 00:11:06,180 Али ако то урадим а лс опет, похлепни је нестао. 268 00:11:06,180 --> 00:11:12,437 А ако ја "ЦД псет1", Ентер, а затим Да ли поново, сада је на правом месту. 269 00:11:12,437 --> 00:11:14,270 Као на страну, ако за неки разлога-- посебно 270 00:11:14,270 --> 00:11:16,194 ако имате испрекидан умрежавања 271 00:11:16,194 --> 00:11:18,360 или да ходају кампус са својим лаптоп поклопцем 272 00:11:18,360 --> 00:11:20,180 затворен а затим га отвори опет и ваш радни простор 273 00:11:20,180 --> 00:11:21,730 Изгледа помало оут оф синц, није велика ствар. 274 00:11:21,730 --> 00:11:23,646 Само релоад иоур бровсер прозор, и то треба 275 00:11:23,646 --> 00:11:26,339 Ресинц тако да је леви Филе Бровсер изгледа исто 276 00:11:26,339 --> 00:11:27,380 као прозор терминала. 277 00:11:27,380 --> 00:11:27,921 Bez brige. 278 00:11:27,921 --> 00:11:31,460 Када сте у недоумици, поново страницу, тако док сте сачували већ датотеке. 279 00:11:31,460 --> 00:11:31,960 OK. 280 00:11:31,960 --> 00:11:34,710 Дакле, МВ такође може да се користи за преименовање фајлова. 281 00:11:34,710 --> 00:11:36,760 И хајде да погледамо ово коначна команда овде. 282 00:11:36,760 --> 00:11:39,950 Значи суппосе-- а ово је Супер заједничка, такодје, рано. 283 00:11:39,950 --> 00:11:46,400 Неки ученици повремено направите датотеку зове, хајде да говоре-- шта је још један? 284 00:11:46,400 --> 00:11:47,730 Као "ВАТЕР.Ц." 285 00:11:47,730 --> 00:11:51,080 Дакле, ја ћу викати, за нема разлога, у свим капе. 286 00:11:51,080 --> 00:11:53,190 Али ово није исправно име за датотеку 287 00:11:53,190 --> 00:11:56,660 ако само зато што сет наш проблем спецификација није рекао 288 00:11:56,660 --> 00:11:59,430 да сачувате датотеку као АЛЛ ЦАПС "ВАТЕР.Ц." 289 00:11:59,430 --> 00:12:01,320 Уместо тога, очекујемо "ватер.ц" малим словима. 290 00:12:01,320 --> 00:12:03,140 А, у ствари, ово је проблематично јер цхецк50, 291 00:12:03,140 --> 00:12:04,370 програм идеш састаће се у проблему 292 00:12:04,370 --> 00:12:07,350 сет онај који аутоматски тестира исправност кода 293 00:12:07,350 --> 00:12:11,615 ће викати на тебе ако се не може пронаћи "ватер.ц" у свим малим словима. 294 00:12:11,615 --> 00:12:12,712 >> Зато морам да поправим ово. 295 00:12:12,712 --> 00:12:14,920 Толико различити начини да се урадили, од којих је прва 296 00:12:14,920 --> 00:12:18,330 био би да контролише-клик или десни клик име датотеке и само променити Ренаме. 297 00:12:18,330 --> 00:12:19,740 Потпуно у реду да то уради. 298 00:12:19,740 --> 00:12:21,820 Али опет, данас, хајдемо урадите то мало одгајивача. 299 00:12:21,820 --> 00:12:26,680 Хајде да искористимо МВ за промену "ВАТЕР.Ц" да "ватер.ц." 300 00:12:26,680 --> 00:12:30,690 Дакле, можете користити први аргумент да га преименовали у други аргумент 301 00:12:30,690 --> 00:12:34,455 ако је други аргумент није, у Чињеница, фолдер или име директоријума. 302 00:12:34,455 --> 00:12:35,120 >> U redu. 303 00:12:35,120 --> 00:12:39,560 И на крају, мало трицк-- па сам у мој радни простор директоријум у овом тренутку. 304 00:12:39,560 --> 00:12:43,660 Ако желим да уђем у псет једну, Ја свакако можете да упишете "цд псет1." 305 00:12:43,660 --> 00:12:47,260 Али то је тако досадан да куцате "псет1" или више имена датотека или имена директоријума 306 00:12:47,260 --> 00:12:47,980 jos uvek. 307 00:12:47,980 --> 00:12:51,960 Дакле, врло често у Линук, оно можете да урадите је почните да куцате "псе" 308 00:12:51,960 --> 00:12:56,100 и само досади, хит Таб, па нека компјутер цифра је за тебе. 309 00:12:56,100 --> 00:12:58,190 Супер помоћи да дођу у ту навику. 310 00:12:58,190 --> 00:13:01,079 Једини проблем је ако имате више датотека или фасцикли стартинг 311 00:13:01,079 --> 00:13:02,870 са словом "П" или "ПС", можда ћете имати 312 00:13:02,870 --> 00:13:05,525 да куцате још неколико пре компјутер зна шта да ради. 313 00:13:05,525 --> 00:13:06,820 >> МАРИЈА: Волимо пречице. 314 00:13:06,820 --> 00:13:08,695 >> Давид Малан: Ово ће саве иоу толико времена. 315 00:13:08,695 --> 00:13:11,930 Такође, као што смо рекли у предавању, ви се померати нагоре у историји, горе и доле, 316 00:13:11,930 --> 00:13:15,461 да пронађе недавно погубљен команде, такође. 317 00:13:15,461 --> 00:13:15,960 U redu. 318 00:13:15,960 --> 00:13:20,904 Дакле, сада, хајде да обратимо пажњу назад једноставном програму, здраво свет. 319 00:13:20,904 --> 00:13:22,195 Зато смо саставили ово тачно. 320 00:13:22,195 --> 00:13:24,050 А сада зашто не узмемо поглед на типове података 321 00:13:24,050 --> 00:13:26,776 а затим прелазак из неких одговара Греб блокове да Ц. 322 00:13:26,776 --> 00:13:27,400 МАРИЈА: Супер. 323 00:13:27,400 --> 00:13:30,031 Дакле, сада када сте почели писање програма у Ц, 324 00:13:30,031 --> 00:13:32,530 ћемо да проговори о типовима података и променљивих. 325 00:13:32,530 --> 00:13:37,570 Тако неке врсте података које сте бих волео да знам од сада 326 00:13:37,570 --> 00:13:39,400 су они који су истакнуте плавом бојом. 327 00:13:39,400 --> 00:13:42,420 Тако имамо Инт прво, која се залаже за цео број. 328 00:13:42,420 --> 00:13:46,075 И који држи целе бројеве, као и ти можда има гуессед-- толико 1, 2, 3, 329 00:13:46,075 --> 00:13:47,950 и било који други природни бројеви да можете да замислити. 330 00:13:47,950 --> 00:13:48,730 >> Давид Малан: И такође негативно. 331 00:13:48,730 --> 00:13:50,220 >> МАРИЈА: И такође негативне, да. 332 00:13:50,220 --> 00:13:51,450 И 0. 333 00:13:51,450 --> 00:13:54,250 Онда имамо плута, који плутају бројеве тачака. 334 00:13:54,250 --> 00:13:58,360 Дакле, то је све реалне бројеве који имају децимале. 335 00:13:58,360 --> 00:14:03,960 Дакле 5.0, 5.2, и још цифара после децималног зареза, 336 00:14:03,960 --> 00:14:05,620 као и, као и негативне. 337 00:14:05,620 --> 00:14:07,530 Онда имамо символ што је лик. 338 00:14:07,530 --> 00:14:10,240 Дакле, мислим да смо разговарали о ово предавање данас. 339 00:14:10,240 --> 00:14:15,682 Али ми имамо писма, за екампле-- А, Б, ц-- која се може чувати као цхар. 340 00:14:15,682 --> 00:14:18,390 Али онда имамо много више симбола које се могу чувати као цхар. 341 00:14:18,390 --> 00:14:22,380 И они се чувају као АСЦИИ. 342 00:14:22,380 --> 00:14:25,280 >> И онда имамо боол, који су Боолеанс. 343 00:14:25,280 --> 00:14:29,067 А они оцењују Труе или Нетачне или 1 и 0, респективно. 344 00:14:29,067 --> 00:14:31,650 Давид Малан: И Подсетимо се да инт долази из ЦС50 библиотеке. 345 00:14:31,650 --> 00:14:33,300 Дакле, то није уграђено у Ц, али то је супер корисно 346 00:14:33,300 --> 00:14:34,850 да појам истина и лаж. 347 00:14:34,850 --> 00:14:36,990 И иако вас Можда мислим-- забава чињеницу. 348 00:14:36,990 --> 00:14:43,700 Инт технички потребан колико бита, заиста, да представљају Тачно у односу Нетачно? 349 00:14:43,700 --> 00:14:47,910 Колико бита мислиш ти би требао, максимално? 350 00:14:47,910 --> 00:14:48,790 Да, само један. 351 00:14:48,790 --> 00:14:52,077 Тако испада да је Ц Не могу вам дати само један мало. 352 00:14:52,077 --> 00:14:54,160 Најмања јединица мере можете добити је осам. 353 00:14:54,160 --> 00:14:57,090 Тако да је мало расипнички да сте користећи читав бајт, или осам битова, 354 00:14:57,090 --> 00:14:58,340 да представљају Труе или Фалсе. 355 00:14:58,340 --> 00:15:01,807 Али то је само начин на који је имплементиран у Ц по ЦС50 библиотеке. 356 00:15:01,807 --> 00:15:04,890 Мариа: И онда они да смо ми неће да говоре о толикој мери 357 00:15:04,890 --> 00:15:08,060 Право сада-- дупло, то је за веће сплавова. 358 00:15:08,060 --> 00:15:09,811 Дуго дуг и кратак су за целих бројева. 359 00:15:09,811 --> 00:15:10,643 Давид Малан: Заиста. 360 00:15:10,643 --> 00:15:13,190 У хакерске издању псет једне, Ми заправо користимо дуго дуго. 361 00:15:13,190 --> 00:15:15,801 Али за Стандард Едитион, не би требало бити потребно. 362 00:15:15,801 --> 00:15:16,300 МАРИЈА: Кул. 363 00:15:16,300 --> 00:15:17,361 OK. 364 00:15:17,361 --> 00:15:20,110 Дакле, требало би да операторс-- вероватно упознати са већином од њих. 365 00:15:20,110 --> 00:15:22,620 Додавање +; одузимање, -. 366 00:15:22,620 --> 00:15:24,070 За множења, имамо *. 367 00:15:24,070 --> 00:15:25,900 Дакле, не Кс да обично користе. 368 00:15:25,900 --> 00:15:27,840 Дивизија, имамо обрнуту косу црту. 369 00:15:27,840 --> 00:15:31,380 И модулу је наша задња оператер који ћемо говорити о сада. 370 00:15:31,380 --> 00:15:35,610 То је оператор који нам омогућава да се остатак подели. 371 00:15:35,610 --> 00:15:40,630 Дакле, ако имамо 4% 2, 4 подељена би 2 је 2 са остатком 0. 372 00:15:40,630 --> 00:15:41,740 Дакле, 4% 2 ис 0. 373 00:15:41,740 --> 00:15:42,950 4% 3 је 1. 374 00:15:42,950 --> 00:15:44,870 4% 5 је 4, као што сте могли да претпостави. 375 00:15:44,870 --> 00:15:48,860 И запамтите када се користе сви ови оператерима да користе правила ПЕМДАС. 376 00:15:48,860 --> 00:15:54,060 >> Давид Малан: Дакле, да буде јасно, ако вас до 4% 2, зашто је то 0, тачно? 377 00:15:54,060 --> 00:15:57,480 >> МАРИЈА: Због подељено са 4 2 је 2 са остатком 0. 378 00:15:57,480 --> 00:16:00,752 Дакле, по модулу нам даје ту остатак као за разлику од последица поделе. 379 00:16:00,752 --> 00:16:02,960 Давид Малан: И заиста, шта ћемо наћи ово било корисно 380 00:16:02,960 --> 00:16:05,640 јер је да у неке проблеме то није нужно један, 381 00:16:05,640 --> 00:16:08,040 ако желите да имате ефекат ограничавање себе 382 00:16:08,040 --> 00:16:10,720 на низ бројева као 0 кроз нешто, 383 00:16:10,720 --> 00:16:13,904 можете користити по модулу да обавије око раније него као 2 милијарде 384 00:16:13,904 --> 00:16:16,320 или 4 милијарде вредност која смо говорили у предавању. 385 00:16:16,320 --> 00:16:16,870 >> МАРИЈА: Да. 386 00:16:16,870 --> 00:16:19,429 Па чак и у "похлепни" ми би. 387 00:16:19,429 --> 00:16:21,345 Давид Малан: Да, у проблем поставити један, такође. 388 00:16:21,345 --> 00:16:22,520 МАРИЈА: Да, лепо. 389 00:16:22,520 --> 00:16:24,340 Давид Малан: Добро наговештај. 390 00:16:24,340 --> 00:16:25,750 МАРИЈА: Извињавам се. 391 00:16:25,750 --> 00:16:28,590 Булова екпрессионс-- тако за Булових оператора, 392 00:16:28,590 --> 00:16:31,770 ћемо да причамо о свему од ових који видите овде. 393 00:16:31,770 --> 00:16:35,310 Тако сада имамо два једнаке знаци листи за једнакима. 394 00:16:35,310 --> 00:16:38,650 Дакле, то су за поређење. 395 00:16:38,650 --> 00:16:40,830 До сада смо само видели један једнако знак. 396 00:16:40,830 --> 00:16:44,870 Тада смо доделили вредност променљивој. 397 00:16:44,870 --> 00:16:50,160 Дакле, ако смо видели инт = 5, онда смо доделили 5 до променљиве н. 398 00:16:50,160 --> 00:16:55,600 Али, ако желимо да користимо за == Поређења ради, можемо проверити да ли н == 5. 399 00:16:55,600 --> 00:16:58,310 А ако н == 5, онда је то истина. 400 00:16:58,310 --> 00:17:01,950 >> Дакле, Логички оператори дозволите нам, у суштини, 401 00:17:01,950 --> 00:17:04,670 да се процени Боолеан изрази то тачно или нетачно. 402 00:17:04,670 --> 00:17:07,819 Дакле, не екуалс-- имамо знак узвика и једнаки. 403 00:17:07,819 --> 00:17:14,240 Тако да смо такође може провјерити ако је н није исто 5-- тако да је н! = 5. 404 00:17:14,240 --> 00:17:17,640 Мање од, мање од или једнак, већи од, већи или једнак, 405 00:17:17,640 --> 00:17:20,720 и онда имамо логично И и логично ИЛИ. 406 00:17:20,720 --> 00:17:24,060 А они нам омогућавају да се процени више Боолеан изрази заједно 407 00:17:24,060 --> 00:17:27,930 да у основи долазе заједно, као цео један Булова израз. 408 00:17:27,930 --> 00:17:34,970 Дакле, ако желимо да пронађемо број, рецимо, која је већа од 5, али мање од 15 409 00:17:34,970 --> 00:17:39,810 Истовремено, бисмо користимо логично и оператору да види да ли је н 410 00:17:39,810 --> 00:17:42,937 већи од 5 && н мање од 15. 411 00:17:42,937 --> 00:17:44,770 Давид Малан: И овде, такође, то је стварно лако 412 00:17:44,770 --> 00:17:47,290 рано да случајно користите само једну амперсанд 413 00:17:47,290 --> 00:17:48,572 или једна вертикална трака. 414 00:17:48,572 --> 00:17:51,280 И надам се компајлер ће викати на тебе, јер они заправо 415 00:17:51,280 --> 00:17:52,530 имају веома другачије значење. 416 00:17:52,530 --> 00:17:55,660 За оне радознали, они су користи за БИТВИСЕ операције, 417 00:17:55,660 --> 00:17:57,197 ради о појединачним бита. 418 00:17:57,197 --> 00:17:58,780 Али ти желиш да пар њих овде. 419 00:17:58,780 --> 00:18:01,560 И Супер важно је да Први, знак једнакости, 420 00:18:01,560 --> 00:18:05,270 који је оператер равноправност као за разлику од оператора доделе. 421 00:18:05,270 --> 00:18:08,552 >> МАРИЈА: А вертикална бар налази између Делете и повратак. 422 00:18:08,552 --> 00:18:09,260 Давид Малан: Да. 423 00:18:09,260 --> 00:18:11,420 На типичном америчком тастатури. 424 00:18:11,420 --> 00:18:13,190 >> МАРИЈА: Да. 425 00:18:13,190 --> 00:18:15,890 Дакле, хајде да скочи право у условне исказе. 426 00:18:15,890 --> 00:18:18,300 У Сцратцх, ти си већ видели, вероватно, 427 00:18:18,300 --> 00:18:22,730 ако изјаве које вам омогућавају да проверите да ли је нешто истина, онда 428 00:18:22,730 --> 00:18:23,660 уради нешто друго. 429 00:18:23,660 --> 00:18:28,410 Тако сте можда желели да проверите да ли је спрајт 430 00:18:28,410 --> 00:18:31,410 додирује неку другу спрајт или граница екрана. 431 00:18:31,410 --> 00:18:35,520 А онда сте можда желели да завршити игру или уради нешто друго. 432 00:18:35,520 --> 00:18:40,000 Дакле, синтаксе за то је "иф (услов)." 433 00:18:40,000 --> 00:18:46,820 Дакле, ако ваш дух додирује нешто, онда немој је унутар заграда. 434 00:18:46,820 --> 00:18:48,980 >> Онда имамо иф-елсе изјаве. 435 00:18:48,980 --> 00:18:54,080 Друго нам омогућава да урадимо нешто ако је услов да 436 00:18:54,080 --> 00:18:55,870 проверите да ли на почетку није истина. 437 00:18:55,870 --> 00:19:01,530 Дакле, ако је спрајт се додирује граница ово, друго радити нешто друго. 438 00:19:01,530 --> 00:19:04,030 Дакле, иначе радимо нешто друго. 439 00:19:04,030 --> 00:19:07,530 Онда имамо кратак пример за то. 440 00:19:07,530 --> 00:19:11,551 Дакле, ако (милитари_тиме <12), ми Желим да принтф "Добро јутро!" 441 00:19:11,551 --> 00:19:13,300 Друго ћемо иф "Добро вече!" 442 00:19:13,300 --> 00:19:14,860 Основни пример. 443 00:19:14,860 --> 00:19:15,680 >> Давид Малан: Добро. 444 00:19:15,680 --> 00:19:16,760 >> МАРИЈА: Кул. 445 00:19:16,760 --> 00:19:18,560 Тако да сада имамо прекидач изјаве. 446 00:19:18,560 --> 00:19:21,960 Свитцх изјаве уопште могу дозвољавају нам да урадимо много исте ствари 447 00:19:21,960 --> 00:19:25,070 да смо разговарали о са изјавама да. 448 00:19:25,070 --> 00:19:29,440 На пример, сада имамо Општи облик изјаве свитцх 449 00:19:29,440 --> 00:19:33,870 који нам омогућава да се променљива под називом н 450 00:19:33,870 --> 00:19:37,670 и упоредите га много различите вредности, који овде 451 00:19:37,670 --> 00:19:40,010 су позвали цонстант1, цонстант2. 452 00:19:40,010 --> 00:19:41,150 Можда имамо много више. 453 00:19:41,150 --> 00:19:42,930 И они се називају случајеве. 454 00:19:42,930 --> 00:19:46,280 >> Дакле, ако имамо прекидач статемент-- и ово ради 455 00:19:46,280 --> 00:19:50,580 само за интегерс-- имамо променљива у овом случају то је бр. 456 00:19:50,580 --> 00:19:53,840 Уколико променљива н једнак цонстант1, ми 457 00:19:53,840 --> 00:19:59,720 ће извршити неке фрагмент кода или нешто што желимо да радимо. 458 00:19:59,720 --> 00:20:01,280 И онда бисмо сломити. 459 00:20:01,280 --> 00:20:04,820 Дакле, пауза значи да изјава прекидач 460 00:20:04,820 --> 00:20:08,120 ће се зауставља ако н је једнак цонстант1, 461 00:20:08,120 --> 00:20:09,752 а затим ваш програм ће се наставити. 462 00:20:09,752 --> 00:20:11,835 То ће изаћи из од прекидач изјаву и да ће 463 00:20:11,835 --> 00:20:13,520 наставити да ради нешто друго. 464 00:20:13,520 --> 00:20:17,204 >> Уколико, међутим, н није једнако цонстант1, затим случај цонстант2 465 00:20:17,204 --> 00:20:17,870 ће бити проверени. 466 00:20:17,870 --> 00:20:21,750 Дакле, ако је н једнако цонстант2, та друга фрагмент кода ће бити погубљени. 467 00:20:21,750 --> 00:20:23,850 И онда ће сломити ако је то једнако томе. 468 00:20:23,850 --> 00:20:27,580 А онда можемо да имамо алсо-- не нужно, тхоугх-- подразумевани случај, 469 00:20:27,580 --> 00:20:32,290 што ће се десити ако је н није једнако неки од случајева који сте навели. 470 00:20:32,290 --> 00:20:35,400 А у случају подразумевани, такође смо Не нужно не треба пауза 471 00:20:35,400 --> 00:20:39,271 јер изјава прекидач ће знати да мора да заврши после подразумевано 472 00:20:39,271 --> 00:20:40,270 случај ако је то случај. 473 00:20:40,270 --> 00:20:42,140 >> Давид Малан: Али стилски, увек га ставили тамо. 474 00:20:42,140 --> 00:20:42,540 >> МАРИЈА: Да. 475 00:20:42,540 --> 00:20:42,710 >> Давид Малан: Да. 476 00:20:42,710 --> 00:20:44,750 Дакле, посебно у почетку, нарочито ако међу онима који су мање 477 00:20:44,750 --> 00:20:47,458 удобно, ја лично бих Само препоручују стицк са ИФС 478 00:20:47,458 --> 00:20:51,564 и ИФС-Елсес а ако-друго-ако-Елсес и тако даље само ако 479 00:20:51,564 --> 00:20:53,480 јер су мало много једноставније. 480 00:20:53,480 --> 00:20:56,142 Ово је леп оптимизација, или понекад ни естетски 481 00:20:56,142 --> 00:20:57,350 чини код више читљив. 482 00:20:57,350 --> 00:20:59,599 И, у ствари, вероватно средином семестра видећемо проблем 483 00:20:59,599 --> 00:21:02,504 сет где само изгледа боље и лакше за читање за људе 484 00:21:02,504 --> 00:21:03,670 помоћу прекидача изјаву. 485 00:21:03,670 --> 00:21:05,460 Али не брини прерано везаност за ово. 486 00:21:05,460 --> 00:21:05,680 >> МАРИЈА: Да. 487 00:21:05,680 --> 00:21:08,840 Ако имате доста тога ако изјава, можда само не би било читљив. 488 00:21:08,840 --> 00:21:10,965 То не би било врло брзо за вас да прође кроз њега. 489 00:21:10,965 --> 00:21:13,230 Тако свитцх изјаве могу бити веома корисно, као добро. 490 00:21:13,230 --> 00:21:17,900 Такође, не запамти не заборави да стави паузе унутра. 491 00:21:17,900 --> 00:21:20,330 >> Давид Малан: Не сећам се тога. 492 00:21:20,330 --> 00:21:24,890 >> МАРИЈА: Зато што онда може да падне кроз од случаја до случаја. 493 00:21:24,890 --> 00:21:27,930 Рецимо да је предмет цонстант1 није имао бреак изјаву у њој. 494 00:21:27,930 --> 00:21:31,920 Онда бисмо могли пасти преко у случају цонстант2. 495 00:21:31,920 --> 00:21:35,070 И не желим то да урадим ако већ смо достигли случаја цонстант1 496 00:21:35,070 --> 00:21:37,830 и то је једнако н. 497 00:21:37,830 --> 00:21:45,100 >> Тако, на пример, ако имамо променљиву Н који садржи број класе, 498 00:21:45,100 --> 00:21:48,990 и ми желимо да видимо шта је то класа је- ако је н једнако 50, 499 00:21:48,990 --> 00:21:51,957 ћемо то принт "ЦС50 је Увод у компјутерских наука И. " 500 00:21:51,957 --> 00:21:53,040 Онда идемо да се пробије. 501 00:21:53,040 --> 00:21:53,920 I to je to. 502 00:21:53,920 --> 00:21:55,950 Ако је, међутим, н је једнако до 51, идемо 503 00:21:55,950 --> 00:21:58,494 то принт "цс51 је Увод да компјутерских наука ИИ. " 504 00:21:58,494 --> 00:21:59,910 Затим, опет, идемо да се пробије. 505 00:21:59,910 --> 00:22:05,080 Међутим, ако онда ставимо 124, 61, било други број који можда мислите, 506 00:22:05,080 --> 00:22:06,890 или програм не иде да се препозна да. 507 00:22:06,890 --> 00:22:09,010 Дакле, то ће рећи: "Жао ми је, ја сам није упознат са тим класе. " 508 00:22:09,010 --> 00:22:10,009 И то ће сломити. 509 00:22:10,009 --> 00:22:12,847 Давид Малан: Тако да стварно можете видети иф, иф, друго идеја овде. 510 00:22:12,847 --> 00:22:15,430 То је само другачији Синтакса за изражавајући потпуно исту идеју. 511 00:22:15,430 --> 00:22:17,690 >> МАРИЈА: Тачно. 512 00:22:17,690 --> 00:22:19,480 Сада имамо наше тернарни оператере. 513 00:22:19,480 --> 00:22:24,900 Дакле, Тернарну оператери имају три партс-- услов, 514 00:22:24,900 --> 00:22:27,220 нешто да урадите ако тај услов је истина, 515 00:22:27,220 --> 00:22:29,730 и онда нешто да уради ако је услов је неистинит. 516 00:22:29,730 --> 00:22:33,400 Па видиш, у основи, синтакса овде. 517 00:22:33,400 --> 00:22:37,792 Имамо упитник, и онда који-- шта зовемо ово? 518 00:22:37,792 --> 00:22:38,750 Давид Малан: дебелог црева. 519 00:22:38,750 --> 00:22:39,100 МАРИЈА: Колон. 520 00:22:39,100 --> 00:22:39,599 Hvala vam. 521 00:22:39,599 --> 00:22:41,880 Извините. 522 00:22:41,880 --> 00:22:45,800 Дакле, хајде да погледамо наш пример видимо да ли можемо да схватимо ово-- 523 00:22:45,800 --> 00:22:47,840 цласс_нум == 50. 524 00:22:47,840 --> 00:22:52,580 Дакле овде видимо нашу Боолеан оператор == који пореди променљиве цласс_нум 525 00:22:52,580 --> 00:22:53,100 до 50. 526 00:22:53,100 --> 00:22:55,150 Дакле, цласс_нум продавнице цео број. 527 00:22:55,150 --> 00:22:58,180 А ако те цео број једнако 50, онда смо 528 00:22:58,180 --> 00:23:02,810 да складишти "Дејвид Малан" унутар професор стринг. 529 00:23:02,810 --> 00:23:05,912 Ако класа број не једнаке 50, "Давид се Малан" 530 00:23:05,912 --> 00:23:07,120 ће бити професор. 531 00:23:07,120 --> 00:23:08,630 >> Давид Малан: Хвала. 532 00:23:08,630 --> 00:23:12,110 И тако то изгледа еквивалент Шта, да ли бисте рекли, на први поглед? 533 00:23:12,110 --> 00:23:17,930 534 00:23:17,930 --> 00:23:19,960 >> МАРИЈА: Мени се чини као иф-елсе изјаве. 535 00:23:19,960 --> 00:23:20,709 >> Давид Малан: Да. 536 00:23:20,709 --> 00:23:24,020 И у ствари, ово је некако од лепог Оне линер, 537 00:23:24,020 --> 00:23:27,520 да тако кажем, за реализацију управо логика иф-елсе 538 00:23:27,520 --> 00:23:29,010 али ради све у једном кораку. 539 00:23:29,010 --> 00:23:29,860 >> МАРИЈА: Тачно. 540 00:23:29,860 --> 00:23:30,360 Да. 541 00:23:30,360 --> 00:23:33,520 Дакле, ако-елсе изјаве могао заузимају много простора. 542 00:23:33,520 --> 00:23:36,283 Они могу бити превише дуго нешто тако једноставно као ово. 543 00:23:36,283 --> 00:23:38,350 Дакле, ово може бити веома језгровит и врло лепо. 544 00:23:38,350 --> 00:23:40,880 545 00:23:40,880 --> 00:23:46,820 Дакле, сада ћемо у лоокинг ат изнова и изнова извршавање нешто, 546 00:23:46,820 --> 00:23:50,060 тако да проверавате условљавају више пута 547 00:23:50,060 --> 00:23:53,510 а затим наставља да уради нешто док тај услов није истина. 548 00:23:53,510 --> 00:23:56,740 Дакле, ово нас доводи лепо се док петље. 549 00:23:56,740 --> 00:23:59,270 >> Са леве стране, имамо наш први вхиле петље. 550 00:23:59,270 --> 00:24:03,840 Дакле, док је нешто истина, опет и опет нешто. 551 00:24:03,840 --> 00:24:08,850 Дакле, уверите се да приметити да је наш Услов је овде потврдио на врху. 552 00:24:08,850 --> 00:24:14,150 Док са нашим другом лооп-- зовемо да до-а лооп-- радимо нешто, 553 00:24:14,150 --> 00:24:15,890 онда проверите стања. 554 00:24:15,890 --> 00:24:17,980 А ако том стању наставља да буде истина, 555 00:24:17,980 --> 00:24:20,150 да се вратимо и опет ствар. 556 00:24:20,150 --> 00:24:23,360 Дакле, главна разлика је где услов се проверава на. 557 00:24:23,360 --> 00:24:29,260 И код никада не може бити извршити ако услов није 558 00:24:29,260 --> 00:24:30,430 истина са вхиле петље. 559 00:24:30,430 --> 00:24:33,050 Док са до-време петља, имамо код 560 00:24:33,050 --> 00:24:35,380 да се увек извршава најмање једном. 561 00:24:35,380 --> 00:24:37,470 А онда, док је услов наставља да буде истина, 562 00:24:37,470 --> 00:24:39,960 можемо да се вратимо и поновити опет унутра. 563 00:24:39,960 --> 00:24:43,625 Зашто мислиш да би користили а до-вхиле петље преко вхиле петље? 564 00:24:43,625 --> 00:24:48,221 565 00:24:48,221 --> 00:24:48,720 Jel tako. 566 00:24:48,720 --> 00:24:52,600 Дакле, ако желимо да подстакне корисник за неку врсту улаза, 567 00:24:52,600 --> 00:24:55,400 ако желимо да их питамо да унесете своје име, 568 00:24:55,400 --> 00:24:57,342 желимо да их барем једном питати. 569 00:24:57,342 --> 00:24:59,050 А ако они не улазе то име, ми нисмо 570 00:24:59,050 --> 00:25:00,740 да их поново питати јер смо то већ знамо. 571 00:25:00,740 --> 00:25:02,656 Али, ако они не улазе њихово име, или ако 572 00:25:02,656 --> 00:25:05,787 унесите нешто што је Очигледно није име, 573 00:25:05,787 --> 00:25:08,120 и даље желимо да наставимо тражећи од њих да замени своје име. 574 00:25:08,120 --> 00:25:10,710 >> Давид Малан: И у предавању смо имали један овако са позитивним добити инт 575 00:25:10,710 --> 00:25:13,550 пример, где нема шта да проверите на први поглед, јер ниси ни 576 00:25:13,550 --> 00:25:14,190 добила инт. 577 00:25:14,190 --> 00:25:16,680 Зато желимо да радимо ово-- добити инт од усер-- 578 00:25:16,680 --> 00:25:18,860 онда проверите, можда, опет и опет и опет. 579 00:25:18,860 --> 00:25:21,030 >> МАРИЈА: Тачно. 580 00:25:21,030 --> 00:25:22,060 За лоопс-- ОК. 581 00:25:22,060 --> 00:25:25,842 За петље могу нам омогућити да радимо готово исту ствар, као добро. 582 00:25:25,842 --> 00:25:27,300 То је заправо је иста ствар. 583 00:25:27,300 --> 00:25:30,190 Дакле, не постоји ништа што можете да урадите са петље за 584 00:25:30,190 --> 00:25:32,840 да не би могао у вези са вхиле петље. 585 00:25:32,840 --> 00:25:36,900 Али за петље може изгледати помало мало компликованије синтактички 586 00:25:36,900 --> 00:25:39,730 јер имају три дела унутар шта 587 00:25:39,730 --> 00:25:42,990 је било пре само стање са док петљи. 588 00:25:42,990 --> 00:25:48,260 Дакле, први део који сте море, лево-највише имамо "Инт патуљци = 0." 589 00:25:48,260 --> 00:25:51,490 Дакле, ово је место где смо иницијализујемо наше променљиве. 590 00:25:51,490 --> 00:25:55,210 >> Онда имамо зарез и "патуљци <7." 591 00:25:55,210 --> 00:25:57,100 Дакле, ово је место где се Услов је заправо. 592 00:25:57,100 --> 00:26:00,170 Дакле, то је оно што би морали стави само у време лооп-- 593 00:26:00,170 --> 00:26:01,880 "док патуљци <7." 594 00:26:01,880 --> 00:26:05,380 Ево, да иде у средини наш фор петље. 595 00:26:05,380 --> 00:26:07,190 Дакле, "двавес <7." 596 00:26:07,190 --> 00:26:11,350 А онда наш последњи део "патуљци ++" где смо ажурирали наше променљиве. 597 00:26:11,350 --> 00:26:15,470 Дакле, важна ствар да схвате да је ово 598 00:26:15,470 --> 00:26:22,010 ће проћи кроз ово петљу седам пута и изврши седам пута. 599 00:26:22,010 --> 00:26:24,020 Дакле, имамо седам патуљци, и сви су 600 00:26:24,020 --> 00:26:26,020 ће рећи: "Ја сам овде да ти помогнем, Снежана " 601 00:26:26,020 --> 00:26:28,860 јер су спремне да помогне Снежану. 602 00:26:28,860 --> 00:26:33,600 >> Са вхиле петље, ми бисмо урадили иницијализација и ажурирање 603 00:26:33,600 --> 00:26:37,490 не налази унутар стању, једном, али пре или унутар вхиле петље 604 00:26:37,490 --> 00:26:40,210 да се уверите да ми-- јер увек треба те делове. 605 00:26:40,210 --> 00:26:42,835 Тако да се уверите да имамо их, ми би и даље смо додали их 606 00:26:42,835 --> 00:26:44,580 , само не унутар заграда. 607 00:26:44,580 --> 00:26:47,288 >> Давид Малан: И тако изгледа као-- у предавању, на пример, 608 00:26:47,288 --> 00:26:50,250 Скоро увек користи, као што сам и н и прилично досадне променљиве. 609 00:26:50,250 --> 00:26:53,050 Изгледа да можете да користите више паметно имену варијабле, превише. 610 00:26:53,050 --> 00:26:56,300 >> МАРИЈА: Да, то је у ствари јако лепо користити мало више описне варијабле 611 00:26:56,300 --> 00:26:59,400 јер поготово ако је неко други читајући ваше цоде-- можда си грејдер 612 00:26:59,400 --> 00:27:00,940 или ако сарађују са нешто-- 613 00:27:00,940 --> 00:27:03,481 желите да се уверите да су разумем шта радите. 614 00:27:03,481 --> 00:27:05,750 615 00:27:05,750 --> 00:27:06,400 >> OK. 616 00:27:06,400 --> 00:27:11,435 Дакле, ово је нешто веома функи-- за петљу унутар за петљу. 617 00:27:11,435 --> 00:27:13,060 Ја не знам да ли смо видели раније. 618 00:27:13,060 --> 00:27:13,830 Verovatno ne. 619 00:27:13,830 --> 00:27:17,750 Али ми заправо може имати ово-- тако петље уместо петљи. 620 00:27:17,750 --> 00:27:25,130 Дакле, да ли неко жели да можда хода ми кроз шта се овде дешава? 621 00:27:25,130 --> 00:27:28,240 622 00:27:28,240 --> 00:27:29,490 Давид Малан: Узећу убод. 623 00:27:29,490 --> 00:27:29,970 МАРИЈА: Кул. 624 00:27:29,970 --> 00:27:30,636 Давид Малан: У реду. 625 00:27:30,636 --> 00:27:34,690 Дакле, споилер-- желимо да одштампате ствари да је у доњем десном углу 626 00:27:34,690 --> 00:27:35,190 тамо. 627 00:27:35,190 --> 00:27:35,450 >> МАРИЈА: Тако је. 628 00:27:35,450 --> 00:27:35,710 Da da. 629 00:27:35,710 --> 00:27:38,043 >> Давид Малан: Тако смо само ставио тамо тог узорка излаз. 630 00:27:38,043 --> 00:27:42,590 Дакле, може се закључити из Највиши петља да си 631 00:27:42,590 --> 00:27:45,680 итератинг преко редова у спољни петље, да се тако изразим. 632 00:27:45,680 --> 00:27:48,107 А ти итератинг преко колоне са најужег петље. 633 00:27:48,107 --> 00:27:50,190 И интуитивно, ово треба надамо смисла 634 00:27:50,190 --> 00:27:52,070 јер по природи сваки програм смо видели 635 00:27:52,070 --> 00:27:55,570 пре, принтф, која је Функција ми користимо, у крајњој линији, 636 00:27:55,570 --> 00:27:58,190 има способност да штампа ствари од суштини ред по ред. 637 00:27:58,190 --> 00:27:59,960 Као, када сте имати излаз нова линија, ту је 638 00:27:59,960 --> 00:28:02,876 Не удвостручење назад и штампање нешто виши у екрану, барем 639 00:28:02,876 --> 00:28:04,530 не користи принтф овако. 640 00:28:04,530 --> 00:28:07,750 >> И тако у том смислу, чини осећање да спољни петља 641 00:28:07,750 --> 00:28:10,930 треба односи на редовима јер за сваки дат ред, 642 00:28:10,930 --> 00:28:13,650 ћеш желети да одштампати КСКСКСКСКС, а затим 643 00:28:13,650 --> 00:28:15,520 пређете на следећи ред, ккккк. 644 00:28:15,520 --> 00:28:17,317 Дакле, редови на првом месту. 645 00:28:17,317 --> 00:28:19,150 А онда унутар сваке ред, да одштампате колоне. 646 00:28:19,150 --> 00:28:21,160 Ако сте покушали да га се уради напротив, вероватно не би 647 00:28:21,160 --> 00:28:21,690 изаћи као намеравате. 648 00:28:21,690 --> 00:28:22,190 >> МАРИЈА: Да. 649 00:28:22,190 --> 00:28:24,950 Нисмо могли да се вратимо у претходни ред са принтф. 650 00:28:24,950 --> 00:28:27,658 >> Давид Малан: А шта је занимљиво по данашњем разговор о обиму, 651 00:28:27,658 --> 00:28:31,600 заправо, јесте да је ред инт која је проглашена у највишем петљи. 652 00:28:31,600 --> 00:28:34,030 Али приметити да је и даље унутар, такорећи, 653 00:28:34,030 --> 00:28:35,982 великих заграда да одмах следе, 654 00:28:35,982 --> 00:28:38,440 иако то није технички у оквиру тих заграда. 655 00:28:38,440 --> 00:28:41,750 Дакле, ред је у оквиру за целовитост фрагмент кода, 656 00:28:41,750 --> 00:28:44,690 унутар вањског за петљу и унутар унутрашњег за петљу. 657 00:28:44,690 --> 00:28:48,050 Али с друге стране, гдје је колона у оквиру? 658 00:28:48,050 --> 00:28:49,810 Променљива колона? 659 00:28:49,810 --> 00:28:51,310 Да, само у унутрашњем петље. 660 00:28:51,310 --> 00:28:54,280 И то је у реду зато што не приступате је изван својих заграда. 661 00:28:54,280 --> 00:28:57,280 Све што радимо је одштампани нова линија на самом крају. 662 00:28:57,280 --> 00:28:58,670 Тако да, у ствари је ОК. 663 00:28:58,670 --> 00:29:03,740 >> Дакле, ово има ефекат, личи, да ради три реда и четири колоне. 664 00:29:03,740 --> 00:29:04,370 >> МАРИЈА: Тако је. 665 00:29:04,370 --> 00:29:06,270 Дакле, прво идемо преко нашег првог реда. 666 00:29:06,270 --> 00:29:10,520 И само у нашем првом реду, урадимо четири колоне унутар првог реда. 667 00:29:10,520 --> 00:29:11,980 Тако смо одштампате четири нечија. 668 00:29:11,980 --> 00:29:15,800 И онда можемо да изадјете фор петље, јер већ смо штампати четири нечија. 669 00:29:15,800 --> 00:29:17,100 И ми смо штампали нову линију. 670 00:29:17,100 --> 00:29:19,920 И онда идемо кроз Исти процес за још два реда 671 00:29:19,920 --> 00:29:21,170 да укупно три. 672 00:29:21,170 --> 00:29:23,530 >> Давид Малан: И то је напоменути да је само артефакт фонта, чињеница 673 00:29:23,530 --> 00:29:25,680 да се узорак излаз изгледа тако много виши, 674 00:29:25,680 --> 00:29:27,520 као да има више редови од стубова. 675 00:29:27,520 --> 00:29:29,824 Али то је само зато што Кс је виши него што је широк. 676 00:29:29,824 --> 00:29:32,740 То је све што се тамо дешава, плус бели простор између редова. 677 00:29:32,740 --> 00:29:33,281 >> МАРИЈА: Тако је. 678 00:29:33,281 --> 00:29:34,792 Кул. 679 00:29:34,792 --> 00:29:35,750 Давид Малан: У реду. 680 00:29:35,750 --> 00:29:39,830 Дакле, бацимо поглед на проблем поставити један, узети било каква питања, а онда паузу? 681 00:29:39,830 --> 00:29:40,330 U redu. 682 00:29:40,330 --> 00:29:43,164 Дакле, у Проблем поставити један, ту је три Примарни изазов, на крају. 683 00:29:43,164 --> 00:29:44,955 Али прво, наћи ћете да је проблем сет 684 00:29:44,955 --> 00:29:47,900 спецификација, као и са многима псетс ове јесени, ће те ходати 685 00:29:47,900 --> 00:29:50,691 Кроз неколико загревање вежбе, указати вам на неколико ресурсе 686 00:29:50,691 --> 00:29:52,440 да могу или нисам видио вец. 687 00:29:52,440 --> 00:29:54,440 На пример, ЦС50 има пакет шорц, 688 00:29:54,440 --> 00:29:56,481 који су кратки видео, не као, али тај 689 00:29:56,481 --> 00:29:58,460 су веома тему специфиц-- можда пет минута, 690 00:29:58,460 --> 00:30:02,360 10 минута у дужини на петљи или о условима или алгоритама 691 00:30:02,360 --> 00:30:04,125 или касније више напредне теме, као и. 692 00:30:04,125 --> 00:30:06,000 И ми генерално ембед они у проблему 693 00:30:06,000 --> 00:30:07,950 сетови тако да студенти има извор са којима 694 00:30:07,950 --> 00:30:10,840 да прегледа материјал који може имати већ дошао у предавању или дела. 695 00:30:10,840 --> 00:30:13,220 Али на овај начин је више фокусиран и на дохват руке. 696 00:30:13,220 --> 00:30:15,928 >> Ми такође имају тенденцију да уградити у проблему поставља ствари које се зову ВАЛКТХРОУГХ. 697 00:30:15,928 --> 00:30:20,790 Дакле, скоро сви примери радим у предавању, на бини, такође 698 00:30:20,790 --> 00:30:24,565 пуцали на камеру у Адванце А још спорије, 699 00:30:24,565 --> 00:30:28,760 интимнију Валктхроугх од мене на мој лаптоп тог закона, ред по ред 700 00:30:28,760 --> 00:30:31,427 тако да је у класи, често ћу ским путем нечега или некога 701 00:30:31,427 --> 00:30:33,260 ће убацити са неким одговорити на питање. 702 00:30:33,260 --> 00:30:35,820 Али то не мора потонути у за све у публици. 703 00:30:35,820 --> 00:30:38,230 Тако ћете пронаћи код Валктхроугхс за већину примера 704 00:30:38,230 --> 00:30:40,950 да радимо овде у предавању, тако да може да прође кроз њега у својим темпом 705 00:30:40,950 --> 00:30:43,580 и уназад или брзо унапред или скип потпуно, ако желите. 706 00:30:43,580 --> 00:30:45,356 >> Често постоји неколико топло-уп питања која 707 00:30:45,356 --> 00:30:47,105 да вас замолим да те некако ојачају овај материјал 708 00:30:47,105 --> 00:30:50,250 и уверите се да сте удобно пре што наставите са остатком псет. 709 00:30:50,250 --> 00:30:51,700 И онда, наравно, ту је сама псет. 710 00:30:51,700 --> 00:30:53,450 А једна од ствари смо врло намерно 711 00:30:53,450 --> 00:30:57,202 раде у ЦС50 је скоро сваки незанимљив или интелектуално незанимљив 712 00:30:57,202 --> 00:30:58,910 механички корак који можда ћете морати да урадите 713 00:30:58,910 --> 00:31:00,519 је готово увек веома добро документована. 714 00:31:00,519 --> 00:31:03,560 Током мандата, ми ћемо почети да тражи више реторичка питања 715 00:31:03,560 --> 00:31:06,187 као сетим како да урадите ово или оно? 716 00:31:06,187 --> 00:31:08,520 Али генерално, наћи ћете да су вам проблем поставе се 717 00:31:08,520 --> 00:31:10,269 кроз механике нечега тако да 718 00:31:10,269 --> 00:31:14,160 су занимљиви, интелектуални изазови су на крају напустили вама студента. 719 00:31:14,160 --> 00:31:17,390 >> Уз то, рекао је, Замила, коме смо Стално се односи данас у предавању, 720 00:31:17,390 --> 00:31:20,190 је један од наших дугогодишњи особља члан који такође има Валктхроугхс 721 00:31:20,190 --> 00:31:24,520 на специфичне проблеме, као што су псет марио и похлепан, иако није вода ове године. 722 00:31:24,520 --> 00:31:26,540 И то је у онима плаи јуст то је често 723 00:31:26,540 --> 00:31:29,450 нуди неке савете и трикове за како да поступе, никад ти 724 00:31:29,450 --> 00:31:31,810 шта да радим, али ратхер-- попут стања, 725 00:31:31,810 --> 00:31:35,200 ако вилл-- дајући вам најмање Неколико идеја, тако да је на вама, 726 00:31:35,200 --> 00:31:37,830 на крају, да одлучи како им прићи. 727 00:31:37,830 --> 00:31:41,200 >> МАРИЈА: Нешто као на високом нивоу разумевање логике шта 728 00:31:41,200 --> 00:31:42,220 молимо вас да урадите. 729 00:31:42,220 --> 00:31:42,485 >> Давид Малан: Управо тако. 730 00:31:42,485 --> 00:31:44,190 И, у ствари, Замила је ВАЛКТХРОУГХ су намењене 731 00:31:44,190 --> 00:31:46,190 да одговори на често постављано питање гдје 732 00:31:46,190 --> 00:31:48,610 уради сам почео, посебно када ове дуге спецификације су 733 00:31:48,610 --> 00:31:51,960 мало застрашујуће дати цео текст и слике које имају у њима. 734 00:31:51,960 --> 00:31:54,890 >> Тако ватер.ц, наћи ћете након што сте га завршили, 735 00:31:54,890 --> 00:31:56,920 је заправо релативно једноставан. 736 00:31:56,920 --> 00:31:58,882 Апсолутно су гомила од вас ће банг 737 00:31:58,882 --> 00:32:01,840 Ваши главом у зид покушавају да схватим зашто није састављање 738 00:32:01,840 --> 00:32:03,450 или зашто то не ради исправно. 739 00:32:03,450 --> 00:32:05,040 Али када завршите са њим и када сте 740 00:32:05,040 --> 00:32:07,620 провео неко време бори са било од бугова које сте можда, 741 00:32:07,620 --> 00:32:09,490 видећете да је веома кратак програм. 742 00:32:09,490 --> 00:32:11,770 То може бити учињено у само неколико линија кода, од којих је већина 743 00:32:11,770 --> 00:32:15,030 ми смо овде видели у предавању већ, ако ви саставите праве блокова за изградњу. 744 00:32:15,030 --> 00:32:16,810 >> И као што предлажемо овде, то ће питати 745 00:32:16,810 --> 00:32:22,250 да одредите колико минута неко туширања на кампусу. 746 00:32:22,250 --> 00:32:24,779 Ми навести у проблему одредили курс протока воде 747 00:32:24,779 --> 00:32:27,320 у, рецимо, туш малим протоком глава, слично као Сеинфелд цлип 748 00:32:27,320 --> 00:32:29,180 смо видели јуче или супротно томе. 749 00:32:29,180 --> 00:32:30,971 И онда само да уради мало математике, 750 00:32:30,971 --> 00:32:34,710 стварно-- аритметика користећи Ц реци УС колико, отприлике, флаше воде 751 00:32:34,710 --> 00:32:37,720 је да еквивалентна ако смо узимање Н-минутни туш. 752 00:32:37,720 --> 00:32:41,389 >> Сада, у марио.ц, ово иде да буде мало дуже програм. 753 00:32:41,389 --> 00:32:42,930 То још увек неће бити тако дуго. 754 00:32:42,930 --> 00:32:45,130 Само неколико редова дуже од ватер.ц. 755 00:32:45,130 --> 00:32:48,230 Али то ће бити прилика да поново стару школу Марио 756 00:32:48,230 --> 00:32:50,670 пирамида од Супер Марио Браћа или неки наставак на. 757 00:32:50,670 --> 00:32:53,510 Неће изгледати као лепше или као шарене као онај тамо. 758 00:32:53,510 --> 00:32:56,468 Ми ћемо користити мале ознаке хеша Као имамо овде на екрану 759 00:32:56,468 --> 00:32:58,120 коришћењем АСЦИИ текст. 760 00:32:58,120 --> 00:33:00,362 Али то ће приближити исту идеју. 761 00:33:00,362 --> 00:33:02,570 И то ће бити остварују који на први поглед 762 00:33:02,570 --> 00:33:04,720 изгледа прилично једноставно симпле-- принт једноставан пирамиду. 763 00:33:04,720 --> 00:33:07,345 Али постоји неколико карактеристика Овде који су занимљиви. 764 00:33:07,345 --> 00:33:12,400 Обратите пажњу да је крајње десне ивице пирамида заиста има ширину два. 765 00:33:12,400 --> 00:33:14,570 Дакле, има два једнака висина колоне, које 766 00:33:14,570 --> 00:33:16,804 чини се захтевају мало Мало мисли да 767 00:33:16,804 --> 00:33:19,720 да ли сте добили да потпуно тачно, као за разлику од само савршено под углом 768 00:33:19,720 --> 00:33:20,220 линија. 769 00:33:20,220 --> 00:33:23,340 Дакле, то је помало углу случаја али одговара стварну игру. 770 00:33:23,340 --> 00:33:27,610 >> И то је такође нису очигледна на први поглед поглед како да одштампате бели простор. 771 00:33:27,610 --> 00:33:29,430 Тако да када погледам на Узорак излаз овде-- 772 00:33:29,430 --> 00:33:32,440 и такође је у спец-- се врста изгледа као правоугаоник, 773 00:33:32,440 --> 00:33:35,120 али дијагонале од правоугаоник је одсекао, 774 00:33:35,120 --> 00:33:37,320 и то је само бели простори, да се тако изразим. 775 00:33:37,320 --> 00:33:40,100 И тако често постављано питање је увек, добро, 776 00:33:40,100 --> 00:33:43,302 како да померају ознаке хеша мало удесно? 777 00:33:43,302 --> 00:33:44,760 Или како да одштампате празне просторе? 778 00:33:44,760 --> 00:33:46,860 И то је заправо лакше него већина ученика мисли. 779 00:33:46,860 --> 00:33:47,360 Jel tako? 780 00:33:47,360 --> 00:33:51,620 Можете га приближно визуелно само ударање размак једном или двапут 781 00:33:51,620 --> 00:33:52,700 или три пута. 782 00:33:52,700 --> 00:33:56,260 >> И тако, иако са принтф смо скоро Увек одштампате стринг или инт 783 00:33:56,260 --> 00:33:59,950 или реч као "здраво, свет "или низ речи, 784 00:33:59,950 --> 00:34:03,560 можете једноставно штампати цитат, простор, под знацима навода. 785 00:34:03,560 --> 00:34:06,320 И то ће заправо дати ти бели простор тамо. 786 00:34:06,320 --> 00:34:08,330 Дакле, имајте то на уму и не овертхинк ово. 787 00:34:08,330 --> 00:34:10,570 Стварно треба да одлучити ред по ред по ред, 788 00:34:10,570 --> 00:34:14,280 Не разлику од твог пример Малопре, колико од оних 789 00:34:14,280 --> 00:34:18,420 Колоне треба да буду беле простори и колико њих би требало да буде Хасхтагс. 790 00:34:18,420 --> 00:34:21,560 Требаће мало времена, али је на крају логика слагалица нека врста. 791 00:34:21,560 --> 00:34:22,060 >> МАРИЈА: Да. 792 00:34:22,060 --> 00:34:25,060 Али логика иде ред по ред ће бити веома корисно овде. 793 00:34:25,060 --> 00:34:25,810 Давид Малан: Да. 794 00:34:25,810 --> 00:34:28,976 Мислим да је код узорка чак гаве-- иако то није био комплетан програм. 795 00:34:28,976 --> 00:34:34,247 Ви и даље треба Инт и главни и неважећим и #инцлуде стдио.х, 796 00:34:34,247 --> 00:34:35,580 доста ствари из предавања. 797 00:34:35,580 --> 00:34:37,629 Али градивни блокови Чини се да постоји. 798 00:34:37,629 --> 00:34:39,920 И онда на крају је нешто мало више алгоритамска. 799 00:34:39,920 --> 00:34:43,210 Тако испада да сваки пут када иду у ЦВС или било продавнице 800 00:34:43,210 --> 00:34:47,810 и вас неко руке у благајник рачуни или ковани новац као промена, 801 00:34:47,810 --> 00:34:50,620 Испоставља се да су, људи, без обзира да ли они то знају или не, 802 00:34:50,620 --> 00:34:53,300 Вероватно се користи оно што је назива похлепни алгоритам, 803 00:34:53,300 --> 00:34:58,170 при чему ако дугује, рецимо, $ 21 у променама јер из неког разлога 804 00:34:58,170 --> 00:35:01,580 сте купили нешто веома јефтин са веома великим рачун у ЦВС, 805 00:35:01,580 --> 00:35:05,910 било би заиста досадан ако благајник ти је дао 21 синглова, или још горе 806 00:35:05,910 --> 00:35:07,629 ипак, много кованица. 807 00:35:07,629 --> 00:35:10,670 Уместо тога, шта је разумна особа је Вероватно ћеш да урадиш је да идеш 808 00:35:10,670 --> 00:35:14,224 да попијемо $ 20- а затим $ 1 рачун, и преда вам само два рачуне у том случају. 809 00:35:14,224 --> 00:35:17,390 МАРИЈА: Дакле, они желе да минимизирају промена која се вратити теби. 810 00:35:17,390 --> 00:35:17,850 Давид Малан: Управо тако. 811 00:35:17,850 --> 00:35:19,540 А исто се баве кованог новца, као добро. 812 00:35:19,540 --> 00:35:23,040 Ако сте дуговали, рецимо, $ 0.50, надам се да не желиш 50 пенија. 813 00:35:23,040 --> 00:35:25,500 Ви уместо желе два четвртине, на пример. 814 00:35:25,500 --> 00:35:27,540 Дакле, ово не преузима да благајник има 815 00:35:27,540 --> 00:35:29,940 Довољно сваке деноминације која он или она можда желите да вам дам. 816 00:35:29,940 --> 00:35:32,148 Али ми не дозвољавају да преузме колико у проблему. 817 00:35:32,148 --> 00:35:35,590 А циљ, на крају, да имплементирати у Ц код похлепан алгоритам. 818 00:35:35,590 --> 00:35:37,344 Дакле, корисник је дозвољено да укуцате колико 819 00:35:37,344 --> 00:35:40,510 промените он или она дугује са доларима и центи, нека покретним зарезом 820 00:35:40,510 --> 00:35:41,590 вредност вероватно. 821 00:35:41,590 --> 00:35:45,530 А онда морате да урадите математику и схватим алгоритмички, добро, 822 00:35:45,530 --> 00:35:49,020 колико кованице могу да дам ви минимално да ти дам 823 00:35:49,020 --> 00:35:50,270 управо то износ промене. 824 00:35:50,270 --> 00:35:53,470 Али, то ће бити Неколико Трицки делови овде, зар не? 825 00:35:53,470 --> 00:35:56,236 Као да је цела непрецизност питање. 826 00:35:56,236 --> 00:35:56,860 МАРИЈА: Тачно. 827 00:35:56,860 --> 00:35:59,114 Тако Флоатинг Поинт вредности имају непрецизности. 828 00:35:59,114 --> 00:36:00,780 Да ли говоримо о томе у предавању данас? 829 00:36:00,780 --> 00:36:02,340 >> Давид Малан: Ми смо урадили Последњи пут у предавању. 830 00:36:02,340 --> 00:36:03,506 Разговарали смо о непрецизности. 831 00:36:03,506 --> 00:36:08,840 А ви не желите да превари корисника колико промена он или она се дугује. 832 00:36:08,840 --> 00:36:11,290 И тако проход, у проблем сет спецификација, 833 00:36:11,290 --> 00:36:15,990 размислити, у крајњој линији, како би се Како можете ублажити оне непрецизност 834 00:36:15,990 --> 00:36:17,280 грешке, потенцијално. 835 00:36:17,280 --> 00:36:21,050 То се може избећи, свакако, за улазне Говоримо о. 836 00:36:21,050 --> 00:36:23,590 И, у ствари, пенниес-- можда ћемо одложити на Замила, 837 00:36:23,590 --> 00:36:25,136 Мислим, за трикове тамо. 838 00:36:25,136 --> 00:36:27,760 Дакле, на крају ћете наћи прогресија проблема ове недеље, 839 00:36:27,760 --> 00:36:30,700 је прва од којих је прилично мали, онда медиј, онда мало већи. 840 00:36:30,700 --> 00:36:33,200 Али сви они користе зграду блокови овог протекле недеље, 841 00:36:33,200 --> 00:36:35,280 из овог суперсецтион, Проблем сет спецификација 842 00:36:35,280 --> 00:36:36,710 ставља се на безброј ресурса. 843 00:36:36,710 --> 00:36:41,000 Али, ако уопште још увек бори, посебно међу онима мање удобна 844 00:36:41,000 --> 00:36:42,917 без претходног позадини, доћи до радног времена 845 00:36:42,917 --> 00:36:44,958 у понедељак и уторак и У среду и четвртак. 846 00:36:44,958 --> 00:36:46,950 Иди на ЦС50 Разговарајте преко Курс аутора, 847 00:36:46,950 --> 00:36:49,080 преко којих можете разговарати са особљем и друговима из разреда. 848 00:36:49,080 --> 00:36:51,670 >> Али на крају, мислим да је Најбољи савет је само почетак рано. 849 00:36:51,670 --> 00:36:54,711 То није врста класе која вас треба почевши псетс у среду 850 00:36:54,711 --> 00:36:56,640 ноћ, или још горе у четвртак увече. 851 00:36:56,640 --> 00:36:59,067 >> МАРИЈА: Мој најбољи савет је да су почели у понедељак. 852 00:36:59,067 --> 00:36:59,900 Давид Малан: понедељак. 853 00:36:59,900 --> 00:37:02,490 Дакле, ако сте почели да алреади-- бр. 854 00:37:02,490 --> 00:37:04,732 Али чак и ако не у понедељак, онда у уторак. 855 00:37:04,732 --> 00:37:05,690 Што се раније то боље. 856 00:37:05,690 --> 00:37:08,605 И то је разлог зашто Наравно има толико касне дана је 857 00:37:08,605 --> 00:37:10,535 да вам мало психолошки притисак 858 00:37:10,535 --> 00:37:13,684 да почне раније, али и даље нека измичу када ствари потрајати дуже 859 00:37:13,684 --> 00:37:14,350 него што сте очекивали. 860 00:37:14,350 --> 00:37:17,950 >> МАРИЈА: И ви желите да искористите Радно време колико можете, такође. 861 00:37:17,950 --> 00:37:20,291 >> Давид Малан: Има ли питања? 862 00:37:20,291 --> 00:37:20,790 U redu. 863 00:37:20,790 --> 00:37:22,930 Па, зашто не прекинемо овде? 864 00:37:22,930 --> 00:37:23,487