1 00:00:00,000 --> 00:00:12,410 >> [Musiikki soi] 2 00:00:12,410 --> 00:00:12,830 >> DAVID MALAN: Okei. 3 00:00:12,830 --> 00:00:13,370 Tervetuloa takaisin. 4 00:00:13,370 --> 00:00:16,510 Tämä on CS50, ja tämä on Viikko sitten, jatkuu. 5 00:00:16,510 --> 00:00:20,050 Joten yksi syy olemme ohimennen noin teknologiat, kuten 6 00:00:20,050 --> 00:00:24,120 Google Glass on, että ne tulevat jotain tunnetaan API, 7 00:00:24,120 --> 00:00:25,980 Application Programming Interface. 8 00:00:25,980 --> 00:00:28,830 Ja mitä tämä tarkoittaa, että oikea tiedostoja ja oikea 9 00:00:28,830 --> 00:00:32,850 dokumentointi, voit itse kirjoittaa ohjelmisto jopa laitteita kuten nämä. 10 00:00:32,850 --> 00:00:36,200 >> Ja niin mitä meillä on mielessä kohti lukukauden lopussa on, jos hanke 11 00:00:36,200 --> 00:00:39,310 mukana vaikkapa Google Glass saattaa valitus, näemme, mitä voimme tehdä 12 00:00:39,310 --> 00:00:42,220 kannalta koukkaaminen sinut joitakin raajan laitteita sekä 13 00:00:42,220 --> 00:00:46,500 julkisesti saatavilla API jotta voit todella alkaa luoda ohjelmisto 14 00:00:46,500 --> 00:00:48,630 joka toimii saman Google Glass. 15 00:00:48,630 --> 00:00:51,710 >> Toinen laite, että olemme pelanneet kanssa myöhään, että luulimme voisi olla 16 00:00:51,710 --> 00:00:53,910 hauskaa lukukauden lopussa on tämä pikku juttu täällä. 17 00:00:53,910 --> 00:00:56,860 Sitä kutsutaan Leap Motion, ja mitä olet tulleet on teknisesti 18 00:00:56,860 --> 00:01:00,280 mainos laite, mutta se ei puhu, mitä tässä 19 00:01:00,280 --> 00:01:01,240 laite pystyy. 20 00:01:01,240 --> 00:01:05,550 Ja sekin tulee API kautta jossa voit kirjoittaa ohjelmiston 21 00:01:05,550 --> 00:01:10,545 hallitsemaan omaa tietokonetta tavalla aivan kuin tämä yksi minuutin elokuva täällä. 22 00:01:10,545 --> 00:01:12,070 >> [VIDEOTOISTOSTA] 23 00:01:12,070 --> 00:02:08,002 24 00:02:08,002 --> 00:02:08,590 >> [END VIDEOTOISTOSTA] 25 00:02:08,590 --> 00:02:11,190 >> Joten nyt, tämä laite sattuu toteutetaan hieman USB 26 00:02:11,190 --> 00:02:14,290 liitin, jonka voit liittää oman tietokone, mutta en olisi yllättynyt 27 00:02:14,290 --> 00:02:17,930 jos ennen pitkää meillä on tällaisia teknologioiden seuraavan erän tietokoneet 28 00:02:17,930 --> 00:02:20,510 ja Macit niin, että voit todellakin vuorovaikutuksessa sen kanssa 29 00:02:20,510 --> 00:02:21,650 tavalla kuin että. 30 00:02:21,650 --> 00:02:24,250 Itse asiassa, mitä ajattelin tehdä, sekin on Vedin jopa hieman esittelyä 31 00:02:24,250 --> 00:02:25,860 ohjelma, joka tulee tämän ohjelmiston. 32 00:02:25,860 --> 00:02:28,700 Joten olen koonnut pienen anturin edessä minun laptop. 33 00:02:28,700 --> 00:02:32,420 >> Ja kuten näette, se on jo tajuaa että käteni on olemassa 34 00:02:32,420 --> 00:02:33,400 valvoa sitä. 35 00:02:33,400 --> 00:02:37,900 Ja kaikki tämä sovellus ei ei sutjakasti vähän asioita, kuten tämä. 36 00:02:37,900 --> 00:02:41,080 Mutta voit nähdä, että todellakin, Minulla on viisi sormea ​​siellä. 37 00:02:41,080 --> 00:02:44,270 Jos saamme sen tehdä kaikki 10, voitte kuvitella siisti piano 38 00:02:44,270 --> 00:02:45,390 sovelluksen tai kuten. 39 00:02:45,390 --> 00:02:47,820 Joten jos haluat keksiä tunnin jälkeen tänään ja leikkiä, että 40 00:02:47,820 --> 00:02:49,720 hyvin, olet tervetullut. 41 00:02:49,720 --> 00:02:52,930 Joten siitä lisää kohti lukukauden lopussa. 42 00:02:52,930 --> 00:02:54,420 >> Joten pari hallinnollisten ilmoitukset. 43 00:02:54,420 --> 00:02:58,690 Yksi, tehdä jakson perjantaina keskipäivällä klo cs60.net/section. 44 00:02:58,690 --> 00:03:01,260 Että URL on kurssin kotisivu samoin. 45 00:03:01,260 --> 00:03:04,010 Sillä välin, kuitenkin, supersections debyytti tänä sunnuntaina. 46 00:03:04,010 --> 00:03:07,800 Supersections ovat yhden kerran asia, koska se vie meidät jonkin aikaa työskennellä 47 00:03:07,800 --> 00:03:09,470 kuka on, jossa osassa ja missä. 48 00:03:09,470 --> 00:03:12,280 >> Joten tulevana sunnuntaina siellä tulee olla yksi osa niille vähemmän mukava, 49 00:03:12,280 --> 00:03:14,040 yksi osa niille mukavampaa. 50 00:03:14,040 --> 00:03:16,110 Ja ne teistä jossain välillä ovat tervetulleita mennä 51 00:03:16,110 --> 00:03:17,850 jompikumpi tai molemmat tai ei kumpikaan. 52 00:03:17,850 --> 00:03:19,150 Molemmat taltioidaan. 53 00:03:19,150 --> 00:03:22,740 He olla suurempi auditorio kuin ja tavallisesti olisi sisään 54 00:03:22,740 --> 00:03:26,110 Mutta tavoitteemme on varustaa sinulle Joissakin mukavuutta ongelma asettaa yhden, 55 00:03:26,110 --> 00:03:29,910 C: n kanssa, jossa CS50 laitteen, tämän viikonloppuna, jopa ennen kuin selvittää oman 56 00:03:29,910 --> 00:03:31,050 muodollinen osa tehtävän. 57 00:03:31,050 --> 00:03:34,700 Joten voit tavata TF ja pienempiä ryhmä sectionmates noin 58 00:03:34,700 --> 00:03:36,350 viikon ajan. 59 00:03:36,350 --> 00:03:38,200 >> Virka puolestaan ovat jatkuneet. 60 00:03:38,200 --> 00:03:41,020 Onko hyödyntää niitä tänään tai huomenna jos haluat. 61 00:03:41,020 --> 00:03:43,460 Harjoitus 0 johtuu perjantaina. 62 00:03:43,460 --> 00:03:46,680 Tämä on päivää myöhemmin kuin säännöllisesti-aikataulun torstaina. 63 00:03:46,680 --> 00:03:50,410 Mutta ongelma set 1, näet että se sisältää joitakin warm-up 64 00:03:50,410 --> 00:03:52,770 harjoituksia, jotka itse voi laajentaa 65 00:03:52,770 --> 00:03:54,660 Torstai määräaikaa perjantaihin. 66 00:03:54,660 --> 00:03:58,410 Harjoitus 1 puolestaan ​​debyytti kurssin verkkosivuilla tulevana 67 00:03:58,410 --> 00:04:02,000 Perjantai, jos haluat käpertyä sen tein aikoinaan myöhään 68 00:04:02,000 --> 00:04:04,370 Perjantai-iltana huoneeseen. 69 00:04:04,370 --> 00:04:07,660 >> Joten cs50.net/appliance on paikka, jossa saat CS50 laitteen 70 00:04:07,660 --> 00:04:09,040 että aloimme käyttää maanantaina. 71 00:04:09,040 --> 00:04:10,140 Käytämme sitä hieman tänään. 72 00:04:10,140 --> 00:04:14,040 Mutta varma, että ongelma asetettu 1 erittely käydään läpi 73 00:04:14,040 --> 00:04:16,490 Juuri mitä sinun saada, että vauhtiin. 74 00:04:16,490 --> 00:04:22,120 Joten älä ole huolissasi tee sitä ennen Pset 1, jos et halua. 75 00:04:22,120 --> 00:04:22,660 >> Selvä. 76 00:04:22,660 --> 00:04:27,180 Joten me katsoimme maanantaina lähdekoodia, mutta osana uutta 77 00:04:27,180 --> 00:04:30,895 ohjelmointikieli, nimittäin C. ja C, toisin Scratch, ei ole graafinen. 78 00:04:30,895 --> 00:04:32,270 Se ei ole palapelin palaset. 79 00:04:32,270 --> 00:04:34,450 Se on enemmän Englanti-syntaksi. 80 00:04:34,450 --> 00:04:37,140 Ja siellä on pari askelta mukana vuonna todella kirjoittaa ja käynnissä 81 00:04:37,140 --> 00:04:41,650 ohjelma C, koska lisäksi lähde koodi näin, tarvitset jotain 82 00:04:41,650 --> 00:04:42,890 kutsutaan kääntäjä. 83 00:04:42,890 --> 00:04:46,682 Ja maallikon termein, mitä ei kääntäjä tehdä meille? 84 00:04:46,682 --> 00:04:47,650 Joo. 85 00:04:47,650 --> 00:04:51,040 >> Opiskelija: Se muuntaa koodin että kirjoitat 0 ja 1 s. 86 00:04:51,040 --> 00:04:51,151 >> DAVID MALAN: Hyvä. 87 00:04:51,151 --> 00:04:53,580 Joten se muuntaa koodin, joka kirjoitamme 0 ja 1 s. 88 00:04:53,580 --> 00:04:57,730 Se muuntaa ns lähdekoodin kohdekoodi, joista jälkimmäinen näyttää 89 00:04:57,730 --> 00:04:59,140 vähän jotain tällaista. 90 00:04:59,140 --> 00:05:02,860 Ja se on teidän CPU, aivot sisällä tietokone, että koska 91 00:05:02,860 --> 00:05:06,280 luoneita näillä tietokoneilla tietää, mitä ne sekvenssit 92 00:05:06,280 --> 00:05:07,460 0 ja 1 s keskiarvo. 93 00:05:07,460 --> 00:05:08,640 >> Ehkä se tarkoittaa tulosta. 94 00:05:08,640 --> 00:05:10,265 Ehkä se tarkoittaa lisäksi. 95 00:05:10,265 --> 00:05:11,610 Ehkä se tarkoittaa vähennyslaskua. 96 00:05:11,610 --> 00:05:13,350 Ehkä se tarkoittaa, näyttää graafinen. 97 00:05:13,350 --> 00:05:16,870 On ennalta bittikuvioina että maailma on päättänyt tarkoittaa 98 00:05:16,870 --> 00:05:17,700 tiettyjä asioita. 99 00:05:17,700 --> 00:05:20,760 Mutta suurin osa tämän kurssin, me työtä korkeammalla tasolla, ja 100 00:05:20,760 --> 00:05:24,180 me itsestään selvänä, että on olemassa asioita, kuten kääntäjät, jotka voivat 101 00:05:24,180 --> 00:05:27,670 tekevät lähdekoodin toiminta tavalla aiomme. 102 00:05:27,670 --> 00:05:31,660 >> Joten ohjelma kirjoitimme ensin viime viikolla ja sitten alkoi satamaan, niin 103 00:05:31,660 --> 00:05:33,920 puhua, C viime Maanantai oli tämä. 104 00:05:33,920 --> 00:05:35,700 Kun vihreä lippu napsautetaan, tervehtimään. 105 00:05:35,700 --> 00:05:37,430 Tämä on tietysti kirjoitettu Scratch. 106 00:05:37,430 --> 00:05:40,710 Ja väitin, että vastaava ohjelma C näytti hieman 107 00:05:40,710 --> 00:05:41,520 jotain tällaista. 108 00:05:41,520 --> 00:05:45,050 >> Joten mitä ajattelimme tehdä aluksi on, Katsotaanpa erottaa toisistaan, mikä näyttää ensi 109 00:05:45,050 --> 00:05:48,790 silmäyksellä, tosin sillä melko mystistä syntaksin, mutta voit alkaa huomata 110 00:05:48,790 --> 00:05:50,160 kuvioita melko nopeasti. 111 00:05:50,160 --> 00:05:53,770 Mitä me myös tehdä tänään on tarjota sinulle henkistä mallia jostain 112 00:05:53,770 --> 00:05:57,280 kanoninen, joitakin standardin konstruktioita ohjelmoinnissa. 113 00:05:57,280 --> 00:06:00,420 Ja sitten me itse saada käsiimme likainen joitakin esimerkkejä samoin. 114 00:06:00,420 --> 00:06:04,140 >> Joten ne teistä mukavampaa, ymmärtää, että tällä viikolla ja sitten ensi 115 00:06:04,140 --> 00:06:05,940 viikko saattaa hyvinkin olla hieman tarkistaa. 116 00:06:05,940 --> 00:06:08,810 Mutta varsinkin kun hakkeri painos Ongelman set 1 sammuu 117 00:06:08,810 --> 00:06:12,330 Kurssin verkkosivuilla perjantaina, mielestäni huomaat, että vaikka täytät 118 00:06:12,330 --> 00:06:15,390 joitakin aihioita seuraavan viikon tai kaksi, voit alkaa saada yhä enemmän 119 00:06:15,390 --> 00:06:18,410 haastoi ja kohdata uusia ja uudempia asioita. 120 00:06:18,410 --> 00:06:21,310 >> Joten kiusaa tämä ohjelma eroaa muutama rivi kerrallaan. 121 00:06:21,310 --> 00:06:24,140 Huipulla, meillä on mitä teknisesti kutsutaan 122 00:06:24,140 --> 00:06:25,950 preprocessor direktiivi. 123 00:06:25,950 --> 00:06:30,510 Tämä on vain rivi koodia, joka kertoo sisällyttää tiedoston sisällön, 124 00:06:30,510 --> 00:06:35,080 nimeltään vakio I / N, vakiosyöte - tai, anteeksi, vakio I / O, standardi 125 00:06:35,080 --> 00:06:38,670 input / output,. h sisällä oman ohjelman. 126 00:06:38,670 --> 00:06:41,670 >> Eli toisin sanoen, jos kirjoitin tämän Ohjelma on yksinkertainen tekstieditori, kuten 127 00:06:41,670 --> 00:06:45,260 gedit, yksinkertaisempi vastaa jotain Microsoft Word, että 128 00:06:45,260 --> 00:06:50,970 opetusta, # include stdio.h, on vain kerron kääntäjä, tartu 129 00:06:50,970 --> 00:06:56,080 sisältö että muu tiedosto stdio.h, ja liittää ne täällä. 130 00:06:56,080 --> 00:06:57,090 >> Nyt, miksi hoito? 131 00:06:57,090 --> 00:07:01,850 Mitä me väitämme on sisällä tätä kuvaa kutsutaan stdio.h, joka on tallennettu 132 00:07:01,850 --> 00:07:05,490 jonnekin minun kovalevy, tai tässä tapauksessa jossain CS50 laite? 133 00:07:05,490 --> 00:07:06,635 Joku laittaa sen siellä minua. 134 00:07:06,635 --> 00:07:09,910 Mutta mitä se sisältää? 135 00:07:09,910 --> 00:07:13,020 >> Joo, niin se ilmoitus toiminto nimeltään printf. 136 00:07:13,020 --> 00:07:17,400 Joten printf muistuttaa toiminto näytöt sanat ja merkit ja 137 00:07:17,400 --> 00:07:20,160 numerot ruudulla minun hinnoittelua. 138 00:07:20,160 --> 00:07:21,220 Mutta en kirjoita sitä. 139 00:07:21,220 --> 00:07:22,230 CS50 ei kirjoittanut sitä. 140 00:07:22,230 --> 00:07:26,990 Joku vuosi sitten kirjoitti sen, ja he olennaisesti antoi meille resepti se 141 00:07:26,990 --> 00:07:29,110 tiedosto nimeltä stdio.h. 142 00:07:29,110 --> 00:07:33,240 Niin, että ensimmäinen rivi vain antaa minulle pääsyn toimintoihin, että joku muu 143 00:07:33,240 --> 00:07:36,500 kirjoitti vuotta sitten, joukossa jotka ovat printf. 144 00:07:36,500 --> 00:07:39,450 >> Nyt seuraava rivi aion aalto minun käsi, ainakin vasta ensi viikolla. 145 00:07:39,450 --> 00:07:43,620 Mutta nyt tiedämme, että int main (void) on olennaisesti vastaa tämän 146 00:07:43,620 --> 00:07:46,310 keltainen palapelin pala, kun Vihreä lippu napsautetaan. 147 00:07:46,310 --> 00:07:49,510 Maailman vuotta sitten päätti, että jos kirjoitat ohjelman 148 00:07:49,510 --> 00:07:53,150 kieltä kutsutaan C, aloitat ohjelman kanssa linja 149 00:07:53,150 --> 00:07:54,410 joka näyttää, että. 150 00:07:54,410 --> 00:07:57,650 Vain noin viikon ajan, se tulee tehdä mielessä mitä int on, mitä tyhjiö on. 151 00:07:57,650 --> 00:08:00,840 Mutta nyt vain ajatella sitä koska tämä keltainen palapelin pala. 152 00:08:00,840 --> 00:08:04,550 >> Nyt seuraava, meillä on kihara ahdin jälkeen toisen lähellä kihara ahdin, 153 00:08:04,550 --> 00:08:05,240 niin sanoakseni. 154 00:08:05,240 --> 00:08:07,430 Ja näemme nämä koko ohjelmia C, samoin kuin 155 00:08:07,430 --> 00:08:08,930 JavaScript ja PHP. 156 00:08:08,930 --> 00:08:11,345 Ja nämä vain koteloida liittyvien riviä koodia. 157 00:08:11,345 --> 00:08:14,600 Avoin kihara ahdin olennaisesti sanoo, tässä tulee koodia. 158 00:08:14,600 --> 00:08:17,590 Ja suljettu kihara ahdin, joka on kulma toiseen suuntaan, vain 159 00:08:17,590 --> 00:08:19,920 tarkoittaa, se on siinä vastaavan koodin. 160 00:08:19,920 --> 00:08:22,970 >> Niin mehukas linja tässä ensimmäisessä Ohjelma on viimeinen, printf, 161 00:08:22,970 --> 00:08:25,080 quote-lainaus, hello world. 162 00:08:25,080 --> 00:08:30,670 Ja pyysin asia välillä lainauksia mitä viime kerralla? 163 00:08:30,670 --> 00:08:31,285 Joten se on merkkijono. 164 00:08:31,285 --> 00:08:35,309 Ja merkkijono on vain techie termi sekvenssin 165 00:08:35,309 --> 00:08:37,169 merkkiä, sana, lause. 166 00:08:37,169 --> 00:08:39,380 Jopa yksi kirjain voisi on kaksinkertainen lainattu. 167 00:08:39,380 --> 00:08:41,840 Mutta se on sekvenssin nolla tai useampia merkkejä. 168 00:08:41,840 --> 00:08:43,650 >> Kenoviiva-n, vaikka näyttää hieman outo. 169 00:08:43,650 --> 00:08:46,290 Mutta se tarkoitti yksinkertaisesti sitä jotain yksinkertainen tietokone. 170 00:08:46,290 --> 00:08:48,060 Mitä kenoviiva-n? 171 00:08:48,060 --> 00:08:48,570 Uusi linja. 172 00:08:48,570 --> 00:08:52,490 Joten se on vain erityinen järjestys merkkejä, että maailma on päättänyt 173 00:08:52,490 --> 00:08:56,880 keino laittaa rivinvaihdon oikeassa, koska kääntäjä itse saada 174 00:08:56,880 --> 00:09:02,280 sekava, yleensä, jos hyvin ymmärrettävästi, mutta väärin, vain 175 00:09:02,280 --> 00:09:04,570 alkaa enteriä laittaa uudet linjat koodissa. 176 00:09:04,570 --> 00:09:07,150 Sinun täytyy olla hieman enemmän yksiselitteisenä kenoviiva-n. 177 00:09:07,150 --> 00:09:10,540 >> Ja näemme siellä muutamia muita tällaisia kaavoja erikoismerkkejä. 178 00:09:10,540 --> 00:09:14,340 Esimerkiksi jos halusi anna mieli vaeltaa nurkkaan tapauksessa 179 00:09:14,340 --> 00:09:18,080 Oletetaan, että halusin tulostaa lainausmerkki ruudulla 180 00:09:18,080 --> 00:09:21,840 Jostain syystä, että näyttäisi olla hieman ongelmallista, eikö? 181 00:09:21,840 --> 00:09:24,990 Koska jos laitan kaksinkertainen lainaus keskellä "Hello, world" jostain 182 00:09:24,990 --> 00:09:30,120 Syy, miksi, jotka näyttävät mahdollisesti ongelmallista? 183 00:09:30,120 --> 00:09:32,180 Se rikkoo merkkijono. 184 00:09:32,180 --> 00:09:34,700 >> Kääntäjä on vain ohjelma. 185 00:09:34,700 --> 00:09:37,210 Ohjelma kuten kääntäjä on juuri menossa lukea koodin ylhäältä alas, 186 00:09:37,210 --> 00:09:37,990 vasemmalta oikealle. 187 00:09:37,990 --> 00:09:41,850 Ja jos näkee kolme lainausmerkit sijaan kaksi, se ei tule tietää 188 00:09:41,850 --> 00:09:45,210 Jos tarkoitat, että asia vasemmalle pitäisi olla merkkijono tai asia 189 00:09:45,210 --> 00:09:46,570 oikealle tai koko juttu. 190 00:09:46,570 --> 00:09:50,560 Se on epäselvä, ja niin mitä tyypillinen kääntäjä olisi tehdä, on vain älyttömästi, 191 00:09:50,560 --> 00:09:53,710 ja antaa sinulle virheilmoituksen, ja sinut käsitellä ongelmaa. 192 00:09:53,710 --> 00:09:58,120 >> Joten koska kenoviiva-n tarkoittaa uutta line, mitä olisi vaistosi nyt 193 00:09:58,120 --> 00:10:02,610 alkaa olla jos halusi sisällyttää jotain epänormaalia kuin kaksinkertainen 194 00:10:02,610 --> 00:10:06,210 Lainaan sisällä tässä muuten lainatun merkkijono? 195 00:10:06,210 --> 00:10:07,640 Backslash-lainausmerkki. 196 00:10:07,640 --> 00:10:09,630 Ja niin näemme tämän Tällainen malli liikaa. 197 00:10:09,630 --> 00:10:12,490 >> Jos haluat tehdä jotain hieman outoa, huomaat, että 198 00:10:12,490 --> 00:10:15,060 ratkaisuja usein seurata mallia, ja kenoviiva 199 00:10:15,060 --> 00:10:17,150 tarkoittaa ohjausmerkkijonon. 200 00:10:17,150 --> 00:10:20,320 Ja se tarkoittaa vain sitä jotain erityistä että meidän täytyy edustaa 201 00:10:20,320 --> 00:10:21,060 eri tavalla. 202 00:10:21,060 --> 00:10:23,830 Kuten miten te edustatte kenoviiva hyvin, hyvitämme 203 00:10:23,830 --> 00:10:24,550 palata asiaan. 204 00:10:24,550 --> 00:10:26,930 Mutta vastaus, sekin on oikeastaan hieman selvää. 205 00:10:26,930 --> 00:10:31,080 >> Joten nyt käyttöön joitakin muita ohjelmointi konstruktioita 206 00:10:31,080 --> 00:10:31,915 että näit Scratch. 207 00:10:31,915 --> 00:10:34,790 Olet varmaan itsestäänselvyytenä jo, jos olet jo sukeltanut 208 00:10:34,790 --> 00:10:36,060 Harjoitus 0. 209 00:10:36,060 --> 00:10:40,950 Mutta katsotaanpa nyt esitellä syntaksi C Näiden muuten melko intuitiivinen 210 00:10:40,950 --> 00:10:42,300 ideoita, ainakin osa niistä. 211 00:10:42,300 --> 00:10:45,570 >> Joten tämä käsite kunnossa tai haara, kun aikaisemmin meillä 212 00:10:45,570 --> 00:10:49,330 edustaa sitä koodia, joka näytti näin vasemmalla Scratch - 213 00:10:49,330 --> 00:10:52,200 jos x on pienempi kuin y, niin sanoa - 214 00:10:52,200 --> 00:10:56,760 sijaan nyt C - haluan hioa sisään yksinkertaisimmillaan - 215 00:10:56,760 --> 00:11:01,235 Me olemme todella aikoo sanoa, jos avaa suluissa, jokin on totta - 216 00:11:01,235 --> 00:11:04,190 Boolen lauseke on menossa jos olen sanonut kunnossa - 217 00:11:04,190 --> 00:11:08,170 lähellä suluissa, niin älä mitä sisällä näitä aaltosulkeita. 218 00:11:08,170 --> 00:11:11,020 >> Niin tässäkin aaltosulkeiden ovat ikään kuin Scratch n 219 00:11:11,020 --> 00:11:12,460 U-muotoinen palapelin palaset. 220 00:11:12,460 --> 00:11:14,890 Älä mitä sisällä nämä aaltosulkeita. 221 00:11:14,890 --> 00:11:16,790 Tässä tapauksessa, Slash Slash. 222 00:11:16,790 --> 00:11:19,720 Ja huomaa tämä on eteenpäin slash, ei kenoviiva. 223 00:11:19,720 --> 00:11:21,440 Vinoviiva, vinoviiva, niille, jotka ovat ohjelmoitu 224 00:11:21,440 --> 00:11:23,370 ennen, tarkoittaa vain sitä, - 225 00:11:23,370 --> 00:11:24,190 se on vain mielipide. 226 00:11:24,190 --> 00:11:26,630 Kommentti ei ole linjaa koodia, sinänsä. 227 00:11:26,630 --> 00:11:30,200 Se on linja Englanti, että te, ihmisen, ovat kirjoittaneet itse 228 00:11:30,200 --> 00:11:33,540 ehkä muistuttaa sinua tekemään jotain, jotta selittää itse, selittää 229 00:11:33,540 --> 00:11:35,260 joku muu, mitä koodi tekee. 230 00:11:35,260 --> 00:11:37,050 Se on vain kuvaava kommentti. 231 00:11:37,050 --> 00:11:40,880 >> Nyt tietenkin voimme olla kaksisuuntainen tienhaarasta vain tekemällä tämän, 232 00:11:40,880 --> 00:11:43,930 kolmitie tienhaarasta tekemällä Tämän ja jos jatkat tätä 233 00:11:43,930 --> 00:11:47,570 kuvio, voit olla neljä, viisisuuntaisella, kuusi-tie haarautuu tie, jos 234 00:11:47,570 --> 00:11:50,150 sinun täytyy käsitellä, todellakin, että monia ehtoja. 235 00:11:50,150 --> 00:11:52,010 Ja sitten huomaa rinnakkaisuus täällä - 236 00:11:52,010 --> 00:11:55,070 if (ehto), if (ehto), ja ainoa, joka on hieman 237 00:11:55,070 --> 00:11:58,010 outoa on viimeinen, joka on juuri sitä muuta. 238 00:11:58,010 --> 00:12:01,170 Mutta jälleen kerran, tämä on sama, käsitteellisesti, mitä olemme tehneet 239 00:12:01,170 --> 00:12:04,690 jo, vaikka syntaksi kestää hieman totuttelua. 240 00:12:04,690 --> 00:12:07,730 >> Nyt, tässä esimerkissä, on joitakin muita outoja syntaksin. 241 00:12:07,730 --> 00:12:11,220 Näemme printf uudelleen, alkusulun, ja lähellä suluissa. 242 00:12:11,220 --> 00:12:13,190 Ja sisällä on noteerataan merkkijono. 243 00:12:13,190 --> 00:12:17,060 Sulkeissa yhteydessä printf, mene vasemmalla 244 00:12:17,060 --> 00:12:18,160 ja oikeus mitä? 245 00:12:18,160 --> 00:12:22,190 Mitä me kuvaamme, että lainasi merkkijonon yleisemmin? 246 00:12:22,190 --> 00:12:23,320 >> Joten se argumentti. 247 00:12:23,320 --> 00:12:26,620 Aina kun on toiminto, kuten printf, ja sen jälkeen avoimen paren ja 248 00:12:26,620 --> 00:12:30,330 lähellä kantatuote ja jotain sisällä se, onko se merkkijono, tai 249 00:12:30,330 --> 00:12:34,420 kokonaisluku, tai jotain muuta, asia välillä suluissa kutsutaan 250 00:12:34,420 --> 00:12:35,110 argumentti. 251 00:12:35,110 --> 00:12:37,910 >> Ja argumentti juuri vaikuttaa funktion käyttäytymistä. 252 00:12:37,910 --> 00:12:39,990 Tässä tapauksessa se on melko selvää miten. 253 00:12:39,990 --> 00:12:44,480 x 00:12:47,720 Ja printf on menossa tulostaa juuri sitä. 255 00:12:47,720 --> 00:12:51,590 Koska varmasti, henkilö vuotta sitten jotka toteutetaan printf ei ollut aavistustakaan 256 00:12:51,590 --> 00:12:55,000 mitä me ihmiset seuraajien aio käyttää printf varten. 257 00:12:55,000 --> 00:12:58,610 Joten siksi argumentteja olemassa, vaikuttaa käyttäytymiseen jälkeen funktion 258 00:12:58,610 --> 00:12:59,450 on kirjoitettu. 259 00:12:59,450 --> 00:13:00,780 >> Nyt, Boolen lauseke. 260 00:13:00,780 --> 00:13:02,470 Olemme nähneet näitä ennen Scratch. 261 00:13:02,470 --> 00:13:06,680 On käynyt ilmi, C voit myös "tai" ne yhteen, niin sanoakseni. 262 00:13:06,680 --> 00:13:10,930 Kaksi pystypalkit tarkoittaa, että tämä lohko koodia, tämä tehdä tämän, tulee 263 00:13:10,930 --> 00:13:15,350 suorittaa, jos ensimmäinen ehto on tosi tai toinen ehto on tosi. 264 00:13:15,350 --> 00:13:17,710 Ja vaikka et ehkä ole tehneet Tämän Scratch, voisit todellakin 265 00:13:17,710 --> 00:13:20,580 tehdä tämän Scratch, ja voit myös ilmaista itseäsi eri tavalla - 266 00:13:20,580 --> 00:13:25,300 jos ensimmäinen edellytys ja toinen kunnossa ovat totta, niin älä mitä 267 00:13:25,300 --> 00:13:27,160 sisällä aaltosulkeiden. 268 00:13:27,160 --> 00:13:31,210 >> Ja aivan kuten syrjään, syy on kaksinkertainen et-merkki ja kaksinkertainen 269 00:13:31,210 --> 00:13:34,610 pystypalkissa näemme lopulta että yksi pystysuora palkki ja 270 00:13:34,610 --> 00:13:38,710 yhden ampersand todella ovat erilaisia tarkoittaen C. Joten nyt 271 00:13:38,710 --> 00:13:41,840 että päällekkäisyyttä symbolit on tahallinen. 272 00:13:41,840 --> 00:13:45,070 >> Joten esitellä lyhyesti, tämä toinen vähän syntaksin. 273 00:13:45,070 --> 00:13:48,940 Tämä ei ole aivan tehdä yli Scratch, mutta väitän, että voin 274 00:13:48,940 --> 00:13:55,190 toteuttaa käsite, jos muuta, jos muu, jos muu, jos muu selvitys käyttäen 275 00:13:55,190 --> 00:13:56,760 jotain kutsutaan kytkin selvitys. 276 00:13:56,760 --> 00:14:00,820 Ja ainoa syy tähän on oikeasti olemassa on vain antaa sinulle, ohjelmoija, 277 00:14:00,820 --> 00:14:05,470 hieman erilainen tapa ratkaista joitakin ongelma, vaikka loogisesti 278 00:14:05,470 --> 00:14:07,340 ei anna sinulle mitään uusia ominaisuuksia. 279 00:14:07,340 --> 00:14:08,530 >> Tällä tarkoitan tätä. 280 00:14:08,530 --> 00:14:13,330 Kun sanot kytkin, ja sitten tilaa, ja sitten pari suluissa sisällä 281 00:14:13,330 --> 00:14:14,570 josta menee ilme - 282 00:14:14,570 --> 00:14:18,010 ja tämä saattaa olla hieman ei-ilmeinen aluksi, mutta tämä ei ole peruste, 283 00:14:18,010 --> 00:14:20,680 teknisesti, koska kytkin ei ole toimintoa. 284 00:14:20,680 --> 00:14:24,230 Joten nyt, vain olettaa, että käytämme Suluissa eri paikoissa 285 00:14:24,230 --> 00:14:25,250 eri syistä. 286 00:14:25,250 --> 00:14:29,310 >> Niin kytkin ilmaus tarkoittaa voin laittaa muuttuja sisällä näitä 287 00:14:29,310 --> 00:14:31,350 Suluissa jossa sanotaan ilme. 288 00:14:31,350 --> 00:14:33,090 Ja sitten jos muuttuja - 289 00:14:33,090 --> 00:14:35,400 kai sitä kutsutaan x ja se on vain kokonaisluku - 290 00:14:35,400 --> 00:14:38,900 Voin sitten luetella minun slide täällä jotain tällaista. 291 00:14:38,900 --> 00:14:41,690 Jos x on minun vaihteleva, ja minä haluavat tehdä jotain, jos x 292 00:14:41,690 --> 00:14:43,480 on 1, voin tehdä sen. 293 00:14:43,480 --> 00:14:46,660 >> Jos minä sen sijaan haluavat tehdä jotain jos x on 2, voin tehdä sen. 294 00:14:46,660 --> 00:14:50,390 Else, jos haluan tehdä jotain muuta kokonaan, voin olla oletuksena tapaus 295 00:14:50,390 --> 00:14:52,750 jolloin minä teen tämän toinen asia. 296 00:14:52,750 --> 00:14:58,730 Joten siinä mielessä, se vastaa jos x vastaa yhtä 1, if muuta, 297 00:14:58,730 --> 00:15:01,150 mutta mainitsen tässä nyt vain siksi, näemme sen uudelleen. 298 00:15:01,150 --> 00:15:03,720 Mutta nyt, vain tietää, että se on olemassa. 299 00:15:03,720 --> 00:15:04,220 >> Selvä. 300 00:15:04,220 --> 00:15:07,660 Joten nämä viimeiset pari ovat hieman monimutkainen ensi silmäyksellä, mutta ne 301 00:15:07,660 --> 00:15:09,385 jotain melko yksinkertaista. 302 00:15:09,385 --> 00:15:14,410 Silmukka C on kimpale koodi, joka vain tekee jotain uudestaan ​​ja 303 00:15:14,410 --> 00:15:15,330 uudelleen ja uudelleen. 304 00:15:15,330 --> 00:15:17,590 Ja vain ärsyttävää asia on se on, että se on hieman arvoituksellinen 305 00:15:17,590 --> 00:15:21,380 ilmaista itseäsi tässä suhdanne kuvio, mutta maailma standardoitu 306 00:15:21,380 --> 00:15:22,450 seuraavalla tavalla. 307 00:15:22,450 --> 00:15:25,760 >> Kun käytät silmukan, sinulla pari suluissa uudelleen. 308 00:15:25,760 --> 00:15:27,570 Ja huomaa kaksi puolipisteet siellä. 309 00:15:27,570 --> 00:15:34,380 Nämä kaksi puolipisteet erillistä kolmen eri ilmenemismuotoja sisällä 310 00:15:34,380 --> 00:15:35,020 suluissa. 311 00:15:35,020 --> 00:15:37,170 Yksi on ns alustukset. 312 00:15:37,170 --> 00:15:38,830 Yksi on ns kunnossa. 313 00:15:38,830 --> 00:15:40,210 Ja yksi on ns päivityksiä. 314 00:15:40,210 --> 00:15:43,240 >> Tarkasteltava abstrakti, tämä on täysin ei-ilmeinen, joten katsotaanpa 315 00:15:43,240 --> 00:15:44,630 klo konkreettinen esimerkki. 316 00:15:44,630 --> 00:15:46,720 Scratch meillä oli toista lohko. 317 00:15:46,720 --> 00:15:50,670 Ja tämä lohko sanoi toista 10 kertaa, sano "Hei, maailma." Saanen vaatia 318 00:15:50,670 --> 00:15:53,810 nyt, ja me palaamme tähän, ja Tämäkin saavat tutumpia 319 00:15:53,810 --> 00:15:57,345 olet ennen pitkää vastaa C koodi voisi sanoa olevan tämän - 320 00:15:57,345 --> 00:16:02,320 Lausuntopyyntö ja tilaa, pari suluissa, huomaa Puolipisteitä 321 00:16:02,320 --> 00:16:05,730 siellä, jotka erottavat kolme erillistä asiat, alustuksen 322 00:16:05,730 --> 00:16:07,320 kunnossa, ja päivitys. 323 00:16:07,320 --> 00:16:08,840 >> Ja arvaa mitä Ensimmäinen tekee. 324 00:16:08,840 --> 00:16:10,690 Int i = 0. 325 00:16:10,690 --> 00:16:15,120 Kovassa Maallikon termein, mikä on että tekee meille, luultavasti? 326 00:16:15,120 --> 00:16:15,590 Niin joo. 327 00:16:15,590 --> 00:16:19,630 Se julistaa muuttuja nimeltä i, ja se antaa sille mitä arvoa? 328 00:16:19,630 --> 00:16:20,220 0. 329 00:16:20,220 --> 00:16:24,280 Joten se luo muuttuja nimeltä i, tallentamiseen arvo 0 sitä. 330 00:16:24,280 --> 00:16:26,420 Se on ns alustuksen. 331 00:16:26,420 --> 00:16:29,360 >> Okei, nyt olen väittänyt ennen että keskellä asia, i 332 00:16:29,360 --> 00:16:31,760 <10, on kunnossa. 333 00:16:31,760 --> 00:16:32,730 Joten mitä teet? 334 00:16:32,730 --> 00:16:36,560 No, mitä varten silmukka tekee, kun ohjelman silmukka suoritetaan, on 335 00:16:36,560 --> 00:16:41,050 aina, kun tietokone kulkee Tämän silmukan, ylhäältä alas, ylhäältä 336 00:16:41,050 --> 00:16:43,740 pohja, aivan kuten teitte kaverit kun laskenta itsenne ja istuu alas, 337 00:16:43,740 --> 00:16:47,090 uudestaan ​​ja uudestaan ​​ja uudestaan, tietokone on menossa 338 00:16:47,090 --> 00:16:48,560 tarkistaa, että kunnossa. 339 00:16:48,560 --> 00:16:51,140 Ja jos i on pienempi kuin 10, se tulee tehdä uudelleen. 340 00:16:51,140 --> 00:16:53,100 Jos i on pienempi kuin 10, se tulee tehdä uudelleen. 341 00:16:53,100 --> 00:16:55,030 Jos i on pienempi kuin kymmenen, se tulee tehdä uudelleen. 342 00:16:55,030 --> 00:16:57,330 Niin, että vaikuttaa siltä, ​​että Toivottavasti on muuttumassa. 343 00:16:57,330 --> 00:16:59,010 Muuten olisimme päättymättömään silmukkaan. 344 00:16:59,010 --> 00:17:02,590 Ja todellakin, i on muuttumassa, koska Viimeinen asia jälkeen puolipiste siellä 345 00:17:02,590 --> 00:17:05,569 on hieman arvoituksellinen syntaksin i + +. 346 00:17:05,569 --> 00:17:07,630 Mutta ne teistä, jotka olette tehneet tämän ennen, että vain sitä, 347 00:17:07,630 --> 00:17:08,609 yksinkertaisesti mitä? 348 00:17:08,609 --> 00:17:09,730 >> Opiskelijat: [interposing ÄÄNTÄ]. 349 00:17:09,730 --> 00:17:10,740 >> DAVID MALAN: Lisää 1 i. 350 00:17:10,740 --> 00:17:11,819 Kasvattaa i. 351 00:17:11,819 --> 00:17:13,910 Joten näimme Scratch palapeli pala, että todellisuudessa. 352 00:17:13,910 --> 00:17:18,230 Se ei näyttänyt i + +, mutta vain tarkoittaa yksinkertaisesti, lisäys 353 00:17:18,230 --> 00:17:24,040 Arvostamme i 1 aina teet tämän. 354 00:17:24,040 --> 00:17:26,910 Niin kirjaimellisesti, aloitat alustetaan i 0. 355 00:17:26,910 --> 00:17:29,520 Sitten tarkistaa kunnossa. 356 00:17:29,520 --> 00:17:31,070 On 0 vähintään 10? 357 00:17:31,070 --> 00:17:31,730 Kyllä. 358 00:17:31,730 --> 00:17:32,910 Käymme läpi silmukka. 359 00:17:32,910 --> 00:17:35,150 >> Seuraava asia Väitän tietokoneen aikoo tehdä, on se menee 360 00:17:35,150 --> 00:17:35,910 kasvattamaan i. 361 00:17:35,910 --> 00:17:37,080 Joten olen nyt 1. 362 00:17:37,080 --> 00:17:37,940 Se tarkistaa kunnossa. 363 00:17:37,940 --> 00:17:39,290 On 1 vähemmän kuin 10? 364 00:17:39,290 --> 00:17:39,930 Tietenkin. 365 00:17:39,930 --> 00:17:41,030 Joten se uudelleen. 366 00:17:41,030 --> 00:17:43,580 Sitten se välein i + + 2. 367 00:17:43,580 --> 00:17:44,610 On 2 alle 10? 368 00:17:44,610 --> 00:17:45,230 Kyllä. 369 00:17:45,230 --> 00:17:46,670 Ja uudestaan ​​ja uudestaan ​​ja uudestaan. 370 00:17:46,670 --> 00:17:50,070 Ja lopulta, koska plus-plussing, saamme i vastaa 10. 371 00:17:50,070 --> 00:17:51,675 On 10 vähemmän kuin 10? 372 00:17:51,675 --> 00:17:52,990 No, ei tietenkään. 373 00:17:52,990 --> 00:17:55,320 Ja se piste, jossa silmukka vain lakkaa. 374 00:17:55,320 --> 00:17:58,320 Ja jos sinulla on enemmän koodia näytön alhaalla, tietokone 375 00:17:58,320 --> 00:18:01,620 etenee suorittaa kyseisen koodin sijasta. 376 00:18:01,620 --> 00:18:05,380 >> Joten jälleen, vaikka tämä on menossa näyttää ja tuntuu hieman oudolta 377 00:18:05,380 --> 00:18:07,830 Ensimmäinen, varmasti niille, jotka ole koskaan ohjelmoitu aiemmin, se 378 00:18:07,830 --> 00:18:11,640 kirjaimellisesti vähentää käsitteellisesti mitä on muuten hyvin 379 00:18:11,640 --> 00:18:14,330 suoraviivainen palapeli pala Scratch. 380 00:18:14,330 --> 00:18:19,130 >> Okei, lupasin, että osaisimme olla muita analogit Scratch. 381 00:18:19,130 --> 00:18:20,060 On tämäkin. 382 00:18:20,060 --> 00:18:21,700 Ja näimme tämän hetken viimeisen kerran. 383 00:18:21,700 --> 00:18:23,530 Mutta muista ikuisesti estää Scratch? 384 00:18:23,530 --> 00:18:25,490 Se vain tekee jotain ikuisesti? 385 00:18:25,490 --> 00:18:27,470 Olen väittänyt, että voisit toteuttaa tämä tällä tavalla. 386 00:18:27,470 --> 00:18:29,740 Ja voit itse toteuttaa tämän vuonna joukko eri tavoin. 387 00:18:29,740 --> 00:18:34,260 >> Mutta kun silmukka on vain erilainen miten C ilmaista itseäsi. 388 00:18:34,260 --> 00:18:37,080 Lopussa päivän, et voi tehdä mitään kun silmukka, joka olet 389 00:18:37,080 --> 00:18:38,360 voi eikä silmukka. 390 00:18:38,360 --> 00:18:41,430 Joten he lopussa päivä toiminnallisesti sama. 391 00:18:41,430 --> 00:18:43,840 Mutta sen avulla voit ilmaista itseäsi hieman eri tavalla 392 00:18:43,840 --> 00:18:44,850 seuraavalla tavalla. 393 00:18:44,850 --> 00:18:49,720 >> Kun taas silmukka, se mitä on Suluissa joka tarkistetaan uudelleen, ja 394 00:18:49,720 --> 00:18:51,050 uudelleen ja uudelleen. 395 00:18:51,050 --> 00:18:55,100 Ja heti kun lauseke on epätosi, Sitten silmukka pysähtyy täytäntöönpanosta, 396 00:18:55,100 --> 00:18:57,890 ja tietokone etenee ajaa mitä muita koodin 397 00:18:57,890 --> 00:18:59,230 ovat tiedosto. 398 00:18:59,230 --> 00:19:02,180 >> Mutta mitä mielenkiintoista täällä että olen kirjaimellisesti kirjoittanut totta. 399 00:19:02,180 --> 00:19:06,680 Ja totta on eräänlainen loogisen arvon, tosi tai epätosi. 400 00:19:06,680 --> 00:19:09,750 Joten voisi totta koskaan tulla epätosi, jos olen kirjaimellisesti 401 00:19:09,750 --> 00:19:11,970 koodannut se minun ohjelma? 402 00:19:11,970 --> 00:19:12,470 Joten ei. 403 00:19:12,470 --> 00:19:13,730 Se on vähän outoa, että tein tämän. 404 00:19:13,730 --> 00:19:15,190 Mutta totta on totta. 405 00:19:15,190 --> 00:19:16,320 Ei ole plus-plussing. 406 00:19:16,320 --> 00:19:17,820 Ei ole muuttujien käyttöä täällä. 407 00:19:17,820 --> 00:19:22,740 Joten koska olen koodannut vaikka totta, tämä silmukka on aina menossa arvioida 408 00:19:22,740 --> 00:19:24,090 uudestaan ​​ja uudestaan ​​ja uudestaan. 409 00:19:24,090 --> 00:19:27,660 >> Eli kuinka monta kertaa on hello world painoon ruudulla? 410 00:19:27,660 --> 00:19:28,170 Ikuisesti. 411 00:19:28,170 --> 00:19:31,980 Lukemattomia kertoja, kunnes akku kuolee tai muu ulkoinen 412 00:19:31,980 --> 00:19:32,730 tapahtuma tapahtuu. 413 00:19:32,730 --> 00:19:35,880 Joten tämä ei luultavasti ole paras ohjelma kirjoittaa, koska jos käyttäjä 414 00:19:35,880 --> 00:19:38,660 voi koskaan lopettaa ohjelman, se on luultavasti ole sitä, mitä on tarkoitettu. 415 00:19:38,660 --> 00:19:41,070 >> Mutta joskus, ohjelmien olisi on päättymättömään silmukkaan. 416 00:19:41,070 --> 00:19:44,050 Esimerkiksi, jos tietokoneessa on kellon, se varmasti olisi 417 00:19:44,050 --> 00:19:48,130 mukavaa, jos kellon se pitää päivittää itse ikuisesti, vaikkakin kerran 418 00:19:48,130 --> 00:19:50,500 toisen tai minuutin välein tai jotain. 419 00:19:50,500 --> 00:19:53,690 Joten vaikka ääretön silmukoita eivät ole niiden paikka. 420 00:19:53,690 --> 00:19:54,360 >> Selvä. 421 00:19:54,360 --> 00:19:55,190 Lopuksi tämä. 422 00:19:55,190 --> 00:19:57,770 Ja tämä on hieman erilainen toiminnallisesti, ja tulemme takaisin 423 00:19:57,770 --> 00:19:59,460 tämä luultavasti Pset 1. 424 00:19:59,460 --> 00:20:02,370 Mutta on olemassa toinen tyyppi silmukka kutsutaan tehdä, kun silmukka. 425 00:20:02,370 --> 00:20:07,100 Ja ainoa ero tässä välillä tehdä, kun silmukka ja vaikkapa while-silmukka, 426 00:20:07,100 --> 00:20:11,120 on, että ehdon täyttymistä valvotaan ole ennen kuin suorittaa koodia, mutta sen jälkeen 427 00:20:11,120 --> 00:20:12,080 voit suorittaa koodia. 428 00:20:12,080 --> 00:20:15,380 Joten huipulla taas silmukka, kun taas tehdä, kun 429 00:20:15,380 --> 00:20:16,560 tarkistaa sen alareunassa. 430 00:20:16,560 --> 00:20:21,370 >> Ja tämä tarkoittaa vain sitä, että kun silmukka tyypillisesti suorittaa kertaa 431 00:20:21,370 --> 00:20:24,630 tai vähemmän kertaa kuin while-silmukka? 432 00:20:24,630 --> 00:20:30,810 Mahdollisesti useamman kerran, koska eivät kun silmukka on selvästi sanoo tähän, 433 00:20:30,810 --> 00:20:34,600 minkä jälkeen vasta kohta sinua tarkistaa Jos ehto sisällä 434 00:20:34,600 --> 00:20:35,980 Suluissa on totta. 435 00:20:35,980 --> 00:20:37,940 >> Niin näemme tämän uudelleen luultavasti Pset 1. 436 00:20:37,940 --> 00:20:41,150 Jos haluat joskus tehdä jotain vähintään kerran ja sitten ehkä jonkin verran enemmän 437 00:20:41,150 --> 00:20:43,350 kertaa, tämä on hyvä rakentaa käyttää. 438 00:20:43,350 --> 00:20:46,970 Mutta kun silmukka, sen sijaan tulee tarkista sen kunto ensin. 439 00:20:46,970 --> 00:20:50,660 Ja se on siinä silmukoita C, älä samalla, kun taas, ja silmukoita. 440 00:20:50,660 --> 00:20:54,700 Ja vielä, he map melko mukavasti takaisin raapia, paitsi tämä yksi ei 441 00:20:54,700 --> 00:20:57,350 aivan sama analoginen Scratch. 442 00:20:57,350 --> 00:20:58,880 >> No, entä nyt, muuttujia? 443 00:20:58,880 --> 00:21:02,600 Joten tämä on, miten julistettu muuttuja syntaktisesti toinen päivä. 444 00:21:02,600 --> 00:21:06,440 Minulla oli int, joka väitin on kokonaisluku. 445 00:21:06,440 --> 00:21:09,690 Sitten oli muuttuja nimeltä laskuri, ja sitten puolipiste. 446 00:21:09,690 --> 00:21:11,070 Joten mitä tämä rivi koodia teet? 447 00:21:11,070 --> 00:21:14,540 Tämä on yksinkertaisesti julistaa muuttuja - 448 00:21:14,540 --> 00:21:17,940 että on, kysyy tietokone, anna minulle muistia, antaa minulle bittiä - vuonna 449 00:21:17,940 --> 00:21:19,450 jota en voi tallentaa mitä? 450 00:21:19,450 --> 00:21:20,300 Int. 451 00:21:20,300 --> 00:21:23,570 Ja puolipiste tarkoittaa vain sitä, loppuun riviä koodia. 452 00:21:23,570 --> 00:21:25,500 >> Nyt, toisella rivillä on luultavasti melko guessable. 453 00:21:25,500 --> 00:21:29,710 Mikä on laskuri = 0; teet? 454 00:21:29,710 --> 00:21:31,690 Se osoitetaan 0 torjumiseksi. 455 00:21:31,690 --> 00:21:33,470 Ja niin tämä on toinen asia joka on hieman ärsyttävää 456 00:21:33,470 --> 00:21:34,540 vs. vaikkapa algebran. 457 00:21:34,540 --> 00:21:39,110 Kun taas algebran, yhtäläisyysmerkki merkitsee vastaa, täällä C, yhtä 458 00:21:39,110 --> 00:21:40,470 merkki tarkoittaa tehtävän. 459 00:21:40,470 --> 00:21:45,380 Niin se tarkoittaa laittaa mitä on oikealla , mitä on vasemmalla. 460 00:21:45,380 --> 00:21:49,030 Ja näemme toisen symbolin, vastaa vastaa, kun haluamme todella testata 461 00:21:49,030 --> 00:21:50,570 laatua, hieman ärsyttävän. 462 00:21:50,570 --> 00:21:52,590 >> Mutta tämä on hieman tehotonta. 463 00:21:52,590 --> 00:21:55,090 Se on tavallaan harmittaa, että minulla on julistaa muuttuja ja 464 00:21:55,090 --> 00:21:56,110 sitten antaa sen arvon. 465 00:21:56,110 --> 00:21:59,380 Joten C todella antaa meille yksinkertaistamiseksi ja tee se kerralla. 466 00:21:59,380 --> 00:22:01,330 Voit ilmoittaa muuttujan vasemmalla. 467 00:22:01,330 --> 00:22:04,590 Voit silti tehdä luovutettavaksi aivan laittamalla että yhtäläisyysmerkki 468 00:22:04,590 --> 00:22:05,030 keskellä. 469 00:22:05,030 --> 00:22:08,740 Joten loppujen lopuksi, nämä kaksi ovat vastaava, mutta tämä yksi, rehellisesti, 470 00:22:08,740 --> 00:22:11,840 on luultavasti parempi tapa päästä vain koska se on hieman vähemmän 471 00:22:11,840 --> 00:22:15,040 koodia, se on hieman helpompi lukea, ja se vain kiristyy 472 00:22:15,040 --> 00:22:17,470 koodia, niin sanoakseni. 473 00:22:17,470 --> 00:22:22,120 >> Kaikki kysymykset on toistaiseksi silmukoita, Muuttujia, olosuhteista, on 474 00:22:22,120 --> 00:22:27,001 Booleans joko teknisesti tai käsitteellisesti? 475 00:22:27,001 --> 00:22:28,010 Selvä. 476 00:22:28,010 --> 00:22:30,690 Joten nyt tämä seuraava kukaan hieman mielenkiintoisemman. 477 00:22:30,690 --> 00:22:34,790 Ja tämä on esimerkki Laitoin viime aika vain kartoittaa Scratch esimerkki 478 00:22:34,790 --> 00:22:35,820 yli C. 479 00:22:35,820 --> 00:22:36,580 >> Niin funktio. 480 00:22:36,580 --> 00:22:38,110 Maallikon termein, mitä funktio? 481 00:22:38,110 --> 00:22:42,900 482 00:22:42,900 --> 00:22:44,350 Täytyy olla rohkeampia vastauksesi. 483 00:22:44,350 --> 00:22:45,020 Mikä funktio? 484 00:22:45,020 --> 00:22:46,320 >> Opiskelija: Onko jotain. 485 00:22:46,320 --> 00:22:46,780 >> DAVID MALAN: Mikä tämä on? 486 00:22:46,780 --> 00:22:48,000 >> Opiskelija: Onko jotain. 487 00:22:48,000 --> 00:22:48,710 >> DAVID MALAN: Onko jotain. 488 00:22:48,710 --> 00:22:49,000 OK. 489 00:22:49,000 --> 00:22:49,590 Aloitamme siellä. 490 00:22:49,590 --> 00:22:51,270 Joten toiminto tekee jotain. 491 00:22:51,270 --> 00:22:55,160 Joten se on koodinpätkä, joka on toteutetaan pääosin muualla, että 492 00:22:55,160 --> 00:22:56,620 todellakin tekee jotain. 493 00:22:56,620 --> 00:23:00,180 Nyt, mitä mielenkiintoista toiminto on, että se voi ottaa tulo, 494 00:23:00,180 --> 00:23:02,710 ja se voi tuottaa lähdön. 495 00:23:02,710 --> 00:23:05,090 Ja antaa todella ottaa Katsokaa tätä. 496 00:23:05,090 --> 00:23:09,030 >> Joten mies verhon takana oli tahallinen hetki sitten. 497 00:23:09,030 --> 00:23:10,320 Täällä meillä on pöytä. 498 00:23:10,320 --> 00:23:13,010 Mutta oletetaan, että tämä todella edustaa iso laatikko. 499 00:23:13,010 --> 00:23:14,940 Joten tämä on niin sanottu musta laatikko. 500 00:23:14,940 --> 00:23:19,800 Ja yleensä, suunnittelu, atk tiede, mustat laatikot vain viitata 501 00:23:19,800 --> 00:23:22,510 kappaletta toiminnallisuutta, että joku on toteutettu, ja et 502 00:23:22,510 --> 00:23:26,140 välttämättä tiedä tai välitä siitä, miten se on täytäntöön alla huppu. 503 00:23:26,140 --> 00:23:28,960 Sinä vain välitä siitä, että tämä musta laatikko, jotka me nyt aloittaa kutsuvan 504 00:23:28,960 --> 00:23:30,730 toiminto, tekee jotain. 505 00:23:30,730 --> 00:23:34,710 >> Niinpä esimerkiksi, jos tämä musta laatikko vaiheessa täällä edustaa printf, 506 00:23:34,710 --> 00:23:38,040 toiminto, tiedän Aikaisemmissa että Printf ottaa yhden tai useamman 507 00:23:38,040 --> 00:23:40,910 argumentteja, ja ensimmäinen näistä väitteet pitäisi olla merkkijono, kuten 508 00:23:40,910 --> 00:23:44,780 "Hei, maailma." No, jos olen henkilö kirjallisesti ohjelma, ja haluan 509 00:23:44,780 --> 00:23:50,460 käyttää printf, I, esimerkiksi voisi ottaa pala tyhjä paperi täällä 510 00:23:50,460 --> 00:23:55,060 mustalla tussilla ja kirjoita siihen - 511 00:23:55,060 --> 00:23:56,580 I väärin kirjoitettu "maailma" - 512 00:23:56,580 --> 00:23:59,560 H-E-L-L-O. 513 00:23:59,560 --> 00:24:04,220 >> Joten Otan mustalla tussilla ja minä kirjoittaa, niin iso ja selvästi kuin voin päälle 514 00:24:04,220 --> 00:24:07,260 tämä pala paperia "Hello, world" Ja nyt Väitän tämä on minun argumentti. 515 00:24:07,260 --> 00:24:09,740 Tämä on merkkijono edustettuina valkoiselle paperille. 516 00:24:09,740 --> 00:24:13,030 Ja minun panos nyt toiminto printf tulee olemaan tämän. 517 00:24:13,030 --> 00:24:18,250 Joten kehotan printf, kulkee Tämä väite syötteenä sitä. 518 00:24:18,250 --> 00:24:22,110 519 00:24:22,110 --> 00:24:26,740 >> Ja nyt, en tiedä miten henkilö kirjoitti printf teki sen vuosia sitten, mutta 520 00:24:26,740 --> 00:24:31,110 En tiedä sen ohjeista sen tarkoitus elämässä on tulostaa mitä 521 00:24:31,110 --> 00:24:34,410 toimittamaan sille syötteenä. 522 00:24:34,410 --> 00:24:40,630 Ja niin, vaikka tämä toteutus on tietämättä minulle 523 00:24:40,630 --> 00:24:44,170 alla huppu, nyt Näen, oh, se tehdään. 524 00:24:44,170 --> 00:24:45,740 Se on painettu jotain ruudulla. 525 00:24:45,740 --> 00:24:49,070 Ja nyt hallita ohjelmaa, jos olivat riviä koodia, olisi 526 00:24:49,070 --> 00:24:51,070 ovat nyt palanneet minulle. 527 00:24:51,070 --> 00:24:52,290 Ja niin, että Colton - 528 00:24:52,290 --> 00:24:55,370 siunatkoon hänen sydämensä, on piilossa tässä alla taulukko edessä kaikille teille - 529 00:24:55,370 --> 00:24:59,530 on tahallista, että en tiedä ja en välitä miten printf on 530 00:24:59,530 --> 00:25:00,100 täytäntöön. 531 00:25:00,100 --> 00:25:03,390 Tiedän vain, jälleen, sen dokumentointi, mitä se tekee ja miten 532 00:25:03,390 --> 00:25:05,040 Olen tarkoitus käyttää sitä. 533 00:25:05,040 --> 00:25:09,140 >> Nyt muistaa, että printf voisi saada hieman kehittyneempiä. 534 00:25:09,140 --> 00:25:12,220 Jälleen me vain puhumme vastaa Scratch n Say lohko. 535 00:25:12,220 --> 00:25:14,230 Mutta tein myös viimeisen kerran. 536 00:25:14,230 --> 00:25:17,270 Halusin tehdä minun hei-ohjelma hieman dynaaminen eikä vain kovaa 537 00:25:17,270 --> 00:25:19,740 koodi jotain "maailmassa" ja varmasti ole vaikeaa koodia jotain 538 00:25:19,740 --> 00:25:22,520 mielivaltainen, kuten D-A-V-I-D ohjelmaan. 539 00:25:22,520 --> 00:25:27,510 Halusin kysyä käyttäjältä hänen nimi, ja sitten tehdä jotain 540 00:25:27,510 --> 00:25:29,720 merkkijonon, että ne tarjoavat. 541 00:25:29,720 --> 00:25:32,690 >> Joten siellä on jotain hieman erilaista tässä. printf, hetki sitten, 542 00:25:32,690 --> 00:25:35,860 ei todellakin tehdä jotain, mutta se ei palannut minulle mitään. 543 00:25:35,860 --> 00:25:36,020 Oikea? 544 00:25:36,020 --> 00:25:38,910 Colton ei ojentaa minulle mitään takaisin, ei pala paperia. 545 00:25:38,910 --> 00:25:40,320 Oli vain sivuvaikutus. 546 00:25:40,320 --> 00:25:44,510 Oma tarjoamalla "Hello, world", kuten argumentti Colton johti 547 00:25:44,510 --> 00:25:48,420 haittavaikutus sana, joitakin sanoja, näy ruudulla. 548 00:25:48,420 --> 00:25:51,350 >> getString on kuitenkin hieman erilainen. getString on myös 549 00:25:51,350 --> 00:25:54,590 toimiakseen, mutta se palaa jotain arvoa. 550 00:25:54,590 --> 00:25:56,370 Se ei ole vain esteettinen sivuvaikutus. 551 00:25:56,370 --> 00:26:00,230 Se itse asiassa antaa minulle, henkilö soittamalla tai käyttämällä toimintoa, 552 00:26:00,230 --> 00:26:01,320 jotain takaisin. 553 00:26:01,320 --> 00:26:05,740 Joten tässä tapauksessa, getString on maksoi getString auki 554 00:26:05,740 --> 00:26:07,510 kantatuote, lähellä paren. 555 00:26:07,510 --> 00:26:11,370 Onko getString siis ottaa mitään väitteitä tai tulo? 556 00:26:11,370 --> 00:26:12,340 Ei, se ei tunnu. 557 00:26:12,340 --> 00:26:14,460 Sen tarkoitus elämässä on vain saada merkkijono. 558 00:26:14,460 --> 00:26:16,910 Se ei tarvitse tarkemmin kuin että. 559 00:26:16,910 --> 00:26:20,430 Joten anna minun mennä eteenpäin ja teeskennellä, että uudelleen, tämä musta laatikko ei printf, 560 00:26:20,430 --> 00:26:25,160 mutta getString, ja haluan, henkilö Kirjoitan tämän ohjelman avulla tai soittaa 561 00:26:25,160 --> 00:26:29,720 getString vain kirjallisesti G-E-T-S-T-R-I-N-G, avoin paren lähellä 562 00:26:29,720 --> 00:26:32,170 kantatuote, getString. 563 00:26:32,170 --> 00:26:36,920 >> Nyt minulla ei ole aavistustakaan siitä, miten CS50 henkilöstö täytäntöön getString, mutta tiedän, että 564 00:26:36,920 --> 00:26:41,240 jos en odota tarpeeksi kauan, se tekee asia alla huppu, ehkä käyttäen 565 00:26:41,240 --> 00:26:44,940 joitakin muuttujia, ehkä käyttää joitakin olosuhteissa, ehkä käyttää joitakin silmukoita, 566 00:26:44,940 --> 00:26:48,170 ehkä joidenkin muiden toimintojen, ehkä käyttäen - 567 00:26:48,170 --> 00:26:52,290 vain yrittää pysähtyvän - ehkä käyttäen joitakin muita ohjelmointia. 568 00:26:52,290 --> 00:26:55,350 Mutta jos odottaa tarpeeksi kauan - todellisuudessa tietokoneella, tämä tapahtuu 569 00:26:55,350 --> 00:26:56,270 huippunopea - 570 00:26:56,270 --> 00:26:59,910 jos en odota tarpeeksi kauan, tämä toiminto getString on menossa merkkijono 571 00:26:59,910 --> 00:27:04,060 käyttäjältä, joka on oletettavasti kirjoittamalla sitä niiden näppäimistö ja 572 00:27:04,060 --> 00:27:08,090 sitten, kun getString tehdään tulossa ne merkit käyttäjältä 573 00:27:08,090 --> 00:27:14,080 ja tallentaa ne merkkijonon, joka toiminto, getString, joutuu 574 00:27:14,080 --> 00:27:17,990 valmis minulle tuotanto, jota olen aio hakea Poiketen 575 00:27:17,990 --> 00:27:19,470 sijoitusoperaattori. 576 00:27:19,470 --> 00:27:25,390 >> Ja vaikka minä menen todellakin tulee lähtö täällä, Obosi on anteliaasti 577 00:27:25,390 --> 00:27:29,900 osallistui, tietämättä tämän etukäteen, kirjoittamalla hänen nimensä päälle tämä 578 00:27:29,900 --> 00:27:33,100 muuttuja, joka edustaa merkkijono. 579 00:27:33,100 --> 00:27:35,640 Nyt sijoitusoperaattorin tarkoittaa, vaikka vaikka tämä saattaa tuntua hieman 580 00:27:35,640 --> 00:27:38,790 tarpeeton, olen todella tarvitsevat tehdä oman kopion tästä. 581 00:27:38,790 --> 00:27:40,700 Koska vasemmalla puolella - oho! - 582 00:27:40,700 --> 00:27:45,760 huomaan lähinnä on merkkijono nimen vasemmalla puolella. 583 00:27:45,760 --> 00:27:48,280 Joten olen myös menossa tekemään oma kopio tästä. 584 00:27:48,280 --> 00:27:50,990 Ja tämä on hieman valkoinen valhe, koska näemme viikon tai kahden n 585 00:27:50,990 --> 00:27:54,100 aika, että jouset eivät oikeastaan mitä ne näyttävät olevan. 586 00:27:54,100 --> 00:27:56,700 >> Mutta nyt, tässä on palauttaa arvon. 587 00:27:56,700 --> 00:28:00,160 Tässä on oma kopio jälkeen käyttäen sijoitusoperaattori. 588 00:28:00,160 --> 00:28:01,790 Ja nyt, mitä haluan tehdä seuraavaksi? 589 00:28:01,790 --> 00:28:04,080 Meillä on nyt toinen kaksi riviä koodia. 590 00:28:04,080 --> 00:28:05,640 Joten en nyt halua kutsua printf. 591 00:28:05,640 --> 00:28:08,500 Teeskennelläänpä nyt, että musta laatikko on jälleen olemaan 592 00:28:08,500 --> 00:28:10,210 printf eikä getString. 593 00:28:10,210 --> 00:28:12,200 >> Printf tällä kertaa on menossa ottaa kuinka monta argumenttia? 594 00:28:12,200 --> 00:28:14,890 595 00:28:14,890 --> 00:28:16,770 Joten katso, se on kuin kaksi. 596 00:28:16,770 --> 00:28:18,860 On kaksi pilkkuja siellä, mutta yksi niistä pilkkuja, se on 597 00:28:18,860 --> 00:28:20,220 sisällä lainausmerkkejä. 598 00:28:20,220 --> 00:28:23,190 Joten ensimmäinen argumentti on kirjaimellisesti olemaan tämän. 599 00:28:23,190 --> 00:28:31,850 H-E-L-L-O, pilkku, prosenttia s, kenoviiva-n. 600 00:28:31,850 --> 00:28:36,560 Ja nyt olen tarjoamalla ole yhden argumentin, mutta kaksi väitettä printf. 601 00:28:36,560 --> 00:28:39,530 >> Ja mitä printf pitäisi tehdä Näiden kahden tulon jälkeen jätän ne 602 00:28:39,530 --> 00:28:42,050 argumentteina? 603 00:28:42,050 --> 00:28:45,360 Se on tarkoitus ottaa toinen niitä, jotka kutsuin nimi, joten 604 00:28:45,360 --> 00:28:48,660 Toinen paperi Kirjoitin ulos hetki sitten kutsutaan nimellä. 605 00:28:48,660 --> 00:28:53,550 Se tulee pistoke arvon sisällä Tämän muuttujan paikanvaraajassa 606 00:28:53,550 --> 00:28:58,310 % S, joten taas vain hetken aikaa, näemme sivuvaikutus 607 00:28:58,310 --> 00:29:04,180 kutsui printf, jossa nyt olemme näe "Hello, world", mutta "hei, 608 00:29:04,180 --> 00:29:04,710 Obosi. " 609 00:29:04,710 --> 00:29:08,730 >> Joten aplodit molemmille meidän vapaaehtoisille, joista vain yhdellä tiesi 610 00:29:08,730 --> 00:29:12,010 tämä olisi tapahtunut. 611 00:29:12,010 --> 00:29:12,990 Selvä. 612 00:29:12,990 --> 00:29:16,480 Niin, ehkä, yksinkertaista oli, varmasti, jos olet jo tuttuja 613 00:29:16,480 --> 00:29:20,190 niin, toivottavasti et koskaan unohtaa, että erityisesti visuaalisen miten 614 00:29:20,190 --> 00:29:21,220 toiminnot toimivat. 615 00:29:21,220 --> 00:29:23,000 >> Joten siellä on enemmän kuin vain getString. 616 00:29:23,000 --> 00:29:26,020 Sisällä CS50 kirjasto, siellä koko joukko toimintoja, jotka kaikki 617 00:29:26,020 --> 00:29:29,510 aktivoidaan vain tehdä selväksi että me kirjoitimme nämä toiminnot. 618 00:29:29,510 --> 00:29:33,610 Tyypillisesti C, lähes joka toinen toiminnon voit käyttää on pieniksi. 619 00:29:33,610 --> 00:29:36,190 Mutta me tietoisesti käyttää isoja kirjaimia vain tehdä selväksi, että nämä 620 00:29:36,190 --> 00:29:39,880 ovat apupyörät tapaisena, että me käyttää vain muutaman viikon, että 621 00:29:39,880 --> 00:29:42,890 yksinkertaistaa prosessia saada käyttäjän syötettä. 622 00:29:42,890 --> 00:29:46,740 >> CS50 kirjasto ei tee mitään että te itse voinut tehdä by 623 00:29:46,740 --> 00:29:50,230 vain käyttämällä C-koodia oldschool oppikirja. 624 00:29:50,230 --> 00:29:53,310 Mutta jälleen kerran, käytämme niitä koulutus pyörät tapaisena vain pari 625 00:29:53,310 --> 00:29:57,250 viikkoa, jotta voimme päästä eroon monimutkaisia, että huomaa pian, 626 00:29:57,250 --> 00:30:00,460 itse tehdä jotain niin suhteellisen yksinkertaista kuin saada 627 00:30:00,460 --> 00:30:02,080 panosta käyttäjä. 628 00:30:02,080 --> 00:30:05,540 >> Niin tiedät, että sinulla on oikeus to getchar, GetDouble - 629 00:30:05,540 --> 00:30:06,050 kaksinkertaistuu. 630 00:30:06,050 --> 00:30:07,050 What's - ja sitten GetFloat. 631 00:30:07,050 --> 00:30:07,600 Mitä kellua? 632 00:30:07,600 --> 00:30:09,382 Aloitetaan siellä. 633 00:30:09,382 --> 00:30:10,600 >> Opiskelija: [kuultavissa]. 634 00:30:10,600 --> 00:30:10,790 >> DAVID MALAN: Joo. 635 00:30:10,790 --> 00:30:12,120 Se on numero desimaalipilkun. 636 00:30:12,120 --> 00:30:15,930 Joten taas int on kokonaisluku, joka on vain numero 0 kautta 9, 637 00:30:15,930 --> 00:30:18,940 jotkut toistojen määrä artiklan, float on jotain 638 00:30:18,940 --> 00:30:20,100 kanssa desimaalin tarkkuudella. 639 00:30:20,100 --> 00:30:26,090 Ja kaksinkertainen puolestaan ​​on myös numeron desimaalipilkun, mutta enemmän 640 00:30:26,090 --> 00:30:28,160 jälkeiset numerot desimaalin kohta, mahdollisesti. 641 00:30:28,160 --> 00:30:30,040 >> Joten saamme takaisin tämän ennen pitkää. 642 00:30:30,040 --> 00:30:34,560 Mutta tyypillisesti kukin tämäntyyppisiä tietoja, jokainen näistä tyyppisiä muuttujia 643 00:30:34,560 --> 00:30:39,380 että kirjasto kaltaisiamme voi palata sinua, käytä eri määrä bittejä 644 00:30:39,380 --> 00:30:40,290 tallentaa tietoa. 645 00:30:40,290 --> 00:30:43,910 Tyypillisesti Char, joka tarkoittaa vain sitä yhden merkin, käyttää 8 bittiä. 646 00:30:43,910 --> 00:30:47,490 Ja se todella vastaa meidän tavu vapaaehtoisia viime viikolla, jotka 647 00:30:47,490 --> 00:30:50,410 tuli ja oli yksi ASCII-merkki kerrallaan. 648 00:30:50,410 --> 00:30:51,850 Joten Char on 8 bittiä. 649 00:30:51,850 --> 00:30:54,430 >> Float sattuu olemaan 32 bittiä, tyypillisesti. 650 00:30:54,430 --> 00:30:59,230 Ja kaksinkertainen, kuten arvata saattaa, on oikeastaan ​​64 bittiä, joka on vain enemmän, 651 00:30:59,230 --> 00:31:01,360 eli voit olla isompi numeroita tai enemmän tarkkuutta. 652 00:31:01,360 --> 00:31:03,000 Mutta jälleen kerran, siitä lisää toisella kertaa. 653 00:31:03,000 --> 00:31:06,550 GetLongLong, välin, vaikka stupidly nimeltään, on oikeastaan ​​vain 654 00:31:06,550 --> 00:31:10,770 kokonaisluku, joka on kaksi kertaa niin suuri, kaksi kertaa pitkä, mahdollisesti, sillä säännöllinen 655 00:31:10,770 --> 00:31:12,940 kokonaisluku, 64 bittiä sijasta 32. 656 00:31:12,940 --> 00:31:14,560 Ja getString olemme käyttäneet. 657 00:31:14,560 --> 00:31:18,870 >> Mutta näyttää siltä, ​​että CS50 kirjasto, joka on toteutettu, kuten tulemme näkemään, vuonna 658 00:31:18,870 --> 00:31:23,560 muodossa kaksi tiedostoa, joista toinen kutsutaan cs50.h, on kaksi muuta 659 00:31:23,560 --> 00:31:24,770 tietotyyppejä sitä. 660 00:31:24,770 --> 00:31:29,700 Booleans ei ole olemassa C. Voit simuloida niitä vain käyttämällä 0 ja 1 s 661 00:31:29,700 --> 00:31:30,850 koko ohjelmia. 662 00:31:30,850 --> 00:31:35,500 Mutta me CS50 kirjasto ovat luoneet symbolit "tosi" ja "epätosi" 663 00:31:35,500 --> 00:31:38,580 edustaa 1 ja 0, joten et on kova koodi jotain 664 00:31:38,580 --> 00:31:39,810 kirjaimellisesti kuin 1 ja 0. 665 00:31:39,810 --> 00:31:40,980 Mutta näemme ne uudelleen. 666 00:31:40,980 --> 00:31:42,330 >> String, liian, ei ole olemassa. 667 00:31:42,330 --> 00:31:44,520 Ja siksi mainitsin se on hieman valkoinen valhe nyt. 668 00:31:44,520 --> 00:31:46,660 Mutta me kuori takaisin, että kerros ennen pitkää. 669 00:31:46,660 --> 00:31:49,540 Mutta nyt, merkkijono on merkkijonoa. 670 00:31:49,540 --> 00:31:51,790 >> Samaan aikaan C, voit todellakin on erilaiset tiedot. 671 00:31:51,790 --> 00:31:53,200 Huomaa nämä ovat pieniä. 672 00:31:53,200 --> 00:31:56,960 Joten toiminnot näit hetki sitten ovat toimintoja kirjoittanut CS50, että 673 00:31:56,960 --> 00:32:02,310 palaa luoksesi arvo laskee johonkin näistä luokista. 674 00:32:02,310 --> 00:32:06,730 >> Pari huijata arkkia vain istuttaa siemen tässä. printf ei vain 675 00:32:06,730 --> 00:32:08,600 ota% s paikkamerkeiksi. 676 00:32:08,600 --> 00:32:13,490 Se vie% d desimaalin kokonaislukuja, tai% i toimisi samoin. 677 00:32:13,490 --> 00:32:19,450 % F liukuluvuiksi. % C on char, jos haluat vain liittää yhteen 678 00:32:19,450 --> 00:32:23,510 merkin osaksi alustettu merkkijono kuten olemme tehneet, voit käyttää% c. 679 00:32:23,510 --> 00:32:28,490 >> Ja sitten, hieman ärsyttävän,% lld on pitkään, pitkään desimaalin kokonaisluku, 680 00:32:28,490 --> 00:32:31,050 joka vain tarkoittaa, jos tarvitset todella suuri määrä ja käytät jotain 681 00:32:31,050 --> 00:32:35,450 nimeltään pitkään pitkään, mikä tulemme takaisin vuonna PSET, voit käyttää% LLD: lle 682 00:32:35,450 --> 00:32:40,700 Kerro printf, kytke todella iso kokonaisluku täällä tavalla sen toisen tai 683 00:32:40,700 --> 00:32:41,830 joitakin muita argumentti. 684 00:32:41,830 --> 00:32:45,700 >> Ja lopuksi, lupasin, että siellä on muutamia muita paeta 685 00:32:45,700 --> 00:32:47,670 sekvenssit printf tukee. 686 00:32:47,670 --> 00:32:49,160 Olemme nähneet kenoviiva-n. 687 00:32:49,160 --> 00:32:50,510 Backslash-r saatat nähdä. 688 00:32:50,510 --> 00:32:51,780 Se on eräänlainen vanhan koulukunnan juttu. 689 00:32:51,780 --> 00:32:55,920 Jos olet koskaan käyttänyt todella kirjoituskone vuotta sitten ja olet veti kampi 690 00:32:55,920 --> 00:32:59,810 joka ei vain kääntää pyörää Siirrä kokoonpanolla, sillä myös siirrettiin 691 00:32:59,810 --> 00:33:03,730 Koko juttu aina takaisin yli vasemmalle, hyvin, kenoviiva-r juuri 692 00:33:03,730 --> 00:33:06,480 lähinnä siirtää kohdistimen takaisin alkuun linja 693 00:33:06,480 --> 00:33:07,830 siirtämättä sitä alas. 694 00:33:07,830 --> 00:33:09,780 Mutta jälleen kerran, siitä lisää, ehkä tulevaisuudessa. 695 00:33:09,780 --> 00:33:13,670 >> Kenoviiva-lainaus, kenoviiva-lainausmerkki, kenoviiva-kenoviiva on 696 00:33:13,670 --> 00:33:16,600 ratkaisu pikku arvoitus Viittasin aiemmin. 697 00:33:16,600 --> 00:33:18,920 Ja kenoviiva-0 on oikeastaan varsin mielenkiintoinen. 698 00:33:18,920 --> 00:33:21,470 Mutta me palaamme että ennen pitkää. 699 00:33:21,470 --> 00:33:25,640 >> Joten anna minun mennä, nyt CS50 laitteen, ja nyt itse tehdä 700 00:33:25,640 --> 00:33:28,930 nopeasti lämmetä yksi esimerkeistä teimme jo ja sitten siirtyä 701 00:33:28,930 --> 00:33:31,160 jotain hieman monimutkaisempi. 702 00:33:31,160 --> 00:33:34,980 Joten jos avaan minun ohjelma nimeltään gedit - 703 00:33:34,980 --> 00:33:36,840 tämä on minun graafinen editori. 704 00:33:36,840 --> 00:33:38,460 Ja voin tehdä sen - 705 00:33:38,460 --> 00:33:39,820 Lopuksi haluan, että ikkuna on - 706 00:33:39,820 --> 00:33:42,720 Poiketen tätä kuvaketta tänne, gedit, että vasemmassa alakulmassa 707 00:33:42,720 --> 00:33:44,170 nurkassa vieressä valikosta. 708 00:33:44,170 --> 00:33:48,670 >> Aion mennä eteenpäin ja eteenpäin, ja tallentaa esimerkiksi sanokaamme John 709 00:33:48,670 --> 00:33:49,660 Harvardin kansioon. 710 00:33:49,660 --> 00:33:52,690 John Harvardin kansio on vain kotiinsa hakemisto, jossa kaikki hänen tiedostoja elää 711 00:33:52,690 --> 00:33:53,340 oletuksena. 712 00:33:53,340 --> 00:33:58,410 Ja aion tallentaa tämän tiedosto nimeltä hei-0.c. 713 00:33:58,410 --> 00:34:01,260 Ja olen valinnut tämän nimen vain niin se on linjassa näytteen koodi 714 00:34:01,260 --> 00:34:04,210 Kurssin verkkosivuilla ja YouTube-videoita verkossa. 715 00:34:04,210 --> 00:34:06,320 >> Joten nyt aion alkaa kirjoittaa ensimmäinen ohjelma. 716 00:34:06,320 --> 00:34:08,469 Saanen suurentaa luettavuutta. 717 00:34:08,469 --> 00:34:12,760 Ja aion mennä eteenpäin ja sanoa int Tärkeimmät mitätön, joka on juuri tuollainen 718 00:34:12,760 --> 00:34:14,900 keltainen palapelin pala, että alkaa ohjelma. 719 00:34:14,900 --> 00:34:18,290 Olen ottanut tavaksi yli vuotta avaan kihara ahdin, sitten 720 00:34:18,290 --> 00:34:22,000 myös sen sulkeminen ja sitten menee takaisin missä haluan laittaa koodia, vain 721 00:34:22,000 --> 00:34:24,630 koska se auttaa minua pitämään kaiken tasapainoinen, varsinkin kun minun 722 00:34:24,630 --> 00:34:25,880 ohjelma saa pitkä. 723 00:34:25,880 --> 00:34:29,239 >> Ja nyt, täällä, aion mennä eteenpäin ja sanoa, printf, lainata lainaus, 724 00:34:29,239 --> 00:34:34,330 hello world, kenoviiva-n, lähellä lainaus, lähellä suluissa, puolipiste. 725 00:34:34,330 --> 00:34:38,100 Joten olen vain toistaa kaikki olemme toteuttanut jo myönnetty toistaiseksi. 726 00:34:38,100 --> 00:34:39,270 Nyt aion loitontaa. 727 00:34:39,270 --> 00:34:43,030 >> Ja tämä pääteikkunaa tänne, mitä Voinko tehdä tämä musta 728 00:34:43,030 --> 00:34:44,389 ja valkoinen ikkuna? 729 00:34:44,389 --> 00:34:46,977 Mitä voin käyttää sitä? 730 00:34:46,977 --> 00:34:49,770 Joten tässä minä ajaa komentoja ja jossa voin koota asioita. 731 00:34:49,770 --> 00:34:50,620 Ja aion pitää yksinkertaisena. 732 00:34:50,620 --> 00:34:52,780 Aion käyttää ohjelmaa nimeltään Make, joka ei ole 733 00:34:52,780 --> 00:34:54,020 teknisesti kääntäjä. 734 00:34:54,020 --> 00:34:56,360 Kääntäjän nimeltään kalahtaa, mutta Palaamme tähän asiaan 735 00:34:56,360 --> 00:34:57,190 viikon tai kahden kuluttua. 736 00:34:57,190 --> 00:35:03,410 >> Nyt olen juuri menossa kirjoittaa tehdä hei-0, Mutta ne teistä, jotka olivat 737 00:35:03,410 --> 00:35:07,050 vertaamalla mielessänne mitä vain kirjoitettu, mitä minun olisi pitänyt kirjoittanut voi 738 00:35:07,050 --> 00:35:10,180 tiedämme jo, että tein jotain pielessä. 739 00:35:10,180 --> 00:35:12,160 Nyt siellä on selvästi joitakin virheitä. 740 00:35:12,160 --> 00:35:16,742 Ennen kuin edes katsoa, ​​mitä he ovat kaikki ajatuksia, mitä tein väärin? 741 00:35:16,742 --> 00:35:18,590 >> Opiskelijat: [interposing ÄÄNTÄ]. 742 00:35:18,590 --> 00:35:18,840 >> DAVID MALAN: Joo. 743 00:35:18,840 --> 00:35:20,640 Olen puuttuu kirjaston header-tiedosto. 744 00:35:20,640 --> 00:35:24,240 Mikä tahansa näistä. H tiedostoja kutsutaan header tiedostoja, ja ne yhdessä 745 00:35:24,240 --> 00:35:25,680 kuuluvat asioita kutsutaan kirjastot. 746 00:35:25,680 --> 00:35:28,030 Kirjastot ovat vain paloina koodia että muut ihmiset kirjoittivat. 747 00:35:28,030 --> 00:35:32,140 Joten standardin [? i?] kirjasto on kokoelma tiedostoja, jotka sisältävät koodia 748 00:35:32,140 --> 00:35:33,330 että muut ihmiset kirjoittivat. 749 00:35:33,330 --> 00:35:34,820 >> Joten olen puuttuu se. 750 00:35:34,820 --> 00:35:36,520 Miksi saan virheen? 751 00:35:36,520 --> 00:35:40,840 No, minäpä vierittää takaisin ylös minun terminaali-ikkuna täällä. 752 00:35:40,840 --> 00:35:44,310 Ja valitettavasti, C, kuten paljon ohjelmointikieliä, erityisesti 753 00:35:44,310 --> 00:35:47,830 jos se kaikki sinulle uusi, virhe viestit ovat täsmällisiä, mutta ne ovat myös 754 00:35:47,830 --> 00:35:48,620 melko arvoituksellinen. 755 00:35:48,620 --> 00:35:51,720 Ja virhe täällä, punainen, on "Implisiittisesti julistaa kirjastofunktion 756 00:35:51,720 --> 00:35:57,660 printf tyypin "ja sitten se rullaa seuraavalle riville "int const char *, 757 00:35:57,660 --> 00:36:00,220 ... "Se vain saa todella ylivoimainen nopeasti. 758 00:36:00,220 --> 00:36:04,420 >> Mutta mitä pitäisi alkaa tehdä, jos taas uusi kaiken tämän, on vain 759 00:36:04,420 --> 00:36:06,010 alkaa etsiä avainsanoja. 760 00:36:06,010 --> 00:36:08,770 On selvää, en ehkä ymmärrä puoli sanojen näen vielä. 761 00:36:08,770 --> 00:36:10,140 Et, vaikka, viikon ajan. 762 00:36:10,140 --> 00:36:11,230 Mutta näen printf. 763 00:36:11,230 --> 00:36:14,310 Ja että pitäisi alkaa ennen pitkää, että hölkätä muistisi, okei, printf. 764 00:36:14,310 --> 00:36:15,210 Jotain vikaa printf. 765 00:36:15,210 --> 00:36:16,580 Teinkö kirjoittaa väärin? 766 00:36:16,580 --> 00:36:18,130 Ei, se ei näytä - oh. 767 00:36:18,130 --> 00:36:21,350 En voi käyttää sitä, jos opetan kääntäjä, että se on olemassa. 768 00:36:21,350 --> 00:36:25,220 Ja niin taas mennä vaistosi, vaikka et itse ymmärrä 769 00:36:25,220 --> 00:36:26,510 todellinen virheilmoituksia. 770 00:36:26,510 --> 00:36:30,240 >> Ja todellakin, ratkaisu tässä vain sisällyttää sen yläreunassa tiedosto 771 00:36:30,240 --> 00:36:34,340 niin, resaving minun tiedosto Ohjaus-S tai File-valikosta. 772 00:36:34,340 --> 00:36:36,730 Ja jos minä nyt takaisin tänne, Aion tyhjentää. 773 00:36:36,730 --> 00:36:39,150 Ohjaus-L on vain mukava tapa Tyhjennä näyttö. 774 00:36:39,150 --> 00:36:44,870 Ja sitten aion kirjoittaa "tehdä hei 0 "Anna, ja nyt näen yhä 775 00:36:44,870 --> 00:36:47,710 kryptinen symbolien sekvenssi, mutta Palaamme tähän. 776 00:36:47,710 --> 00:36:49,230 Sitähän Tee tekee sinulle. 777 00:36:49,230 --> 00:36:52,590 Se automatisoimalla ottaen melko ärsyttävää komennon mukana 778 00:36:52,590 --> 00:36:54,050 Kalahtaa, todellinen kääntäjä. 779 00:36:54,050 --> 00:36:57,460 Mutta se, että minulla ei ole virheitä tarkoittaa että tämä asia pitäisi toimia. 780 00:36:57,460 --> 00:37:00,630 >> Joten olen nyt menossa tehdä - haluaisin suurentaa uudelleen - 781 00:37:00,630 --> 00:37:07,070 ./hello-0 Anna, ja todellakin, näen "Hei, maailma." Joten nyt parantaa 782 00:37:07,070 --> 00:37:12,105 tämä koskaan niin hieman vain jäljitellä vaiheet halusimme. 783 00:37:12,105 --> 00:37:15,370 Aion nimetä tätä Tallenna nimellä hello1.c. 784 00:37:15,370 --> 00:37:20,300 Ja nyt aion julistaa muuttuja kutsutaan nimellä, niin merkkijonon nimi 785 00:37:20,300 --> 00:37:23,420 ja aion laittaa sen arvo quote-lainaus 786 00:37:23,420 --> 00:37:27,030 D-A-V-I-D close-quote puolipiste. 787 00:37:27,030 --> 00:37:31,150 Ja nyt aion korvata "maailma" mitä paikanpitäjä merkkijono? 788 00:37:31,150 --> 00:37:32,200 % S. 789 00:37:32,200 --> 00:37:35,040 >> Ja nyt, kuinka monta argumenttia tulisi printf ottaa tällä kertaa? 790 00:37:35,040 --> 00:37:35,700 Joten kaksi. 791 00:37:35,700 --> 00:37:37,090 Joten menen ulkopuolella lainausmerkkejä. 792 00:37:37,090 --> 00:37:39,330 En kirjoita "name" pilkun jälkeen. 793 00:37:39,330 --> 00:37:41,550 Mutta olen tehnyt jotain muuta vikaa tällä kertaa. 794 00:37:41,550 --> 00:37:43,940 Mutta oletetaan, että en ymmärtää, että vielä. 795 00:37:43,940 --> 00:37:44,910 Päästä minut tänne. 796 00:37:44,910 --> 00:37:48,850 >> Ja ilmoitus, minäkin saan vähän kyllästynyt kirjoittamalla "tehdä hei 0" kaikki 797 00:37:48,850 --> 00:37:50,180 aikaa "tehdä" ja kaikki tämä. 798 00:37:50,180 --> 00:37:53,270 Niin, se kääntyy pois, ja Linus voit usein osui nuoli ylös teidän 799 00:37:53,270 --> 00:37:56,850 näppäimistö, ja voit itse selata läpi kaikki komennot, että olen 800 00:37:56,850 --> 00:37:58,830 suoritetaan ennen juuri nyt. 801 00:37:58,830 --> 00:38:02,040 Joten jos teen sen, ylös, ylös, siellä tehdä hei 0. 802 00:38:02,040 --> 00:38:02,610 En halua, että. 803 00:38:02,610 --> 00:38:05,450 Haluan vain vaihtaa sen hei 1 tällä kertaa, Anna. 804 00:38:05,450 --> 00:38:07,620 Lopulta, että tulee säästää aikaa. 805 00:38:07,620 --> 00:38:08,150 >> Selvä. 806 00:38:08,150 --> 00:38:09,520 Valitettavasti siellä on virhe. 807 00:38:09,520 --> 00:38:10,980 Joten anna minun selaamalla ylöspäin. 808 00:38:10,980 --> 00:38:13,120 Tämä näyttää todella teurasti ohjelman. 809 00:38:13,120 --> 00:38:16,530 Tarkoitan, minun Jumalani, se on kaksi riviä koodia, ja sen 10 riviä virheitä. 810 00:38:16,530 --> 00:38:18,800 Mutta katsokaa alkuun ensin. 811 00:38:18,800 --> 00:38:21,640 Käytä pimeän tunnisteen merkkijono. 812 00:38:21,640 --> 00:38:23,270 Teinkö tarkoita tavallinen i n? 813 00:38:23,270 --> 00:38:23,930 Ei en. 814 00:38:23,930 --> 00:38:24,940 Tarkoitin merkkijono. 815 00:38:24,940 --> 00:38:29,390 >> Mutta missä on merkkijonomuuttujaa tyyppi julisti, dd sanomme? 816 00:38:29,390 --> 00:38:30,730 Joten se on CS50 kirjastoon. 817 00:38:30,730 --> 00:38:33,740 Joten se ei riitä, kun nämä ensimmäiset pari viikkoa, vain käyttää 818 00:38:33,740 --> 00:38:34,860 mitä C antaa meille. 819 00:38:34,860 --> 00:38:38,120 Olen myös menossa täällä, ja minä laittaa sen ylä-tai alapuolella, mutta minä 820 00:38:38,120 --> 00:38:40,340 vain pitää se aakkosjärjestyksessä pitää asiat hallitusti. 821 00:38:40,340 --> 00:38:43,470 Aion myös cs50.h, joka on esiasennettu 822 00:38:43,470 --> 00:38:44,900 sinut CS50 laitteen. 823 00:38:44,900 --> 00:38:47,640 Ja se on avoimen lähdekoodin, joten vaikka ihmiset Internetissä voi käyttää niiden 824 00:38:47,640 --> 00:38:48,450 omat tietokoneet. 825 00:38:48,450 --> 00:38:50,700 Mutta se tulee CS50 laitteen. 826 00:38:50,700 --> 00:38:55,320 >> Joten nyt haluan mennä takaisin ja kääntää tätä tehdä hei 1. 827 00:38:55,320 --> 00:38:55,710 Hitto. 828 00:38:55,710 --> 00:38:57,240 Vielä toinen virhe. 829 00:38:57,240 --> 00:38:59,370 Saanen siirry ensimmäiseen, vaikka. 830 00:38:59,370 --> 00:39:00,630 Tämä yksi on hieman monimutkainen. 831 00:39:00,630 --> 00:39:03,830 Multi-merkki merkin vakio. 832 00:39:03,830 --> 00:39:04,890 Se ei auta minua. 833 00:39:04,890 --> 00:39:08,220 Mutta huomaa, kalahtaa on ainakin hieman bittinen kunnon, jolloin hieman 834 00:39:08,220 --> 00:39:11,890 vihreä caret symboli, se sanoo tässä on, jos minä mokasin. 835 00:39:11,890 --> 00:39:16,160 Miksi se osoittaa, jossa on tavanomaista vihreä nuoli, on yksi tarjous ensi 836 00:39:16,160 --> 00:39:18,290 nimeni? 837 00:39:18,290 --> 00:39:20,880 >> Joten tämä on yksi niistä asioista, juuri tottua, varsinkin jos olet ollut 838 00:39:20,880 --> 00:39:23,980 ohjelmointi Python, tai JavaScript, tai muita kieliä, jos tämän yksityiskohdan 839 00:39:23,980 --> 00:39:24,560 ei ole väliä. 840 00:39:24,560 --> 00:39:25,740 C, sillä on väliä. 841 00:39:25,740 --> 00:39:29,520 Jos julistaa merkkijono, joka on sarja 0 tai useampia merkkejä, 842 00:39:29,520 --> 00:39:32,280 todella täytyy käyttää lainausmerkkejä. 843 00:39:32,280 --> 00:39:36,670 Joten en oikeastaan ​​tarvitse muuttaa takaisin Avaa lainaus, lähellä lainaus, jossa 844 00:39:36,670 --> 00:39:37,800 lainausmerkkeihin. 845 00:39:37,800 --> 00:39:41,610 Puolilainausmerkkejä eivät ole niiden paikka, mutta vain, kun käytät yksittäisiä 846 00:39:41,610 --> 00:39:44,100 merkkiä, mutta siitä lisää toisella kertaa. 847 00:39:44,100 --> 00:39:46,550 Nyt lainausmerkit ovat tarpeen. 848 00:39:46,550 --> 00:39:50,460 >> Joten nyt, anna minun mennä takaisin minun terminaalin ikkuna, tee hei 1. 849 00:39:50,460 --> 00:39:51,450 Ja kuka uskoo? 850 00:39:51,450 --> 00:39:53,800 Onko tämä ohjelma nyt menossa kääntää oikein? 851 00:39:53,800 --> 00:39:58,250 852 00:39:58,250 --> 00:39:58,540 OK. 853 00:39:58,540 --> 00:39:59,780 Joten me kolme mielestäni tämä. 854 00:39:59,780 --> 00:40:00,280 Selvä. 855 00:40:00,280 --> 00:40:01,190 Anna. 856 00:40:01,190 --> 00:40:02,440 Ja se todella teki. 857 00:40:02,440 --> 00:40:05,130 Joten ei ole mitään virheitä tällä kertaa, vaikka vaikka tämä ohjelma on mennyt vähän 858 00:40:05,130 --> 00:40:05,840 monimutkaisempi. 859 00:40:05,840 --> 00:40:10,110 Jos en nyt dot slash hei 1, Anna, se tulee sanoa "hei, David." 860 00:40:10,110 --> 00:40:11,750 >> Mutta tehkäämme kolmas iteraatio Tässä, jos 861 00:40:11,750 --> 00:40:13,380 Ohjelma on todella dynaaminen. 862 00:40:13,380 --> 00:40:16,770 Anna minun mennä eteenpäin ja muuttaa tiedoston nimen, johdonmukaisuuden 863 00:40:16,770 --> 00:40:20,410 tiedostoja sinulla on käytettävissä sinulle jälkeenpäin verkossa. 864 00:40:20,410 --> 00:40:21,620 Anna. 865 00:40:21,620 --> 00:40:25,510 Ja nyt aion mennä eikä säilytä "David" kova koodattu täällä. 866 00:40:25,510 --> 00:40:28,826 Mitä voisin tehdä hyvin yksinkertaisesti parantaa tätä ohjelmaa? 867 00:40:28,826 --> 00:40:30,520 >> Voisin kutsua getString. 868 00:40:30,520 --> 00:40:33,240 Se voi olla vähän kuin selvää, mitä on tapahtumassa, joten aion 869 00:40:33,240 --> 00:40:38,470 todella lisätä toisen linjan, printf, ja sano nimi, paksusuoli, lähellä lainaus, vain 870 00:40:38,470 --> 00:40:40,790 antaa käyttäjälle nopeasti ruudulla. 871 00:40:40,790 --> 00:40:42,980 Ja nyt aion mennä tänne, ja olen aio käyttää minun pikanäppäimen. 872 00:40:42,980 --> 00:40:47,680 Aion mennä ylös, ylös, ja muuttaa Hei 1 Hei 2, Anna. 873 00:40:47,680 --> 00:40:49,260 Ja onneksi, olen edistynyt. 874 00:40:49,260 --> 00:40:52,720 >> Ja nyt minä menen ylös piste slash Hei ja 875 00:40:52,720 --> 00:40:54,690 vaihtaa sen 2, Anna. 876 00:40:54,690 --> 00:40:55,650 Ja nyt minun ohjelma - 877 00:40:55,650 --> 00:40:57,700 Minä suurentaa - on tulossa hieman kauniimpi. 878 00:40:57,700 --> 00:41:02,190 Nimi tulee olemaan, sanotaanko Rob tällä kertaa, Anna, hello, Rob. 879 00:41:02,190 --> 00:41:03,260 Me voimme tehdä sen uudestaan. 880 00:41:03,260 --> 00:41:05,360 Nimi, Lauren, Anna. 881 00:41:05,360 --> 00:41:07,820 Nimi, Joseph, Anna. 882 00:41:07,820 --> 00:41:11,596 Nimi, yritetään olla vaikeaa, Anna. 883 00:41:11,596 --> 00:41:12,410 Eh. 884 00:41:12,410 --> 00:41:14,680 Se ei ole oikeastaan ​​bugi. 885 00:41:14,680 --> 00:41:16,090 Joten se on vain hieman ruma. 886 00:41:16,090 --> 00:41:18,640 Joten ehkä voisimme ratkaista tämän tulevaisuudessa, ei nyt. 887 00:41:18,640 --> 00:41:20,840 >> Mutta miten te vaistomaisesti edetä käsitellään 888 00:41:20,840 --> 00:41:21,990 että erityinen haaste? 889 00:41:21,990 --> 00:41:23,710 Se vain näyttää tyhmä. 890 00:41:23,710 --> 00:41:27,320 Miten välttää asioita etsivät tyhmä? 891 00:41:27,320 --> 00:41:29,890 Jotta voisimme tehdä, OK, kuulin pari asioita, kunto ja silmukka. 892 00:41:29,890 --> 00:41:33,340 Voisimme käyttää, yksi, ehto, tarkistaa mikä on merkkijonon pituus 893 00:41:33,340 --> 00:41:34,190 käyttäjä antoi meille? 894 00:41:34,190 --> 00:41:37,100 Ja jos se on 0, se on vain lainata lainaus, ne vain Enter, sitten 895 00:41:37,100 --> 00:41:38,930 Ehkä minun pitäisi huutaa niitä ja pyytää niitä uudelleen. 896 00:41:38,930 --> 00:41:39,970 Mutta miten ryhtyisivät uudelleen? 897 00:41:39,970 --> 00:41:44,230 No, olen myös kuullut silmukka, ja voisin tehdä uudestaan ​​ja uudestaan ​​ja uudestaan 898 00:41:44,230 --> 00:41:47,010 kehotukset käyttäjä sama asia. 899 00:41:47,010 --> 00:41:48,880 >> No, jokin muu esimerkki käyttämällä eri 900 00:41:48,880 --> 00:41:50,620 toiminnon CS50 kirjastossa. 901 00:41:50,620 --> 00:41:52,330 Haluan lopettaa tämän tiedoston. 902 00:41:52,330 --> 00:41:53,510 Saanen luoda uuden. 903 00:41:53,510 --> 00:41:58,510 Ja minä kutsun sitä adder.c, vain koska se on helppo tehdä yksinkertaisia ​​laskutoimituksia, 904 00:41:58,510 --> 00:42:00,890 vaikka tämä on täysin underwhelming mitä voisit tehdä 905 00:42:00,890 --> 00:42:02,250 kaikki nykyaikaisen tietokoneen. 906 00:42:02,250 --> 00:42:03,750 >> Mutta haluan mennä eteenpäin nyt ja - 907 00:42:03,750 --> 00:42:10,680 Olen oppinut läksyni viimeisen kerran - ovat cs50.h, kuuluu stdio.h, int 908 00:42:10,680 --> 00:42:14,170 Tärkeimmät mitätön, joka nyt, minä vain ottaa sokea usko, mutta oletamme 909 00:42:14,170 --> 00:42:16,380 joka ymmärtää, mitä se tarkoittaa, että ennen pitkää. 910 00:42:16,380 --> 00:42:21,030 Ja aion sanoa jotain kuten "anna minulle int." 911 00:42:21,030 --> 00:42:22,140 >> Ja nyt, miten saan int? 912 00:42:22,140 --> 00:42:26,820 Haluan lopulta julistaa muuttuja nimeltään x tyypin int ja 913 00:42:26,820 --> 00:42:29,240 tallentaa se kokonaisluku käyttäjälle. 914 00:42:29,240 --> 00:42:29,970 Niin, että oli suupala. 915 00:42:29,970 --> 00:42:35,680 Mutta jos joku haluaa ehdottaa, miten voin julistaa kokonaisluku kutsutaan x? 916 00:42:35,680 --> 00:42:36,310 Int x. 917 00:42:36,310 --> 00:42:37,430 >> Niin se todella on niin yksinkertaista. 918 00:42:37,430 --> 00:42:38,240 Anna minulle int. 919 00:42:38,240 --> 00:42:39,070 Soita se x. 920 00:42:39,070 --> 00:42:40,580 Nyt käytän sijoitusoperaattori. 921 00:42:40,580 --> 00:42:43,400 Ja miten voin tallentaa alkaen jäljellä arvo käyttäjä? 922 00:42:43,400 --> 00:42:47,310 En halua soittaa getString, tietenkin, vaan getint. 923 00:42:47,310 --> 00:42:49,060 Kaikki argumentit? 924 00:42:49,060 --> 00:42:49,350 Ei. 925 00:42:49,350 --> 00:42:51,870 Joten se on auki kantatuote, lähellä kantatuote välittömästi, ja sen jälkeen 926 00:42:51,870 --> 00:42:53,440 puolipiste päättyy linja. 927 00:42:53,440 --> 00:42:54,930 >> Nyt haluan tehdä tämän uudestaan. 928 00:42:54,930 --> 00:42:57,070 Anna minulle toinen int. 929 00:42:57,070 --> 00:43:01,850 Tällä kertaa teen int, katsotaanpa kutsuvat sitä y, vastaa getint. 930 00:43:01,850 --> 00:43:05,060 Ja nyt haluan tehdä jotain super-yksinkertainen kuten jotkut matematiikka. 931 00:43:05,060 --> 00:43:14,340 Joten printf, summa% d on paikanvaraaja int. 932 00:43:14,340 --> 00:43:20,030 Ja% d, kauden, kenoviiva-n. 933 00:43:20,030 --> 00:43:20,360 >> Selvä. 934 00:43:20,360 --> 00:43:21,670 Joten se ei ole oikeastaan ​​matematiikkaa. 935 00:43:21,670 --> 00:43:25,500 Mutta jos haluan sanoa summa tämän arvo plus tämä arvo on tällä 936 00:43:25,500 --> 00:43:29,320 muu arvo, kuinka monta argumenttia osaksi yhteensä minun pitäisi antaa printf, 937 00:43:29,320 --> 00:43:30,520 lopulta? 938 00:43:30,520 --> 00:43:31,420 Joten neljä, eikö? 939 00:43:31,420 --> 00:43:33,790 Tämä merkkijono ja sen jälkeen kolme arvoa. 940 00:43:33,790 --> 00:43:37,560 Joten x on ensimmäinen haluan olla kytketty ensin% d. 941 00:43:37,560 --> 00:43:39,270 y tulee olemaan seuraava. 942 00:43:39,270 --> 00:43:42,030 >> Ja nyt olen sellainen halua sanoa z, mutta z ei ole olemassa. 943 00:43:42,030 --> 00:43:43,190 Mutta se ei ole iso juttu. 944 00:43:43,190 --> 00:43:45,440 Koska mitä tekisit vaistomaisesti, varsinkin jos sinulla on ollut 945 00:43:45,440 --> 00:43:47,820 graafinen laskin, mitä kirjoitat? 946 00:43:47,820 --> 00:43:48,760 Entä x plus y? 947 00:43:48,760 --> 00:43:50,200 Joten se ei ole todellinen muuttuja. 948 00:43:50,200 --> 00:43:51,820 Se on vain summa kahden muut muuttujat. 949 00:43:51,820 --> 00:43:53,170 Ja se on täysin laillista. 950 00:43:53,170 --> 00:43:56,630 C varmasti ymmärtää yksinkertaisia aritmeettinen näin. 951 00:43:56,630 --> 00:43:58,450 >> Puolipiste, tallenna. 952 00:43:58,450 --> 00:44:02,080 Nyt haluaisin mennä tänne ja kirjoita tehdä lisätoiminto, Anna. 953 00:44:02,080 --> 00:44:04,100 Ei virhe, niin se on käynnissä myös. 954 00:44:04,100 --> 00:44:04,890 Kirjoita lisätoiminto. 955 00:44:04,890 --> 00:44:07,100 Ja toinen pikanäppäimen jos alkaa kyllästyä 956 00:44:07,100 --> 00:44:08,760 kaikki komennot - 957 00:44:08,760 --> 00:44:12,650 jos aloitat kirjoittamalla komennon, kuten piste slash mainos, ja se jos sinun 958 00:44:12,650 --> 00:44:16,020 ikävystyminen potkuja, voit yleensä lyödä Välilehti on tietokoneen loppuun 959 00:44:16,020 --> 00:44:20,510 levätä lause, jos se ei ole epäselvä, mitä pitäisi tulla, kun mainoksen. 960 00:44:20,510 --> 00:44:23,950 >> Joten anna minun mennä eteenpäin nyt ja valitset Enter. 961 00:44:23,950 --> 00:44:27,490 Anna minulle int, 1, 2, ja Onneksi se on 3. 962 00:44:27,490 --> 00:44:29,900 Mutta kuten aina, testaus ohjelmat ei pitäisi vähentää 963 00:44:29,900 --> 00:44:30,820 vain yrittää sitä kerran. 964 00:44:30,820 --> 00:44:35,560 Yritän nurkkaan tapauksessa kuin kielteisiä 1, anna minulle 1, ja että yksi 965 00:44:35,560 --> 00:44:36,210 tarkastusten perusteella samoin. 966 00:44:36,210 --> 00:44:38,870 Ja minä luultavasti halua tehdä lisää tiukkoja testejä, mutta olen melko 967 00:44:38,870 --> 00:44:40,630 mukava, jos se on. 968 00:44:40,630 --> 00:44:43,110 >> No, nyt yritetään toista ohjelmaa että tällä kertaa käyttää 969 00:44:43,110 --> 00:44:44,620 hieman muita syntaksin. 970 00:44:44,620 --> 00:44:46,100 Saanen luo uuden tiedoston. 971 00:44:46,100 --> 00:44:51,050 Soitan tämän conditions0.c riviin jopa joidenkin koodista verkossa. 972 00:44:51,050 --> 00:44:55,550 Ja anna minun mennä eteenpäin ja tehdä ovat cs50.h, ovat 973 00:44:55,550 --> 00:45:00,320 stdio.h, pää void - 974 00:45:00,320 --> 00:45:01,030 OK. 975 00:45:01,030 --> 00:45:01,850 Siellä mennään. 976 00:45:01,850 --> 00:45:03,010 Meillä on standardin boilerplate. 977 00:45:03,010 --> 00:45:08,170 >> Ja tällä kertaa aion sanoa printf, "Haluaisin int, kiitos" vain 978 00:45:08,170 --> 00:45:10,030 tehdä nopeasti hieman ystävällisempiä. 979 00:45:10,030 --> 00:45:11,620 Ja nyt haluan saada int käyttäjältä. 980 00:45:11,620 --> 00:45:15,010 Aion kutsua sitä n tällä kertaa, vain koska n kuulostaa numero. 981 00:45:15,010 --> 00:45:18,140 getint, ja nyt, mitä Haluan tehdä sen kanssa? 982 00:45:18,140 --> 00:45:21,640 No, jos n on - ja minä suurentaa - 983 00:45:21,640 --> 00:45:25,930 jos n on suurempi kuin 0, haluan tehdä seuraavat - 984 00:45:25,930 --> 00:45:36,060 printf "Valitsit positiivinen luku." Else, aion kirjoittaa printf "You 985 00:45:36,060 --> 00:45:37,870 poimitaan negatiivinen 986 00:45:37,870 --> 00:45:39,650 numero. "Selvä. 987 00:45:39,650 --> 00:45:44,410 Joten tämä ohjelma, vaikka tein sen nopeasti, näyttää oikein lauseopillisesti. 988 00:45:44,410 --> 00:45:45,010 Yritän tässä. 989 00:45:45,010 --> 00:45:46,890 Tee kunnon 0. 990 00:45:46,890 --> 00:45:47,710 Näyttää valuvan. 991 00:45:47,710 --> 00:45:49,230 Kunto 0, anna. 992 00:45:49,230 --> 00:45:51,910 Annetaan se int 50. 993 00:45:51,910 --> 00:45:53,160 Otin positiivinen luku. 994 00:45:53,160 --> 00:45:54,230 Yritetään uudestaan. 995 00:45:54,230 --> 00:45:54,930 Kunto 0. 996 00:45:54,930 --> 00:45:56,260 Negatiivinen 50. 997 00:45:56,260 --> 00:45:57,290 Otin negatiivinen luku. 998 00:45:57,290 --> 00:46:00,350 >> Mutta nyt haluan valita mitä pidämme soittamalla nurkassa tapauksessa, joka on enemmän 999 00:46:00,350 --> 00:46:04,702 mielenkiintoinen tapaus, että luulet saattaa antaa sinulle joitakin ongelmia, 0. 1000 00:46:04,702 --> 00:46:07,940 Nyt olen melko varma, että tämä on yksi ne rajatapauksissa, joissa nolla on 1001 00:46:07,940 --> 00:46:12,330 ei myönteinen eikä kielteinen, niin minun ohjelma, vaikka rakenteeltaan 1002 00:46:12,330 --> 00:46:15,440 korjata - se kokoaa, se toimii - ei ole loogisesti oikein. 1003 00:46:15,440 --> 00:46:21,050 Mikä siis yksinkertainen korjata, jos haluan havaita, jos haluan käsitellä n 1004 00:46:21,050 --> 00:46:23,840 vastaa 0 erikseen? 1005 00:46:23,840 --> 00:46:32,980 >> Joten jos n = 0, niin haluan sanoa jotain printf "Otit 0." 1006 00:46:32,980 --> 00:46:33,990 Yritän tässä nyt. 1007 00:46:33,990 --> 00:46:38,320 Päästä minut takaisin tänne, tyhjennä minun ikkuna, ja käännä uudelleen. 1008 00:46:38,320 --> 00:46:38,690 Hm. 1009 00:46:38,690 --> 00:46:39,770 Yksi virhe tuottaa. 1010 00:46:39,770 --> 00:46:41,630 Mutta en haluat tarkistaa jos n = 0. 1011 00:46:41,630 --> 00:46:44,230 1012 00:46:44,230 --> 00:46:47,720 >> Joten jälleen, toinen tyhmä juttu tottua, yhtäläisyysmerkki on 1013 00:46:47,720 --> 00:46:48,910 sijoitusoperaattori. 1014 00:46:48,910 --> 00:46:52,240 Joten tämä on oikeastaan ​​virhe, että teknisesti, vaikka kääntäjä 1015 00:46:52,240 --> 00:46:56,450 suojattu minua itseäni, olimme teknisesti kopiointi 0 otetaan n, joka 1016 00:46:56,450 --> 00:46:57,590 ei ole sitä mitä haluan. 1017 00:46:57,590 --> 00:47:00,950 Haluan testata tasa-arvon kanssa yhtä vastaa. 1018 00:47:00,950 --> 00:47:03,390 Ja niin, että nyt voisi olla minun parempi ratkaisu. 1019 00:47:03,390 --> 00:47:07,810 >> Saanen todella tallenna tätä vaikkapa conditions1, on uusia ja parannettuja. 1020 00:47:07,810 --> 00:47:10,480 Joten jos nyt kääntää tämän, se tekisi olosuhteet - 1021 00:47:10,480 --> 00:47:16,960 oho - tehdä conditions1 dot slash conditions1, Anna, "Haluaisin int, 1022 00:47:16,960 --> 00:47:18,760 kiitos. "Aion mennä eteenpäin ja kirjoita 50. 1023 00:47:18,760 --> 00:47:19,660 Se on edelleen hyvä. 1024 00:47:19,660 --> 00:47:21,200 Negatiivinen 50, edelleen hyvä. 1025 00:47:21,200 --> 00:47:24,920 0, ja se todellakin havaittu että otin 0. 1026 00:47:24,920 --> 00:47:28,200 >> Mitä muuta voin nyt tehdä tämän? 1027 00:47:28,200 --> 00:47:32,280 No, voimme varmasti tehdä yhä monimutkaisia ​​asioita. 1028 00:47:32,280 --> 00:47:37,240 Mutta mitä haluaisin ehdottaa on että lopetan tähän. 1029 00:47:37,240 --> 00:47:41,680 Jos me vetää tätä, näet, ehkä suosikki sarjakuva omasi 1030 00:47:41,680 --> 00:47:43,326 asti tänään saatat koskaan ymmärtänyt. 1031 00:47:43,326 --> 00:47:46,550 1032 00:47:46,550 --> 00:47:49,520 Ja se laadusta naurua sinun pitäisi saada CS vitsejä. 1033 00:47:49,520 --> 00:47:51,060 Niin, että noin oikeassa. 1034 00:47:51,060 --> 00:47:54,900 >> Mutta enemmän vetoavasti, ajattelin antaa meille hieman teaser maanantaina. 1035 00:47:54,900 --> 00:47:56,430 Siksi olemme alkaneet käyttää kokonaislukuja. 1036 00:47:56,430 --> 00:47:57,510 Olemme tarkoitetun kelluu. 1037 00:47:57,510 --> 00:48:00,120 Olemme jopa tarkoitettujen tuplaa, joka taas antaa sinulle numerot 1038 00:48:00,120 --> 00:48:01,390 jälkeen desimaaleja. 1039 00:48:01,390 --> 00:48:04,230 >> Mutta näyttää siltä, ​​että kellukkeet ja tuplaa, ja todella, tietokoneet, 1040 00:48:04,230 --> 00:48:08,470 pohjimmiltaan, voi ilmaista joitakin arvoja tarkasti. 1041 00:48:08,470 --> 00:48:12,840 Tiedämme matematiikkaa luokkaa, että voit olla kuinka monta tahansa jälkeiset numerot 1042 00:48:12,840 --> 00:48:13,510 desimaalin tarkkuudella. 1043 00:48:13,510 --> 00:48:16,460 Ja voit jopa laittaa pystypalkki sanoa näitä loputtomiin. 1044 00:48:16,460 --> 00:48:18,810 >> Valitettavasti et voi oikeastaan tehdä sen tietokoneeseen. 1045 00:48:18,810 --> 00:48:20,400 Ja niin kulma voi esiintyä. 1046 00:48:20,400 --> 00:48:23,120 Oletetaan esimerkiksi, että olet tekee jotain taloudellista. 1047 00:48:23,120 --> 00:48:25,700 Teet matematiikka prosenttiosuudet, ja 1048 00:48:25,700 --> 00:48:27,030 dollaria ja senttiä. 1049 00:48:27,030 --> 00:48:29,230 Ja ne senttiä eivät välttämättä riviin. 1050 00:48:29,230 --> 00:48:34,120 No, käy ilmi, että jakeet penniä voi alkaa lisätä, kun 1051 00:48:34,120 --> 00:48:37,250 mallinnetaan tietokonejärjestelmän siten, että taitava 1052 00:48:37,250 --> 00:48:39,100 ihmiset voivat hyödyntää. 1053 00:48:39,100 --> 00:48:42,650 >> Ja ne teistä, jotka eivät ole nähneet, olisin haluan antaa sinulle 30 sekunnin teaser 1054 00:48:42,650 --> 00:48:48,290 ihana elokuva tunnetaan Toimistotilaa, joka maalaa kuvan 1055 00:48:48,290 --> 00:48:51,205 ongelma meillä on puuttua Ensimmäinen asia maanantaina. 1056 00:48:51,205 --> 00:48:53,960 Jos voisimme nostaa äänenvoimakkuutta vähän, minä annan sinulle 30 1057 00:48:53,960 --> 00:48:55,495 sekunnin toimistotilaa. 1058 00:48:55,495 --> 00:48:55,770 >> [VIDEOTOISTOSTA] 1059 00:48:55,770 --> 00:48:59,000 >> -Tarkoitan, olet, et ole ollut osoittaa ja saat pitää työsi. 1060 00:48:59,000 --> 00:49:00,620 >> -Oikeastaan ​​olen edistetään. 1061 00:49:00,620 --> 00:49:03,240 >> -Voisin ohjelmoida virus, joka had rip että paikka pois suuria aikaan. 1062 00:49:03,240 --> 00:49:04,430 >> -No, miten se toimii? 1063 00:49:04,430 --> 00:49:06,782 >> -Joka kerta siellä pankkisiirtona jossa korko lasketaan, ja siellä 1064 00:49:06,782 --> 00:49:10,160 tuhansia päivässä, tietokone päättyy kanssa nämä jakeet prosenttia. 1065 00:49:10,160 --> 00:49:12,030 >> -Mutta en aio tee mitään laitonta. 1066 00:49:12,030 --> 00:49:12,660 >> Internetin laiton? 1067 00:49:12,660 --> 00:49:15,075 Samir, tämä on Amerikka. 1068 00:49:15,075 --> 00:49:16,570 >> -Meidän täytyy vannoa. 1069 00:49:16,570 --> 00:49:19,070 >> -Jos kukaan ei tiedä tästä mutta meille, jooko? 1070 00:49:19,070 --> 00:49:21,920 Ei perheenjäseniä, ei tyttöystäviä, kukaan. 1071 00:49:21,920 --> 00:49:22,700 >> -Tietenkin. 1072 00:49:22,700 --> 00:49:23,320 >> -Sovittu. 1073 00:49:23,320 --> 00:49:24,280 >> -Älä huoli, mies. 1074 00:49:24,280 --> 00:49:25,640 En kerro kenellekään myöskään. 1075 00:49:25,640 --> 00:49:26,504 >> [END VIDEOTOISTOSTA] 1076 00:49:26,504 --> 00:49:30,030 >> DAVID MALAN: Eli tämä on siis CS50, että oli Toimistotilaa, ja se kaikki 1077 00:49:30,030 --> 00:49:31,465 järkeä maanantaina. 1078 00:49:31,465 --> 00:49:33,940 Nähdään sitten. 1079 00:49:33,940 --> 00:49:37,880 >> Kertoja: Seuraavassa CS50, Rob sopeutuu on pois 1080 00:49:37,880 --> 00:49:39,130 Harvardin aterian suunnitelman. 1081 00:49:39,130 --> 00:49:56,160