1 00:00:00,000 --> 00:00:03,353 >> [Muusika mängib] 2 00:00:03,353 --> 00:00:04,842 3 00:00:04,842 --> 00:00:06,050 DAVID Humala: Tere kõigile. 4 00:00:06,050 --> 00:00:07,777 See on CS50 on supersection. 5 00:00:07,777 --> 00:00:09,860 Määratud lõigud ei alustada veel nädal. 6 00:00:09,860 --> 00:00:11,580 Ja nii täna, et ma olen siin with-- 7 00:00:11,580 --> 00:00:12,122 >> MARIA: Maria. 8 00:00:12,122 --> 00:00:14,163 DAVID Humala: --to tegelikult heita pilk probleemi 9 00:00:14,163 --> 00:00:16,110 määrata ühe, kursuse esimestel nädalatel materjali, 10 00:00:16,110 --> 00:00:19,780 sulle orienteeritud CS50 IDE, natuke Linux on operatsioonisüsteem, mis on 11 00:00:19,780 --> 00:00:22,290 töötab IDE, samuti mõningaid üleminek 12 00:00:22,290 --> 00:00:25,730 Nullist C juhtiv kuni probleem seatud üks. 13 00:00:25,730 --> 00:00:28,340 >> Nii ilma pikema jututa, probleemide määrata üks, 14 00:00:28,340 --> 00:00:30,520 sa lähed olema kasutusele CS50 IDE, mis 15 00:00:30,520 --> 00:00:33,230 on see veebipõhine programmeerimine keskkonda, mida me kasutame, et 16 00:00:33,230 --> 00:00:34,280 kirjutada programme. 17 00:00:34,280 --> 00:00:37,280 See on loodud selleks, et otsida väga meenutab tüüpiline arvuti 18 00:00:37,280 --> 00:00:39,430 Süsteem töötab operatsioonisüsteemi süsteemi nimetatakse Linux. 19 00:00:39,430 --> 00:00:42,440 Aga see on nn pilve mis tähendab kõigile klassi 20 00:00:42,440 --> 00:00:45,100 võib tegelikult olla tema enda tarbeks ja seda kasutada, samuti. 21 00:00:45,100 --> 00:00:48,950 >> Nii enamus teist ilmselt ei ole kunagi kasutanud Linuxi keskkonnas enne või ehk 22 00:00:48,950 --> 00:00:50,447 isegi käsurea keskkond. 23 00:00:50,447 --> 00:00:52,280 Ja käsurea keskkond on erinev. 24 00:00:52,280 --> 00:00:53,200 See kõik tekstilised. 25 00:00:53,200 --> 00:00:54,730 See kõik klaviatuurkäskudega. 26 00:00:54,730 --> 00:00:59,480 Ja see pole üht hiirega, ei ikoonid, no dialoogi aknad, no menüüd. 27 00:00:59,480 --> 00:01:00,212 See on puhtalt teksti. 28 00:01:00,212 --> 00:01:01,920 Nii on esiteks selline on tunne sammu 29 00:01:01,920 --> 00:01:04,434 osas tagasiminekut rafineeritumalt. 30 00:01:04,434 --> 00:01:06,600 Aga see jõuab on palju võimsam, kindlasti, 31 00:01:06,600 --> 00:01:08,510 jaoks arvuti teadlane lõpuks. 32 00:01:08,510 --> 00:01:09,540 >> Võtame pilk. 33 00:01:09,540 --> 00:01:13,850 Siin ma olen kell CS50.io, mille kaudu võite sisse logida CS50 IDE. 34 00:01:13,850 --> 00:01:17,414 Ja palju nagu Scratch, seal on kolm peamist alade sellele ekraanile. 35 00:01:17,414 --> 00:01:20,080 Nii vasakul servas on meil milline saab olema Failibrauseri. 36 00:01:20,080 --> 00:01:22,413 Ja seal on see kausta top, mis on kohe tühi 37 00:01:22,413 --> 00:01:24,690 sest ma sain lahti kõik mu failid enne supersection. 38 00:01:24,690 --> 00:01:27,599 Ja see, kui me tulen salvestada C failid, et me kirjutame. 39 00:01:27,599 --> 00:01:30,890 Paremal üleval, meil on koht, kus kõik meie koodi läheb aina kirjutatud. 40 00:01:30,890 --> 00:01:34,610 Ja tõepoolest, kui ma vajutan seda pluss, see läheb lubage mul valida Uus fail. 41 00:01:34,610 --> 00:01:38,310 Ja siin ma ei kirjutame C või juhul, tõesti, ükskõik kui palju muid keeli. 42 00:01:38,310 --> 00:01:42,670 >> Ja siis allosas kus see ütleb jharvard @ ide50-- ja sinu tahe 43 00:01:42,670 --> 00:01:45,080 öelda midagi natuke erinevalt-- milline oli selle nimega? 44 00:01:45,080 --> 00:01:48,644 45 00:01:48,644 --> 00:01:49,310 Terminal aknas. 46 00:01:49,310 --> 00:01:49,570 Jah. 47 00:01:49,570 --> 00:01:51,810 Nii terminali aken nn käsurea 48 00:01:51,810 --> 00:01:55,540 liides, mille kaudu saab suhelda koos operatsioonisüsteemi. 49 00:01:55,540 --> 00:01:58,220 Ja nüüd, me ei kavatse teha väga vähe kasutanud see-- 50 00:01:58,220 --> 00:02:01,170 lihtsalt koguda, et vaadata veateateid, mida me näeme, 51 00:02:01,170 --> 00:02:02,347 ja näidata meie programme. 52 00:02:02,347 --> 00:02:04,680 Aga lõpuks me läheme teha nii palju, kui hästi. 53 00:02:04,680 --> 00:02:07,490 Ja te võite isegi installida tarkvara ja hallata oma tööruumi 54 00:02:07,490 --> 00:02:09,066 jooksul CS50 IDE, samuti. 55 00:02:09,066 --> 00:02:10,440 Aga sellest pikemalt mõni teine ​​kord. 56 00:02:10,440 --> 00:02:12,689 >> Nii lähme edasi ja kirjutage väga lihtne programm lihtsalt 57 00:02:12,689 --> 00:02:15,064 läbima soojenemist hello.c, mis on võib-olla 58 00:02:15,064 --> 00:02:16,480 lihtsaim programmi saame kirjutada. 59 00:02:16,480 --> 00:02:18,330 Olen juba avanud uue kaardi. 60 00:02:18,330 --> 00:02:24,310 Ma lähen edasi minna ja öelda hulka standard io.h. 61 00:02:24,310 --> 00:02:25,325 Siis int main (void). 62 00:02:25,325 --> 00:02:28,930 63 00:02:28,930 --> 00:02:35,200 Ja siis printf ("Hello, world" kurakriips n lähedal quote, 64 00:02:35,200 --> 00:02:39,480 Sulge sulgudes ja semikooloniga. 65 00:02:39,480 --> 00:02:39,990 >> Hästi. 66 00:02:39,990 --> 00:02:41,700 Nüüd märkate mu aken on pealkirjata. 67 00:02:41,700 --> 00:02:44,840 Nii et ma olen väga kiiresti läheb minna kuni File, Save. 68 00:02:44,840 --> 00:02:46,910 Ja see on oluline, et Ma nimetan seda ei "tere." 69 00:02:46,910 --> 00:02:49,243 Nii väga levinud viga, eriti probleem määrata üks, 70 00:02:49,243 --> 00:02:52,530 on kogemata lihtsalt helistada Programmi "vesi" või "ahne" või "Mario" 71 00:02:52,530 --> 00:02:53,890 või "krediidi" vms. 72 00:02:53,890 --> 00:02:55,970 Aga mida sa tegelikult tahad teha Kindlasti olete faililaiend 73 00:02:55,970 --> 00:02:58,928 sest see on ainus viis, et tõlkija ja ka koodiredaktor 74 00:02:58,928 --> 00:03:00,710 teab, et sa oled tegelikult kirjalikult C koodi. 75 00:03:00,710 --> 00:03:02,280 Nii et lubage mul minna ja klõpsake nuppu Salvesta. 76 00:03:02,280 --> 00:03:05,710 >> Ja nüüd ka, mida CS50 IDE on teinud meie heaks on see ka 77 00:03:05,710 --> 00:03:07,120 süntaksi esile kõike. 78 00:03:07,120 --> 00:03:08,822 Nii see on tehtud kõik väga värviline. 79 00:03:08,822 --> 00:03:10,780 Ja kogu eesmärk mis ei toimi. 80 00:03:10,780 --> 00:03:14,290 See on lihtsalt juhtida oma silmad kontseptuaalselt erinevad tükid 81 00:03:14,290 --> 00:03:15,310 Selle programmi. 82 00:03:15,310 --> 00:03:17,570 Nii lähme edasi ja koostab selle. 83 00:03:17,570 --> 00:03:19,490 Ja ma ei saa koostada selle paari viisil. 84 00:03:19,490 --> 00:03:22,010 Ja nädal üks, siis vana kooli viis tegime 85 00:03:22,010 --> 00:03:26,250 see oli sõna otseses mõttes käsk LINE "rõkkama hello.c." 86 00:03:26,250 --> 00:03:27,596 Ja siis ma Enter. 87 00:03:27,596 --> 00:03:29,720 Ja miski ei juhtu terminali aknas. 88 00:03:29,720 --> 00:03:32,654 Aga mida tegid muutus IDE? 89 00:03:32,654 --> 00:03:35,320 Kui jälle, IDE tähendab lihtsalt Integreeritud arenduskeskkond. 90 00:03:35,320 --> 00:03:38,360 See on fancy viis öelda Selle tervikliku arengu 91 00:03:38,360 --> 00:03:40,620 keskkond tarkvara arendamine. 92 00:03:40,620 --> 00:03:42,477 Mis siis muutus UI? 93 00:03:42,477 --> 00:03:44,310 Mida panid mis on erinev, Maria? 94 00:03:44,310 --> 00:03:47,100 >> MARIA: märkasin midagi all IDE50 kausta siin. 95 00:03:47,100 --> 00:03:47,850 >> DAVID Humala: Jah. 96 00:03:47,850 --> 00:03:50,230 Nii siin, mitte ainult kas meil on "hello.c." 97 00:03:50,230 --> 00:03:53,120 Meil on ka "a.out", mis on selline loll nimi programm. 98 00:03:53,120 --> 00:03:56,430 Aga tõepoolest, see on vaikimisi antud nime jaoks Programm, kui sa just kompileerida koodi 99 00:03:56,430 --> 00:03:59,110 ja ärge rääkige koostaja Mis faili väljund. 100 00:03:59,110 --> 00:04:01,790 Nii et kui ma tahan teha selle, ma vaja öelda compiler-- 101 00:04:01,790 --> 00:04:05,340 või õigemini, ma pean rääkige tööruumi, et ma 102 00:04:05,340 --> 00:04:09,780 soovid käivitada programmi nimega "a.out." 103 00:04:09,780 --> 00:04:10,550 Sisesta. 104 00:04:10,550 --> 00:04:12,474 Ja seal on "Tere, maailma. "nüüd" ./ ". 105 00:04:12,474 --> 00:04:13,390 on tegelikult oluline. 106 00:04:13,390 --> 00:04:16,050 Kuigi tavaliselt me ​​ainult kirjutada nimed käske, 107 00:04:16,050 --> 00:04:19,060 kui see on programm, olete kirjutatud, sa ei taha öelda "./" 108 00:04:19,060 --> 00:04:22,460 sest see selgelt ütleb Linux et soovid käivitada programmi nimega 109 00:04:22,460 --> 00:04:26,930 "a.out", mis on selles, kus dot tähendab see kataloog, et ma olen praegu 110 00:04:26,930 --> 00:04:31,600 in, mis juhtub olema nimetatakse tööruumi, "a.out. 111 00:04:31,600 --> 00:04:35,410 Sest kui ma just ütlesin "a.out" Enter, Ma lähen "a.out käsk mitte 112 00:04:35,410 --> 00:04:38,035 leitud ", sest computer-- sest ma leiutanud "a.out;" 113 00:04:38,035 --> 00:04:40,910 see ei tulnud koos computer-- ei tea, kust otsida seda, 114 00:04:40,910 --> 00:04:43,590 kuigi see on õige minu nina, kui nii võib öelda. 115 00:04:43,590 --> 00:04:44,090 OKEI. 116 00:04:44,090 --> 00:04:49,910 Nii et me võiks muuta seda olla "rõkkama -o hello hello.c." 117 00:04:49,910 --> 00:04:53,030 Ja kui ma Enter, mida programm see läheb väljund minu jaoks? 118 00:04:53,030 --> 00:04:55,710 Mis on faili nimi? 119 00:04:55,710 --> 00:04:57,500 Jah, on tagasi. 120 00:04:57,500 --> 00:04:58,479 See on õige. "Tere." 121 00:04:58,479 --> 00:05:00,520 Nii "tere" saab olema nimi programmi 122 00:05:00,520 --> 00:05:04,610 sest me oleme kasutanud nn käsurea argument, mis on lihtsalt 123 00:05:04,610 --> 00:05:08,120 viis käitumist muuta koostaja tegelikult väljund 124 00:05:08,120 --> 00:05:09,450 konkreetse faili nimi. 125 00:05:09,450 --> 00:05:12,400 Ja tõepoolest, kui ma suurendamiseks välja ja otsida siin 126 00:05:12,400 --> 00:05:17,430 Nüüd ma ei ole mitte ainult "a.out" ja "hello.c", vaid ka "Tere," samuti. 127 00:05:17,430 --> 00:05:22,410 Nüüd ma saan teha "./hello" Enter. 128 00:05:22,410 --> 00:05:23,640 Ja seal on "Tere, maailm." 129 00:05:23,640 --> 00:05:25,640 Aga lastly-- ja selle Nüüdsest on konventsiooni 130 00:05:25,640 --> 00:05:27,590 Me kasutame kogu semestri typically-- 131 00:05:27,590 --> 00:05:30,070 on teil võib ka lihtsalt öelda "teha tere." 132 00:05:30,070 --> 00:05:33,370 Ja tõepoolest, see ütleb et see on kuni Seni, sest see on juba olemas. 133 00:05:33,370 --> 00:05:37,860 Lubage mul minna ja eemaldada koos käsuga rm, nii "a.out" - 134 00:05:37,860 --> 00:05:39,644 ja öelda "eemaldada tavaline fail a.out?" 135 00:05:39,644 --> 00:05:41,810 See tähendab lihtsalt, kas te olete kindel, et soovid kustutada? 136 00:05:41,810 --> 00:05:42,880 Ma ütlen jah. 137 00:05:42,880 --> 00:05:46,690 Ja siis ma lähen eemaldada "tere", aga mitte "hello.c." 138 00:05:46,690 --> 00:05:49,920 Ma ütlen "jah" selgesõnaliselt, kuid "y" on piisav, samuti. 139 00:05:49,920 --> 00:05:52,140 >> Ja nüüd märgata, kui ma kirjuta ls--, mis meenutavad, 140 00:05:52,140 --> 00:05:55,540 tähendab list-- ta loetleb kõik failide minu kausta. 141 00:05:55,540 --> 00:05:57,850 Ja tõepoolest, kui ma suurendamiseks välja ja vaadata ülaosas vasakul, 142 00:05:57,850 --> 00:05:59,730 see kinnitab, et milline on Selles kaustas, isegi 143 00:05:59,730 --> 00:06:04,990 Kuigi see on märgistatud IDE50 siin ja ei tööruumi, see on lihtsalt "hello.c." 144 00:06:04,990 --> 00:06:09,152 Nüüd siin, kui ma ei "teha hello" Enter, 145 00:06:09,152 --> 00:06:12,360 nüüd ma näen palju enam käsu kuid keerukamaid käsk, mis läheb 146 00:06:12,360 --> 00:06:13,940 olevat kasulikud lähinädalatel. 147 00:06:13,940 --> 00:06:16,720 Ja nüüd ma ei saa öelda "./hello." 148 00:06:16,720 --> 00:06:19,257 >> Võtame kiirülevaate mõne muu Linuxi käsud. 149 00:06:19,257 --> 00:06:21,840 Siis miks me ei sammu tagasi tegelikult vaadata C rohkem 150 00:06:21,840 --> 00:06:25,020 Üldiselt minnakse nullist C ja seejärel sõlmida ilme 151 00:06:25,020 --> 00:06:27,305 esimesel probleem sätestatud C. Olgu. 152 00:06:27,305 --> 00:06:30,430 Nii et ma lähen edasi minna ja lihtsalt puhas minu tööruumi, kus kontroll-L lihtsalt 153 00:06:30,430 --> 00:06:31,429 hoida ekraani puhas. 154 00:06:31,429 --> 00:06:33,520 Aga see ei ole funktsionaalne mõjutada teisiti. 155 00:06:33,520 --> 00:06:35,820 >> Tuletame meelde, et oleme näinud mõned käsud nüüd. 156 00:06:35,820 --> 00:06:39,900 Nii oleme näinud rõkkama, mis üldjuhul sa ei pea täitma käsitsi enam. 157 00:06:39,900 --> 00:06:41,650 Me asemel kasutada make. 158 00:06:41,650 --> 00:06:45,290 Aga me nägime ka LS, mis näitab noteerimise minu faile kataloogis. 159 00:06:45,290 --> 00:06:48,750 Ja nüüd, miks on there-- seal kaks Failide nüüd, "tere" ja "hello.c." 160 00:06:48,750 --> 00:06:52,240 Miks on star või Tärniga pärast "tere"? 161 00:06:52,240 --> 00:06:54,900 Mida see tähendama, mis põhineb mida me nägime nädalal üks? 162 00:06:54,900 --> 00:06:58,852 163 00:06:58,852 --> 00:07:00,400 Mida sa arvad? 164 00:07:00,400 --> 00:07:02,742 Mida star tähendama? 165 00:07:02,742 --> 00:07:04,614 >> MARIA: For-- programmi "tere"? 166 00:07:04,614 --> 00:07:05,530 DAVID Humala: "Tere *". 167 00:07:05,530 --> 00:07:06,330 Jah. 168 00:07:06,330 --> 00:07:07,760 Oo jaa? 169 00:07:07,760 --> 00:07:08,639 Oh, täidetavad. 170 00:07:08,639 --> 00:07:09,180 See on õige. 171 00:07:09,180 --> 00:07:10,890 Nii et see tähendab, et "tere" on käivitatav. 172 00:07:10,890 --> 00:07:13,430 Nii tõesti, et miks Ma suudan "./hello." 173 00:07:13,430 --> 00:07:13,930 Hästi. 174 00:07:13,930 --> 00:07:15,179 Mida ma oskan teha siin? 175 00:07:15,179 --> 00:07:17,290 Noh, selgub suudan Samuti luua katalooge. 176 00:07:17,290 --> 00:07:20,924 Nii et lubage mul minna ja luua, Näiteks "pset1" kataloog. 177 00:07:20,924 --> 00:07:23,590 Ja probleem seatud spetsifikatsioon on teil teha just seda, 178 00:07:23,590 --> 00:07:25,260 nii et sa ei pea meeles pidama täna. 179 00:07:25,260 --> 00:07:27,340 Aga "mkdir pset1" tundub mõju puudub. 180 00:07:27,340 --> 00:07:30,540 Aga jälle, veateadet on üldiselt hea. 181 00:07:30,540 --> 00:07:34,060 Nii et kui ma tüüpi "ls" now-- ah, nüüd Mul on käivitatav fail nimega 182 00:07:34,060 --> 00:07:36,570 "Tere," C fail nimega "hello.c." 183 00:07:36,570 --> 00:07:40,860 Ja siis kaldkriips, nii et rääkida, tähendab, et see on kataloog. 184 00:07:40,860 --> 00:07:42,510 >> Nii tõesti, nüüd ma tahan, et see avada. 185 00:07:42,510 --> 00:07:45,730 Ja ma ei topeltklõpsu, siis nagu GUI, graafiline keskkond. 186 00:07:45,730 --> 00:07:48,550 Ma asemel öelda "cd pset1." 187 00:07:48,550 --> 00:07:49,640 Sisesta. 188 00:07:49,640 --> 00:07:53,100 Miski huvitav tundub olevat juhtus peale minu väike kiire 189 00:07:53,100 --> 00:07:57,300 siin-- see on Linuxi viis meelde kus ma olen, mis siis kaust on avatud. 190 00:07:57,300 --> 00:08:00,080 See on lihtsalt ütleb mulle selgesõnaliselt vastandina graafiliselt. 191 00:08:00,080 --> 00:08:05,100 Ja kui ma tüüpi "ls" Miks ma näen teise küsib kohe, kas sa arvad, 192 00:08:05,100 --> 00:08:07,269 kui ma loetleda sisu pset1? 193 00:08:07,269 --> 00:08:09,310 MARIA: Sa ilmselt ei ole midagi seal. 194 00:08:09,310 --> 00:08:09,630 DAVID Humala: Jah. 195 00:08:09,630 --> 00:08:11,510 Siis me ei ole ilmselt loodud midagi seal 196 00:08:11,510 --> 00:08:13,150 sest ma äsja loodud kataloogi. 197 00:08:13,150 --> 00:08:17,690 Nüüd, kui ma tahtsin luua file-- eest Näiteks saad luua uus fail. 198 00:08:17,690 --> 00:08:20,190 Ja siis ma võiks minna Salvesta ja salvestage see, 199 00:08:20,190 --> 00:08:23,090 nagu "mario.c" kui sa teed standardväljaandele pset üks. 200 00:08:23,090 --> 00:08:27,610 Ja siis, nagu iga Mac või PC, lihtsalt vali kaust "pset1, Save. 201 00:08:27,610 --> 00:08:28,740 Ja nüüd fail on tühi. 202 00:08:28,740 --> 00:08:31,160 Aga olgem suumida jälle teist. 203 00:08:31,160 --> 00:08:32,470 Teeme ls siin. 204 00:08:32,470 --> 00:08:34,470 Nüüd näeme "mario.c". 205 00:08:34,470 --> 00:08:37,850 >> Nii et mõned teised käsud tasub meeles pidada üle AEG_ 206 00:08:37,850 --> 00:08:41,200 selge, ega kontrolli-L on, mida ma olen pihta; mkdir oleme näinud; 207 00:08:41,200 --> 00:08:45,240 rm oleme näinud, samuti, mis on eemaldamiseks või faili kustutamist. 208 00:08:45,240 --> 00:08:49,310 Ettevaatust võite also-- ja kui sa vaatad kell õppematerjalid, saate rm -rf 209 00:08:49,310 --> 00:08:52,630 on väga levinud viis öelda kustutada kausta, mis on kraam ta. 210 00:08:52,630 --> 00:08:54,280 Lihtsalt super, super ettevaatlik. 211 00:08:54,280 --> 00:08:58,780 -rf tähendab rekursiivselt kustutada iganes see on 212 00:08:58,780 --> 00:09:01,150 üritad kustutada ja sunniviisiliselt kustutada. 213 00:09:01,150 --> 00:09:04,630 Nii kirjutan vahenditega kui see kaust kausta kausta kausta 214 00:09:04,630 --> 00:09:05,690 kustutada neid kõiki. 215 00:09:05,690 --> 00:09:08,680 Ja sunniviisiliselt tähendab isegi ei küsi jah või ei, ma olen selles kindel? 216 00:09:08,680 --> 00:09:11,960 Nii et see on super ohtlik viis kustutada palju kraami kiiresti. 217 00:09:11,960 --> 00:09:17,210 Aga beware-- liiga sageli ei kartmatu õpilase kogemata kustutada, ütleme, pset 218 00:09:17,210 --> 00:09:18,000 ühe, näiteks. 219 00:09:18,000 --> 00:09:19,833 >> MARIA: Ja kui nad lihtsalt teha -r, nad ei kavatse 220 00:09:19,833 --> 00:09:21,870 paluda neil umbes iga faili. 221 00:09:21,870 --> 00:09:22,790 >> DAVID Humala: Kumb on mõõdukalt tüütu. 222 00:09:22,790 --> 00:09:23,480 >> MARIA: Jah. 223 00:09:23,480 --> 00:09:25,813 >> DAVID Humala: Nii et miks nii paljud meist, ise lisatud, 224 00:09:25,813 --> 00:09:27,070 olen harjunud kasutades -rf. 225 00:09:27,070 --> 00:09:27,861 Aga see on ohtlik. 226 00:09:27,861 --> 00:09:29,010 Nii ostja valvel. 227 00:09:29,010 --> 00:09:31,050 Ja siis mv on selline Huvitav nimega. 228 00:09:31,050 --> 00:09:33,600 Nii et see on liikvel käsk, mis tundub natuke imelik 229 00:09:33,600 --> 00:09:37,260 sest sa võid tõesti seda kasutada teisaldada ühest kohast teise. 230 00:09:37,260 --> 00:09:39,970 Näiteks oletame, et ma segi. 231 00:09:39,970 --> 00:09:43,660 Oletame, et ma loodud Uue faili pset. 232 00:09:43,660 --> 00:09:46,320 Ja ma päästsin ta nagu "greedy.c." 233 00:09:46,320 --> 00:09:49,970 Aga arvan, et ma kogemata salvestada in IDE50-- nii minu tööruumi ise 234 00:09:49,970 --> 00:09:51,580 ja mitte pset1. 235 00:09:51,580 --> 00:09:53,960 >> Näete, kui palju ülevalt vasakult. 236 00:09:53,960 --> 00:09:55,284 Seal on "greedy.c." 237 00:09:55,284 --> 00:09:56,450 Ja seal on mõned lahendused. 238 00:09:56,450 --> 00:09:58,324 Nii, ma ei kasuta super kasutajasõbralikult 239 00:09:58,324 --> 00:09:59,740 lihtsalt lohistades seda. 240 00:09:59,740 --> 00:10:01,910 Ja mis tegelikult Selle probleemi lahendamiseks. 241 00:10:01,910 --> 00:10:04,967 Aga täna me üritame vaadata rohkem kauge, kuid võimas võimalusi 242 00:10:04,967 --> 00:10:05,550 seda teha. 243 00:10:05,550 --> 00:10:07,880 Nii et lubage mul võtta "ls" in pset1. 244 00:10:07,880 --> 00:10:09,690 Ja ma näen ainult "mario.c." 245 00:10:09,690 --> 00:10:13,450 Lubage mul minna ja teha "cd ..". 246 00:10:13,450 --> 00:10:15,320 Nii CD jälle on muutus kataloogi. 247 00:10:15,320 --> 00:10:18,130 ".." Tähendab mida, kuigi? 248 00:10:18,130 --> 00:10:21,100 Viimane kord, kui ma ütlesin "cd pset1 "minema pset1. 249 00:10:21,100 --> 00:10:24,360 Nii et kui ma ütlen "cd ..", mida ma teen? 250 00:10:24,360 --> 00:10:24,910 Tahapoole. 251 00:10:24,910 --> 00:10:25,150 Jah. 252 00:10:25,150 --> 00:10:26,750 >> Nii see läheb nn vanem. 253 00:10:26,750 --> 00:10:29,730 Mine taset ühe, nagu väljumisel ühest kaustast. 254 00:10:29,730 --> 00:10:30,500 Nii Enter. 255 00:10:30,500 --> 00:10:31,900 Ja tõepoolest, vaatame, mida ta tegi. 256 00:10:31,900 --> 00:10:37,070 See kolis mulle lihtsalt sisse tööruumi asemel Into pset1, mis on tööruumi. 257 00:10:37,070 --> 00:10:39,710 Ja nüüd, kui ma kirjutada "ls", seal on terve hunnik asju. 258 00:10:39,710 --> 00:10:41,650 Seal on "greedy.c". 259 00:10:41,650 --> 00:10:48,720 Nüüd lubage mul kasutada mv sõna otseses mõttes liikuda "greedy.c" ümber pset1. 260 00:10:48,720 --> 00:10:51,120 Ja nii palju Linuxi käsud töö täpselt nagu see. 261 00:10:51,120 --> 00:10:54,470 Nad ei võta argumente või nad võtavad ühe argument või nad võtavad kaks käsurea 262 00:10:54,470 --> 00:10:55,449 argumente ja nii edasi. 263 00:10:55,449 --> 00:10:57,240 Ja sel juhul, see on sõnalt seda, mida 264 00:10:57,240 --> 00:11:01,670 ta ütleb, ehkki succinctly-- liikuda greedy.c arvesse pset1. 265 00:11:01,670 --> 00:11:02,310 Sisesta. 266 00:11:02,310 --> 00:11:03,310 Miski tundub juhtuda. 267 00:11:03,310 --> 00:11:06,180 Aga kui ma teha ls jälle, ahne on läinud. 268 00:11:06,180 --> 00:11:12,437 Ja kui ma "cd pset1" Enter, ja seejärel LS uuesti, nüüd on õiges kohas. 269 00:11:12,437 --> 00:11:14,270 Selle kõrvale, kui ette mõned reason-- eriti 270 00:11:14,270 --> 00:11:16,194 Kui teil on vahelduva võrguühenduse 271 00:11:16,194 --> 00:11:18,360 või sa jalutamas campus oma sülearvuti kaas 272 00:11:18,360 --> 00:11:20,180 suletud ja siis seda avatumaks uuesti ja oma tööruumi 273 00:11:20,180 --> 00:11:21,730 Tundub veidi sünkroonist, ei ole suur asi. 274 00:11:21,730 --> 00:11:23,646 Just reload oma brauseri aken, ja see peaks 275 00:11:23,646 --> 00:11:26,339 RESYNC et vasakul failibrauseri näeb välja täpselt 276 00:11:26,339 --> 00:11:27,380 nagu terminali aknas. 277 00:11:27,380 --> 00:11:27,921 Mitte muretseda. 278 00:11:27,921 --> 00:11:31,460 Kui kahtled, laadige leht nii, Niikaua kui oled salvestanud faili juba. 279 00:11:31,460 --> 00:11:31,960 OKEI. 280 00:11:31,960 --> 00:11:34,710 Nii mv saab kasutada ka ümber faile. 281 00:11:34,710 --> 00:11:36,760 Ja võtame pilk see viimane käsk siin. 282 00:11:36,760 --> 00:11:39,950 Nii suppose-- ja see on super ühise liiga varakult. 283 00:11:39,950 --> 00:11:46,400 Mõned õpilased aeg-ajalt luua faili nimetatakse, olgem say-- mida on veel üks? 284 00:11:46,400 --> 00:11:47,730 Like "WATER.C." 285 00:11:47,730 --> 00:11:51,080 Nii et ma lihtsalt karjusin eest mingit põhjust, kõik mütsid. 286 00:11:51,080 --> 00:11:53,190 Kuid see ei ole õige faili nimi 287 00:11:53,190 --> 00:11:56,660 kui ainult sellepärast, et meie probleem seatud spetsifikatsioon ei saa öelda, 288 00:11:56,660 --> 00:11:59,430 Faili salvestamiseks kõik mütsid "WATER.C." 289 00:11:59,430 --> 00:12:01,320 Selle asemel, ootame "water.c" väiketähtedega. 290 00:12:01,320 --> 00:12:03,140 Ja tegelikult on see problemaatiline, sest check50, 291 00:12:03,140 --> 00:12:04,370 Programmi sa lähed kohtuda probleem 292 00:12:04,370 --> 00:12:07,350 määrata üks, mis automaatselt testid õigsuse koodi 293 00:12:07,350 --> 00:12:11,615 läheb kisa teile, kui ta ei saa leida "water.c" kõik väiketähed. 294 00:12:11,615 --> 00:12:12,712 >> Nii et ma pean lahendada. 295 00:12:12,712 --> 00:12:14,920 Nii palju erinevaid võimalusi Selleks, millest esimene 296 00:12:14,920 --> 00:12:18,330 Oleks Control-click või paremklõpsu faili nimi ja lihtsalt muuta Nimeta ümber. 297 00:12:18,330 --> 00:12:19,740 Täiesti trahvi teha. 298 00:12:19,740 --> 00:12:21,820 Aga jälle, täna, olgem seda veidi Kasvataja. 299 00:12:21,820 --> 00:12:26,680 Kasutame mv muuta "WATER.C" kuni "water.c." 300 00:12:26,680 --> 00:12:30,690 Nii võid kasutada ka esimene argument nimeta see, et teine ​​argument 301 00:12:30,690 --> 00:12:34,455 Kui teine ​​argument ei ole, on Tegelikult kausta või kataloogi nime. 302 00:12:34,455 --> 00:12:35,120 >> Hästi. 303 00:12:35,120 --> 00:12:39,560 Ja lõpuks, veidi trick--, et ma olen minu tööruumi kataloog hetkel. 304 00:12:39,560 --> 00:12:43,660 Kui ma tahan sattuda pset üks, Ma kindlasti kirjutada "cd pset1." 305 00:12:43,660 --> 00:12:47,260 Aga see on nii tüütu tüüp "pset1" või enam failinimede või kataloogi nimed 306 00:12:47,260 --> 00:12:47,980 ikka. 307 00:12:47,980 --> 00:12:51,960 Nii väga sageli Linux, mida mida saate teha on hakata kirjutama "PSE" 308 00:12:51,960 --> 00:12:56,100 ja lihtsalt igavleda, tabas Tab, ja lase arvuti sellest aru saada teile. 309 00:12:56,100 --> 00:12:58,190 Super abivalmis sattuda, et harjumus. 310 00:12:58,190 --> 00:13:01,079 Ainult saak on, kui teil on mitu faili või kataloogi alates 311 00:13:01,079 --> 00:13:02,870 tähega "p" või "ps", mida oleks võinud 312 00:13:02,870 --> 00:13:05,525 kirjuta veel paar enne arvuti teab, mida teha. 313 00:13:05,525 --> 00:13:06,820 >> MARIA: Meile meeldib otseteid. 314 00:13:06,820 --> 00:13:08,695 >> DAVID Humala: See tahe säästa nii palju aega. 315 00:13:08,695 --> 00:13:11,930 Ja ka, sest me ütlesime loeng, siis saab kerida üles ajalugu, üles ja alla, 316 00:13:11,930 --> 00:13:15,461 leida hiljuti hukati käsud, samuti. 317 00:13:15,461 --> 00:13:15,960 Hästi. 318 00:13:15,960 --> 00:13:20,904 Nüüd, pöördume meie tähelepanu tagasi to lihtne programm, tere. 319 00:13:20,904 --> 00:13:22,195 Nii et me oleme koostanud selle täpselt. 320 00:13:22,195 --> 00:13:24,050 Ja nüüd, miks me ei võta pilk andmetüübid 321 00:13:24,050 --> 00:13:26,776 ja siis üleminek mõned vastava Scratch plokid C. 322 00:13:26,776 --> 00:13:27,400 MARIA: Awesome. 323 00:13:27,400 --> 00:13:30,031 Nüüd, et olete alustanud kirjutamise programmid C, 324 00:13:30,031 --> 00:13:32,530 me ei kavatse hakata rääkima umbes andmetüübid ja muutujad. 325 00:13:32,530 --> 00:13:37,570 Nii mõned andmetüüpe, et sa tahaks teada mis algab nüüd 326 00:13:37,570 --> 00:13:39,400 on need, mis on esile sinine. 327 00:13:39,400 --> 00:13:42,420 Nii et meil on int esimene, mis tähistab täisarvu. 328 00:13:42,420 --> 00:13:46,075 Ja mis hoiab täisarvud, kui Võib-olla guessed-- nii 1, 2, 3, 329 00:13:46,075 --> 00:13:47,950 ja muu täisarvud et sa ei mõtle. 330 00:13:47,950 --> 00:13:48,730 >> DAVID Humala: Ja ka negatiivne. 331 00:13:48,730 --> 00:13:50,220 >> MARIA: Ja ka negatiivseid, eks. 332 00:13:50,220 --> 00:13:51,450 Ja 0. 333 00:13:51,450 --> 00:13:54,250 Siis on meil ujukid, mis on ujukoma numbrid. 334 00:13:54,250 --> 00:13:58,360 Nii et kõik reaalarvud mis on koma. 335 00:13:58,360 --> 00:14:03,960 Nii 5,0, 5,2 ja veelgi numbrit pärast koma, 336 00:14:03,960 --> 00:14:05,620 samuti, kui ka negatiivseid. 337 00:14:05,620 --> 00:14:07,530 Siis on meil char, mis on märk. 338 00:14:07,530 --> 00:14:10,240 Nii et ma arvan, et me rääkisime Selles loengus täna. 339 00:14:10,240 --> 00:14:15,682 Aga meil on tähed, et example-- A, B, C-, et saab salvestada näiteks süsi. 340 00:14:15,682 --> 00:14:18,390 Aga siis on meil palju rohkem sümboleid mida saab panna kui paalia. 341 00:14:18,390 --> 00:14:22,380 Ja need on salvestatud ASCII. 342 00:14:22,380 --> 00:14:25,280 >> Ja siis on meil bool, mis on tõeväärtused. 343 00:14:25,280 --> 00:14:29,067 Ja need TÕENE või Vale või 1 ja 0 võrra. 344 00:14:29,067 --> 00:14:31,650 DAVID Humala: Ja meenutada, et bool pärineb CS50 raamatukogu. 345 00:14:31,650 --> 00:14:33,300 Nii see ei ole ehitatud C, kuid see on super kasulik 346 00:14:33,300 --> 00:14:34,850 on mõiste õige ja vale. 347 00:14:34,850 --> 00:14:36,990 Ja kuigi sa Võib think-- lõbus fakt. 348 00:14:36,990 --> 00:14:43,700 Bool tehniliselt vajab mitu bitti, Tõeliselt esindama Tõsi versus vale? 349 00:14:43,700 --> 00:14:47,910 Mitu bitti sa arvad siis oleks vaja, maksimaalselt? 350 00:14:47,910 --> 00:14:48,790 Jah, ainult üks. 351 00:14:48,790 --> 00:14:52,077 Nii selgub, et C ei saa sa lihtsalt üks natuke. 352 00:14:52,077 --> 00:14:54,160 Väikseim mõõtühik saad kaheksa. 353 00:14:54,160 --> 00:14:57,090 Nii et see on natuke raiskav nad oled kasutades kogu bait, või kaheksa bitti, 354 00:14:57,090 --> 00:14:58,340 esindada True või False. 355 00:14:58,340 --> 00:15:01,807 Aga see on lihtsalt nii see on rakendatud C poolt CS50 raamatukogu. 356 00:15:01,807 --> 00:15:04,890 MARIA: Ja siis need, kes me oleme ei hakka rääkima, kui ulatuslikult 357 00:15:04,890 --> 00:15:08,060 õige now-- topelt, see on suurematele ujub. 358 00:15:08,060 --> 00:15:09,811 Pikad pikad ja lühikesed on ka täisarvud. 359 00:15:09,811 --> 00:15:10,643 DAVID Humala: Tõepoolest. 360 00:15:10,643 --> 00:15:13,190 In häkker väljaanne pset üks, me tegelikult kasutada pikka. 361 00:15:13,190 --> 00:15:15,801 Aga standard väljaanne, see ei tohiks olla vajalik. 362 00:15:15,801 --> 00:15:16,300 MARIA: Cool. 363 00:15:16,300 --> 00:15:17,361 OKEI. 364 00:15:17,361 --> 00:15:20,110 Nii operators-- siis peaks olema ilmselt tuttav enamik neist. 365 00:15:20,110 --> 00:15:22,620 Lisaks +; lahutamine, -. 366 00:15:22,620 --> 00:15:24,070 Sest korrutamine, meil on *. 367 00:15:24,070 --> 00:15:25,900 Nii ei ole X, et me tavaliselt kasutada. 368 00:15:25,900 --> 00:15:27,840 Division, meil on kurakriips. 369 00:15:27,840 --> 00:15:31,380 Ja moodul on meie viimane operaator, me räägime praegu. 370 00:15:31,380 --> 00:15:35,610 See on operaator, mis võimaldab meil võtta ülejäänud osaks. 371 00:15:35,610 --> 00:15:40,630 Nii et kui meil on 4% 2, 4 jagatud 2 on 2 koos ülejäänud 0. 372 00:15:40,630 --> 00:15:41,740 Nii 4% 2 on 0. 373 00:15:41,740 --> 00:15:42,950 4% 3 on 1. 374 00:15:42,950 --> 00:15:44,870 4% 5 on 4, kui oleks võinud arvata. 375 00:15:44,870 --> 00:15:48,860 Ja pidage meeles, kui kasutatakse kõiki neid ettevõtjatel kasutada PEMDAS reegleid. 376 00:15:48,860 --> 00:15:54,060 >> DAVID Humala: Nii olevat selge, kui te teha 4% 2, miks see nii on 0, täpselt? 377 00:15:54,060 --> 00:15:57,480 >> MARIA: Sest 4 jagatud 2 on 2 koos ülejäänud 0. 378 00:15:57,480 --> 00:16:00,752 Nii moodul annab meile, et ülejäänu Erinevalt jagunemise tulemusena. 379 00:16:00,752 --> 00:16:02,960 DAVID Humala: Ja tõepoolest, Mis me seda kasulikuks 380 00:16:02,960 --> 00:16:05,640 on, et mõned probleemid see ei ole tingimata üks, 381 00:16:05,640 --> 00:16:08,040 kui sa tahad olla piirab ise 382 00:16:08,040 --> 00:16:10,720 et numbrite vahemik nagu 0 läbi midagi, 383 00:16:10,720 --> 00:16:13,904 saate moodul ümbritsev varem nagu 2 miljardit 384 00:16:13,904 --> 00:16:16,320 või 4 miljardit väärtus, mis me rääkisime loengus. 385 00:16:16,320 --> 00:16:16,870 >> MARIA: Jah. 386 00:16:16,870 --> 00:16:19,429 Ja isegi "ahne" me võiksime. 387 00:16:19,429 --> 00:16:21,345 DAVID Humala: Jah, Probleem määrata üks, samuti. 388 00:16:21,345 --> 00:16:22,520 MARIA: Jah, tore. 389 00:16:22,520 --> 00:16:24,340 DAVID Humala: Hea vihje. 390 00:16:24,340 --> 00:16:25,750 MARIA: Vabandust. 391 00:16:25,750 --> 00:16:28,590 Loogiline expressions-- nii Boole'i ​​operaatorid, 392 00:16:28,590 --> 00:16:31,770 me räägime kõik Nende et näete siin. 393 00:16:31,770 --> 00:16:35,310 Nii kohe, meil on kaks võrdne märke loetletud võrdsete. 394 00:16:35,310 --> 00:16:38,650 Nii et need on võrdluseks. 395 00:16:38,650 --> 00:16:40,830 Seni oleme näinud ainult ühte võrdusmärki. 396 00:16:40,830 --> 00:16:44,870 See, kui anname väärtus muutuja. 397 00:16:44,870 --> 00:16:50,160 Nii et kui me oleme näinud int n = 5, siis oleme määratud 5 muutuja n. 398 00:16:50,160 --> 00:16:55,600 Aga kui me tahame kasutada == eest Võrdluseks, saame näha, kui n == 5. 399 00:16:55,600 --> 00:16:58,310 Ja kui n == 5, siis see on tõsi. 400 00:16:58,310 --> 00:17:01,950 >> Nii Boole'i ​​operaatorid võimaldab meil põhiliselt 401 00:17:01,950 --> 00:17:04,670 hinnata Boole'i väljendeid True või False. 402 00:17:04,670 --> 00:17:07,819 Nii ei equals-- meil hüüumärk ja võrdsete. 403 00:17:07,819 --> 00:17:14,240 Nii et me võiks ka kontrollida, kas n ei võrdu 5-- nii n! = 5. 404 00:17:14,240 --> 00:17:17,640 Vähem kui väiksem või võrdne, suurem kui, mis on suurem või võrdne, 405 00:17:17,640 --> 00:17:20,720 ja siis on meil loogilist JA ja loogilise OR. 406 00:17:20,720 --> 00:17:24,060 Ja need võimaldavad meil hinnata Mitme Loogiline väljendeid koos 407 00:17:24,060 --> 00:17:27,930 põhiliselt tulevad koos üks terve Loogiline väljendus. 408 00:17:27,930 --> 00:17:34,970 Nii et kui me tahame leida number, ütleme, mis on suurem kui 5, kuid alla 15 409 00:17:34,970 --> 00:17:39,810 samal ajal me kasutaks loogilised ja operaator näha, kui n on 410 00:17:39,810 --> 00:17:42,937 üle 5 && n alla 15. 411 00:17:42,937 --> 00:17:44,770 DAVID Humala: Ja siin Ka see on väga lihtne 412 00:17:44,770 --> 00:17:47,290 varakult kogemata kasutada vaid ühe ampersand 413 00:17:47,290 --> 00:17:48,572 või ühe püstkriipsu. 414 00:17:48,572 --> 00:17:51,280 Ja loodetavasti kompilaator kisa teile, sest nad tegelikult 415 00:17:51,280 --> 00:17:52,530 on hoopis teistsugune tähendus. 416 00:17:52,530 --> 00:17:55,660 Neile uudishimulik, nad kasutatud bitwise toimingud, 417 00:17:55,660 --> 00:17:57,197 tegutsevad üksikute bittide. 418 00:17:57,197 --> 00:17:58,780 Aga sa ei taha paari neid siin. 419 00:17:58,780 --> 00:18:01,560 Ja super oluline on, et Esimene, võrdusmärk, 420 00:18:01,560 --> 00:18:05,270 mis on võrdõiguslikkuse käitaja Erinevalt omistamisoperaatorile. 421 00:18:05,270 --> 00:18:08,552 >> MARIA: Ja ribal on vahel paiknevad Delete ja tagastamine. 422 00:18:08,552 --> 00:18:09,260 DAVID Humala: Jah. 423 00:18:09,260 --> 00:18:11,420 On tüüpiline USA klaviatuuri. 424 00:18:11,420 --> 00:18:13,190 >> MARIA: Yep. 425 00:18:13,190 --> 00:18:15,890 Nii saab hüpata paremale tingimisi avaldused. 426 00:18:15,890 --> 00:18:18,300 Scratch, olete juba näinud, ilmselt, 427 00:18:18,300 --> 00:18:22,730 Kui avaldused, mis võimaldab teil kontrollida, kas midagi on tõsi, siis 428 00:18:22,730 --> 00:18:23,660 midagi muud. 429 00:18:23,660 --> 00:18:28,410 Nii võite tahtnud kontrollida, kas teie sprite on 430 00:18:28,410 --> 00:18:31,410 puudutades mõne muu sprite või piiri ekraani. 431 00:18:31,410 --> 00:18:35,520 Ja siis oleks tahtnud Mängu lõpetamiseks või teha midagi muud. 432 00:18:35,520 --> 00:18:40,000 Nii süntaks, mis on "if (tingimus)." 433 00:18:40,000 --> 00:18:46,820 Seega, kui teie sprite on liigutav midagi, siis ei on sees looksulg. 434 00:18:46,820 --> 00:18:48,980 >> Siis on meil kui-mujal avaldused. 435 00:18:48,980 --> 00:18:54,080 Else võimaldab meil teha midagi kui tingimus, et me 436 00:18:54,080 --> 00:18:55,870 kontrollige alguses ei ole tõsi. 437 00:18:55,870 --> 00:19:01,530 Nii et kui sprite on liigutav piiri teha, muidu midagi muud. 438 00:19:01,530 --> 00:19:04,030 Nii teisiti teha midagi muud. 439 00:19:04,030 --> 00:19:07,530 Siis on meil väike näide selle eest. 440 00:19:07,530 --> 00:19:11,551 Nii et kui (military_time <12), siis me tahan printf "Tere hommikust!" 441 00:19:11,551 --> 00:19:13,300 Else läheme printf "Tere õhtust!" 442 00:19:13,300 --> 00:19:14,860 Basic näiteks. 443 00:19:14,860 --> 00:19:15,680 >> DAVID Humala: Hea. 444 00:19:15,680 --> 00:19:16,760 >> MARIA: Cool. 445 00:19:16,760 --> 00:19:18,560 Nüüd on meil switch väited. 446 00:19:18,560 --> 00:19:21,960 Lülita avaldused üldiselt võib võimaldab meil teha palju sama asi 447 00:19:21,960 --> 00:19:25,070 et me lihtsalt rääkisime umbes koos, kui avaldused. 448 00:19:25,070 --> 00:19:29,440 Näiteks praegu on meil üldkuju lüliti avaldusega 449 00:19:29,440 --> 00:19:33,870 mis võimaldab meil võtta muutuja, mida kutsutakse n 450 00:19:33,870 --> 00:19:37,670 ja võrrelda seda palju erinevaid väärtusi, mis siin 451 00:19:37,670 --> 00:19:40,010 kutsunud constant1, constant2. 452 00:19:40,010 --> 00:19:41,150 Meil võib olla palju rohkem. 453 00:19:41,150 --> 00:19:42,930 Ja need on kutsutud juhtudel. 454 00:19:42,930 --> 00:19:46,280 >> Nii et kui meil on lüliti statement-- ja see töötab 455 00:19:46,280 --> 00:19:50,580 ainult integers-- meil varieeruv, et käesoleval juhul on n. 456 00:19:50,580 --> 00:19:53,840 Kui muutuja n on võrdne constant1, me 457 00:19:53,840 --> 00:19:59,720 täidab mõned koodilõige või midagi, mida me tahame teha. 458 00:19:59,720 --> 00:20:01,280 Ja siis me murda. 459 00:20:01,280 --> 00:20:04,820 Nii break tähendab, et lüliti avaldusega 460 00:20:04,820 --> 00:20:08,120 peatub täidesaatva kui n on võrdne constant1, 461 00:20:08,120 --> 00:20:09,752 ja siis teie programm jätkub. 462 00:20:09,752 --> 00:20:11,835 See väljuda vahetada avalduse ja siis see 463 00:20:11,835 --> 00:20:13,520 jätkuvalt teha midagi muud. 464 00:20:13,520 --> 00:20:17,204 >> Kui aga n ei võrdu constant1, siis kehtib constant2 465 00:20:17,204 --> 00:20:17,870 tuleb kontrollida. 466 00:20:17,870 --> 00:20:21,750 Nii et kui n võrdub constant2, et teised koodilõige viiakse. 467 00:20:21,750 --> 00:20:23,850 Ja siis pead murda kui see on võrdne sellega. 468 00:20:23,850 --> 00:20:27,580 Ja siis saame also-- ole tingimata, though-- vaikimisi juhul, 469 00:20:27,580 --> 00:20:32,290 mis juhtub siis, kui n ei võrdu ühele juhtudest, et olete loetletud. 470 00:20:32,290 --> 00:20:35,400 Ja vaikimisi juhul me ka ei vaja murda tingimata 471 00:20:35,400 --> 00:20:39,271 sest lüliti avaldus tea et see peab lõppema pärast default 472 00:20:39,271 --> 00:20:40,270 Juhul kui see on nii. 473 00:20:40,270 --> 00:20:42,140 >> DAVID Humala: Aga stiililiselt, me alati pane see sinna. 474 00:20:42,140 --> 00:20:42,540 >> MARIA: Jah. 475 00:20:42,540 --> 00:20:42,710 >> DAVID Humala: Jah. 476 00:20:42,710 --> 00:20:44,750 Nii kui auto hakkab välja eriti kui nende hulgas vähem 477 00:20:44,750 --> 00:20:47,458 mugav, ma isiklikult lihtsalt soovitan jääda ifs 478 00:20:47,458 --> 00:20:51,564 ja IFS-elses ja kui-mujal-kui-elses ja nii edasi kui ainult 479 00:20:51,564 --> 00:20:53,480 sest nad on natuke selgemad. 480 00:20:53,480 --> 00:20:56,142 See on tore optimeerimise või mõnikord isegi esteetiliselt see 481 00:20:56,142 --> 00:20:57,350 muudab koodi loetavamaks. 482 00:20:57,350 --> 00:20:59,599 Ja tegelikult, ilmselt keskel semester me näeme probleemi 483 00:20:59,599 --> 00:21:02,504 kehtestatud, kui see lihtsalt tundub parem ja lihtsam lugeda, et inimestel 484 00:21:02,504 --> 00:21:03,670 kasutades lülitit avalduse. 485 00:21:03,670 --> 00:21:05,460 Aga ärge muretsege klammerdumine see liiga vara. 486 00:21:05,460 --> 00:21:05,680 >> MARIA: Jah. 487 00:21:05,680 --> 00:21:08,840 Kui teil on palju, kui avaldused, see võib lihtsalt olla üsna loetav. 488 00:21:08,840 --> 00:21:10,965 See ei pruugi olla väga kiire sul minna läbi. 489 00:21:10,965 --> 00:21:13,230 Nii lülitub avaldusi saab väga kasulik, kui hästi. 490 00:21:13,230 --> 00:21:17,900 Ja ka ei mäletada ei unustage panna katkestused seal. 491 00:21:17,900 --> 00:21:20,330 >> DAVID Humala: Ei mäleta seda. 492 00:21:20,330 --> 00:21:24,890 >> MARIA: Sest siis võib langeda läbi ühe asja teisele. 493 00:21:24,890 --> 00:21:27,930 Nii oletame, et juhul constant1 ei pea murda avaldus see. 494 00:21:27,930 --> 00:21:31,920 Siis võib läbi kukkuda sees juhul constant2. 495 00:21:31,920 --> 00:21:35,070 Ja me ei taha seda teha, kui me oleme juba jõudnud juhul constant1 496 00:21:35,070 --> 00:21:37,830 ja see on võrdne n. 497 00:21:37,830 --> 00:21:45,100 >> Nii näiteks, kui meil on varieeruv n, mis sisaldab klassi number, 498 00:21:45,100 --> 00:21:48,990 ja me tahame näha, mida see klassi on-- kui n võrdub 50, 499 00:21:48,990 --> 00:21:51,957 me läheme välja printida "CS50 on Sissejuhatus Computer Science I. " 500 00:21:51,957 --> 00:21:53,040 Siis me murrame. 501 00:21:53,040 --> 00:21:53,920 Ja see ongi kõik. 502 00:21:53,920 --> 00:21:55,950 Kui aga n võrdub 51, me ei kavatse 503 00:21:55,950 --> 00:21:58,494 trükkida "CS51 on Sissejuhatus to Computer Science II. " 504 00:21:58,494 --> 00:21:59,910 Siis jälle, me murrame. 505 00:21:59,910 --> 00:22:05,080 Kui aga siis panime 124, 61, ükskõik muu number, et sa võiksid mõelda, 506 00:22:05,080 --> 00:22:06,890 või programm ei kavatse tunnistada, et. 507 00:22:06,890 --> 00:22:09,010 Nii see läheb öelda, "Vabandust, ma olen ei ole tuttav selle klassi. " 508 00:22:09,010 --> 00:22:10,009 Ja see läheb katki. 509 00:22:10,009 --> 00:22:12,847 DAVID Humala: Nii saab tõesti näha if, else if, teine ​​mõte siin. 510 00:22:12,847 --> 00:22:15,430 See on lihtsalt süntaks väljendab täpselt sama mõte. 511 00:22:15,430 --> 00:22:17,690 >> MARIA: Täpselt. 512 00:22:17,690 --> 00:22:19,480 Nüüd on meil kolmekomponendiliste ettevõtjad. 513 00:22:19,480 --> 00:22:24,900 Nii kolmekomponendiliste operaatorid kolm osa- tingimus, 514 00:22:24,900 --> 00:22:27,220 midagi teha, kui see tingimus on tõene, 515 00:22:27,220 --> 00:22:29,730 ja siis midagi teha Kui see tingimus on vale. 516 00:22:29,730 --> 00:22:33,400 Nii et näete, põhimõtteliselt süntaks, mis siin. 517 00:22:33,400 --> 00:22:37,792 Meil on küsimärk, ja siis the-- mida me nimetame seda? 518 00:22:37,792 --> 00:22:38,750 DAVID Humala: koolon. 519 00:22:38,750 --> 00:22:39,100 MARIA: Colon. 520 00:22:39,100 --> 00:22:39,599 Aitäh. 521 00:22:39,599 --> 00:22:41,880 Vabandust. 522 00:22:41,880 --> 00:22:45,800 Nii vaatame meie eeskuju näha, kas saame mõtestada see-- 523 00:22:45,800 --> 00:22:47,840 class_num == 50. 524 00:22:47,840 --> 00:22:52,580 Nii et siin me näeme meie Boole'i ​​operaatori == mis võrdleb muutuja class_num 525 00:22:52,580 --> 00:22:53,100 50. 526 00:22:53,100 --> 00:22:55,150 Nii class_num kauplustes täisarv. 527 00:22:55,150 --> 00:22:58,180 Ja kui see täisarv võrdub 50, siis me oleme 528 00:22:58,180 --> 00:23:02,810 läheb salvestada "David Humala" sees string professor. 529 00:23:02,810 --> 00:23:05,912 Kui klassi number ei on 50, "ei David Humala" 530 00:23:05,912 --> 00:23:07,120 saab olema professor. 531 00:23:07,120 --> 00:23:08,630 >> DAVID Humala: Aitäh. 532 00:23:08,630 --> 00:23:12,110 Ja nii see tundub samaväärne Mis, kas te ütleksite, esmapilgul? 533 00:23:12,110 --> 00:23:17,930 534 00:23:17,930 --> 00:23:19,960 >> MARIA: Mulle tundub nagu kui-mujal avaldused. 535 00:23:19,960 --> 00:23:20,709 >> DAVID Humala: Jah. 536 00:23:20,709 --> 00:23:24,020 Ja tegelikult, see on omamoodi on päris üks liner, 537 00:23:24,020 --> 00:23:27,520 niiöelda rakendamiseks täpselt loogika kui-mujal 538 00:23:27,520 --> 00:23:29,010 kuid teeme kõik ühte sammu. 539 00:23:29,010 --> 00:23:29,860 >> MARIA: Täpselt. 540 00:23:29,860 --> 00:23:30,360 Jah. 541 00:23:30,360 --> 00:23:33,520 Nii et kui-mujal avaldused võiksid võtavad palju ruumi. 542 00:23:33,520 --> 00:23:36,283 Nad võivad olla liiga pikk midagi nii lihtne kui see. 543 00:23:36,283 --> 00:23:38,350 Nii et see võib olla väga sisutihedat ja väga kena. 544 00:23:38,350 --> 00:23:40,880 545 00:23:40,880 --> 00:23:46,820 Nüüd me ei kavatse võtta vaadates täidesaatva midagi ikka ja jälle, 546 00:23:46,820 --> 00:23:50,060 nii kontrollimise jaoks tingimus mitu korda 547 00:23:50,060 --> 00:23:53,510 ja seejärel jätkatakse midagi samas kui tingimus on tõene. 548 00:23:53,510 --> 00:23:56,740 Nii et see toob meid kenasti samas silmuseid. 549 00:23:56,740 --> 00:23:59,270 >> Vasakul on meil Meie esimene samas loop. 550 00:23:59,270 --> 00:24:03,840 Niisiis, kui midagi on tõsi, midagi ikka ja jälle. 551 00:24:03,840 --> 00:24:08,850 Seega veenduge, et märgata, et meie tingimus siin on valideeritud tipus. 552 00:24:08,850 --> 00:24:14,150 Arvestades meie teine ​​loop-- me nimetame et tee-samas loop-- me midagi, 553 00:24:14,150 --> 00:24:15,890 siis kontrollige seisukorras. 554 00:24:15,890 --> 00:24:17,980 Ja kui see seisund Jätkuvalt on tõsi, 555 00:24:17,980 --> 00:24:20,150 me minna tagasi ja asi jälle. 556 00:24:20,150 --> 00:24:23,360 Seega on peamine erinevus on see, kus tingimus on kontrollitud. 557 00:24:23,360 --> 00:24:29,260 Ja kood ei tohi kunagi olla täideta, kui tingimus ei ole 558 00:24:29,260 --> 00:24:30,430 tõsi samas silmus. 559 00:24:30,430 --> 00:24:33,050 Arvestades koos do-ajal loop, meil koodi 560 00:24:33,050 --> 00:24:35,380 mis on alati rakenduma vähemalt üks kord. 561 00:24:35,380 --> 00:24:37,470 Ja siis samas seisukorras Jätkuvalt on tõsi, 562 00:24:37,470 --> 00:24:39,960 Me ei saa minna tagasi ja korrata jälle sees. 563 00:24:39,960 --> 00:24:43,625 Miks sa arvad, me kasutame do-samas silmus üle, samas loop? 564 00:24:43,625 --> 00:24:48,221 565 00:24:48,221 --> 00:24:48,720 Õigus. 566 00:24:48,720 --> 00:24:52,600 Nii et kui me tahame, et paluda kasutaja mingi sisend, 567 00:24:52,600 --> 00:24:55,400 Kui me tahame, et paluda neil sisestada oma nimi, 568 00:24:55,400 --> 00:24:57,342 tahame vähemalt neilt kord. 569 00:24:57,342 --> 00:24:59,050 Ja kui nad ei sisesta et nimi, et me ei 570 00:24:59,050 --> 00:25:00,740 küsin neid uuesti sest me juba teame. 571 00:25:00,740 --> 00:25:02,656 Aga kui nad ei sisesta oma nime, või kui nad 572 00:25:02,656 --> 00:25:05,787 sisestage midagi, mis on loomulikult ei ole nime, 573 00:25:05,787 --> 00:25:08,120 me ikka tahame jätkata küsib neid oma nime. 574 00:25:08,120 --> 00:25:10,710 >> DAVID Humala: Ja loengus oli meil üks niimoodi koos saada positiivset int 575 00:25:10,710 --> 00:25:13,550 Näiteks, kui seal on midagi vaadake esimesel sest sa ei ole isegi 576 00:25:13,550 --> 00:25:14,190 saanud int. 577 00:25:14,190 --> 00:25:16,680 Nii et me tahame teha see-- saada int alates user-- 578 00:25:16,680 --> 00:25:18,860 siis seda kontrollida, võib-olla, uuesti ja uuesti ja uuesti. 579 00:25:18,860 --> 00:25:21,030 >> MARIA: Täpselt. 580 00:25:21,030 --> 00:25:22,060 Sest loops-- OK. 581 00:25:22,060 --> 00:25:25,842 Sest silmad võimaldavad meil teha peaaegu täpselt sama asi, samuti. 582 00:25:25,842 --> 00:25:27,300 See on tegelikult täpselt sama asi. 583 00:25:27,300 --> 00:25:30,190 Nii pole midagi, et saate teha jaoks silmuseid 584 00:25:30,190 --> 00:25:32,840 et sa ei saaks teha samas silmuseid. 585 00:25:32,840 --> 00:25:36,900 Aga silmad võivad tunduda veidi natuke keerulisem süntaktiliselt 586 00:25:36,900 --> 00:25:39,730 sest neil on kolm osi, mida 587 00:25:39,730 --> 00:25:42,990 oli enne ainult seisund samas silmuseid. 588 00:25:42,990 --> 00:25:48,260 Nii et esimene osa, et te meri, vasak-kõige meil "int päkapikud = 0." 589 00:25:48,260 --> 00:25:51,490 Nii et see on koht, kus me initsialiseerida meie muutuja. 590 00:25:51,490 --> 00:25:55,210 >> Siis on meil semikooloniga ja "kääbused <7." 591 00:25:55,210 --> 00:25:57,100 Nii et see on koht, kus välja tingimus tegelikult on. 592 00:25:57,100 --> 00:26:00,170 Nii et me oleks pane lihtsalt selles samas loop-- 593 00:26:00,170 --> 00:26:01,880 "Kuigi päkapikud <7." 594 00:26:01,880 --> 00:26:05,380 Siin, et läheb ka Keset meie jaoks silmus. 595 00:26:05,380 --> 00:26:07,190 Nii "dwaves <7." 596 00:26:07,190 --> 00:26:11,350 Ja siis meie viimane osa on "päkapikud ++," mis on kui me uuendada meie muutuja. 597 00:26:11,350 --> 00:26:15,470 Nii tähtsam mõistma, et see 598 00:26:15,470 --> 00:26:22,010 läheb läbi selle jaoks silmus seitse korda ja täidab seitse korda. 599 00:26:22,010 --> 00:26:24,020 Nii et meil on seitse päkapikud, ja nad kõik 600 00:26:24,020 --> 00:26:26,020 ütled, "ma olen siin sind aidata, Lumivalgeke " 601 00:26:26,020 --> 00:26:28,860 sest nad on valmis aidata Snow White. 602 00:26:28,860 --> 00:26:33,600 >> Mis samas silmuseid, oleksime teinud vormindamise ja ajakohastamine 603 00:26:33,600 --> 00:26:37,490 mitte sees tingimus, uuesti, kuid kas enne või sees samas silmus 604 00:26:37,490 --> 00:26:40,210 veenduda, et we-- sest Peame alati need osad. 605 00:26:40,210 --> 00:26:42,835 Nii veenduda, et meil on neid, me oleks olen ikka lisatakse neile 606 00:26:42,835 --> 00:26:44,580 kohta, lihtsalt ei sulgudes. 607 00:26:44,580 --> 00:26:47,288 >> DAVID Humala: Ja nii tundub like-- loeng, näiteks 608 00:26:47,288 --> 00:26:50,250 Ma peaaegu alati kasutada, nagu mina ja n ja üsna igav muutujaid. 609 00:26:50,250 --> 00:26:53,050 Tundub, et teil on võimalik kasutada rohkem nutikalt nimega muutujaid ka. 610 00:26:53,050 --> 00:26:56,300 >> MARIA: Jah, see on tegelikult väga kena kasutada natuke rohkem kirjeldav muutuja 611 00:26:56,300 --> 00:26:59,400 sest eriti kui keegi teine lugemist oma code-- äkki oled teehöövel 612 00:26:59,400 --> 00:27:00,940 või kui sa koostööd koos somebody-- 613 00:27:00,940 --> 00:27:03,481 soovite veenduda, et nad mõista, mida sa teed. 614 00:27:03,481 --> 00:27:05,750 615 00:27:05,750 --> 00:27:06,400 >> OKEI. 616 00:27:06,400 --> 00:27:11,435 Nii et see on midagi väga funky-- silmus sees jaoks silmus. 617 00:27:11,435 --> 00:27:13,060 Ma ei tea, kas me oleme näinud seda enne. 618 00:27:13,060 --> 00:27:13,830 Ilmselt mitte. 619 00:27:13,830 --> 00:27:17,750 Aga me saame tegelikult on see-- nii silmad asemel silmad. 620 00:27:17,750 --> 00:27:25,130 Nii ei keegi taha olla kõndida minu kaudu, mis siin toimub? 621 00:27:25,130 --> 00:27:28,240 622 00:27:28,240 --> 00:27:29,490 DAVID Humala: Ma võtan stab. 623 00:27:29,490 --> 00:27:29,970 MARIA: Cool. 624 00:27:29,970 --> 00:27:30,636 DAVID Humala: OK. 625 00:27:30,636 --> 00:27:34,690 Nii, spoiler-- tahame printida kraami see all paremas nurgas 626 00:27:34,690 --> 00:27:35,190 seal. 627 00:27:35,190 --> 00:27:35,450 >> MARIA: Right. 628 00:27:35,450 --> 00:27:35,710 Ja ja. 629 00:27:35,710 --> 00:27:38,043 >> DAVID Humala: Nii oleme lihtsalt panna, et proovi väljund olemas. 630 00:27:38,043 --> 00:27:42,590 Nii et ma ei järeldada tähtsaim loop, et sa oled 631 00:27:42,590 --> 00:27:45,680 iterating üle ridu äärepoolseimate loop, kui nii võib öelda. 632 00:27:45,680 --> 00:27:48,107 Ja sa iterating üle veerud sisemine loop. 633 00:27:48,107 --> 00:27:50,190 Ja intuitiivselt, seda loodetavasti mõtet 634 00:27:50,190 --> 00:27:52,070 sest iseloom Iga programmi oleme näinud 635 00:27:52,070 --> 00:27:55,570 Enne, printf, mis on funktsiooni me kasutame lõpuks 636 00:27:55,570 --> 00:27:58,190 suudab printida kraami sisuliselt läbi rida-realt. 637 00:27:58,190 --> 00:27:59,960 Like, kui olete väljastada uus liin, seal on 638 00:27:59,960 --> 00:28:02,876 no kahekordistada tagasi ja trükkimine midagi suurem ekraan, vähemalt 639 00:28:02,876 --> 00:28:04,530 ei kasuta printf niimoodi. 640 00:28:04,530 --> 00:28:07,750 >> Ja nii selles osas, see teeb mõttes, et äärepoolseimate loop 641 00:28:07,750 --> 00:28:10,930 Tuleks viidates rida sest iga antud rida, 642 00:28:10,930 --> 00:28:13,650 sa lähed tahan välja printida XXXXX ja seejärel 643 00:28:13,650 --> 00:28:15,520 liikuda edasi järgmisele reale, XXXXX. 644 00:28:15,520 --> 00:28:17,317 Nii rida esikohal. 645 00:28:17,317 --> 00:28:19,150 Ja siis iga rida, siis prinditakse sambad. 646 00:28:19,150 --> 00:28:21,160 Kui oled proovinud seda teha vastupidi, see ilmselt ei 647 00:28:21,160 --> 00:28:21,690 tule välja, nagu seda soovitakse. 648 00:28:21,690 --> 00:28:22,190 >> MARIA: Jah. 649 00:28:22,190 --> 00:28:24,950 Me lihtsalt ei suutnud minna tagasi Eelmise reas printf. 650 00:28:24,950 --> 00:28:27,658 >> DAVID Humala: Ja mis huvitav Ühe tänapäeva vestelda ulatus, 651 00:28:27,658 --> 00:28:31,600 tegelikult, on see, et järjest on int mis on deklareeritud tähtsaim loop. 652 00:28:31,600 --> 00:28:34,030 Aga teate, et see on ikka sees, kui nii võib öelda, 653 00:28:34,030 --> 00:28:35,982 lokkis traksid, mis vahetult järgnema, 654 00:28:35,982 --> 00:28:38,440 kuigi see ei ole tehniliselt neis looksulg. 655 00:28:38,440 --> 00:28:41,750 Nii reas on oma ulatuselt kogu koodilõik, 656 00:28:41,750 --> 00:28:44,690 nii seest välimise jaoks silmus ja selle sees sisemise jaoks silmus. 657 00:28:44,690 --> 00:28:48,050 Aga seevastu kui kolonnis ulatus? 658 00:28:48,050 --> 00:28:49,810 Muutuva veerus? 659 00:28:49,810 --> 00:28:51,310 Jah, ainult sees silmus. 660 00:28:51,310 --> 00:28:54,280 Ja see on OK, sest me ei pääse see väljaspool oma lokkis traksid. 661 00:28:54,280 --> 00:28:57,280 Kõik me teeme, on väljatrüki uus line päris lõpus on. 662 00:28:57,280 --> 00:28:58,670 Nii et tegelikult on OK. 663 00:28:58,670 --> 00:29:03,740 >> Nii et see on toime, tundub, teed kolm rida ja neli veergu. 664 00:29:03,740 --> 00:29:04,370 >> MARIA: Right. 665 00:29:04,370 --> 00:29:06,270 Nii esimese kui me minna läbi meie esimene rida. 666 00:29:06,270 --> 00:29:10,520 Ja just meie esimene rida, me teeme neli veergu sees esimeses reas. 667 00:29:10,520 --> 00:29:11,980 Nii me välja printida neli Xi. 668 00:29:11,980 --> 00:29:15,800 Ja siis me saame väljuda silmus, kuna me oleme juba välja prinditud neli Xi. 669 00:29:15,800 --> 00:29:17,100 Ja me printida uus liin. 670 00:29:17,100 --> 00:29:19,920 Ja siis me läheme läbi Sama protsessi veel kaks rida 671 00:29:19,920 --> 00:29:21,170 tegemas kokku kolm. 672 00:29:21,170 --> 00:29:23,530 >> DAVID Humala: Ja see on väärt märkimist, et see on lihtsalt jäänuk font, asjaolu, 673 00:29:23,530 --> 00:29:25,680 et proovi väljund tunduvad nii palju kõrgemaks, 674 00:29:25,680 --> 00:29:27,520 nagu oleks seal rohkem rida kui veergu. 675 00:29:27,520 --> 00:29:29,824 Aga see on lihtsalt sellepärast, et X on pikem kui see on lai. 676 00:29:29,824 --> 00:29:32,740 See on kõik, mis seal toimub, pluss valge ridade vahele. 677 00:29:32,740 --> 00:29:33,281 >> MARIA: Right. 678 00:29:33,281 --> 00:29:34,792 Cool. 679 00:29:34,792 --> 00:29:35,750 DAVID Humala: Okei. 680 00:29:35,750 --> 00:29:39,830 Nii kiire pilk probleem määrata üks, võta mingeid küsimusi ja siis edasi lükata? 681 00:29:39,830 --> 00:29:40,330 Hästi. 682 00:29:40,330 --> 00:29:43,164 Nii probleem määrata üks, seal on kolm Esmane väljakutseid lõpuks. 683 00:29:43,164 --> 00:29:44,955 Aga kõigepealt, leiad et probleem seatud 684 00:29:44,955 --> 00:29:47,900 spetsifikatsioonile, nagu Paljude psets sel sügisel, läheb samm-sammult 685 00:29:47,900 --> 00:29:50,691 läbi mõne soojenduseks harjutusi, juhtida teid läbi mõned vahendid 686 00:29:50,691 --> 00:29:52,440 et siis võib või ei näinud juba. 687 00:29:52,440 --> 00:29:54,440 Näiteks CS50 on komplekt lühikesed püksid, 688 00:29:54,440 --> 00:29:56,481 mis on lühikese videos, mitte erinevalt, kuid et 689 00:29:56,481 --> 00:29:58,460 väga teema specific-- võibolla viis minutit, 690 00:29:58,460 --> 00:30:02,360 10 minuti pikkuses silmad või tingimustel või algoritmide 691 00:30:02,360 --> 00:30:04,125 või hiljem rohkem Kogenud, samuti. 692 00:30:04,125 --> 00:30:06,000 Ja me üldiselt kinnistada neid arvesse probleemi 693 00:30:06,000 --> 00:30:07,950 komplekti nii, et õpilased on ressurss, mis 694 00:30:07,950 --> 00:30:10,840 vaadata materjali, mis võib olla juba tulla loengu või osa. 695 00:30:10,840 --> 00:30:13,220 Aga nii see on rohkem keskendunud ja nende käeulatuses. 696 00:30:13,220 --> 00:30:15,928 >> Samuti kipuvad kinnistada probleem seab asju nimetatakse trajektooridega. 697 00:30:15,928 --> 00:30:20,790 Nii peaaegu kõik näited mina loengus, laval siin, me ka 698 00:30:20,790 --> 00:30:24,565 on tulistas kaamera edasi rohkem aeglasem, 699 00:30:24,565 --> 00:30:28,760 intiimsem ülevaadet minu kohta minu arvuti selle koodi rea kaupa 700 00:30:28,760 --> 00:30:31,427 nii, et klassis, siis me sageli koorima läbi kellegi või millegi 701 00:30:31,427 --> 00:30:33,260 saab hüüdma koos vastata küsimusele. 702 00:30:33,260 --> 00:30:35,820 Aga see ei tähenda tingimata valamu igaüks, kes publiku. 703 00:30:35,820 --> 00:30:38,230 Nii leiad koodi trajektooridega enamiku näited 704 00:30:38,230 --> 00:30:40,950 et me teeme siin loengu, et sa saab kõndida läbi oma tempos 705 00:30:40,950 --> 00:30:43,580 ja edasi või tagasi kerida või vahele jätta, kui soovite. 706 00:30:43,580 --> 00:30:45,356 >> Seal on sageli vähe soojenduseks küsimused, mis 707 00:30:45,356 --> 00:30:47,105 palun mingisugune tugevdada selle materjali 708 00:30:47,105 --> 00:30:50,250 ja veenduge, et olete hubane enne kui asud ülejäänud pset. 709 00:30:50,250 --> 00:30:51,700 Ja siis muidugi seal on pset ise. 710 00:30:51,700 --> 00:30:53,450 Ja üks asi, me väga teadlikult 711 00:30:53,450 --> 00:30:57,202 teha CS50 on peaaegu iga ebahuvitav või intellektuaalselt ebahuvitav 712 00:30:57,202 --> 00:30:58,910 mehaaniline samm, sa oleks võinud teha 713 00:30:58,910 --> 00:31:00,519 on peaaegu alati väga hästi dokumenteeritud. 714 00:31:00,519 --> 00:31:03,560 Jooksul sõna, siis me alustada küsida rohkem retorisia 715 00:31:03,560 --> 00:31:06,187 nagu mäletan, kuidas seda teha või mis? 716 00:31:06,187 --> 00:31:08,520 Aga üldiselt leiad et probleem seab sulle 717 00:31:08,520 --> 00:31:10,269 läbi mehaanikud midagi nii, et 718 00:31:10,269 --> 00:31:14,160 huvitav, intellektuaalse väljakutseid lõppkokkuvõttes jäetakse teil õpilane. 719 00:31:14,160 --> 00:31:17,390 >> Olles seda öelnud, Zamyla, kellele me hoida viidates täna loengu, 720 00:31:17,390 --> 00:31:20,190 on üks meie kauaaegne töötaja liige, kes omab ka trajektooridega 721 00:31:20,190 --> 00:31:24,520 konkreetsete pset probleeme nagu Mario ja ahne, aga mitte kasta sel aastal. 722 00:31:24,520 --> 00:31:26,540 Ja see on nende walkthroughs et ta tihti 723 00:31:26,540 --> 00:31:29,450 pakub mõningaid näpunäiteid kuidas toimida, ei ütle teile 724 00:31:29,450 --> 00:31:31,810 täpselt, mida teha, kuid rather-- nagu tingimus, 725 00:31:31,810 --> 00:31:35,200 Kui te will-- annab sulle vähemalt paar ideed, nii et see on kuni teil, 726 00:31:35,200 --> 00:31:37,830 lõpuks otsustada kuidas neile läheneda. 727 00:31:37,830 --> 00:31:41,200 >> MARIA: omamoodi nagu kõrgetasemeline mõista loogikat, mida 728 00:31:41,200 --> 00:31:42,220 Palume teil teha. 729 00:31:42,220 --> 00:31:42,485 >> DAVID Humala: Täpselt. 730 00:31:42,485 --> 00:31:44,190 Ja tegelikult, Zamyla s trajektooridega on mõeldud 731 00:31:44,190 --> 00:31:46,190 vastata korduma küsis küsimus, kust 732 00:31:46,190 --> 00:31:48,610 ma hakkas, eriti kui Nende pikad kirjeldused on 733 00:31:48,610 --> 00:31:51,960 natuke hirmuäratav anda kogu tekst ja kujundeid, mis on nende sees. 734 00:31:51,960 --> 00:31:54,890 >> Nii water.c leiad kui oled valmis see, 735 00:31:54,890 --> 00:31:56,920 on tegelikult üsna lihtne. 736 00:31:56,920 --> 00:31:58,882 Absoluutselt on kamp ja sa paugu 737 00:31:58,882 --> 00:32:01,840 oma pead vastu seina üritab aru saada, miks see ei ole koostamine 738 00:32:01,840 --> 00:32:03,450 või miks see ei tööta korralikult. 739 00:32:03,450 --> 00:32:05,040 Aga kui sa oled teinud seda ja kui sa oled 740 00:32:05,040 --> 00:32:07,620 mõnda aega maadlevad tahes ja vead, mida sa võib-olla, 741 00:32:07,620 --> 00:32:09,490 leiad, et see on Väga lühikese programmi. 742 00:32:09,490 --> 00:32:11,770 Seda saab teha vaid paar koodiread, millest enamik 743 00:32:11,770 --> 00:32:15,030 oleme näinud siin loeng juba, kui sa koguda õige ehituskivid. 744 00:32:15,030 --> 00:32:16,810 >> Ja nagu me soovitame siin, see saab küsida 745 00:32:16,810 --> 00:32:22,250 saab määrata mitu minutit keegi dushi ülikooli. 746 00:32:22,250 --> 00:32:24,779 Me täpsustada probleemi määra kehtestab veevool 747 00:32:24,779 --> 00:32:27,320 nagu mingi väikese voolu dušš Pea meelega Seinfeld clip 748 00:32:27,320 --> 00:32:29,180 nägime eile või vastupidine sätestatut. 749 00:32:29,180 --> 00:32:30,971 Ja siis sa lihtsalt pead teha natuke matemaatikat, 750 00:32:30,971 --> 00:32:34,710 really-- aritmeetiline kasutades C öelda meile, kuidas paljud umbes nii, pudelit vett 751 00:32:34,710 --> 00:32:37,720 on see, et samaväärne kui me oleme võttes n-minutilise dušš. 752 00:32:37,720 --> 00:32:41,389 >> Nüüd, mario.c, see läheb olla veidi pikem programm. 753 00:32:41,389 --> 00:32:42,930 See on ikka ei kavatse olla nii kaua. 754 00:32:42,930 --> 00:32:45,130 Just paar rida enam kui water.c. 755 00:32:45,130 --> 00:32:48,230 Aga see saab olema võimalus taastada vana kooli Mario 756 00:32:48,230 --> 00:32:50,670 Püramiidi Super Mario Brothers või mõne jätkuna. 757 00:32:50,670 --> 00:32:53,510 Ta ei kavatse vaadata nii ilusam või värvikas, et üks seal. 758 00:32:53,510 --> 00:32:56,468 Me lihtsalt kavatse kasutada vähe hashtags nagu meil siin ekraanil 759 00:32:56,468 --> 00:32:58,120 kasutades ASCII teksti. 760 00:32:58,120 --> 00:33:00,362 Aga see umbkaudu sama mõte. 761 00:33:00,362 --> 00:33:02,570 Ja see saab olema kasutada, et esmapilgul 762 00:33:02,570 --> 00:33:04,720 Tundub päris simple-- lihtsalt prindi lihtne püramiid. 763 00:33:04,720 --> 00:33:07,345 Aga seal on paar omadused siin, mis on huvitav. 764 00:33:07,345 --> 00:33:12,400 Pange tähele, et kõige parempoolsem serva Püramiidi tegelikult on laius kaks. 765 00:33:12,400 --> 00:33:14,570 Nii et kaks võrdset kõrgus sambad, mis 766 00:33:14,570 --> 00:33:16,804 muudab see nõuab veidi natuke mõelnud teha 767 00:33:16,804 --> 00:33:19,720 Kindlasti sa selle täpselt õige, sest mitte ainult täiesti angled 768 00:33:19,720 --> 00:33:20,220 line. 769 00:33:20,220 --> 00:33:23,340 Nii et natuke nurgas juhul kuid vastab tegelikule mängu. 770 00:33:23,340 --> 00:33:27,610 >> Ja see on ka mitte-ilmne esimesel lühidalt, kuidas printida tühja ruumi. 771 00:33:27,610 --> 00:33:29,430 Nii et kui ma vaatan proovi väljund siin-- 772 00:33:29,430 --> 00:33:32,440 ja see on ka spec-- see Selline näeb välja nagu ristkülik, 773 00:33:32,440 --> 00:33:35,120 kuid diagonaal ristkülik on hakitud off, 774 00:33:35,120 --> 00:33:37,320 ja see on lihtsalt tühikuid, nii rääkida. 775 00:33:37,320 --> 00:33:40,100 Ja nii korduma kippuvad Küsimus on selles, alati hästi, 776 00:33:40,100 --> 00:33:43,302 kuidas ma liigutada hashtags üle õige? 777 00:33:43,302 --> 00:33:44,760 Või kuidas ma printida tühikuid? 778 00:33:44,760 --> 00:33:46,860 Ja see on tegelikult lihtsam kui enamik õpilasi mõtlema. 779 00:33:46,860 --> 00:33:47,360 Õigus? 780 00:33:47,360 --> 00:33:51,620 Võite ühtlustada see visuaalselt lihtsalt lööb tühikut üks või kaks korda 781 00:33:51,620 --> 00:33:52,700 või kolm korda. 782 00:33:52,700 --> 00:33:56,260 >> Ja nii isegi koos printf me peaaegu alati välja printida string või int 783 00:33:56,260 --> 00:33:59,950 või sõna nagu "tere, maailma "või rea sõnu, 784 00:33:59,950 --> 00:34:03,560 võite ka lihtsalt printida tsitaat, ruumi, lõppeb. 785 00:34:03,560 --> 00:34:06,320 Ja mis tegelikult annab Teile valge ruum olemas. 786 00:34:06,320 --> 00:34:08,330 Nii et hoidke seda silmas pidades ja ei overthink seda. 787 00:34:08,330 --> 00:34:10,570 Sa tõesti otsustada rida-rida-realt, 788 00:34:10,570 --> 00:34:14,280 ei ole erinevalt oma näiteks Hetk tagasi, kui palju neid 789 00:34:14,280 --> 00:34:18,420 veerud peaksid olema tühikuid ja kui palju neid peaks olema hashtags. 790 00:34:18,420 --> 00:34:21,560 See võtab natuke aega, aga see on lõpuks loogika puzzle kehvasti. 791 00:34:21,560 --> 00:34:22,060 >> MARIA: Jah. 792 00:34:22,060 --> 00:34:25,060 Aga loogika läheb rida-realt läheb suureks abiks. 793 00:34:25,060 --> 00:34:25,810 DAVID Humala: Jah. 794 00:34:25,810 --> 00:34:28,976 Ma arvan, et proovi kood, mida gave-- isegi kuigi see ei olnud täielik programm. 795 00:34:28,976 --> 00:34:34,247 Sul on vaja veel int ja peamised ja tühine ja #include stdio.h, 796 00:34:34,247 --> 00:34:35,580 palju asju loeng. 797 00:34:35,580 --> 00:34:37,629 Aga ehituskivid Tundub, et seal olema. 798 00:34:37,629 --> 00:34:39,920 Ja siis lõpuks on midagi natuke rohkem algoritmilise. 799 00:34:39,920 --> 00:34:43,210 Nii selgub, et iga kord, kui minema CVS või tarbekaupade pood 800 00:34:43,210 --> 00:34:47,810 ja keegi kätt juures kassapidaja arved või mündid muutus, 801 00:34:47,810 --> 00:34:50,620 Selgub, et nad on inimesed, kas nad teavad seda või mitte, 802 00:34:50,620 --> 00:34:53,300 Tõenäoliselt kasutad, mis on nimetatakse ahne algoritm, 803 00:34:53,300 --> 00:34:58,170 kusjuures, kui sa oled võlgu, ütleme, $ 21 muutuste tõttu mingil põhjusel 804 00:34:58,170 --> 00:35:01,580 sa ostsid midagi väga odav väga suur arve CVS, 805 00:35:01,580 --> 00:35:05,910 oleks tõesti tüütu, kui Kassapidaja andis sulle 21 Suur või, veel hullem 806 00:35:05,910 --> 00:35:07,629 veel terve hulk münte. 807 00:35:07,629 --> 00:35:10,670 Pigem mõistlik isik on ilmselt lähen tegema, on nad lähevad 808 00:35:10,670 --> 00:35:14,224 haarata $ 20 ja siis 1 $-arve, ja käe lihtsalt kaks arvet sellisel juhul. 809 00:35:14,224 --> 00:35:17,390 MARIA: Nii nad püüavad vähendada muutus, et nad annavad sulle tagasi. 810 00:35:17,390 --> 00:35:17,850 DAVID Humala: Täpselt. 811 00:35:17,850 --> 00:35:19,540 Ja sama palju münte, samuti. 812 00:35:19,540 --> 00:35:23,040 Kui sa oled võlgu, ütleme, $ 0,50 loodetavasti sa ei taha 50 penni. 813 00:35:23,040 --> 00:35:25,500 Sa asemel tahavad kaks kvartalites, näiteks. 814 00:35:25,500 --> 00:35:27,540 Nüüd, see ei arvata et kassapidaja on 815 00:35:27,540 --> 00:35:29,940 piisavalt iga nimiväärtus, et ta võib tahan teile. 816 00:35:29,940 --> 00:35:32,148 Aga me ei võimalda teil eeldada sama palju probleemi. 817 00:35:32,148 --> 00:35:35,590 Ja eesmärk lõppkokkuvõttes on rakendada C koodi ahne algoritm. 818 00:35:35,590 --> 00:35:37,344 Nii kasutajal on lubatud kirjuta, kui palju 819 00:35:37,344 --> 00:35:40,510 muuta ta võlgu dollarit ja senti, mingi ujukoma 820 00:35:40,510 --> 00:35:41,590 väärtus ilmselt. 821 00:35:41,590 --> 00:35:45,530 Ja siis sa pead tegema, matemaatika ja nuputada algoritmiliselt, noh, 822 00:35:45,530 --> 00:35:49,020 kui palju münte saab annan sa minimaalselt teile 823 00:35:49,020 --> 00:35:50,270 täpselt selle summa muutuse. 824 00:35:50,270 --> 00:35:53,470 Aga seal saab olla paari keeruline osad siin, eks? 825 00:35:53,470 --> 00:35:56,236 Nagu seal on kogu ebatäpsuse probleem. 826 00:35:56,236 --> 00:35:56,860 MARIA: Täpselt. 827 00:35:56,860 --> 00:35:59,114 Nii ujukoma väärtused on ebatäpsus. 828 00:35:59,114 --> 00:36:00,780 Kas me räägime sellest loeng täna? 829 00:36:00,780 --> 00:36:02,340 >> DAVID Humala: Tegime Viimast korda loengu. 830 00:36:02,340 --> 00:36:03,506 Rääkisime ebatäpsus. 831 00:36:03,506 --> 00:36:08,840 Ja sa ei taha petta kasutaja kui palju muutus ta võlgneb. 832 00:36:08,840 --> 00:36:11,290 Ja nii ülevaadet, in Probleemi kehtestatud spetsifikatsioonile, 833 00:36:11,290 --> 00:36:15,990 mõtlema, lõpuks, et kuidas saab leevendada neid ebatäpsus 834 00:36:15,990 --> 00:36:17,280 vigu, potentsiaalselt. 835 00:36:17,280 --> 00:36:21,050 See on välditav, kindlasti, et sisendite me räägime. 836 00:36:21,050 --> 00:36:23,590 Ja tegelikult, pennies-- võibolla me edasi lükata Zamyla, 837 00:36:23,590 --> 00:36:25,136 Ma arvan, et trikke seal. 838 00:36:25,136 --> 00:36:27,760 Nii lõpuks leiad progresseerumist probleeme sel nädalal 839 00:36:27,760 --> 00:36:30,700 millest esimene on üsna väike, siis keskmise, siis veidi suurem. 840 00:36:30,700 --> 00:36:33,200 Kuid kõik neist kasutavad hoone kvartali kaugusel möödunud nädalal, 841 00:36:33,200 --> 00:36:35,280 Sellest supersection, Probleem seatud spetsifikatsioon 842 00:36:35,280 --> 00:36:36,710 paneb sind lugematu ressursse. 843 00:36:36,710 --> 00:36:41,000 Aga ikkagi, kui üldse vaeva, eriti nende seas, vähem mugav 844 00:36:41,000 --> 00:36:42,917 ilma eelneva taustal, tulevad tööaega 845 00:36:42,917 --> 00:36:44,958 Esmaspäeval ja teisipäeval ja Kolmapäeval ja neljapäeval. 846 00:36:44,958 --> 00:36:46,950 Mine CS50 Arutle kaudu Kursuse kodulehel 847 00:36:46,950 --> 00:36:49,080 mille kaudu saab vestelda personali ja klassikaaslastega. 848 00:36:49,080 --> 00:36:51,670 >> Aga lõpuks, ma arvan, et Parim soovitus on lihtsalt alustada varakult. 849 00:36:51,670 --> 00:36:54,711 See ei ole mingi klassi, et teil tuleks alustades psets kolmapäeval 850 00:36:54,711 --> 00:36:56,640 öösel, või mis veel hullem neljapäeva õhtul. 851 00:36:56,640 --> 00:36:59,067 >> MARIA: Minu parim nõu on et on hakanud esmaspäevaks. 852 00:36:59,067 --> 00:36:59,900 DAVID Humala: esmaspäeval. 853 00:36:59,900 --> 00:37:02,490 Nii et kui sa ei ole alustatud already-- ole. 854 00:37:02,490 --> 00:37:04,732 Aga isegi kui ei ole esmaspäev, siis teisipäeval. 855 00:37:04,732 --> 00:37:05,690 Mida varem, seda parem. 856 00:37:05,690 --> 00:37:08,605 Ja see on põhjus, miks Muidugi on nii palju hiljaks päeva on 857 00:37:08,605 --> 00:37:10,535 teile natuke psühholoogilist survet 858 00:37:10,535 --> 00:37:13,684 alustada varem, kuid siiski lasta asjad libisevad asjad võtavad kauem 859 00:37:13,684 --> 00:37:14,350 kui te ootate. 860 00:37:14,350 --> 00:37:17,950 >> MARIA: Ja sa tahad kasutada tööaega nii palju kui võimalik, ka. 861 00:37:17,950 --> 00:37:20,291 >> DAVID Humala: Kas on küsimusi? 862 00:37:20,291 --> 00:37:20,790 Hästi. 863 00:37:20,790 --> 00:37:22,930 Noh, miks me ei lükata siin? 864 00:37:22,930 --> 00:37:23,487