1 00:00:00,000 --> 00:00:03,353 >> [Musiikkia] 2 00:00:03,353 --> 00:00:04,842 3 00:00:04,842 --> 00:00:06,050 DAVID MALAN: Hei, kaikki. 4 00:00:06,050 --> 00:00:07,777 Tämä on CS50: n supersection. 5 00:00:07,777 --> 00:00:09,860 Sidotut Osiot eivät aloittaa vielä viikon. 6 00:00:09,860 --> 00:00:11,580 Ja niin tänään, olen täällä with-- 7 00:00:11,580 --> 00:00:12,122 >> MARIA: Maria. 8 00:00:12,122 --> 00:00:14,163 DAVID MALAN: kahden kesken todella katsomaan ongelma 9 00:00:14,163 --> 00:00:16,110 asettaa yhden, kurssin ensimmäisten viikkojen materiaalia, 10 00:00:16,110 --> 00:00:19,780 pääset suunnattu CS50 IDE, vähän Linux, käyttöjärjestelmä, joka on 11 00:00:19,780 --> 00:00:22,290 käynnissä IDE, sekä tarkastelemme joitakin siirtyminen 12 00:00:22,290 --> 00:00:25,730 tyhjästä C johtavan jopa ongelma asettaa yhden. 13 00:00:25,730 --> 00:00:28,340 >> Joten pitemmittä puheitta, ongelmatilanteissa asettaa yhden, 14 00:00:28,340 --> 00:00:30,520 aiot olla käyttöön CS50 IDE, joka 15 00:00:30,520 --> 00:00:33,230 on tämä web-pohjainen ohjelmointi ympäristö että me käyttää, jotta 16 00:00:33,230 --> 00:00:34,280 kirjoittaa ohjelmia. 17 00:00:34,280 --> 00:00:37,280 Sitä on suunniteltu näyttämään hyvin muistuttaa tyypillisen tietokoneen 18 00:00:37,280 --> 00:00:39,430 järjestelmän toiminnassa toiminta nimeltään Linux. 19 00:00:39,430 --> 00:00:42,440 Mutta se on ns pilvi, mikä tarkoittaa jokainen luokka 20 00:00:42,440 --> 00:00:45,100 saattaa olla hänen omaan lukuunsa ja käyttää sitä, samoin. 21 00:00:45,100 --> 00:00:48,950 >> Joten useimmat varmaan ole koskaan käyttänyt Linux-ympäristössä ennen tai ehkä 22 00:00:48,950 --> 00:00:50,447 jopa komentoriviltä ympäristössä. 23 00:00:50,447 --> 00:00:52,280 Ja komentoriviltä ympäristö on erilainen. 24 00:00:52,280 --> 00:00:53,200 Se kaikki tekstisisältöä. 25 00:00:53,200 --> 00:00:54,730 Se kaikki näppäinkomentoja. 26 00:00:54,730 --> 00:00:59,480 Ja se ei ole Mousing, ei kuvakkeet, ei vuoropuhelua ikkunoita, valikoita ei. 27 00:00:59,480 --> 00:01:00,212 Se on puhtaasti tekstiä. 28 00:01:00,212 --> 00:01:01,920 Joten ensin, se sellainen of tuntuu askel 29 00:01:01,920 --> 00:01:04,434 taaksepäin kannalta hienostuneisuutta. 30 00:01:04,434 --> 00:01:06,600 Mutta se päätyy paljon tehokkaampia, varmasti, 31 00:01:06,600 --> 00:01:08,510 tietokonetta tiedemies, lopulta. 32 00:01:08,510 --> 00:01:09,540 >> Joten katsomaan. 33 00:01:09,540 --> 00:01:13,850 Täällä olen siitä CS50.io, jonka kautta voit kirjautua CS50 IDE. 34 00:01:13,850 --> 00:01:17,414 Ja aivan kuten Scratch, siellä kolmella tärkeällä osa tähän näyttöön. 35 00:01:17,414 --> 00:01:20,080 Niin vasemmalla puolella, meillä on mitä tulee tiedostoselain. 36 00:01:20,080 --> 00:01:22,413 Ja siellä tämä kansio top, joka on juuri nyt tyhjä 37 00:01:22,413 --> 00:01:24,690 koska pääsin eroon kaikista minun tiedostot ennen supersection. 38 00:01:24,690 --> 00:01:27,599 Ja siitähän me will tallentaa C tiedostot me kirjoittaa. 39 00:01:27,599 --> 00:01:30,890 Oikeassa yläkulmassa, meillä on paikka, jossa kaikki meidän koodi tulee saada kirjallinen. 40 00:01:30,890 --> 00:01:34,610 Ja todellakin, jos napsautan tämä plus, tämä on aio antaa minun valita uusi tiedosto. 41 00:01:34,610 --> 00:01:38,310 Ja tässä voin alkaa kirjoittaa C-koodia tai, todella, useita muita kieliä. 42 00:01:38,310 --> 00:01:42,670 >> Ja sitten alaosassa, jossa se sanoo jharvard @ ide50-- ja sinun tulee 43 00:01:42,670 --> 00:01:45,080 sanoa jotain hieman different-- mitä tämä nimi on? 44 00:01:45,080 --> 00:01:48,644 45 00:01:48,644 --> 00:01:49,310 Pääteikkuna. 46 00:01:49,310 --> 00:01:49,570 Joo. 47 00:01:49,570 --> 00:01:51,810 Niin pääteikkuna on ns komentoriviltä 48 00:01:51,810 --> 00:01:55,540 liityntätyypin voit olla vuorovaikutuksessa kanssa taustalla käyttöjärjestelmä. 49 00:01:55,540 --> 00:01:58,220 Ja nyt, me aiomme tehdä hyvin vähän käyttöä this-- 50 00:01:58,220 --> 00:02:01,170 vain koota, katsomaan virheilmoitukset näemme, 51 00:02:01,170 --> 00:02:02,347 ja ajaa meidän ohjelmia. 52 00:02:02,347 --> 00:02:04,680 Mutta lopulta aiomme tehdä niin paljon enemmän, samoin. 53 00:02:04,680 --> 00:02:07,490 Ja voit jopa asentaa ohjelmia ja hallinnoida työtilan 54 00:02:07,490 --> 00:02:09,066 sisällä CS50 IDE, samoin. 55 00:02:09,066 --> 00:02:10,440 Mutta siitä lisää joskus toiste. 56 00:02:10,440 --> 00:02:12,689 >> Joten mene eteenpäin ja kirjoittaa hyvin yksinkertainen ohjelma vain 57 00:02:12,689 --> 00:02:15,064 käydä läpi warm-up hello.c, joka on ehkä 58 00:02:15,064 --> 00:02:16,480 yksinkertaisin ohjelma voimme kirjoittaa. 59 00:02:16,480 --> 00:02:18,330 Olen jo avannut uuden välilehden. 60 00:02:18,330 --> 00:02:24,310 Aion mennä eteenpäin ja sanoa ovat standardin io.h. 61 00:02:24,310 --> 00:02:25,325 Sitten int main (void). 62 00:02:25,325 --> 00:02:28,930 63 00:02:28,930 --> 00:02:35,200 Ja sitten printf ("Hei, maailma" kenoviiva n, lähellä lainaus, 64 00:02:35,200 --> 00:02:39,480 lähellä suluissa, ja puolipiste. 65 00:02:39,480 --> 00:02:39,990 >> Selvä. 66 00:02:39,990 --> 00:02:41,700 Joten nyt huomaa minun ikkuna on nimetön. 67 00:02:41,700 --> 00:02:44,840 Joten olen hyvin nopeasti menossa mennä jopa Tiedosto, Tallenna. 68 00:02:44,840 --> 00:02:46,910 Ja on tärkeää, että Kutsun tätä ei "hei." 69 00:02:46,910 --> 00:02:49,243 Niin hyvin yleinen virhe, varsinkin ongelma asettaa yhden, 70 00:02:49,243 --> 00:02:52,530 on vahingossa vain soittaa ohjelma "vesi" tai "ahne" tai "Mario" 71 00:02:52,530 --> 00:02:53,890 tai "luotto" tai vastaava. 72 00:02:53,890 --> 00:02:55,970 Mutta te todella haluavat tehdä että sinulla on tiedostopääte 73 00:02:55,970 --> 00:02:58,928 koska tämä on ainoa tapa, että kääntäjä ja myös koodieditori 74 00:02:58,928 --> 00:03:00,710 tietää, että olet todella kirjallisesti C-koodia. 75 00:03:00,710 --> 00:03:02,280 Joten anna minun mennä eteenpäin ja valitse Tallenna. 76 00:03:02,280 --> 00:03:05,710 >> Ja nyt, liian, mitä CS50 IDE on tehnyt meidän on se myös 77 00:03:05,710 --> 00:03:07,120 syntaksi korostettu kaiken. 78 00:03:07,120 --> 00:03:08,822 Joten se on tehnyt kaiken erittäin värikäs. 79 00:03:08,822 --> 00:03:10,780 Ja koko tarkoitus joka ei ole toiminnallinen. 80 00:03:10,780 --> 00:03:14,290 Se on vain tehdä silmäni käsitteellisesti eri palaset 81 00:03:14,290 --> 00:03:15,310 tämän ohjelman. 82 00:03:15,310 --> 00:03:17,570 Joten mene eteenpäin ja koota tätä. 83 00:03:17,570 --> 00:03:19,490 Ja voin koota tämän pari tapaa. 84 00:03:19,490 --> 00:03:22,010 Ja viikolla yksi, vanhan koulun tapa teimme 85 00:03:22,010 --> 00:03:26,250 se oli kirjaimellisesti komento line-- "kalahtaa hello.c." 86 00:03:26,250 --> 00:03:27,596 Ja sitten Enter. 87 00:03:27,596 --> 00:03:29,720 Ja mikään ei tunnu tapahtuvan terminaalin ikkunassa. 88 00:03:29,720 --> 00:03:32,654 Mutta mitä teki muutoksen IDE? 89 00:03:32,654 --> 00:03:35,320 Jos taas IDE vain tarkoittaa Integroitu kehitysympäristö. 90 00:03:35,320 --> 00:03:38,360 Se on hieno tapa sanoa tämä yhtenäinen kehittäminen 91 00:03:38,360 --> 00:03:40,620 ympäristö kehittää ohjelmistoja. 92 00:03:40,620 --> 00:03:42,477 Joten mitä muuta käyttöliittymässä? 93 00:03:42,477 --> 00:03:44,310 Mitä huomaat se on eri asia, Maria? 94 00:03:44,310 --> 00:03:47,100 >> MARIA: huomasin jotain alle IDE50 kansio täällä. 95 00:03:47,100 --> 00:03:47,850 >> DAVID MALAN: Joo. 96 00:03:47,850 --> 00:03:50,230 Joten täällä, ei vain meillä on "hello.c." 97 00:03:50,230 --> 00:03:53,120 Meillä on myös "a.out", joka on tavallaan tyhmä nimi ohjelman. 98 00:03:53,120 --> 00:03:56,430 Mutta todellakin, se on oletusnimi ohjelma kun vain kääntää koodia 99 00:03:56,430 --> 00:03:59,110 ja älä kerro kääntäjä mitä tiedosto lähtöön. 100 00:03:59,110 --> 00:04:01,790 Joten jos haluan suorittaa tämän, minä täytyy kertoa compiler-- 101 00:04:01,790 --> 00:04:05,340 tai pikemminkin, minun täytyy kerro työtilan I 102 00:04:05,340 --> 00:04:09,780 haluat ajaa ohjelma nimeltään "a.out." 103 00:04:09,780 --> 00:04:10,550 Anna. 104 00:04:10,550 --> 00:04:12,474 Ja siellä on "Hei, maailma. "nyt" ./ ". 105 00:04:12,474 --> 00:04:13,390 on todella tärkeää. 106 00:04:13,390 --> 00:04:16,050 Vaikka yleensä me vain kirjoittaa nimet komentoja, 107 00:04:16,050 --> 00:04:19,060 kun se on ohjelma olet kirjoitettu, et halua sanoa "./" 108 00:04:19,060 --> 00:04:22,460 koska se nimenomaisesti kertoo Linux että haluat suorittaa ohjelma nimeltä 109 00:04:22,460 --> 00:04:26,930 "A.out", joka on tässä, missä piste tarkoittaa tämä hakemisto että olen tällä hetkellä 110 00:04:26,930 --> 00:04:31,600 kaupungissa, joka sattuu olemaan nimeltään työtila, "a.out. 111 00:04:31,600 --> 00:04:35,410 Koska jos juuri sanoin "a.out," Enter, Aion saada "a.out komento ei 112 00:04:35,410 --> 00:04:38,035 löydetty ", koska computer-- koska en keksi "a.out;" 113 00:04:38,035 --> 00:04:40,910 se ei tullut computer-- ei tiedä mistä etsiä sitä, 114 00:04:40,910 --> 00:04:43,590 vaikka se on oikea alle nenäni, niin sanoakseni. 115 00:04:43,590 --> 00:04:44,090 OK. 116 00:04:44,090 --> 00:04:49,910 Jotta voisimme muuttaa tätä olla "kalahtaa -o hei hello.c." 117 00:04:49,910 --> 00:04:53,030 Ja jos minä Enter, mitä ohjelmaa tämä tulee lähtö minulle? 118 00:04:53,030 --> 00:04:55,710 Mikä tiedoston nimi? 119 00:04:55,710 --> 00:04:57,500 Joo, takana. 120 00:04:57,500 --> 00:04:58,479 Oikein. "Hei." 121 00:04:58,479 --> 00:05:00,520 Niin "hei" tulee olemaan ohjelman nimi 122 00:05:00,520 --> 00:05:04,610 koska olemme käyttäneet ns Komentoriviargumentti, joka on vain 123 00:05:04,610 --> 00:05:08,120 tapa muuttaa käyttäytymistä kääntäjä todella ulostulo 124 00:05:08,120 --> 00:05:09,450 tietyn tiedoston nimi. 125 00:05:09,450 --> 00:05:12,400 Ja todellakin, jos minä zoom ulos ja etsiä täällä, 126 00:05:12,400 --> 00:05:17,430 Nyt en ole vain "a.out" ja "Hello.c" vaan myös "Hei," samoin. 127 00:05:17,430 --> 00:05:22,410 Joten nyt voin tehdä "./hello," Enter. 128 00:05:22,410 --> 00:05:23,640 Ja siellä on "Hei, maailma." 129 00:05:23,640 --> 00:05:25,640 Mutta lastly-- ja tämä on nyt yleissopimuksen 130 00:05:25,640 --> 00:05:27,590 käytämme koko lukukausi, typically-- 131 00:05:27,590 --> 00:05:30,070 on voit myös vain sanoa "tehdä hei." 132 00:05:30,070 --> 00:05:33,370 Ja todellakin, se sanoo se on jopa mennessä, koska se on jo olemassa. 133 00:05:33,370 --> 00:05:37,860 Anna minun mennä eteenpäin ja poistaa, kanssa rm komento, sekä "a.out" - 134 00:05:37,860 --> 00:05:39,644 ja sanoa "poistaa tavallista tiedostoa a.out?" 135 00:05:39,644 --> 00:05:41,810 Se vain tarkoittaa, oletko varma, että haluat poistaa sen? 136 00:05:41,810 --> 00:05:42,880 Aion sanoa kyllä. 137 00:05:42,880 --> 00:05:46,690 Ja sitten aion poistaa "Hei", mutta ei "hello.c." 138 00:05:46,690 --> 00:05:49,920 Aion sanoa "kyllä" nimenomaisesti, mutta "y" on riittävä, samoin. 139 00:05:49,920 --> 00:05:52,140 >> Ja nyt huomaa, jos en tyypin ls-- joka, muistaa, 140 00:05:52,140 --> 00:05:55,540 tarkoittaa list-- siinä luetellaan kaikki tiedostoja minun kansioon. 141 00:05:55,540 --> 00:05:57,850 Ja todellakin, jos minä zoom ulos ja katsomaan vasemmassa yläkulmassa, 142 00:05:57,850 --> 00:05:59,730 se vahvistaa, että mitä tässä kansiossa, vaikka 143 00:05:59,730 --> 00:06:04,990 vaikka se on merkitty IDE50 täällä eikä työtila, se on vain "hello.c." 144 00:06:04,990 --> 00:06:09,152 Joten nyt täällä, jos en do "tee Hei," Enter, 145 00:06:09,152 --> 00:06:12,360 nyt näen paljon kauemmin komento mutta kehittyneempiä komento että menee 146 00:06:12,360 --> 00:06:13,940 olevan käyttökelpoisia tulevina viikkoina. 147 00:06:13,940 --> 00:06:16,720 Ja nyt voin sanoa "./hello." 148 00:06:16,720 --> 00:06:19,257 >> Joten ottaa nopeasti kiertue jotkut muut Linux-komentoja. 149 00:06:19,257 --> 00:06:21,840 Niin miksi ei otamme askeleen takaisin ja todella katsoa C lisää 150 00:06:21,840 --> 00:06:25,020 yleensä, siirrytään Scratch C, ja sitten lopuksi katsoa 151 00:06:25,020 --> 00:06:27,305 ensimmäisessä ongelma asettaa C. Selvä. 152 00:06:27,305 --> 00:06:30,430 Joten aion mennä eteenpäin ja vain puhdas minun työtila Control-L vain 153 00:06:30,430 --> 00:06:31,429 pitää näytön siisti. 154 00:06:31,429 --> 00:06:33,520 Mutta se ei ole toiminnallista vaikuttaa muuten. 155 00:06:33,520 --> 00:06:35,820 >> Muista, että olemme nähneet muutamia komentoja nyt. 156 00:06:35,820 --> 00:06:39,900 Joten olemme nähneet kalahtaa, jotka yleensä te ei tarvitse suorittaa manuaalisesti enää. 157 00:06:39,900 --> 00:06:41,650 Me sen sijaan käyttää tehdä. 158 00:06:41,650 --> 00:06:45,290 Mutta näimme myös ls, joka osoittaa listaus tiedostojen minun hakemistoon. 159 00:06:45,290 --> 00:06:48,750 Ja nyt miksi there-- siellä kaksi tiedostoja nyt, "hei" ja "hello.c." 160 00:06:48,750 --> 00:06:52,240 Miksi on olemassa tähti tai tähti jälkeen "Hello"? 161 00:06:52,240 --> 00:06:54,900 Mitä, jotka merkitsevät, perustuu mitä näimme viikko yksi? 162 00:06:54,900 --> 00:06:58,852 163 00:06:58,852 --> 00:07:00,400 Mitä mieltä olet? 164 00:07:00,400 --> 00:07:02,742 Mitä tähti merkitsevät? 165 00:07:02,742 --> 00:07:04,614 >> MARIA: For-- ohjelma "hei"? 166 00:07:04,614 --> 00:07:05,530 DAVID MALAN: "Hei *". 167 00:07:05,530 --> 00:07:06,330 Joo. 168 00:07:06,330 --> 00:07:07,760 Todellakin? 169 00:07:07,760 --> 00:07:08,639 Voi, suoritettavan. 170 00:07:08,639 --> 00:07:09,180 Oikein. 171 00:07:09,180 --> 00:07:10,890 Niin se tarkoittaa, että "Hei" on suoritettavissa. 172 00:07:10,890 --> 00:07:13,430 Niin todellakin, siksi Voin tehdä "./hello." 173 00:07:13,430 --> 00:07:13,930 Selvä. 174 00:07:13,930 --> 00:07:15,179 Mitä muuta voin tehdä täällä? 175 00:07:15,179 --> 00:07:17,290 No, se kääntyy pois voin myös luoda hakemistoja. 176 00:07:17,290 --> 00:07:20,924 Joten anna minun mennä eteenpäin ja luoda, Esimerkiksi "pset1" hakemistoon. 177 00:07:20,924 --> 00:07:23,590 Ja ongelma asettaa erittely on sinun tehdä juuri tätä, 178 00:07:23,590 --> 00:07:25,260 joten sinun ei tarvitse muistaa tänään. 179 00:07:25,260 --> 00:07:27,340 Mutta "mkdir pset1" näyttää olevan mitään vaikutusta. 180 00:07:27,340 --> 00:07:30,540 Mutta jälleen kerran, ei virheilmoituksen on yleensä hyvä asia. 181 00:07:30,540 --> 00:07:34,060 Joten jos kirjoitan "ls" now-- Ah, nyt Minulla on suoritettava tiedosto nimeltä 182 00:07:34,060 --> 00:07:36,570 "Hei," C tiedosto nimeltä "hello.c." 183 00:07:36,570 --> 00:07:40,860 Ja sitten vinoviiva, niin puhua, tarkoittaa, että tämä on hakemisto. 184 00:07:40,860 --> 00:07:42,510 >> Joten todellakin, nyt haluan avata sen. 185 00:07:42,510 --> 00:07:45,730 Enkä kaksoisnapsauttamalla sitä kuten in GUI, graafinen ympäristö. 186 00:07:45,730 --> 00:07:48,550 Minä sen sijaan sanoa "cd pset1." 187 00:07:48,550 --> 00:07:49,640 Anna. 188 00:07:49,640 --> 00:07:53,100 Mitään mielenkiintoista näyttää tapahtui paitsi pikku ajallaan 189 00:07:53,100 --> 00:07:57,300 here-- tämä on Linuxin keino muistuttaa missä minä olen, niin mikä kansio on auki. 190 00:07:57,300 --> 00:08:00,080 Se on vain kertoa minulle nimenomaisesti toisin kuin graafisesti. 191 00:08:00,080 --> 00:08:05,100 Ja jos kirjoitan "ls," miksi minä näen toisen kysyy heti, luulet, 192 00:08:05,100 --> 00:08:07,269 kun I luettelo sisällön pset1? 193 00:08:07,269 --> 00:08:09,310 MARIA: luultavasti eivät mitään siellä. 194 00:08:09,310 --> 00:08:09,630 DAVID MALAN: Joo. 195 00:08:09,630 --> 00:08:11,510 Niin sitten meillä ei ilmeisesti luotu mitään siellä 196 00:08:11,510 --> 00:08:13,150 koska olen juuri luonut hakemistoon. 197 00:08:13,150 --> 00:08:17,690 Nyt, jos halusin luoda file-- varten Esimerkiksi voisin luoda uuden tiedoston. 198 00:08:17,690 --> 00:08:20,190 Ja sitten voisin mennä Tallentaa ja tallentaa sen, 199 00:08:20,190 --> 00:08:23,090 kuten "mario.c", jos teet standardin painos PSET yksi. 200 00:08:23,090 --> 00:08:27,610 Ja sitten, kuten tahansa Mac tai PC, vain valitse kansio "pset1, Tallenna. 201 00:08:27,610 --> 00:08:28,740 Ja nyt tiedosto on tyhjä. 202 00:08:28,740 --> 00:08:31,160 Mutta katsotaanpa lähentää jälleen toinen. 203 00:08:31,160 --> 00:08:32,470 Tehdään ls täällä. 204 00:08:32,470 --> 00:08:34,470 Nyt näemme "mario.c". 205 00:08:34,470 --> 00:08:37,850 >> Joten siellä on muutamia muita komentoja, jotka kannattaa pitää mielessä yli time-- 206 00:08:37,850 --> 00:08:41,200 kirkas, tai Control-L on mitä olen ollut lyömällä; mkdir olemme nähneet; 207 00:08:41,200 --> 00:08:45,240 rm olemme nähneet, samoin, joka on poistamiseksi tai poistaa tiedoston. 208 00:08:45,240 --> 00:08:49,310 Varo voit also-- ja jos katsotte online tutorials, sinun rm-rf 209 00:08:49,310 --> 00:08:52,630 on hyvin yleinen tapa sanoa Poista kansio, jolla on tavaraa siinä. 210 00:08:52,630 --> 00:08:54,280 Vain olla super, super varovainen. 211 00:08:54,280 --> 00:08:58,780 -rf tarkoittaa rekursiivisesti poistaa mitä se on 212 00:08:58,780 --> 00:09:01,150 yrität poistaa ja väkisin poistaa sen. 213 00:09:01,150 --> 00:09:04,630 Joten rekursiivinen keino jos se kansio kansio kansio kansio, 214 00:09:04,630 --> 00:09:05,690 poistaa ne kaikki. 215 00:09:05,690 --> 00:09:08,680 Ja väkisin keinot eivät edes ask me kyllä ​​tai ei, olen varma? 216 00:09:08,680 --> 00:09:11,960 Joten se on erittäin vaarallinen tapa poistamalla paljon tavaraa nopeasti. 217 00:09:11,960 --> 00:09:17,210 Mutta beware-- liian usein tekee Intrepid opiskelija vahingossa poistaa, vaikkapa PSET 218 00:09:17,210 --> 00:09:18,000 yksi, esimerkiksi. 219 00:09:18,000 --> 00:09:19,833 >> MARIA: Ja jos he vain do -r, he aikovat 220 00:09:19,833 --> 00:09:21,870 kysyä heiltä joka ikinen tiedosto. 221 00:09:21,870 --> 00:09:22,790 >> DAVID MALAN: Mikä on kohtalaisen ärsyttävää. 222 00:09:22,790 --> 00:09:23,480 >> MARIA: Joo. 223 00:09:23,480 --> 00:09:25,813 >> DAVID MALAN: Joten siksi niin monet meistä, itse mukana, 224 00:09:25,813 --> 00:09:27,070 olen tapana käyttää -rf. 225 00:09:27,070 --> 00:09:27,861 Mutta se on vaarallista. 226 00:09:27,861 --> 00:09:29,010 Joten ostaja varokaa. 227 00:09:29,010 --> 00:09:31,050 Ja sitten mv on eräänlainen mielenkiintoisesti nimetty. 228 00:09:31,050 --> 00:09:33,600 Joten tämä on liikkeellä komento, joka tuntuu hieman outo 229 00:09:33,600 --> 00:09:37,260 koska voit todella käyttää sitä siirtää tiedostoja paikasta toiseen. 230 00:09:37,260 --> 00:09:39,970 Oletetaan esimerkiksi, että minä sekaisin. 231 00:09:39,970 --> 00:09:43,660 Oletetaan, että olen luonut uusi tiedosto PSET. 232 00:09:43,660 --> 00:09:46,320 Ja olen tallentanut sitä "greedy.c." 233 00:09:46,320 --> 00:09:49,970 Mutta kai vahingossa tallenna se vuonna IDE50-- joten minun työtilaan itse 234 00:09:49,970 --> 00:09:51,580 eikä pset1. 235 00:09:51,580 --> 00:09:53,960 >> Voit nähdä niin paljon vasemmassa yläkulmassa. 236 00:09:53,960 --> 00:09:55,284 On "greedy.c." 237 00:09:55,284 --> 00:09:56,450 Ja siellä on muutama ratkaisuja. 238 00:09:56,450 --> 00:09:58,324 Joten, voin käyttää Super käyttäjäystävällisesti 239 00:09:58,324 --> 00:09:59,740 vain vetämällä ja pudottamalla se. 240 00:09:59,740 --> 00:10:01,910 Ja että todella Korjaa ongelma. 241 00:10:01,910 --> 00:10:04,967 Mutta tänään, yritämme katsoa enemmän mystistä mutta tehokasta tapaa 242 00:10:04,967 --> 00:10:05,550 tehdä tämä. 243 00:10:05,550 --> 00:10:07,880 Joten Otan "ls" in pset1. 244 00:10:07,880 --> 00:10:09,690 Ja minä vain nähdä "mario.c." 245 00:10:09,690 --> 00:10:13,450 Anna minun mennä eteenpäin ja tehdä "cd ..". 246 00:10:13,450 --> 00:10:15,320 Joten CD taas on muutos hakemistoon. 247 00:10:15,320 --> 00:10:18,130 ".." Tarkoittaa mitä, vaikka? 248 00:10:18,130 --> 00:10:21,100 Viime kerralla sanoin "CD pset1 "mennä pset1. 249 00:10:21,100 --> 00:10:24,360 Joten kun sanon "cd ..", mitä teen? 250 00:10:24,360 --> 00:10:24,910 Taaksepäin. 251 00:10:24,910 --> 00:10:25,150 Joo. 252 00:10:25,150 --> 00:10:26,750 >> Joten se tulee niin sanottu vanhemman. 253 00:10:26,750 --> 00:10:29,730 Mene yksi taso ylös, kuten poistuminen pois kansiosta. 254 00:10:29,730 --> 00:10:30,500 Niin Enter. 255 00:10:30,500 --> 00:10:31,900 Ja todellakin, katso mitä se teki. 256 00:10:31,900 --> 00:10:37,070 Se muutti minua vain työtilaan sijaan Into pset1, joka on työtilassa. 257 00:10:37,070 --> 00:10:39,710 Ja nyt jos kirjoitan "ls", siellä koko joukko tavaraa. 258 00:10:39,710 --> 00:10:41,650 Siellä on "greedy.c". 259 00:10:41,650 --> 00:10:48,720 Joten nyt haluan käyttää mv kirjaimellisesti siirtyvät "greedy.c" osaksi pset1. 260 00:10:48,720 --> 00:10:51,120 Ja niin paljon Linux-komentoja toimivat täsmälleen näin. 261 00:10:51,120 --> 00:10:54,470 He ottavat mitään perusteluja tai ne ottaa yksi väitettä tai ne vievät kaksi komentoriviltä 262 00:10:54,470 --> 00:10:55,449 perusteluja ja niin edelleen. 263 00:10:55,449 --> 00:10:57,240 Ja tässä tapauksessa, se on kirjaimellisesti sitä, mitä 264 00:10:57,240 --> 00:11:01,670 se sanoo, vaikkakin succinctly-- Siirrä greedy.c osaksi pset1. 265 00:11:01,670 --> 00:11:02,310 Anna. 266 00:11:02,310 --> 00:11:03,310 Mikään ei näytä tapahtuvan. 267 00:11:03,310 --> 00:11:06,180 Mutta jos en ls uudelleen, ahne on mennyt. 268 00:11:06,180 --> 00:11:12,437 Ja jos en tee "CD pset1", Anna, ja sitten ls jälleen, nyt se on oikea paikka. 269 00:11:12,437 --> 00:11:14,270 Sivuhuomautuksena, jos jotkut reason-- erityisesti 270 00:11:14,270 --> 00:11:16,194 jos sinulla on ajoittaista verkkoliitäntä 271 00:11:16,194 --> 00:11:18,360 tai olet käveleminen kampuksella kannettavan tietokoneen kansi 272 00:11:18,360 --> 00:11:20,180 suljettu ja avaa se sitten ylös uudelleen ja työtilan 273 00:11:20,180 --> 00:11:21,730 vaikuttaa hieman epätahdissa, no big deal. 274 00:11:21,730 --> 00:11:23,646 Vain lataa selain ikkuna, ja se olisi 275 00:11:23,646 --> 00:11:26,339 resync niin että vasen tiedostoselain näyttää täsmälleen 276 00:11:26,339 --> 00:11:27,380 kuten pääteikkuna. 277 00:11:27,380 --> 00:11:27,921 Älä huoli. 278 00:11:27,921 --> 00:11:31,460 Jos olet epävarma, lataa sivu, niin kunhan olet tallentanut tiedostoja jo. 279 00:11:31,460 --> 00:11:31,960 OK. 280 00:11:31,960 --> 00:11:34,710 Joten mv voi käyttää myös nimetä tiedostot. 281 00:11:34,710 --> 00:11:36,760 Ja lähdetään katsomaan tämä lopullinen komennon täällä. 282 00:11:36,760 --> 00:11:39,950 Niin suppose-- ja tämä on Super yhteinen, liian, varhain. 283 00:11:39,950 --> 00:11:46,400 Jotkut opiskelijat joskus luoda tiedoston nimeltään, katsotaanpa say-- mikä on toinen? 284 00:11:46,400 --> 00:11:47,730 Kuten "WATER.C." 285 00:11:47,730 --> 00:11:51,080 Joten minä vain huutaa, varten mitään syytä, kaikissa lippikset. 286 00:11:51,080 --> 00:11:53,190 Mutta tämä ei ole oikea tiedostonimi 287 00:11:53,190 --> 00:11:56,660 jos vain koska meidän Harjoitus erittely ei kertonut sinulle 288 00:11:56,660 --> 00:11:59,430 tallentaa tiedoston kaikki korkit "WATER.C." 289 00:11:59,430 --> 00:12:01,320 Sen sijaan odotamme "Water.c" pienillä kirjaimilla. 290 00:12:01,320 --> 00:12:03,140 Ja, itse asiassa, tämä on ongelmia, koska check50, 291 00:12:03,140 --> 00:12:04,370 ohjelma olet menossa tapaavat ongelma 292 00:12:04,370 --> 00:12:07,350 asetetaan joka testaa automaattisesti oikeellisuudesta koodin 293 00:12:07,350 --> 00:12:11,615 aikoo huutaa sinulle, jos se ei voi löytää "water.c" kaikissa pieniä. 294 00:12:11,615 --> 00:12:12,712 >> Joten minun täytyy korjata. 295 00:12:12,712 --> 00:12:14,920 Niin monia eri tapoja tehdä tämän, joista ensimmäinen 296 00:12:14,920 --> 00:12:18,330 olisi Control-osoita tai napsauta hiiren kakkospainikkeella tiedoston nimi ja vain muuttaa Nimeä uudelleen. 297 00:12:18,330 --> 00:12:19,740 Täysin hieno tehdä. 298 00:12:19,740 --> 00:12:21,820 Mutta jälleen, tänään, katsotaanpa tehdä sen hieman harrastaja. 299 00:12:21,820 --> 00:12:26,680 Katsotaanpa käyttää mv muuttaa "WATER.C" ja "water.c." 300 00:12:26,680 --> 00:12:30,690 Joten voit myös käyttää ensimmäinen argumentti nimetä sen toisen väitteen 301 00:12:30,690 --> 00:12:34,455 jos toinen väite ei ole, vuonna Itse kansion tai hakemiston nimi. 302 00:12:34,455 --> 00:12:35,120 >> Selvä. 303 00:12:35,120 --> 00:12:39,560 Ja lopuksi, hieman trick-- joten olen työtilaani hakemisto tällä hetkellä. 304 00:12:39,560 --> 00:12:43,660 Jos haluan päästä PSET yksi, Voin varmasti kirjoita "cd pset1." 305 00:12:43,660 --> 00:12:47,260 Mutta se on niin ikävä kirjoittaa "pset1" tai enää tiedostojen nimet tai hakemiston nimiä 306 00:12:47,260 --> 00:12:47,980 edelleen. 307 00:12:47,980 --> 00:12:51,960 Joten hyvin usein Linux, mitä voit tehdä on aloittaa kirjoittamalla "PSE" 308 00:12:51,960 --> 00:12:56,100 ja vain kyllästy, osuma Tab, ja anna tietokone luku sitä sinulle. 309 00:12:56,100 --> 00:12:58,190 Super hyödyllistä päästä tästä tavasta. 310 00:12:58,190 --> 00:13:01,079 Ainoa saalis on, jos sinulla on useita tiedostoja tai kansioita alkaen 311 00:13:01,079 --> 00:13:02,870 kirjaimella "p" tai "Ps" saatat olla 312 00:13:02,870 --> 00:13:05,525 kirjoittaa muutaman ennen tietokone tietää mitä tehdä. 313 00:13:05,525 --> 00:13:06,820 >> MARIA: Haluamme pikanäppäimet. 314 00:13:06,820 --> 00:13:08,695 >> DAVID MALAN: Tämä tahto säästää niin paljon aikaa. 315 00:13:08,695 --> 00:13:11,930 Ja myös, kuten totesimme luento, sinua voi vierittää ylös historiassa, ylös ja alas, 316 00:13:11,930 --> 00:13:15,461 löytää teloitettiin äskettäin komentoja, samoin. 317 00:13:15,461 --> 00:13:15,960 Selvä. 318 00:13:15,960 --> 00:13:20,904 Joten nyt, nyt kääntää huomion takaisin on yksinkertainen ohjelma, Hello World. 319 00:13:20,904 --> 00:13:22,195 Joten olemme laatineet tämän juuri. 320 00:13:22,195 --> 00:13:24,050 Ja nyt miksi emme ota Katso tietotyypit 321 00:13:24,050 --> 00:13:26,776 ja sitten siirtyminen joidenkin vastaava Scratch korttelia C. 322 00:13:26,776 --> 00:13:27,400 MARIA: Mahtavaa. 323 00:13:27,400 --> 00:13:30,031 Joten nyt olet aloittanut kirjallisesti ohjelmia C, 324 00:13:30,031 --> 00:13:32,530 aiomme alkaa puhua noin tietotyypit ja muuttujat. 325 00:13:32,530 --> 00:13:37,570 Joten joitakin tietoja tyyppejä, että olet haluaisi tietää alkaa nyt 326 00:13:37,570 --> 00:13:39,400 ovat ne, jotka ovat korostettu sinisellä. 327 00:13:39,400 --> 00:13:42,420 Joten meillä on int ensin, joka tarkoittaa kokonaisluku. 328 00:13:42,420 --> 00:13:46,075 Ja joka pitää kokonaislukuja, kun voi olla guessed-- niin 1, 2, 3, 329 00:13:46,075 --> 00:13:47,950 ja muut kokonaislukuja että voit ajatella. 330 00:13:47,950 --> 00:13:48,730 >> DAVID MALAN: Ja myös negatiivinen. 331 00:13:48,730 --> 00:13:50,220 >> MARIA: Ja myös kielteisiä, jep. 332 00:13:50,220 --> 00:13:51,450 Ja 0. 333 00:13:51,450 --> 00:13:54,250 Sitten meillä on kellukkeet, joka ovat liukulukuja. 334 00:13:54,250 --> 00:13:58,360 Niin, että kaikki todelliset luvut että on desimaaleja. 335 00:13:58,360 --> 00:14:03,960 Niin 5.0, 5.2, ja vielä numeroa desimaalipilkun jälkeen, 336 00:14:03,960 --> 00:14:05,620 samoin, ja myös kielteisiä. 337 00:14:05,620 --> 00:14:07,530 Sitten meillä on nieriä, joka on merkki. 338 00:14:07,530 --> 00:14:10,240 Joten mielestäni puhuimme tämä luento tänään. 339 00:14:10,240 --> 00:14:15,682 Mutta meillä on kirjaimia, sillä example--, B, C-- joka voidaan tallentaa merkki. 340 00:14:15,682 --> 00:14:18,390 Mutta sitten meillä on paljon enemmän symboleja että voidaan tallentaa char. 341 00:14:18,390 --> 00:14:22,380 Ja ne tallennetaan ASCII. 342 00:14:22,380 --> 00:14:25,280 >> Ja sitten meillä on bool, jotka ovat Booleans. 343 00:14:25,280 --> 00:14:29,067 Ja ne on tosi tai Vääriä tai 1 ja 0, vastaavasti. 344 00:14:29,067 --> 00:14:31,650 DAVID MALAN: Ja muistaa että bool tulee CS50 kirjastosta. 345 00:14:31,650 --> 00:14:33,300 Joten se ei ole rakennettu C, mutta se on erittäin hyödyllinen 346 00:14:33,300 --> 00:14:34,850 on käsite oikean ja väärän. 347 00:14:34,850 --> 00:14:36,990 Ja vaikka saattaa think-- hauskaa tosiasia. 348 00:14:36,990 --> 00:14:43,700 Bool teknisesti tarvitsee kuinka monta bittiä, todella, edustaa True vs. False? 349 00:14:43,700 --> 00:14:47,910 Kuinka monta bittiä luulet sinun olisi, maksimaalisesti? 350 00:14:47,910 --> 00:14:48,790 Joo, vain yksi. 351 00:14:48,790 --> 00:14:52,077 Joten käy ilmi, että C voi antaa vain yhden bitin. 352 00:14:52,077 --> 00:14:54,160 Pienin mittayksikkö voit saada on kahdeksan. 353 00:14:54,160 --> 00:14:57,090 Joten se on vähän tuhlaileva ne olet käyttämällä koko tavu, tai kahdeksan bittiä, 354 00:14:57,090 --> 00:14:58,340 edustamaan Oikein vai väärin. 355 00:14:58,340 --> 00:15:01,807 Mutta se on vain tapa se on täytäntöön C CS50 kirjaston. 356 00:15:01,807 --> 00:15:04,890 MARIA: Ja sitten niitä, jotka olemme aio puhua niin laajasti 357 00:15:04,890 --> 00:15:08,060 oikea now-- kaksinkertainen, se on isommille kelluu. 358 00:15:08,060 --> 00:15:09,811 Pitkä pitkä ja lyhyt ovat myös kokonaislukuja. 359 00:15:09,811 --> 00:15:10,643 DAVID MALAN: Todellakin. 360 00:15:10,643 --> 00:15:13,190 Vuonna hakkeri painos PSET yksi, me itse käyttää pitkään pitkään. 361 00:15:13,190 --> 00:15:15,801 Mutta Standard Edition, sen ei pitäisi olla tarpeen. 362 00:15:15,801 --> 00:15:16,300 MARIA: Cool. 363 00:15:16,300 --> 00:15:17,361 OK. 364 00:15:17,361 --> 00:15:20,110 Joten operators-- sinun pitäisi olla varmasti tuttuja useimmat näistä. 365 00:15:20,110 --> 00:15:22,620 Lisäksi, +; vähennyslasku, -. 366 00:15:22,620 --> 00:15:24,070 Kertolaskuissa meillä on *. 367 00:15:24,070 --> 00:15:25,900 Joten ei X että me yleensä käyttää. 368 00:15:25,900 --> 00:15:27,840 Jako, meillä on kenoviiva. 369 00:15:27,840 --> 00:15:31,380 Ja modulo on viimeinen operaattori että aiomme puhua juuri nyt. 370 00:15:31,380 --> 00:15:35,610 Se operaattori, jonka avulla voimme ottaa loput jako. 371 00:15:35,610 --> 00:15:40,630 Joten jos meillä on 4% 2, 4 jaettuna 2 on 2 jäljellä 0. 372 00:15:40,630 --> 00:15:41,740 Joten 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 4, kun olisit voinut arvata. 375 00:15:44,870 --> 00:15:48,860 Ja muistakaa käytettäessä kaikkia näitä toiminnanharjoittajat voivat käyttää PEMDAS sääntöjä. 376 00:15:48,860 --> 00:15:54,060 >> DAVID MALAN: Joten tehtävä selväksi, jos do 4% 2, miksi on, että 0, tarkalleen? 377 00:15:54,060 --> 00:15:57,480 >> MARIA: Koska 4 jaettuna 2 on 2 jäljellä 0. 378 00:15:57,480 --> 00:16:00,752 Joten modulo antaa meille että loppuosa vastustaa jakautumisen seurauksena. 379 00:16:00,752 --> 00:16:02,960 DAVID MALAN: Ja todellakin, mitä me löytää tästä apua 380 00:16:02,960 --> 00:16:05,640 sillä on, että joitakin ongelmia se ei välttämättä ole, 381 00:16:05,640 --> 00:16:08,040 jos haluat olla rajoittavat itse 382 00:16:08,040 --> 00:16:10,720 käyttää erilaisia ​​numeroita kuten 0 kautta jotain, 383 00:16:10,720 --> 00:16:13,904 voit käyttää modulo Ulottumamitan aikaisintaan kuten 2000000000 384 00:16:13,904 --> 00:16:16,320 tai 4000000000 arvo olemme puhuneet luento. 385 00:16:16,320 --> 00:16:16,870 >> MARIA: Joo. 386 00:16:16,870 --> 00:16:19,429 Ja jopa "ahne" voisimme. 387 00:16:19,429 --> 00:16:21,345 DAVID MALAN: Kyllä, Harjoitus yksi, samoin. 388 00:16:21,345 --> 00:16:22,520 MARIA: Joo, kiva. 389 00:16:22,520 --> 00:16:24,340 DAVID MALAN: Hyvä vihje. 390 00:16:24,340 --> 00:16:25,750 MARIA: Anteeksi. 391 00:16:25,750 --> 00:16:28,590 Boolean expressions-- niin Boolen operaattoreita, 392 00:16:28,590 --> 00:16:31,770 aiomme puhua kaikista Näiden että näet täällä. 393 00:16:31,770 --> 00:16:35,310 Joten nyt, meillä on kaksi yhtäsuuruusmerkit listattu tasavertaisina. 394 00:16:35,310 --> 00:16:38,650 Joten ne ovat vertailun. 395 00:16:38,650 --> 00:16:40,830 Toistaiseksi olemme vain nähnyt yhtäläisyysmerkki. 396 00:16:40,830 --> 00:16:44,870 Silloin asetamme arvon muuttujaan. 397 00:16:44,870 --> 00:16:50,160 Joten jos olemme nähneet int n = 5, niin olemme määrittäneet 5 muuttujan n. 398 00:16:50,160 --> 00:16:55,600 Mutta jos haluamme käyttää == varten vertailu, voimme tarkistaa, jos n == 5. 399 00:16:55,600 --> 00:16:58,310 Ja jos n == 5, niin se on totta. 400 00:16:58,310 --> 00:17:01,950 >> Niin Boolen operaattorit antaa meille, pohjimmiltaan, 401 00:17:01,950 --> 00:17:04,670 arvioida Boolen lausekkeet Oikein vai väärin. 402 00:17:04,670 --> 00:17:07,819 Joten ei equals-- meillä huutomerkki ja tasavertaisina. 403 00:17:07,819 --> 00:17:14,240 Jotta voisimme myös tarkistaa, jos n ei vastaa 5-- niin n! = 5. 404 00:17:14,240 --> 00:17:17,640 Vähemmän kuin vähemmän kuin tai yhtä suuri kuin, suurempi, suurempi tai yhtä suuri kuin, 405 00:17:17,640 --> 00:17:20,720 ja sitten meillä on looginen JA ja looginen TAI. 406 00:17:20,720 --> 00:17:24,060 Ja ne antavat meille mahdollisuuden arvioida useita Boolen operaattoreilla yhdessä 407 00:17:24,060 --> 00:17:27,930 periaatteessa tulla yhdessä yksi koko ehtolauseke. 408 00:17:27,930 --> 00:17:34,970 Joten jos haluamme löytää useita, sanovat, joka on suurempi kuin 5, mutta vähemmän kuin 15 409 00:17:34,970 --> 00:17:39,810 Samalla, me käyttäisimme looginen AND-operaattori nähdä, jos n on 410 00:17:39,810 --> 00:17:42,937 yli 5 && n alle 15. 411 00:17:42,937 --> 00:17:44,770 DAVID MALAN: Ja tässä, liian, se on helppoa 412 00:17:44,770 --> 00:17:47,290 varhain vahingossa Käytä vain yksi et-merkki 413 00:17:47,290 --> 00:17:48,572 tai yksi pystysuora palkki. 414 00:17:48,572 --> 00:17:51,280 Ja toivottavasti kääntäjä huutaa sinulle, koska ne todella 415 00:17:51,280 --> 00:17:52,530 on hyvin erilainen merkitys. 416 00:17:52,530 --> 00:17:55,660 Niille utelias, he käytetään bittioperaatioita, 417 00:17:55,660 --> 00:17:57,197 toimivat yksittäisiä bittejä. 418 00:17:57,197 --> 00:17:58,780 Mutta et halua pari niistä täällä. 419 00:17:58,780 --> 00:18:01,560 Ja Super Tärkeää on, että Ensimmäinen, yhtäläisyysmerkki, 420 00:18:01,560 --> 00:18:05,270 joka on yhtäsuuruusoperaattorin kuin vastustaa Sijoitusoperaattori. 421 00:18:05,270 --> 00:18:08,552 >> MARIA: Ja pystypalkki on välissä Poista ja paluu. 422 00:18:08,552 --> 00:18:09,260 DAVID MALAN: Kyllä. 423 00:18:09,260 --> 00:18:11,420 Tyypillinen Yhdysvaltain näppäimistö. 424 00:18:11,420 --> 00:18:13,190 >> MARIA: Jep. 425 00:18:13,190 --> 00:18:15,890 Joten hypätä suoraan ehtolauseet. 426 00:18:15,890 --> 00:18:18,300 Scratch, olet jo nähnyt, luultavasti, 427 00:18:18,300 --> 00:18:22,730 jos lausunnot, joiden avulla voit tarkista jos jotain on totta, niin 428 00:18:22,730 --> 00:18:23,660 tehdä jotain muuta. 429 00:18:23,660 --> 00:18:28,410 Joten ehkä halunnut tarkistaa, jos sprite on 430 00:18:28,410 --> 00:18:31,410 koskettaa joitakin muita sprite tai raja näytön. 431 00:18:31,410 --> 00:18:35,520 Ja sitten ehkä halunnut lopettaa pelin tai tehdä jotain muuta. 432 00:18:35,520 --> 00:18:40,000 Joten syntaksi että on "jos (ehto)." 433 00:18:40,000 --> 00:18:46,820 Joten jos Sprite koskettaa jotain, niin älä sisällä aaltosulkeiden. 434 00:18:46,820 --> 00:18:48,980 >> Sitten meillä on if-else lausuntoja. 435 00:18:48,980 --> 00:18:54,080 Else antaa meille mahdollisuuden tehdä jotain jos sillä edellytyksellä, että me 436 00:18:54,080 --> 00:18:55,870 tarkista alussa ei ole totta. 437 00:18:55,870 --> 00:19:01,530 Joten jos Sprite koskettaa raja tehdä tämän, muun tehdä jotain muuta. 438 00:19:01,530 --> 00:19:04,030 Niin muuten tehdä jotain muuta. 439 00:19:04,030 --> 00:19:07,530 Sitten meillä on lyhyt esimerkki tästä. 440 00:19:07,530 --> 00:19:11,551 Joten jos (military_time <12), me haluavat printf "Hyvää huomenta!" 441 00:19:11,551 --> 00:19:13,300 Muuten aiomme printf "Hyvää iltaa!" 442 00:19:13,300 --> 00:19:14,860 Basic esimerkki. 443 00:19:14,860 --> 00:19:15,680 >> DAVID MALAN: Hyvä. 444 00:19:15,680 --> 00:19:16,760 >> MARIA: Cool. 445 00:19:16,760 --> 00:19:18,560 Joten nyt meillä on kytkin lausuntoja. 446 00:19:18,560 --> 00:19:21,960 Switch lausuntoja yleensä voi jotta voisimme tehdä paljon sama asia 447 00:19:21,960 --> 00:19:25,070 että olemme juuri puhuneet noin, jos lausuntoja. 448 00:19:25,070 --> 00:19:29,440 Esimerkiksi juuri nyt meillä yleinen muoto kytkin selvitys 449 00:19:29,440 --> 00:19:33,870 joka antaa meille mahdollisuuden ottaa muuttuja nimeltä n 450 00:19:33,870 --> 00:19:37,670 ja vertaa sitä paljon eri arvoja, jotka tässä me 451 00:19:37,670 --> 00:19:40,010 ovat vaatineet VAKIO 1, constant2. 452 00:19:40,010 --> 00:19:41,150 Meillä voi olla paljon enemmän. 453 00:19:41,150 --> 00:19:42,930 Ja ne kutsutaan tapauksissa. 454 00:19:42,930 --> 00:19:46,280 >> Joten jos meillä on kytkin statement-- ja tämä toimii 455 00:19:46,280 --> 00:19:50,580 vain integers-- meillä muuttuja tässä tapauksessa se on n. 456 00:19:50,580 --> 00:19:53,840 Jos muuttuja n on yhtä VAKIO 1, me 457 00:19:53,840 --> 00:19:59,720 tulee suorittaa joitakin koodinpätkän tai jotain, että haluamme tehdä. 458 00:19:59,720 --> 00:20:01,280 Ja sitten me murtaa. 459 00:20:01,280 --> 00:20:04,820 Joten tauko merkitsee sitä, että kytkin selvitys 460 00:20:04,820 --> 00:20:08,120 pysähtyy täytäntöönpanovaltion jos n on VAKIO 1, 461 00:20:08,120 --> 00:20:09,752 ja sitten ohjelma jatkuu. 462 00:20:09,752 --> 00:20:11,835 Se poistuu ulos kytkin selvitys ja se tulee 463 00:20:11,835 --> 00:20:13,520 edelleen tehdä jotain muuta. 464 00:20:13,520 --> 00:20:17,204 >> Jos, kuitenkin, n ei ole yhtä suuri kuin VAKIO 1, sitten asia constant2 465 00:20:17,204 --> 00:20:17,870 tarkistetaan. 466 00:20:17,870 --> 00:20:21,750 Joten jos n on constant2, että muut koodinpätkä toteutetaan. 467 00:20:21,750 --> 00:20:23,850 Ja sitten se tulee tauko jos se on yhtä suuri kuin se. 468 00:20:23,850 --> 00:20:27,580 Ja sitten voimme olla also-- ei väistämättä, though-- oletuksena tapauksessa 469 00:20:27,580 --> 00:20:32,290 joka tapahtuu, jos N ei ole sama kuin tapauksiin, että olet luetellut. 470 00:20:32,290 --> 00:20:35,400 Ja oletuksena tapauksessa, me myös ei tarvitse tauon välttämättä 471 00:20:35,400 --> 00:20:39,271 koska kytkin selvitys tietää että se tarvitsee päättyvät oletuksena 472 00:20:39,271 --> 00:20:40,270 jos näin on. 473 00:20:40,270 --> 00:20:42,140 >> DAVID MALAN: Mutta tyylillisesti, Olemme aina laittaa sen sinne. 474 00:20:42,140 --> 00:20:42,540 >> MARIA: Joo. 475 00:20:42,540 --> 00:20:42,710 >> DAVID MALAN: Joo. 476 00:20:42,710 --> 00:20:44,750 Joten varsinkin kun alkaa, varsinkin jos joukossa vähemmän 477 00:20:44,750 --> 00:20:47,458 mukava, olisin henkilökohtaisesti vain suosittelevat kiinni jossittelua 478 00:20:47,458 --> 00:20:51,564 ja IFS-elses ja if-else-if-elses ja niin edelleen, jos vain 479 00:20:51,564 --> 00:20:53,480 koska he hieman yksinkertaisempi. 480 00:20:53,480 --> 00:20:56,142 Tämä on mukava optimointi, tai joskus jopa esteettisesti se 481 00:20:56,142 --> 00:20:57,350 tekee koodin luettavuutta. 482 00:20:57,350 --> 00:20:59,599 Ja itse asiassa, luultavasti Syyslukukauden näemme ongelma 483 00:20:59,599 --> 00:21:02,504 vahvistettu, jos se vain näyttää paremmalta ja helpompi lukea ihmisille 484 00:21:02,504 --> 00:21:03,670 käyttämällä kytkin selvitys. 485 00:21:03,670 --> 00:21:05,460 Mutta älä ole huolissasi kiinni tämän liian aikaisin. 486 00:21:05,460 --> 00:21:05,680 >> MARIA: Joo. 487 00:21:05,680 --> 00:21:08,840 Jos sinulla on paljon jos lausunnot, se voi vain olla helppolukuinen. 488 00:21:08,840 --> 00:21:10,965 Se ei ehkä ole kovin nopea voit mennä läpi. 489 00:21:10,965 --> 00:21:13,230 Joten kytkin lausunnot voi olla erittäin hyödyllinen, samoin. 490 00:21:13,230 --> 00:21:17,900 Ja myös, älä remember-- älä unohda laittaa taukoja siellä. 491 00:21:17,900 --> 00:21:20,330 >> DAVID MALAN: Älä muistaa tämä. 492 00:21:20,330 --> 00:21:24,890 >> MARIA: Koska niin saatat pudota kautta yhdestä asian toisen. 493 00:21:24,890 --> 00:21:27,930 Joten sanotaan, että asia VAKIO 1 ei ollut break-lause siinä. 494 00:21:27,930 --> 00:21:31,920 Sitten voisimme pudota kautta sisällä tapaus constant2. 495 00:21:31,920 --> 00:21:35,070 Ja emme halua tehdä sitä, jos olemme jo saavuttaneet asiassa VAKIO 1 496 00:21:35,070 --> 00:21:37,830 ja se on yhtä suuri kuin n. 497 00:21:37,830 --> 00:21:45,100 >> Niinpä esimerkiksi, jos meillä on muuttuva n, joka sisältää luokan numero, 498 00:21:45,100 --> 00:21:48,990 ja haluamme nähdä mitä tuo luokan is-- jos n on 50, 499 00:21:48,990 --> 00:21:51,957 aiomme tulostaa "CS50 on Johdatus Computer Science I. " 500 00:21:51,957 --> 00:21:53,040 Sitten aiomme rikkoa. 501 00:21:53,040 --> 00:21:53,920 Ja se on siinä. 502 00:21:53,920 --> 00:21:55,950 Jos, kuitenkin, n on yhtä suuri kuin 51, aiomme 503 00:21:55,950 --> 00:21:58,494 tulostaa "CS51 on Johdanto Computer Science II. " 504 00:21:58,494 --> 00:21:59,910 Sitten taas, aiomme rikkoa. 505 00:21:59,910 --> 00:22:05,080 Jos kuitenkin niin laitamme 124, 61, kaikki muu numero että saatat ajatella, 506 00:22:05,080 --> 00:22:06,890 tai ohjelma ei aio tunnustamaan, että. 507 00:22:06,890 --> 00:22:09,010 Joten se tulee sanoa, "Anteeksi, olen ole perehtynyt kyseiseen luokkaan. " 508 00:22:09,010 --> 00:22:10,009 Ja se tulee katkaista. 509 00:22:10,009 --> 00:22:12,847 DAVID MALAN: Joten voit todella nähdä jos, if, muuten ajatus tässä. 510 00:22:12,847 --> 00:22:15,430 Se on vain erilainen syntaksia ilmentävät täsmälleen sama ajatus. 511 00:22:15,430 --> 00:22:17,690 >> MARIA: Aivan. 512 00:22:17,690 --> 00:22:19,480 Nyt meillä on kolmen komponentin toimijoille. 513 00:22:19,480 --> 00:22:24,900 Joten ternäärinen operaattorit ovat kolme parts-- kunnossa, 514 00:22:24,900 --> 00:22:27,220 jotain tekemistä jos että ehto on tosi, 515 00:22:27,220 --> 00:22:29,730 ja sitten jotain tekemistä jos tämä ehto on epätosi. 516 00:22:29,730 --> 00:22:33,400 Niin näet, pohjimmiltaan, syntaksin että täällä. 517 00:22:33,400 --> 00:22:37,792 Meillä on kysymysmerkki, ja sitten the-- mitä me kutsumme tätä? 518 00:22:37,792 --> 00:22:38,750 DAVID MALAN: kaksoispiste. 519 00:22:38,750 --> 00:22:39,100 MARIA: Colon. 520 00:22:39,100 --> 00:22:39,599 Kiitos. 521 00:22:39,599 --> 00:22:41,880 Anteeksi. 522 00:22:41,880 --> 00:22:45,800 Joten tutustu esimerkiksi katso jos voimme saada tolkkua this-- 523 00:22:45,800 --> 00:22:47,840 class_num == 50. 524 00:22:47,840 --> 00:22:52,580 Joten tässä näemme Looginen operaattori == joka vertaa muuttuva class_num 525 00:22:52,580 --> 00:22:53,100 50. 526 00:22:53,100 --> 00:22:55,150 Joten class_num myymälöissä kokonaisluku. 527 00:22:55,150 --> 00:22:58,180 Ja jos kokonaisluku vastaa 50, niin olemme 528 00:22:58,180 --> 00:23:02,810 menossa tallentaa "David Malan" sisällä merkkijono professori. 529 00:23:02,810 --> 00:23:05,912 Jos luokan numero ei suuruudeltaan 50, "ei David Malan" 530 00:23:05,912 --> 00:23:07,120 tulee olemaan professori. 531 00:23:07,120 --> 00:23:08,630 >> DAVID MALAN: Kiitos. 532 00:23:08,630 --> 00:23:12,110 Ja niin tämä näyttää vastaavan mitä, sanoisit, ensi silmäyksellä? 533 00:23:12,110 --> 00:23:17,930 534 00:23:17,930 --> 00:23:19,960 >> MARIA: Minusta näyttää kuten if-else lausuntoja. 535 00:23:19,960 --> 00:23:20,709 >> DAVID MALAN: Joo. 536 00:23:20,709 --> 00:23:24,020 Ja itse asiassa, tämä on tavallaan melko yhden linjaliikennettä, 537 00:23:24,020 --> 00:23:27,520 niin sanotusti, toteuttamiseksi juuri logiikka if-else 538 00:23:27,520 --> 00:23:29,010 mutta tekee kaiken yhdellä kertaa. 539 00:23:29,010 --> 00:23:29,860 >> MARIA: Aivan. 540 00:23:29,860 --> 00:23:30,360 Joo. 541 00:23:30,360 --> 00:23:33,520 Joten jos-else lausuntoja ehkä vievät paljon tilaa. 542 00:23:33,520 --> 00:23:36,283 He saattavat olla liian pitkä jotain niin yksinkertaista kuin tämä. 543 00:23:36,283 --> 00:23:38,350 Niin tämä voi olla erittäin ytimekäs ja erittäin mukava. 544 00:23:38,350 --> 00:23:40,880 545 00:23:40,880 --> 00:23:46,820 Joten nyt olemme menossa katsot täytäntöönpanosta jotain uudestaan ​​ja uudestaan, 546 00:23:46,820 --> 00:23:50,060 joten etsitään monta kertaa peräkkäin 547 00:23:50,060 --> 00:23:53,510 ja jatkaa sitten tehdä jotain kun taas ehto on tosi. 548 00:23:53,510 --> 00:23:56,740 Joten tämä tuo meidät hienosti samalla silmukoita. 549 00:23:56,740 --> 00:23:59,270 >> Vasemmalle, olemme ensimmäinen samalla silmukka. 550 00:23:59,270 --> 00:24:03,840 Joten vaikka jokin on totta, tehdä jotain uudestaan ​​ja uudestaan. 551 00:24:03,840 --> 00:24:08,850 Joten varmista huomata, että meidän ehto täällä on validoitu yläreunassa. 552 00:24:08,850 --> 00:24:14,150 Kun taas meidän toinen loop-- kutsumme että tee-aikaa loop-- teemme jotain, 553 00:24:14,150 --> 00:24:15,890 sitten tarkistaa kunnossa. 554 00:24:15,890 --> 00:24:17,980 Ja jos tätä edellytystä on edelleen totta, 555 00:24:17,980 --> 00:24:20,150 menemme takaisin ja tehdä asia uudelleen. 556 00:24:20,150 --> 00:24:23,360 Joten suurin ero on, jos ehto tarkistetaan. 557 00:24:23,360 --> 00:24:29,260 Ja koodi voi koskaan olla suoritetaan, jos ehto ei 558 00:24:29,260 --> 00:24:30,430 totta samalla silmukka. 559 00:24:30,430 --> 00:24:33,050 Kun taas tee-aikaa silmukka, meillä on koodi 560 00:24:33,050 --> 00:24:35,380 että suoritetaan aina vähintään kerran. 561 00:24:35,380 --> 00:24:37,470 Ja sitten taas kunnossa on edelleen totta, 562 00:24:37,470 --> 00:24:39,960 voimme mennä takaisin ja iteroida uudelleen sisälle. 563 00:24:39,960 --> 00:24:43,625 Miksi luulet meidän olisi käyttää do-while-silmukka yli while-silmukka? 564 00:24:43,625 --> 00:24:48,221 565 00:24:48,221 --> 00:24:48,720 Oikea. 566 00:24:48,720 --> 00:24:52,600 Joten jos haluamme kysymään käyttäjä jonkinlaista tulon, 567 00:24:52,600 --> 00:24:55,400 jos haluamme kysyä heiltä syöttää nimensä, 568 00:24:55,400 --> 00:24:57,342 haluamme ainakin kysyä niitä kerran. 569 00:24:57,342 --> 00:24:59,050 Ja jos he eivät anna että nimi, emme ole 570 00:24:59,050 --> 00:25:00,740 aio kysyä niitä uudelleen koska me jo tunnemme. 571 00:25:00,740 --> 00:25:02,656 Mutta jos ne eivät anna niiden nimi, tai jos ne 572 00:25:02,656 --> 00:25:05,787 kirjoita jotain, joka on ei tietenkään nimi, 573 00:25:05,787 --> 00:25:08,120 haluamme kuitenkin jatkaa pyytää niitä heidän nimensä. 574 00:25:08,120 --> 00:25:10,710 >> DAVID MALAN: Ja luento meillä oli yksi näin kanssa saada positiivinen int 575 00:25:10,710 --> 00:25:13,550 Esimerkiksi, kun ei ole mitään tarkista ensin, koska et ole edes 576 00:25:13,550 --> 00:25:14,190 saanut int. 577 00:25:14,190 --> 00:25:16,680 Joten haluamme tehdä this-- saada int alkaen user-- 578 00:25:16,680 --> 00:25:18,860 sitten tarkistaa se, ehkä, uudestaan ​​ja uudestaan ​​ja uudestaan. 579 00:25:18,860 --> 00:25:21,030 >> MARIA: Aivan. 580 00:25:21,030 --> 00:25:22,060 Saat loops-- OK. 581 00:25:22,060 --> 00:25:25,842 Silmukoita ansiosta voimme tehdä melkein täsmälleen sama asia, samoin. 582 00:25:25,842 --> 00:25:27,300 Se on itse asiassa täsmälleen sama asia. 583 00:25:27,300 --> 00:25:30,190 Joten ei ole mitään, että voit tehdä silmukoita 584 00:25:30,190 --> 00:25:32,840 että et voi tehdä samalla silmukoita. 585 00:25:32,840 --> 00:25:36,900 Mutta silmukoita voi tuntua hieman hieman monimutkaisempi syntaktisesti 586 00:25:36,900 --> 00:25:39,730 koska ne ovat kolme osia mitä 587 00:25:39,730 --> 00:25:42,990 oli ennen vain kunnossa taas silmukoita. 588 00:25:42,990 --> 00:25:48,260 Joten ensimmäinen osa, että olet meri, vasen-useimmat, olemme "int kääpiöt = 0." 589 00:25:48,260 --> 00:25:51,490 Joten tämä on, jos me alustaa meidän muuttuja. 590 00:25:51,490 --> 00:25:55,210 >> Sitten meillä on puolipiste ja "kääpiöt <7." 591 00:25:55,210 --> 00:25:57,100 Joten tämä on, jos ulos ehto todellisuudessa on. 592 00:25:57,100 --> 00:26:00,170 Niin sitähän meillä olisi laittaa juuri kun loop-- 593 00:26:00,170 --> 00:26:01,880 "Vaikka kääpiöt <7." 594 00:26:01,880 --> 00:26:05,380 Täällä, joka menee keskellä meidän silmukan. 595 00:26:05,380 --> 00:26:07,190 Joten "dwaves <7." 596 00:26:07,190 --> 00:26:11,350 Ja sitten meidän viimeinen osa on "kääpiöt ++" mikä on kun päivitämme muuttuja. 597 00:26:11,350 --> 00:26:15,470 Joten tärkeintä ymmärrettävä, että tämä 598 00:26:15,470 --> 00:26:22,010 ei mene läpi tämä silmukka seitsemän kertaa ja toteuttaa seitsemän kertaa. 599 00:26:22,010 --> 00:26:24,020 Joten meillä on seitsemän kääpiöiden, ja ne ovat kaikki 600 00:26:24,020 --> 00:26:26,020 aio sanoa, "Olen täällä auttaa sinua, Lumikki " 601 00:26:26,020 --> 00:26:28,860 koska ne ovat valmiita auttaa Snow White. 602 00:26:28,860 --> 00:26:33,600 >> Kanssa samalla silmukoita, olisimme tehneet alustuksen ja päivittäminen 603 00:26:33,600 --> 00:26:37,490 ei sisällä kunnossa, jälleen, mutta joko ennen tai sisällä while-silmukka 604 00:26:37,490 --> 00:26:40,210 varmistaa, että we-- koska tarvitsemme aina niitä osia. 605 00:26:40,210 --> 00:26:42,835 Joten varmista, että meillä on heitä, me olis vielä lisännyt ne 606 00:26:42,835 --> 00:26:44,580 on, mutta ei sulkujen sisään. 607 00:26:44,580 --> 00:26:47,288 >> DAVID MALAN: Ja niin se näyttää like-- luento, esimerkiksi, 608 00:26:47,288 --> 00:26:50,250 Olen melkein aina käyttää, kuten, i ja n ja melko tylsä ​​muuttujia. 609 00:26:50,250 --> 00:26:53,050 Näyttää siltä, ​​voit käyttää enemmän taitavasti nimetty muuttujia, liian. 610 00:26:53,050 --> 00:26:56,300 >> MARIA: Joo, se on todella mukava käyttää hieman enemmän kuvaileva muuttujia 611 00:26:56,300 --> 00:26:59,400 koska varsinkin jos joku muu on lukee code-- ehkä olet luokkalainen 612 00:26:59,400 --> 00:27:00,940 tai jos olet yhteistyötä kanssa somebody-- 613 00:27:00,940 --> 00:27:03,481 haluat varmistaa, että ne ymmärtää, mitä olet tekemässä. 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 Joten tämä on jotain hyvin funky-- silmukan sisällä silmukka. 617 00:27:11,435 --> 00:27:13,060 En tiedä, jos olemme nähneet tämän ennenkin. 618 00:27:13,060 --> 00:27:13,830 Luultavasti ei. 619 00:27:13,830 --> 00:27:17,750 Mutta voimme todella olla this-- joten silmukoita sijasta silmukoita. 620 00:27:17,750 --> 00:27:25,130 Joten ei kukaan halua ehkä kävellä minua läpi mitä täällä tapahtuu? 621 00:27:25,130 --> 00:27:28,240 622 00:27:28,240 --> 00:27:29,490 DAVID MALAN: Otan puukottaa. 623 00:27:29,490 --> 00:27:29,970 MARIA: Cool. 624 00:27:29,970 --> 00:27:30,636 DAVID MALAN: OK. 625 00:27:30,636 --> 00:27:34,690 Joten, spoiler-- haluamme tulostaa tavaraa se näytön oikeassa alakulmassa 626 00:27:34,690 --> 00:27:35,190 siellä. 627 00:27:35,190 --> 00:27:35,450 >> MARIA: Oikea. 628 00:27:35,450 --> 00:27:35,710 Joo joo. 629 00:27:35,710 --> 00:27:38,043 >> DAVID MALAN: Joten olemme juuri esittää, että näyte tuotanto siellä. 630 00:27:38,043 --> 00:27:42,590 Voin siis päätellä ylin silmukka että olet 631 00:27:42,590 --> 00:27:45,680 iteroimalla yli rivit syrjäisimpien silmukan, niin sanoakseni. 632 00:27:45,680 --> 00:27:48,107 Ja olet iteroimalla yli palstoja sisin silmukka. 633 00:27:48,107 --> 00:27:50,190 Ja intuitiivisesti, tämä toivottavasti järkevää 634 00:27:50,190 --> 00:27:52,070 koska luonteen mukaan jokainen ohjelma olemme nähneet 635 00:27:52,070 --> 00:27:55,570 ennen, printf, joka on toiminto käytämme, lopulta, 636 00:27:55,570 --> 00:27:58,190 on mahdollisuus tulostaa tavaraa ulos olennaisesti rivi riviltä. 637 00:27:58,190 --> 00:27:59,960 Kuten, kun olet ulos uusi linja, siellä 638 00:27:59,960 --> 00:28:02,876 ei kaksinkertaistaa takaisin ja tulostus jotain suurempi näyttö, ainakin 639 00:28:02,876 --> 00:28:04,530 ei käytä printf näin. 640 00:28:04,530 --> 00:28:07,750 >> Ja niin tältä osin, se tekee mielessä, että uloin silmukka 641 00:28:07,750 --> 00:28:10,930 olisi viittaavat rivit koska kunkin annetun rivillä, 642 00:28:10,930 --> 00:28:13,650 olet menossa haluavat tulostaa XXXXX, ja sitten 643 00:28:13,650 --> 00:28:15,520 siirtyä seuraavalle riville, XXXXX. 644 00:28:15,520 --> 00:28:17,317 Joten riviä etusijalla. 645 00:28:17,317 --> 00:28:19,150 Ja sitten kunkin rivi, voit tulostaa sarakkeita. 646 00:28:19,150 --> 00:28:21,160 Jos olet yrittänyt tehdä sen päinvastainen, se ei todennäköisesti 647 00:28:21,160 --> 00:28:21,690 tulla ulos kuten aiot. 648 00:28:21,690 --> 00:28:22,190 >> MARIA: Joo. 649 00:28:22,190 --> 00:28:24,950 Emme voineet mennä takaisin edellisen rivin kanssa printf. 650 00:28:24,950 --> 00:28:27,658 >> DAVID MALAN: Ja mikä mielenkiintoista per nykypäivän chat mittakaavaa, 651 00:28:27,658 --> 00:28:31,600 todella, että rivi on int joka on ilmoitettu ylimmän silmukka. 652 00:28:31,600 --> 00:28:34,030 Mutta huomaa, että se on edelleen sisällä, niin sanoakseni, 653 00:28:34,030 --> 00:28:35,982 aaltosulkeita että heti seuraa, 654 00:28:35,982 --> 00:28:38,440 vaikka se ei ole teknisesti näissä aaltosulkeita. 655 00:28:38,440 --> 00:28:41,750 Joten rivi on varaa kokonaisuudessaan koodinpätkä, 656 00:28:41,750 --> 00:28:44,690 sisä-ulomman silmukan ja sisällä sisemmän silmukan. 657 00:28:44,690 --> 00:28:48,050 Mutta vastoin silloin, kun on sarake laajuudeltaan? 658 00:28:48,050 --> 00:28:49,810 Muuttuja sarake? 659 00:28:49,810 --> 00:28:51,310 Joo, vain sisällä silmukka. 660 00:28:51,310 --> 00:28:54,280 Ja se on OK, koska emme pääsyn se ulkopuolella sen aaltosulkeita. 661 00:28:54,280 --> 00:28:57,280 Kaikki mitä teemme on tulostaa uusi linja aivan lopussa siellä. 662 00:28:57,280 --> 00:28:58,670 Niin että itse asiassa on OK. 663 00:28:58,670 --> 00:29:03,740 >> Joten tämä on se vaikutus, se näyttää, tehdä kolme riviä ja neljä saraketta. 664 00:29:03,740 --> 00:29:04,370 >> MARIA: Oikea. 665 00:29:04,370 --> 00:29:06,270 Ensin käymme läpi ensimmäinen rivi. 666 00:29:06,270 --> 00:29:10,520 Ja juuri meidän ensimmäisessä rivissä, teemme neljä saraketta sisällä ensimmäisen rivin. 667 00:29:10,520 --> 00:29:11,980 Joten me tulostaa neljä X: n. 668 00:29:11,980 --> 00:29:15,800 Ja sitten voimme poistua silmukka, koska olemme jo tulostetaan neljä X: n. 669 00:29:15,800 --> 00:29:17,100 Ja me painamme uuden linjan. 670 00:29:17,100 --> 00:29:19,920 Ja sitten käymme läpi Sama prosessi kaksi riviä 671 00:29:19,920 --> 00:29:21,170 tehdä yhteensä kolme. 672 00:29:21,170 --> 00:29:23,530 >> DAVID MALAN: Ja on syytä huomata, se on vain artefakti fontti, se 673 00:29:23,530 --> 00:29:25,680 että näyte ulostulo näyttävät niin paljon pitempi, 674 00:29:25,680 --> 00:29:27,520 ikään kuin siellä on enemmän rivejä kuin sarakkeita. 675 00:29:27,520 --> 00:29:29,824 Mutta se on vain siksi X on pitempi kuin se on leveä. 676 00:29:29,824 --> 00:29:32,740 Siinä kaikki, mitä tapahtuu siellä, plus valkoinen tila rivien väliin. 677 00:29:32,740 --> 00:29:33,281 >> MARIA: Oikea. 678 00:29:33,281 --> 00:29:34,792 Viileä. 679 00:29:34,792 --> 00:29:35,750 DAVID MALAN: Selvä. 680 00:29:35,750 --> 00:29:39,830 Joten vilkaista ongelma asettaa yhden, ottaa kysymyksiä, ja sitten lykätä? 681 00:29:39,830 --> 00:29:40,330 Selvä. 682 00:29:40,330 --> 00:29:43,164 Joten ongelma asettaa yhden, siellä on kolme ensisijainen haasteita, lopulta. 683 00:29:43,164 --> 00:29:44,955 Mutta ensin, löydät että Harjoitus 684 00:29:44,955 --> 00:29:47,900 erittely, kuten monet psets tänä syksynä, aikoo kävellä sinua 685 00:29:47,900 --> 00:29:50,691 läpi muutaman alkulämmittelyn harjoituksia, kohta sinua ulos vähän resursseja 686 00:29:50,691 --> 00:29:52,440 että ehkä tai ei nähnyt jo. 687 00:29:52,440 --> 00:29:54,440 Esimerkiksi, CS50 on sarja shortsit, 688 00:29:54,440 --> 00:29:56,481 jotka ovat lyhyitä videoita, ei toisin tätä, mutta että 689 00:29:56,481 --> 00:29:58,460 ovat erittäin aihe specific-- ehkä viisi minuuttia, 690 00:29:58,460 --> 00:30:02,360 10 minuuttia pitkä silmukoita tai olosuhteista tai algoritmien 691 00:30:02,360 --> 00:30:04,125 tai myöhemmin enemmän syventävät opinnot, samoin. 692 00:30:04,125 --> 00:30:06,000 Ja me yleensä upottaa ne osaksi ongelma 693 00:30:06,000 --> 00:30:07,950 asetetaan niin, että opiskelijat on voimavara, jonka kanssa 694 00:30:07,950 --> 00:30:10,840 Arvostele materiaali voi olla jo keksiä luennossa tai jaksossa. 695 00:30:10,840 --> 00:30:13,220 Mutta näin se on enemmän keskittynyt ja lisää niiden ulottuvilla. 696 00:30:13,220 --> 00:30:15,928 >> Olemme myös taipumus upottaa ongelma asettaa asioita kutsutaan walkthroughs. 697 00:30:15,928 --> 00:30:20,790 Joten lähes kaikki esimerkit teen luento, lavalla täällä, me myös 698 00:30:20,790 --> 00:30:24,565 ovat shot kamera edetä enemmän hitaampi, 699 00:30:24,565 --> 00:30:28,760 intiimimpi läpivalaisu mukaan minut my laptop kyseisen koodin rivi riviltä 700 00:30:28,760 --> 00:30:31,427 niin että luokassa, käymme usein lukaista jokin tai joku 701 00:30:31,427 --> 00:30:33,260 tulee interject kanssa vastaus kysymykseen. 702 00:30:33,260 --> 00:30:35,820 Mutta se ei välttämättä upota vuonna kaikille yleisössä. 703 00:30:35,820 --> 00:30:38,230 Joten löydät koodin walkthroughs useimpien esimerkkien 704 00:30:38,230 --> 00:30:40,950 että teemme täällä luento, jotta voit voi kulkea läpi omaan tahtiin 705 00:30:40,950 --> 00:30:43,580 ja pikakelaus taaksepäin tai eteenpäin tai ohittaa kokonaan, jos haluat. 706 00:30:43,580 --> 00:30:45,356 >> Siellä on usein muutama verryttely kysymyksiä, 707 00:30:45,356 --> 00:30:47,105 pyytää sinua tavallaan vahvistavat tätä materiaali 708 00:30:47,105 --> 00:30:50,250 ja varmista, että olet mukava ennen jatkat muun PSET. 709 00:30:50,250 --> 00:30:51,700 Ja sitten, tietenkin, siellä PSET itse. 710 00:30:51,700 --> 00:30:53,450 Ja yksi niistä asioista me hyvin tietoisesti 711 00:30:53,450 --> 00:30:57,202 tehdä CS50 on lähes joka mielenkiinnoton tai älyllisesti mielenkiinnoton 712 00:30:57,202 --> 00:30:58,910 mekaaninen vaihe, että saatat joutua tekemään 713 00:30:58,910 --> 00:31:00,519 on lähes aina hyvin dokumentoitu. 714 00:31:00,519 --> 00:31:03,560 Aikana aikavälillä käymme alkaa kysyä lisää retorisia kysymyksiä 715 00:31:03,560 --> 00:31:06,187 kuten muista, miten tämä tai tuo? 716 00:31:06,187 --> 00:31:08,520 Mutta yleisesti, löydät että ongelma asettaa sinut 717 00:31:08,520 --> 00:31:10,269 kautta mekaniikka jotain niin että 718 00:31:10,269 --> 00:31:14,160 mielenkiintoinen, henkinen haasteet lopulta jää sinulle opiskelija. 719 00:31:14,160 --> 00:31:17,390 >> Että sanoi, Zamyla, jolle me pidetään viitaten tänään luento, 720 00:31:17,390 --> 00:31:20,190 on yksi meidän pitkäaikainen henkilöstö jäsen, joka omistaa myös walkthroughs 721 00:31:20,190 --> 00:31:24,520 tiettyihin PSET ongelmia, kuten Mario ja ahne, mutta ei vettä tänä vuonna. 722 00:31:24,520 --> 00:31:26,540 Ja se on näissä walkthroughs että hän usein 723 00:31:26,540 --> 00:31:29,450 tarjoaa muutamia vinkkejä ja niksejä miten edetään, koskaan kerron 724 00:31:29,450 --> 00:31:31,810 tarkalleen, mitä tehdä, mutta rather-- kuten ehto, 725 00:31:31,810 --> 00:31:35,200 jos will-- antaa sinulle ainakin pari ajatuksia, jotta se on sinun, 726 00:31:35,200 --> 00:31:37,830 lopulta, päättää miten lähestyä heitä. 727 00:31:37,830 --> 00:31:41,200 >> MARIA: tavallaan kuin korkean tason ymmärtämistä logiikan mitä 728 00:31:41,200 --> 00:31:42,220 pyydämme teitä tekemään. 729 00:31:42,220 --> 00:31:42,485 >> DAVID MALAN: Aivan. 730 00:31:42,485 --> 00:31:44,190 Ja, itse asiassa, Zamyla n walkthroughs on tarkoitus 731 00:31:44,190 --> 00:31:46,190 vastata usein esitetty kysymys siitä, missä 732 00:31:46,190 --> 00:31:48,610 do Aloin, varsinkin kun näitä pitkiä teknisiä 733 00:31:48,610 --> 00:31:51,960 hieman pelottava antanut kaikki teksti ja kuvakieli että heillä on niihin. 734 00:31:51,960 --> 00:31:54,890 >> Joten water.c löydät Kun olet suorittanut sen, 735 00:31:54,890 --> 00:31:56,920 on oikeastaan ​​melko yksinkertaista. 736 00:31:56,920 --> 00:31:58,882 Ehdottomasti olemassa joukko teistä menossa bang 737 00:31:58,882 --> 00:32:01,840 päänne seinää vasten yrittää selvittää, miksi se ei koota 738 00:32:01,840 --> 00:32:03,450 tai miksi se ei ole päällä oikein. 739 00:32:03,450 --> 00:32:05,040 Mutta kun olet tehnyt sen kanssa ja kun olet 740 00:32:05,040 --> 00:32:07,620 vietti jonkin aikaa paini tahansa vioista, että saatat olla, 741 00:32:07,620 --> 00:32:09,490 huomaat, että se on hyvin lyhyt ohjelma. 742 00:32:09,490 --> 00:32:11,770 Se voidaan tehdä muutamassa riviä koodia, joista useimmat 743 00:32:11,770 --> 00:32:15,030 olemme nähneet täällä luento jo, jos kokoat oikea rakennuspalikoita. 744 00:32:15,030 --> 00:32:16,810 >> Ja suosittelemme täällä, se tulee kysyä 745 00:32:16,810 --> 00:32:22,250 voit määrittää, kuinka monta minuuttia joku on ottaa suihku kampuksella. 746 00:32:22,250 --> 00:32:24,779 Me täsmentää ongelma asettaa virtausnopeus veden 747 00:32:24,779 --> 00:32:27,320 vuonna, kuten, alhaisen virtaaman suihku pää, aivan kuten Seinfeld leikkeen 748 00:32:27,320 --> 00:32:29,180 näimme eilen tai päinvastainen sen. 749 00:32:29,180 --> 00:32:30,971 Ja sitten sinun täytyy vain tehdä hieman matematiikkaa, 750 00:32:30,971 --> 00:32:34,710 really-- aritmeettinen käyttäen C kertoa kuinka monta, karkeasti, vesipulloja 751 00:32:34,710 --> 00:32:37,720 että vastaa jos olemme ottaen n minuutin suihku. 752 00:32:37,720 --> 00:32:41,389 >> Nyt mario.c, tämä tulee olla hieman pidempi ohjelman. 753 00:32:41,389 --> 00:32:42,930 Se on edelleen tule olemaan tämän pitkän. 754 00:32:42,930 --> 00:32:45,130 Vain muutaman rivin pidempi water.c. 755 00:32:45,130 --> 00:32:48,230 Mutta se tulee olemaan tilaisuus luoda vanhan koulun Mario 756 00:32:48,230 --> 00:32:50,670 pyramidi Super Mario Brothers tai joitakin jatko-. 757 00:32:50,670 --> 00:32:53,510 Se ei tule näyttää yhtä kauniimpi tai yhtä värikäs kuin että yksi siellä. 758 00:32:53,510 --> 00:32:56,468 Olemme juuri menossa käyttää vähän hashtags kuten olemme täällä ruudulla 759 00:32:56,468 --> 00:32:58,120 ASCII tekstiä. 760 00:32:58,120 --> 00:33:00,362 Mutta se lähentää sama ajatus. 761 00:33:00,362 --> 00:33:02,570 Ja se tulee olemaan käytettävä tätä ensi silmäyksellä 762 00:33:02,570 --> 00:33:04,720 näyttää melko simple-- vain tulostaa yksinkertainen pyramidi. 763 00:33:04,720 --> 00:33:07,345 Mutta on pari ominaisuuksia täällä, jotka ovat mielenkiintoisia. 764 00:33:07,345 --> 00:33:12,400 Huomaa, että oikeassa reunassa pyramidi todella on leveys kaksi. 765 00:33:12,400 --> 00:33:14,570 Joten ei kahden tasavertaisen korkeus sarakkeet, jotka 766 00:33:14,570 --> 00:33:16,804 tekee se vaatia hieman hieman ajatellut tehdä 767 00:33:16,804 --> 00:33:19,720 että saat että täsmälleen oikeassa, kuten eikä vain täysin kulma 768 00:33:19,720 --> 00:33:20,220 linja. 769 00:33:20,220 --> 00:33:23,340 Niin, että on hieman nurkkaan tapaus mutta vastaa varsinaisen pelin. 770 00:33:23,340 --> 00:33:27,610 >> Ja se on myös ei-ilmeinen aluksi silmäyksellä miten tulostaa valkoinen tila. 771 00:33:27,610 --> 00:33:29,430 Joten kun katson näyte ulostulo here-- 772 00:33:29,430 --> 00:33:32,440 ja se on myös spec-- se sellainen näyttää suorakulmio, 773 00:33:32,440 --> 00:33:35,120 mutta lävistäjä suorakulmio on katkaistu, 774 00:33:35,120 --> 00:33:37,320 ja se on vain välilyöntejä, niin sanoakseni. 775 00:33:37,320 --> 00:33:40,100 Ja niin usein kysyttyjä Kyse on aina, hyvin, 776 00:33:40,100 --> 00:33:43,302 miten voin siirtää hashtags yli oikealle? 777 00:33:43,302 --> 00:33:44,760 Tai miten voin tulostaa tyhjiä tiloja? 778 00:33:44,760 --> 00:33:46,860 Ja se on itse asiassa helpompaa kuin useimmat opiskelijat ajattelevat. 779 00:33:46,860 --> 00:33:47,360 Oikea? 780 00:33:47,360 --> 00:33:51,620 Voit lähentää sitä visuaalisesti vain lyömällä välilyöntiä kerran tai kahdesti 781 00:33:51,620 --> 00:33:52,700 tai kolme kertaa. 782 00:33:52,700 --> 00:33:56,260 >> Ja niin vaikka kanssa printf me melkein aina tulostaa merkkijonon tai int 783 00:33:56,260 --> 00:33:59,950 tai sana kuin "Hei, maailma "tai sarjan sanoja, 784 00:33:59,950 --> 00:34:03,560 voit myös vain tulostaa lainaus, tilaa, lainaus päättyy. 785 00:34:03,560 --> 00:34:06,320 Ja että todella antaa olet valkoinen tila siellä. 786 00:34:06,320 --> 00:34:08,330 Niin pitää tämä mielessä ja eivät overthink tätä. 787 00:34:08,330 --> 00:34:10,570 Sinulla on todella päättää rivi rivi riviltä, 788 00:34:10,570 --> 00:34:14,280 ei toisin esimerkkinne hetki sitten, kuinka moni näistä 789 00:34:14,280 --> 00:34:18,420 sarakkeet pitäisi olla välilyöntejä ja kuinka moni heistä olisi hashtags. 790 00:34:18,420 --> 00:34:21,560 Se vie hieman aikaa, mutta se on lopulta logiikka palapeli tapaisena. 791 00:34:21,560 --> 00:34:22,060 >> MARIA: Joo. 792 00:34:22,060 --> 00:34:25,060 Mutta logiikka menee rivi riviltä tulee olemaan erittäin hyödyllinen täällä. 793 00:34:25,060 --> 00:34:25,810 DAVID MALAN: Joo. 794 00:34:25,810 --> 00:34:28,976 Mielestäni näytteen koodin gave-- jopa vaikka se ei ollut täydellinen ohjelma. 795 00:34:28,976 --> 00:34:34,247 Tarvitset silti int ja tärkeimmät ja mitätön ja # include stdio.h, 796 00:34:34,247 --> 00:34:35,580 paljon kamaa luento. 797 00:34:35,580 --> 00:34:37,629 Mutta rakennuspalikat näyttävät olevan siellä. 798 00:34:37,629 --> 00:34:39,920 Ja sitten lopuksi on jotain hieman algoritmeihin. 799 00:34:39,920 --> 00:34:43,210 Joten käy ilmi, että aina kun mennä CVS tai lähikauppaan 800 00:34:43,210 --> 00:34:47,810 ja joku ojentaa sinulle kassanhoitaja laskuja tai kolikoita muutos, 801 00:34:47,810 --> 00:34:50,620 osoittautuu, että ne, ihmiset, ovatko he tiedä sitä tai ei, 802 00:34:50,620 --> 00:34:53,300 luultavasti käyttäen mitä kutsutaan ahne algoritmi, 803 00:34:53,300 --> 00:34:58,170 jolloin jos olet velkaa, sanoa, $ 21 muutoksessa koska jostain syystä 804 00:34:58,170 --> 00:35:01,580 olet ostanut jotain hyvin edullisia erittäin suuri lasku CVS, 805 00:35:01,580 --> 00:35:05,910 se olisi todella ärsyttävää, jos kassanhoitaja antoi sinulle 21 singleä tai, pahempaa 806 00:35:05,910 --> 00:35:07,629 vielä, paljon kolikoita. 807 00:35:07,629 --> 00:35:10,670 Pikemminkin, mitä järkevä ihminen on todennäköisesti aio tehdä on he aikovat 808 00:35:10,670 --> 00:35:14,224 napata $ 20- ja sitten $ 1 laskun, ja käden vain kaksi laskuja kyseisessä asiassa. 809 00:35:14,224 --> 00:35:17,390 MARIA: Niin ne pyritään minimoimaan muutos, että he antavat sinulle takaisin. 810 00:35:17,390 --> 00:35:17,850 DAVID MALAN: Aivan. 811 00:35:17,850 --> 00:35:19,540 Ja sama käsitellä kolikoita, samoin. 812 00:35:19,540 --> 00:35:23,040 Jos olet velkaa, sanoa, $ 0,50 toivottavasti et halua 50 penniä. 813 00:35:23,040 --> 00:35:25,500 Voit sen sijaan haluavat kaksi neljäsosaa, esimerkiksi. 814 00:35:25,500 --> 00:35:27,540 Nyt, tämä ei olettaa että kassa on 815 00:35:27,540 --> 00:35:29,940 tarpeeksi jokaisesta nimestä, joka hän saattaa haluta antaa sinulle. 816 00:35:29,940 --> 00:35:32,148 Mutta emme voit olettaa niin paljon ongelma. 817 00:35:32,148 --> 00:35:35,590 Ja tavoite, lopulta, on toteuttaa C-koodia ahne algoritmi. 818 00:35:35,590 --> 00:35:37,344 Joten käyttäjän sallitaan kirjoittaa kuinka paljon 819 00:35:37,344 --> 00:35:40,510 muuttaa hän on velkaa kanssa dollaria ja senttiä, jonkinlainen liukulukujen 820 00:35:40,510 --> 00:35:41,590 arvo todennäköisesti. 821 00:35:41,590 --> 00:35:45,530 Ja sitten sinun täytyy tehdä matematiikka ja selvittää algoritmisesti, hyvin, 822 00:35:45,530 --> 00:35:49,020 kuinka paljon kolikoita voin antaa voit minimaalisesti antaa sinulle 823 00:35:49,020 --> 00:35:50,270 juuri kyseisen määrän muutos. 824 00:35:50,270 --> 00:35:53,470 Mutta siellä tulee olemaan muutama hankala osia täällä, eikö? 825 00:35:53,470 --> 00:35:56,236 Kuten siellä koko epätäsmällisyys kysymys. 826 00:35:56,236 --> 00:35:56,860 MARIA: Aivan. 827 00:35:56,860 --> 00:35:59,114 Niin liukulukujen arvoilla on epätarkkuutta. 828 00:35:59,114 --> 00:36:00,780 Oliko puhumme tästä luento tänään? 829 00:36:00,780 --> 00:36:02,340 >> DAVID MALAN: Teimme viimeksi vuonna luento. 830 00:36:02,340 --> 00:36:03,506 Puhuimme epätarkkuutta. 831 00:36:03,506 --> 00:36:08,840 Ja et halua huijata käyttäjä kuinka paljon muutoksia hän on velkaa. 832 00:36:08,840 --> 00:36:11,290 Ja niin esittely, vuonna Harjoitus erittely, 833 00:36:11,290 --> 00:36:15,990 pohtimaan, lopulta, voidaan miten voit lieventää niitä epätarkkuuden 834 00:36:15,990 --> 00:36:17,280 virheitä, mahdollisesti. 835 00:36:17,280 --> 00:36:21,050 Se on vältettävissä, varmasti, sillä tulot puhumme. 836 00:36:21,050 --> 00:36:23,590 Ja, itse asiassa, pennies-- ehkä me lykätä Zamyla, 837 00:36:23,590 --> 00:36:25,136 Uskon, että temppuja siellä. 838 00:36:25,136 --> 00:36:27,760 Joten lopulta, löydät etenemisen ongelmia tällä viikolla, 839 00:36:27,760 --> 00:36:30,700 joista ensimmäinen on melko pieni, Sitten väliaine, sitten hieman suurempi. 840 00:36:30,700 --> 00:36:33,200 Mutta kaikki heistä käyttää rakennus korttelin päässä viime viikolla, 841 00:36:33,200 --> 00:36:35,280 tästä supersection, Harjoitus erittely 842 00:36:35,280 --> 00:36:36,710 asettaa sinut lukemattomia resursseja. 843 00:36:36,710 --> 00:36:41,000 Mutta silti, jos ollenkaan kamppailee, etenkin niille vähemmän mukava 844 00:36:41,000 --> 00:36:42,917 joilla ei ole aiempaa taustaa, tulla virka 845 00:36:42,917 --> 00:36:44,958 maanantaina ja tiistaina ja Keskiviikko ja torstai. 846 00:36:44,958 --> 00:36:46,950 Mene CS50 Keskustele kautta Kurssin verkkosivuilla, 847 00:36:46,950 --> 00:36:49,080 jonka kautta voit keskustella henkilöstön ja luokkatoverit. 848 00:36:49,080 --> 00:36:51,670 >> Mutta lopulta, luulen Paras neuvo on vain aloittaa aikaisin. 849 00:36:51,670 --> 00:36:54,711 Se ei ole sellaista luokkaa, että te pitäisi aloittaa psets keskiviikkona 850 00:36:54,711 --> 00:36:56,640 yö, tai pahempaa torstai-iltana. 851 00:36:56,640 --> 00:36:59,067 >> MARIA: Paras neuvoni on alkaneen maanantaina. 852 00:36:59,067 --> 00:36:59,900 DAVID MALAN: maanantaina. 853 00:36:59,900 --> 00:37:02,490 Joten jos et ole aloittanut already-- mitään. 854 00:37:02,490 --> 00:37:04,732 Mutta vaikka ei maanantai, tiistaina. 855 00:37:04,732 --> 00:37:05,690 Aikaisemmin paremmin. 856 00:37:05,690 --> 00:37:08,605 Ja se on syy Tietenkin on niin paljon myöhässä päivää on 857 00:37:08,605 --> 00:37:10,535 antaa sinulle hieman psykologista painostusta 858 00:37:10,535 --> 00:37:13,684 aloittaa aikaisemmin, mutta silti anna asiat slip kun asiat kestää kauemmin 859 00:37:13,684 --> 00:37:14,350 kuin odotit. 860 00:37:14,350 --> 00:37:17,950 >> MARIA: Ja haluat käyttää virka niin paljon kuin voit, liian. 861 00:37:17,950 --> 00:37:20,291 >> DAVID MALAN: Kaikki kysymykset? 862 00:37:20,291 --> 00:37:20,790 Selvä. 863 00:37:20,790 --> 00:37:22,930 No, miksi emme lykätä täällä? 864 00:37:22,930 --> 00:37:23,487