1 00:00:07,590 --> 00:00:09,920 [Powered by Google Translate] David J. MALAN: Selvä, tämä on CS50 ja tämä on 2 00:00:09,920 --> 00:00:15,250 loppuun Viikko 1, joten tutkimuksessa kortit ovat, ja kokonaismäärä 3 00:00:15,250 --> 00:00:18,640 luokkatoverit että sinulla on tänä vuonna 745. 4 00:00:18,640 --> 00:00:20,920 Ja olemme niin innoissamme on niin paljon teistä aikana 5 00:00:20,920 --> 00:00:23,680 Tämän lukukauden, mutta vaikka tämä kurssi on niin suuri, 6 00:00:23,680 --> 00:00:26,090 ymmärtää, että se on näitä asioita, kuten perjantai lounaita, kuten 7 00:00:26,090 --> 00:00:29,020 toimisto tuntia, 15-henkilö osastot, ja niin edelleen, että 8 00:00:29,020 --> 00:00:30,590 todella tarkoitus luoda tätä intiimimpi 9 00:00:30,590 --> 00:00:31,140 ympäristöön. 10 00:00:31,140 --> 00:00:34,070 Joten vaikka saatamme kerätä kerran tai kahdesti viikossa, täällä 11 00:00:34,070 --> 00:00:36,420 Sanders, tietävät, että paljon teidän kokemuksia tällä kurssilla 12 00:00:36,420 --> 00:00:39,330 tulee hyvin paljon on käytännön on rinnalla oman luokkatovereiden 13 00:00:39,330 --> 00:00:40,730 ja opetushenkilöstön. 14 00:00:40,730 --> 00:00:43,960 >> Joten tässä sitä mennään, Fall 2012. 15 00:00:43,960 --> 00:00:47,530 Niin muistaa, että viime kerta päättyi muistiin 16 00:00:47,530 --> 00:00:50,460 epätarkkuus, puhumme edustus numerot. 17 00:00:50,460 --> 00:00:52,950 Ja me katsoimme yhdessä epäonnistumisia tapahtui vuonna 18 00:00:52,950 --> 00:00:54,920 Todellisessa maailmassa, kun se tuli väärinkäsitys 19 00:00:54,920 --> 00:00:55,890 miten tietokoneet toimivat. 20 00:00:55,890 --> 00:00:58,590 No, tänään me uudelleen toinen niistä ideoita 21 00:00:58,590 --> 00:01:01,410 samoin kuin jatkamme keskustelua CS50 asiakkaan 22 00:01:01,410 --> 00:01:04,090 ja C ja mitä se merkitsee todella ohjelmaan. 23 00:01:04,090 --> 00:01:06,430 Mutta ensin vain pari pyörremyrsky ilmoituksia. 24 00:01:06,430 --> 00:01:08,930 >> Kohdat alkavat tänä sunnuntaina, ja ensimmäinen viikko on aina 25 00:01:08,930 --> 00:01:11,030 Hieman nopean alun, sillä saimme juuri sisään 26 00:01:11,030 --> 00:01:12,620 osiosi lomakkeita. 27 00:01:12,620 --> 00:01:14,450 Me teemme samoin, nyt, opetus kaverit, nyt 28 00:01:14,450 --> 00:01:16,410 että he tietävät niiden aikataulut, joten pyrimme, jonka 29 00:01:16,410 --> 00:01:19,380 Lauantaiaamuna, seurata mukana sinua § 30 00:01:19,380 --> 00:01:20,760 toimeksianto ja TF. 31 00:01:20,760 --> 00:01:22,770 Tiedä, että he alkavat seuraavana päivänä, sunnuntaina 32 00:01:22,770 --> 00:01:24,510 tai maanantaina tai tiistaina. 33 00:01:24,510 --> 00:01:27,730 Ja sitten me majoittaa osan muutokset, koska ne syntyvät 34 00:01:27,730 --> 00:01:28,690 vuonna lähipäivinä. 35 00:01:28,690 --> 00:01:31,590 Aukioloajat puolestaan ​​ovat jälleen tänään, kaksikymmentä 11, vuonna 36 00:01:31,590 --> 00:01:33,740 Annenberg sekä huomenna. 37 00:01:33,740 --> 00:01:36,150 Vaikka ongelma sarjat johtuvat yleensä torstaisin 38 00:01:36,150 --> 00:01:39,020 keskipäivällä, huomaat on enintään viisi myöhään päivää viettää, 39 00:01:39,020 --> 00:01:42,430 joten saatavuus virka torstaisin, jos 40 00:01:42,430 --> 00:01:45,930 te käteistä yhdessä näistä myöhään päivinä ja siten antaa 41 00:01:45,930 --> 00:01:47,070 jotain perjantaina. 42 00:01:47,070 --> 00:01:50,850 Saanen ehdottaa, että Scratch on yksi hauskempaa joukossa 43 00:01:50,850 --> 00:01:52,390 enemmän alasävy ongelma sarjaa. 44 00:01:52,390 --> 00:01:55,160 Ja haluaisin pitää kiinni niitä myöhään päivinä, strategisesti juuri 45 00:01:55,160 --> 00:01:57,380 varten myöhemmin lukukauden kun elämä alkaa tiellä 46 00:01:57,380 --> 00:01:59,470 kanssa midterms ja muihin luokkiin. 47 00:01:59,470 --> 00:02:01,580 Harjoitus 1, puolestaan ​​olisi lähetetty kurssin 48 00:02:01,580 --> 00:02:06,080 verkkosivuilla perjantaina, sillä tulee olemaan kurssin kävelymatka 49 00:02:06,080 --> 00:02:08,789 kautta video, joka kuvattiin 14:30 perjantaina 50 00:02:08,789 --> 00:02:11,890 ja sitten julkaistaan ​​verkossa seuraavana päivänä. 51 00:02:11,890 --> 00:02:13,880 >> Joten me päättyi maanantaina. 52 00:02:13,880 --> 00:02:15,450 Haluan - oikeastaan ​​yksi nuotti täältä. 53 00:02:15,450 --> 00:02:18,870 Koska luokat - koska Sanders ei tarkalleen lainata 54 00:02:18,870 --> 00:02:22,220 itse rento Q & edestakaisin hirveän hyvin, olemme 55 00:02:22,220 --> 00:02:24,030 aio yrittää jotain hieman uutta tänä vuonna, jolloin 56 00:02:24,030 --> 00:02:26,160 jos et ole mukava nostaa kättä tai juuri 57 00:02:26,160 --> 00:02:28,800 mieluummin ei nosta käsi huoneeseen näin, 58 00:02:28,800 --> 00:02:30,710 aiomme olla joitakin opetuksen stipendiaattien ja CA 59 00:02:30,710 --> 00:02:33,260 Miehistöä cs50.net/discuss aikana luento. 60 00:02:33,260 --> 00:02:35,440 Joten jos sinulla on kysymys, koska olin täysin 61 00:02:35,440 --> 00:02:37,510 epäselvä jotain tai olet utelias joitakin 62 00:02:37,510 --> 00:02:39,640 aihe, kokeile lähettämistä sinne. 63 00:02:39,640 --> 00:02:42,670 Merkitse se etiketissä Luento, ja me teemme parhaamme 64 00:02:42,670 --> 00:02:45,430 tänään ja ensi viikolla - we'll kokeilla tätä - ja alalta 65 00:02:45,430 --> 00:02:47,990 joko sähköisesti verkossa tai jos se tuntuu meidän pitäisi 66 00:02:47,990 --> 00:02:50,430 todella käsitellä se joukoittain, yksi opetus stipendiaattien tai 67 00:02:50,430 --> 00:02:52,080 CAS nostaa kätensä ja pyytää 68 00:02:52,080 --> 00:02:53,480 nimettömänä teidän puolesta. 69 00:02:53,480 --> 00:02:55,650 Joten annamme tämän kokeilla ja nähdä kuinka hyvin tämä toimii. 70 00:02:55,650 --> 00:02:58,540 Mutta kaikin mokomin, edelleen nostaa kädet kuin haluaisit. 71 00:02:58,540 --> 00:03:11,420 >> Joten viimeinen kerta paljasti, että 10% tai yksi kymmenesosa ei, on 72 00:03:11,420 --> 00:03:13,840 Itse asiassa, 0,1, kuten sinäkin opetettiin monta vuotta sitten. 73 00:03:13,840 --> 00:03:15,390 Se on itse asiassa arvo kuin tämä. 74 00:03:15,390 --> 00:03:16,970 Mutta se ei ole täysin totta, eikö? 75 00:03:16,970 --> 00:03:19,585 Meillä on vain tämä rajoitus tietokoneiden jolloin, jos 76 00:03:19,585 --> 00:03:22,450 on vain rajallinen määrä muistia, RAM-muistia, tai enemmän 77 00:03:22,450 --> 00:03:25,220 erityisesti bittiä, hyvin, on vain rajallinen määrä 78 00:03:25,220 --> 00:03:26,980 asioita voit edustaa. 79 00:03:26,980 --> 00:03:29,780 Esimerkiksi, jos meillä on numero nolla, ja haluamme 80 00:03:29,780 --> 00:03:32,790 edustavat binary, käyttäen kahdeksan bittiä, jossa vähän, 81 00:03:32,790 --> 00:03:34,710 jälleen, on nolla tai yksi, voisimme 82 00:03:34,710 --> 00:03:39,240 edustaa sitä 00000000. 83 00:03:39,240 --> 00:03:41,160 Ja se on vähän turhan monisanainen. 84 00:03:41,160 --> 00:03:43,700 Aivan kuten kymmenjärjestelmässä todellisessa maailmassa, 85 00:03:43,700 --> 00:03:47,040 Yleisesti, jos haluat kirjoittaa numero 123, me 86 00:03:47,040 --> 00:03:52,240 ihmiset luultavasti eivät kirjoita 00000123 vaikka 87 00:03:52,240 --> 00:03:53,940 toiminnallisesti, se täsmälleen sama numero. 88 00:03:53,940 --> 00:03:56,580 Me vain pudota etunollia, niin sanoakseni. 89 00:03:56,580 --> 00:03:58,270 >> Binary, voimme tehdä saman. 90 00:03:58,270 --> 00:04:01,440 Binary ja nolla, nolla ja binaarinen on vain nolla. 91 00:04:01,440 --> 00:04:02,870 Tarvitset vain yhden bitin. 92 00:04:02,870 --> 00:04:05,020 Mutta jälleen kerran, yleisin mittayksikkö maailmassa 93 00:04:05,020 --> 00:04:07,820 laskenta on tavun, kahdeksan bittiä. 94 00:04:07,820 --> 00:04:09,720 Vain koska yksi bitti, melko hyödytön. 95 00:04:09,720 --> 00:04:12,020 Kahdeksan bittiä, ei kovin hyödyllistä, mutta ainakin se on enemmän 96 00:04:12,020 --> 00:04:14,280 hyödyllisiä kuin yksi mittayksikkö. 97 00:04:14,280 --> 00:04:17,100 Joten kahdeksan bittiä, me tyypillisesti edustaa binary. 98 00:04:17,100 --> 00:04:20,459 Joten tässä meillä on numerot nolla, yksi, kaksi, ja sitten, kuten 99 00:04:20,459 --> 00:04:24,200 Nate teki meidän video viime keskiviikkona, voimme jatkaa 100 00:04:24,200 --> 00:04:25,940 counting jopa seitsemän, kahdeksan. 101 00:04:25,940 --> 00:04:27,860 Ja sitten jos käytämme enemmän bittejä, me 102 00:04:27,860 --> 00:04:29,880 voi laskea äärettömyyteen asti. 103 00:04:29,880 --> 00:04:32,800 Mutta jos on vain äärellinen määrä näitä bittejä, kuten on 104 00:04:32,800 --> 00:04:35,030 Jos missä tahansa tietokonejärjestelmässä, tai jopa ohjus 105 00:04:35,030 --> 00:04:36,670 järjestelmä, hyvin, olet todellakin vain 106 00:04:36,670 --> 00:04:37,900 rajallinen määrä tarkkuutta. 107 00:04:37,900 --> 00:04:41,290 Joten jos haluat edustaa numero kuin 0,1, hyvin, 108 00:04:41,290 --> 00:04:43,410 tietokone on valita. 109 00:04:43,410 --> 00:04:45,970 Ja jos se on vain äärellinen määrä numeroita se voi 110 00:04:45,970 --> 00:04:50,490 edustaa, se voi tulla lähelle 0,1 teille, mutta se ei voi 111 00:04:50,490 --> 00:04:53,730 välttämättä anna sinulle juuri haluamasi arvo. 112 00:04:53,730 --> 00:04:55,660 Ja tämä on vain yksi haasteista tietokoneiden, 113 00:04:55,660 --> 00:04:57,090 alla huppu, onneksi. 114 00:04:57,090 --> 00:04:59,110 >> Kun siirrymme kauemmas lukukauden nämä alemman tason 115 00:04:59,110 --> 00:05:02,310 yksityiskohdat tulee vähemmän kiinnostava, mutta varmasti 116 00:05:02,310 --> 00:05:05,700 soveltaa näitä ideoita voi olla hyvin reaalimaailman 117 00:05:05,700 --> 00:05:06,760 seurauksia. 118 00:05:06,760 --> 00:05:08,190 Yksi on vähän hauskaa. 119 00:05:08,190 --> 00:05:12,150 Kuinka moni teistä on nähnyt uskomattomia elokuvan Office Space? 120 00:05:12,150 --> 00:05:13,620 Jos et ole, se on sinun epävirallinen 121 00:05:13,620 --> 00:05:14,370 kotitehtäviä viikon. 122 00:05:14,370 --> 00:05:16,730 Mutta Toimistotilaa, kaverit siinä elokuvassa otetaan 123 00:05:16,730 --> 00:05:19,900 hyödyntää juuri tätä ajatusta, mutta ne todella minulle 124 00:05:19,900 --> 00:05:21,270 se toinen elokuva, saatat olla 125 00:05:21,270 --> 00:05:22,760 nähnyt, jopa vuosia ennen. 126 00:05:22,760 --> 00:05:24,920 Joten annan sinulle muutaman sekunnin traileri alkaen 127 00:05:24,920 --> 00:05:27,470 Tämä hämmästyttävä elokuva ja tämä on hyvin 128 00:05:27,470 --> 00:05:28,340 akateemisesti asiaan. 129 00:05:28,340 --> 00:05:30,310 >> [Toistaa MOVIE] 130 00:05:30,310 --> 00:05:32,240 Oikeastaan ​​olen edistetään. 131 00:05:32,240 --> 00:05:33,360 En voi ohjelmoida virus, joka repii, että 132 00:05:33,360 --> 00:05:34,460 laita pois big time. 133 00:05:34,460 --> 00:05:35,770 No, miten se toimii? 134 00:05:35,770 --> 00:05:37,836 Joka kerta siellä pankkisiirtona, jossa korko on 135 00:05:37,836 --> 00:05:40,154 laskettu, on olemassa tuhansia päivässä, tietokone päätyy 136 00:05:40,154 --> 00:05:41,040 nämä jakeet prosenttia. 137 00:05:41,040 --> 00:05:43,050 Mutta en aio tehdä mitään laitonta. 138 00:05:43,050 --> 00:05:46,730 Laiton? Samir, tämä on Amerikassa. 139 00:05:46,730 --> 00:05:48,010 Sinun vannon. 140 00:05:48,010 --> 00:05:51,870 Jos kukaan ei tiedä tästä, mutta meille, okei? Ei perheenjäseniä, ei 141 00:05:51,870 --> 00:05:52,490 tyttöystäviä, nobody. 142 00:05:52,490 --> 00:05:53,882 [Kuulumattomissa]. 143 00:05:53,882 --> 00:05:57,594 Älä huoli, ihminen, en kerro kenellekään myöskään. 144 00:05:57,594 --> 00:05:59,680 [Elokuva päättyy] 145 00:05:59,680 --> 00:06:01,900 >> Selvä, joten ehkä löysin tämän elokuvan paremmin kuin useimmat 146 00:06:01,900 --> 00:06:05,530 täällä, mutta joka tapauksessa, virus, että he olivat 147 00:06:05,530 --> 00:06:06,400 yrittää luoda - 148 00:06:06,400 --> 00:06:08,410 ja elokuvia, milloin he kutsuvat jotakin virus, 149 00:06:08,410 --> 00:06:09,770 se on yleensä ole oikeastaan ​​virus. 150 00:06:09,770 --> 00:06:11,600 Se on vain ohjelma, että joku kirjoitti jotain. 151 00:06:11,600 --> 00:06:13,800 Ja tässä tapauksessa, kaverit yrittivät kirjoittaa ohjelma 152 00:06:13,800 --> 00:06:16,610 että käytti heidän nimisen yhtiön Innotech n 153 00:06:16,610 --> 00:06:19,740 tietokonejärjestelmä, jossa tietokoneet myös, vaikka se 154 00:06:19,740 --> 00:06:21,350 on rahaa, ei välttämättä 155 00:06:21,350 --> 00:06:23,490 edustavat rahaa tarkasti. 156 00:06:23,490 --> 00:06:27,630 Joten vaikka saatat olla 0,10 dollaria tilillesi, 157 00:06:27,630 --> 00:06:31,060 0,10, hyvin, tietokone saattaisi ajatella, että sinulla on 158 00:06:31,060 --> 00:06:33,560 näin monta senttiä pankkitilille. 159 00:06:33,560 --> 00:06:35,750 Ja niin, mitä nämä kaverit olivat aikeissa tehdä - ja he 160 00:06:35,750 --> 00:06:38,240 varasti idean, se kääntyy pois Superman III, jossa 161 00:06:38,240 --> 00:06:41,210 Richard Pryor teki saman - he olivat pääasiassa 162 00:06:41,210 --> 00:06:44,880 kirjoittaa ohjelmia, jotka pyrkivät ottamaan kaikki perään 163 00:06:44,880 --> 00:06:46,930 numerot, kaikki pieni, pieni, pieni jakeet 164 00:06:46,930 --> 00:06:50,160 penniä, ja siphoning ne pois, niin että ihmiset vain 165 00:06:50,160 --> 00:06:52,620 ajatus, oi, se on vain 0,10 dollaria siellä, mutta kaikki nämä 166 00:06:52,620 --> 00:06:54,410 perään numerot lopulta täsmää. 167 00:06:54,410 --> 00:06:57,490 Joten ihana idea ja se kostautui hulvattoman että 168 00:06:57,490 --> 00:06:58,250 Erityisesti elokuva. 169 00:06:58,250 --> 00:07:01,800 >> Mutta todellisessa maailmassa, myös olemassa paljon enemmän koskevat 170 00:07:01,800 --> 00:07:03,190 vaikutukset näitä puheita. 171 00:07:03,190 --> 00:07:05,450 Ja yksi syy sukeltaa alalla tietokoneen 172 00:07:05,450 --> 00:07:07,620 tiede on jälleen sen soveltuvuus ei 173 00:07:07,620 --> 00:07:09,740 insinööritieteiden yksin, vaan vain 174 00:07:09,740 --> 00:07:10,650 muilla aloilla. 175 00:07:10,650 --> 00:07:14,760 Joten tämä on yhtä hilpeä katsomaan mikä voi mennä pieleen, mutta 176 00:07:14,760 --> 00:07:17,630 Se on myös varsin silmien avautuminen, luulen, kun se tulee 177 00:07:17,630 --> 00:07:20,760 ymmärtämään kuinka läsnäoleva tekniikat, kuten 178 00:07:20,760 --> 00:07:22,870 tietokoneita ja ohjelmointia tai näinä päivinä, 179 00:07:22,870 --> 00:07:23,930 muodossa ohjelmiston. 180 00:07:23,930 --> 00:07:26,500 Joten tämä seuraava leike on vain noin kuusi minuuttia, jatkuu 181 00:07:26,500 --> 00:07:30,320 mihin jäimme viime kerralla, mutta voimme tarkastella hieman 182 00:07:30,320 --> 00:07:33,370 enemmän perusteellisesti yksi tällainen näistä asioista. 183 00:07:33,370 --> 00:07:35,270 Saanen siirtyä suoraan mihin jäimme, 184 00:07:35,270 --> 00:07:37,780 joka oli täällä. 185 00:07:37,780 --> 00:07:41,580 Ja meillä on toinen osa kaksi, noin kuusi minuuttia täältä. 186 00:07:41,580 --> 00:07:41,980 >> [PLAY MOVIE] 187 00:07:41,980 --> 00:07:45,430 Vaivannut modernin ohjusteknologia. 188 00:07:45,430 --> 00:07:49,280 Vuonna 1991, kun ensimmäinen Persianlahden sota, Patriot 189 00:07:49,280 --> 00:07:51,350 ohjus kokenut samantyyppinen 190 00:07:51,350 --> 00:07:52,645 numero conversion ongelma. 191 00:07:52,645 --> 00:07:57,460 Ja sen seurauksena 20 henkilöä, 20 amerikkalaista sotilasta sai surmansa 192 00:07:57,460 --> 00:08:01,130 ja noin 100 muuta haavoittui, kun Patriot, joka piti 193 00:08:01,130 --> 00:08:03,400 suojaamaan saapuvan Scuds, 194 00:08:03,400 --> 00:08:06,020 ei palo ohjus. 195 00:08:06,020 --> 00:08:09,350 >> Kun Irak hyökkäsi Kuwaitiin ja Amerikassa käynnisti Desert 196 00:08:09,350 --> 00:08:13,530 Storm vuoden 1991 alussa, Patriot ohjuspattereita olivat 197 00:08:13,530 --> 00:08:16,970 lähetettiin suojelemaan Saudi-Arabiassa ja Israelin Irakin 198 00:08:16,970 --> 00:08:19,810 Scud ohjus hyökkäyksiä. 199 00:08:19,810 --> 00:08:23,740 Patriot on Yhdysvaltain keskipitkän kantaman pinta-ilma järjestelmään, 200 00:08:23,740 --> 00:08:26,370 valmistanut Raytheon company. 201 00:08:26,370 --> 00:08:30,860 Koko Patriot torjuntahävittäjä itse, se on noin 202 00:08:30,860 --> 00:08:35,650 noin 20 metriä pitkä ja se painaa noin 2000 kiloa. 203 00:08:35,650 --> 00:08:38,809 Ja se harjoittaa taistelukärki noin - Mielestäni se on suunnilleen 204 00:08:38,809 --> 00:08:40,169 150 kiloa. 205 00:08:40,169 --> 00:08:45,820 Ja taistelukärki itsessään on suuri räjähde, joka on 206 00:08:45,820 --> 00:08:48,120 fragmentit sen ympärille. 207 00:08:48,120 --> 00:08:51,870 Kotelo Warhead on suunniteltu toimimaan kuten Buckshot. 208 00:08:51,870 --> 00:08:54,920 Ohjukset kuljetetaan neljä prosenttia kontti ja ovat 209 00:08:54,920 --> 00:08:57,850 kuljettaa puoliperävaunu. 210 00:08:57,850 --> 00:09:02,940 >> Patriot ohjuspuolustusjärjestelmä ulottuu ainakin 211 00:09:02,940 --> 00:09:05,530 20 vuotta. 212 00:09:05,530 --> 00:09:09,150 Se oli alun perin suunniteltu ilmatorjunnan ohjus 213 00:09:09,150 --> 00:09:12,920 ampua alas vihollisen lentokoneita, ensimmäisessä Persianlahden sodassa. 214 00:09:12,920 --> 00:09:17,700 Kun sodan tuli, armeija halusi käyttää sitä ampua 215 00:09:17,700 --> 00:09:19,880 alas Scuds, ei lentokoneita. 216 00:09:19,880 --> 00:09:24,860 Air Irakin Force ei ollut niin suuri ongelma, mutta armeija 217 00:09:24,860 --> 00:09:27,260 oli huolissaan Scuds. 218 00:09:27,260 --> 00:09:30,810 Ja niin he yrittivät päivittää Patriot. 219 00:09:30,810 --> 00:09:33,770 Kuuntelua vihollisen ohjuksia kulkee 5 Machin oli menossa 220 00:09:33,770 --> 00:09:35,790 on riittävän haastava. 221 00:09:35,790 --> 00:09:39,460 Mutta kun Patriot kiidätettiin käyttöön, armeija 222 00:09:39,460 --> 00:09:43,730 ei ollut tietoinen Irakin muutos, joka teki heidän 223 00:09:43,730 --> 00:09:46,510 Scuds lähes mahdotonta osua. 224 00:09:46,510 --> 00:09:50,040 >> Mitä tapahtui on Scuds jotka olivat 225 00:09:50,040 --> 00:09:51,360 tulossa oli epävakaa. 226 00:09:51,360 --> 00:09:52,266 He olivat huojuu. 227 00:09:52,266 --> 00:09:56,300 Syynä tähän oli irakilaisia, saadakseen 600 228 00:09:56,300 --> 00:10:00,650 kilometriä ulos 300 km kantaman ohjusten otti 229 00:10:00,650 --> 00:10:02,423 paino pois edestä taistelukärjen ja 230 00:10:02,423 --> 00:10:03,990 tehty taistelukärki kevyempi. 231 00:10:03,990 --> 00:10:08,700 Joten nyt Patriot yrittää tulla milloin Scud, ja useimmat 232 00:10:08,700 --> 00:10:11,192 aika, valtaosa aikaa, se olisi 233 00:10:11,192 --> 00:10:13,450 kuin siivillä Scud. 234 00:10:13,450 --> 00:10:16,300 Kun Patriot verkonhaltijoiden toteutunut Patriot 235 00:10:16,300 --> 00:10:20,160 jäi tavoitteesta, ne räjäytettiin Patriot ydinpommi. 236 00:10:20,160 --> 00:10:22,760 Välttääksesi mahdollisen uhreja, sen annettiin 237 00:10:22,760 --> 00:10:25,100 pudota maahan. 238 00:10:25,100 --> 00:10:29,400 Se oli mitä useimmat ihmiset näkivät, yhtä iso tulipalloja taivaalla, 239 00:10:29,400 --> 00:10:34,930 ja ymmärtää väärin kuuntelevansa Scud ydinkärkien. 240 00:10:34,930 --> 00:10:37,490 >> Vaikka yötaivaalla, Patriots vaikutti 241 00:10:37,490 --> 00:10:41,570 tuhosivat Scuds kello Dhahran, ei voinut olla 242 00:10:41,570 --> 00:10:43,730 erehtykö sen suorituskykyä. 243 00:10:43,730 --> 00:10:46,370 Siellä Patriot tutkajärjestelmän kadottaa 244 00:10:46,370 --> 00:10:50,090 saapuvan Scud ja koskaan käynnistetty, koska 245 00:10:50,090 --> 00:10:51,340 että ohjelmisto virhe. 246 00:10:54,030 --> 00:10:57,050 Se oli israelilaisten joka ensimmäisenä huomasi, että enää 247 00:10:57,050 --> 00:11:02,000 Järjestelmän oli, sitä enemmän aikaa ero tuli, 248 00:11:02,000 --> 00:11:05,530 johtuen kellon upotettu järjestelmän tietokone. 249 00:11:05,530 --> 00:11:09,060 Noin kaksi viikkoa ennen tragedia Dhahran, 250 00:11:09,060 --> 00:11:11,730 Israelilaiset raportoitu puolustusministeriön että 251 00:11:11,730 --> 00:11:13,250 järjestelmä menettää aikaa. 252 00:11:13,250 --> 00:11:15,610 Noin kahdeksan tuntia käynnissä, he huomasivat, että 253 00:11:15,610 --> 00:11:18,330 järjestelmä oli tulossa huomattavasti epätarkempi. 254 00:11:18,330 --> 00:11:20,910 Puolustusministeriö vastasi kertomalla kaikki 255 00:11:20,910 --> 00:11:23,710 Patriot paristot jättää järjestelmät 256 00:11:23,710 --> 00:11:25,450 on pitkään. 257 00:11:25,450 --> 00:11:28,010 He eivät koskaan sanonut mitä pitkään oli - 8 tuntia, 10 258 00:11:28,010 --> 00:11:29,690 tuntia, 1000 tuntia. 259 00:11:29,690 --> 00:11:31,940 Kukaan ei tiennyt. 260 00:11:31,940 --> 00:11:35,020 >> Patriot Akku asemapaikkanaan kasarmille Dhahran 261 00:11:35,020 --> 00:11:39,030 ja sen puutteellinen sisäisen kellon oli ollut yli 100 tuntia 262 00:11:39,030 --> 00:11:42,240 yönä helmikuun 25. päivä. 263 00:11:42,240 --> 00:11:46,580 On seurataan aika tarkkuudella noin sekunnin kymmenesosaan. 264 00:11:46,580 --> 00:11:48,830 Nyt kymmenesosa toinen mielenkiintoinen numero, koska 265 00:11:48,830 --> 00:11:52,660 sitä ei voida ilmaista binary, täsmälleen, mikä tarkoittaa, 266 00:11:52,660 --> 00:11:54,940 sitä ei voida ilmaista tarkasti missä tahansa 267 00:11:54,940 --> 00:11:57,330 moderni digitaalinen tietokone. 268 00:11:57,330 --> 00:11:59,130 On vaikea uskoa. 269 00:11:59,130 --> 00:12:01,720 Mutta käyttää tätä esimerkkinä. 270 00:12:01,720 --> 00:12:04,090 >> Otetaan numero kolmasosaa. 271 00:12:04,090 --> 00:12:07,950 Kolmasosa ei voida desimaaliasteina, tarkalleen. 272 00:12:07,950 --> 00:12:12,710 Kolmasosa on 0,333 jatkunut ääretön. 273 00:12:12,710 --> 00:12:17,050 Ei ole mitään keinoa tehdä sitä absoluuttinen tarkkuus desimaalin. 274 00:12:17,050 --> 00:12:19,340 Juuri samanlaista ongelmaa, joka tapahtui 275 00:12:19,340 --> 00:12:20,190 Patriot. 276 00:12:20,190 --> 00:12:24,680 Kauemmin järjestelmä juoksi, huonompi aika virhe tuli. 277 00:12:24,680 --> 00:12:28,640 Jälkeen 100 käyttötunnin virhe aika oli vain 278 00:12:28,640 --> 00:12:29,870 noin kolmasosa toisen. 279 00:12:29,870 --> 00:12:34,790 Mutta kannalta kohdistaminen ohjus kulkee MACH 5, 280 00:12:34,790 --> 00:12:39,140 se johti tracking error on yli 600 metriä. 281 00:12:39,140 --> 00:12:42,510 Olisi kohtalokas virhe sotilaat Dhahran. 282 00:12:42,510 --> 00:12:48,680 >> Mitä tapahtui on Scud käynnistää havaittiin varhaisvaroitus 283 00:12:48,680 --> 00:12:52,440 satelliitit ja he tiesivät, että Scud oli tulossa heidän 284 00:12:52,440 --> 00:12:53,350 yleinen suunta. 285 00:12:53,350 --> 00:12:55,470 He eivät tiedä, mistä se tuli. 286 00:12:55,470 --> 00:12:58,210 Se oli nyt jopa tutkan osa Patriot 287 00:12:58,210 --> 00:13:01,920 järjestelmä, puolustaa Dhahran, paikantaa ja seurata 288 00:13:01,920 --> 00:13:03,700 saapuvan vihollisen ohjuksia. 289 00:13:03,700 --> 00:13:05,390 Tutka oli hyvin älykäs. 290 00:13:05,390 --> 00:13:07,570 Sinun olisi todella seurata aseman Scud ja sitten 291 00:13:07,570 --> 00:13:10,340 ennustamaan, missä se todennäköisesti olisi seuraavan kerran 292 00:13:10,340 --> 00:13:12,040 tutka lähetti pulssi ulos. 293 00:13:12,040 --> 00:13:13,730 Se oli nimeltään alue portti. 294 00:13:13,730 --> 00:13:18,820 Sitten, kun Patriot päätä riittävästi aikaa on kulunut mennä 295 00:13:18,820 --> 00:13:22,600 takaisin tarkistamaan seuraavan sijainti Tämä havaittu 296 00:13:22,600 --> 00:13:24,190 esine, se menee takaisin. 297 00:13:24,190 --> 00:13:27,940 Joten kun se meni takaisin väärään paikkaan, sitten se ei näe mitään 298 00:13:27,940 --> 00:13:31,000 vastustaa, ja se päättää, että ei ole vastusta. 299 00:13:31,000 --> 00:13:34,370 Se oli väärä tunnistus ja putoaa radan. 300 00:13:34,370 --> 00:13:37,630 >> Tuleva Scud katosi tutkan. 301 00:13:37,630 --> 00:13:41,300 Ja sekuntia myöhemmin se törmäsi kasarmeja. Scud 302 00:13:41,300 --> 00:13:44,730 tappoi 28 ja oli viimeinen potkut aikana 303 00:13:44,730 --> 00:13:46,450 Ensimmäisen Persianlahden sodan. 304 00:13:46,450 --> 00:13:50,570 Traagisesti, päivitetty ohjelmisto saapui Dhahran 305 00:13:50,570 --> 00:13:52,060 seuraavana päivänä. 306 00:13:52,060 --> 00:13:56,210 Ja ohjelmiston vika oli korjattu, sulkemalla yhden luvun 307 00:13:56,210 --> 00:13:58,370 levoton historia Patriot ohjus. 308 00:14:01,790 --> 00:14:04,990 Patriot on oikeastaan ​​lyhenne sanoista "vaiheittain array seuranta 309 00:14:04,990 --> 00:14:08,516 Leikkaus Target. " 310 00:14:08,516 --> 00:14:13,390 >> Selvä, niin paljon surullinen tulos ei ole aivan 311 00:14:13,390 --> 00:14:14,430 ymmärtää tätä maailmaa. 312 00:14:14,430 --> 00:14:18,180 Ja nouto, todella, mistä elokuva on, että ratkaisu 313 00:14:18,180 --> 00:14:20,790 siellä oli käynnistä ohjuspuolustusjärjestelmä 314 00:14:20,790 --> 00:14:21,770 aina silloin tällöin. 315 00:14:21,770 --> 00:14:24,280 Ja niin taas yksi tavoitteista tämän kurssin, varmasti 316 00:14:24,280 --> 00:14:26,900 on nöyrempiä mittakaavassa kuin näissä sovelluksissa, on 317 00:14:26,900 --> 00:14:30,710 todella avoin kaikkien silmissä tarkalleen miten edetä 318 00:14:30,710 --> 00:14:34,380 valmistuskoneet tehdä mitä haluat heidän tekevän ja miten mennä 319 00:14:34,380 --> 00:14:37,180 noin tekee, että oikein, vaikka matkan varrella tehdä se 320 00:14:37,180 --> 00:14:38,810 hyvin, tyylikkäästi, ja niin edelleen. 321 00:14:38,810 --> 00:14:41,680 Ja niin tänään, katsotaanpa sukeltaa hieman enemmän, mutta 322 00:14:41,680 --> 00:14:44,210 joten emme mene liian nopeasti, etenkin niille vähemmän 323 00:14:44,210 --> 00:14:46,590 mukava, mutta myös jotta voimme säilyttää edun 324 00:14:46,590 --> 00:14:49,390 nämä mukavampaa, mennään vain nopeasti alkaa hieman 325 00:14:49,390 --> 00:14:50,970 ja kertaus näitä ajatuksia. 326 00:14:50,970 --> 00:14:53,710 Ja vielä, kysy pois, niin henkilökohtaisesti tai verkossa, jos sinulla on 327 00:14:53,710 --> 00:14:56,320 kysymyksiä, joten voimme pitää kaikki samalla sivulla. 328 00:14:56,320 --> 00:14:58,820 >> Joten CS50 Appliance, nopea askel taaksepäin, on 329 00:14:58,820 --> 00:15:02,360 mitä, omin sanoin? 330 00:15:02,360 --> 00:15:06,454 Se on OK, jos sinulla ei ole aavistustakaan, mitä nuo sanat saattavat olla vielä. 331 00:15:06,454 --> 00:15:07,830 [Kuulumattomissa] 332 00:15:07,830 --> 00:15:10,950 Okei, joten yleinen käyttöliittymä - 333 00:15:10,950 --> 00:15:11,900 että me kaikki voimme jakaa. 334 00:15:11,900 --> 00:15:12,470 Ehdottomasti. 335 00:15:12,470 --> 00:15:14,840 Joten voisimme esimerkiksi kertoa mennä joitakin 336 00:15:14,840 --> 00:15:16,910 verkkosivuilla ladata tämän ohjelmiston Mac OS. 337 00:15:16,910 --> 00:15:19,140 Lataa ohjelma Windows, määritä vuonna 338 00:15:19,140 --> 00:15:20,100 tällä tavalla ja että. 339 00:15:20,100 --> 00:15:22,370 Mutta todellisuus on sitten joutunut lukemattomia teknisiä 340 00:15:22,370 --> 00:15:23,200 tukikysymykset. 341 00:15:23,200 --> 00:15:26,630 Ja myös näinä päivinä, paljon siitä, mitä tehdään palvelimen puolella, 342 00:15:26,630 --> 00:15:28,490 maailman tietojenkäsittely, varsinkin kun se tulee 343 00:15:28,490 --> 00:15:31,460 Web-kehitys ja web-pohjaisia ​​sovelluksia, on oikeastaan 344 00:15:31,460 --> 00:15:35,110 varsin usein tehty Unix-tai Linux-tietokoneita, toisin kuin 345 00:15:35,110 --> 00:15:36,800 Mac-tai Windows-PC. 346 00:15:36,800 --> 00:15:39,240 >> Joten joukossa upsides, sitten, käyttämällä tätä asia, jota kutsutaan 347 00:15:39,240 --> 00:15:41,500 CS50 Appliance on meidän kaikkien täytyy samassa ympäristössä. 348 00:15:41,500 --> 00:15:43,670 Joten kaikki ovat samalla sivulla mitä laitteita sinulla 349 00:15:43,670 --> 00:15:46,650 tuli kampuksella, mutta myös se leikittelevät täsmälleen 350 00:15:46,650 --> 00:15:48,230 samassa ympäristössä, joka aiot käyttää kohti 351 00:15:48,230 --> 00:15:51,080 lukukauden lopussa sekä web-kehitys, sekä 352 00:15:51,080 --> 00:15:53,580 tulevaisuutta reaalimaailman sovelluksia sen. 353 00:15:53,580 --> 00:15:56,350 Joten konkreettisemmin, CS50 Appliance on ilmainen pala 354 00:15:56,350 --> 00:15:59,400 ohjelmisto, jonka avulla voit suorittaa toisen käyttöjärjestelmän, 355 00:15:59,400 --> 00:16:02,670 Linux, tässä tapauksessa omalle koneelle, ja ikkunan. 356 00:16:02,670 --> 00:16:04,750 Nyt et voi vain ladata laitetta. 357 00:16:04,750 --> 00:16:08,170 Tarvitset ohjelman, joka toistaa tai käytä laitetta. 358 00:16:08,170 --> 00:16:11,220 Ja että ohjelmisto on yleisesti tunnettu 359 00:16:11,220 --> 00:16:11,520 hypervisor. 360 00:16:11,520 --> 00:16:14,050 Hypervisor tulevat tuotteiden muodossa, kuten VMware, 361 00:16:14,050 --> 00:16:15,820 Virtual Box, Parallels. 362 00:16:15,820 --> 00:16:18,390 Kaikenlaisia ​​yritykset tekevät ohjelmistoja sekä vapaa ja 363 00:16:18,390 --> 00:16:19,310 kaupallinen, samankaltaisia. 364 00:16:19,310 --> 00:16:21,480 Mitä näet, Harjoitus 1 on ohjeet 365 00:16:21,480 --> 00:16:23,440 saada ilmainen ohjelmisto, jolla voidaan 366 00:16:23,440 --> 00:16:25,000 ajaa CS50 Appliance. 367 00:16:25,000 --> 00:16:28,060 Ja kun et, sinulla on, on ikkuna Macin tai PC, 368 00:16:28,060 --> 00:16:30,710 työpöytäympäristö, joka näyttää aivan kuten tämä, jossa 369 00:16:30,710 --> 00:16:33,100 se on Käynnistä-valikon kaltainen asia 370 00:16:33,100 --> 00:16:34,510 näytön vasemmassa alakulmassa. 371 00:16:34,510 --> 00:16:38,030 Se on Home kansioon tai kotihakemisto, vasemmassa yläkulmassa 372 00:16:38,030 --> 00:16:40,280 siellä, roskakori, ja niin edelleen. 373 00:16:40,280 --> 00:16:43,450 Joten me erottaa toisistaan ​​välttämättömiä täsmennyksiä mennään. 374 00:16:43,450 --> 00:16:46,430 >> Mutta nyt aloitamme sukeltaa C. 375 00:16:46,430 --> 00:16:49,200 Eli C on tällä ohjelmointikieli, hengeltään samanlaisia 376 00:16:49,200 --> 00:16:52,390 Scratch, mutta paljon vähemmän graafinen, mutta ironista kyllä, paljon 377 00:16:52,390 --> 00:16:54,730 voimakkaampi kun saat taju kanssa. 378 00:16:54,730 --> 00:16:58,970 Joten C, voimme kirjoittaa ohjelmia kirjoittamalla lähdekoodi, joka on 379 00:16:58,970 --> 00:17:01,640 Tämä Englanti kaltainen syntaksi, samanlainen sukat 380 00:17:01,640 --> 00:17:05,609 osoitus siitä, että teimme viime kerralla, jonka avulla voit 381 00:17:05,609 --> 00:17:07,910 ilmaista itseäsi melko tarkasti, jos 382 00:17:07,910 --> 00:17:09,760 arcanely, tietokoneeseen. 383 00:17:09,760 --> 00:17:11,960 >> Millainen tuoteohjelmiston sinä todella tarvitset 384 00:17:11,960 --> 00:17:15,520 kirjoittaa ohjelmia kielellä kuten C, perustuvat 385 00:17:15,520 --> 00:17:17,492 keskustelu maanantaina? 386 00:17:17,492 --> 00:17:19,650 [Kuulumattomissa] 387 00:17:19,650 --> 00:17:21,079 OK, sinun tarvitsee vain tekstieditorilla. 388 00:17:21,079 --> 00:17:22,890 Sinun ei tarvitse mitään erityisiä ohjelmistoja 389 00:17:22,890 --> 00:17:24,460 sinänsä kirjoittaa ohjelmia. 390 00:17:24,460 --> 00:17:27,220 Tarvitset vain tekstieditori kuten Notepad, Windows, 391 00:17:27,220 --> 00:17:30,450 TeXturi Mac, tai jotain nimeltään gedit, maailman 392 00:17:30,450 --> 00:17:32,020 Linux, jonka käytämme täällä. 393 00:17:32,020 --> 00:17:33,750 Ja se on siinä, kirjoittaa ohjelmia. 394 00:17:33,750 --> 00:17:35,480 >> Mutta kirjoitus on vain puolet yhtälöstä. 395 00:17:35,480 --> 00:17:36,630 Sitten on käyttää niitä. 396 00:17:36,630 --> 00:17:38,320 Mutta jotta ajaa ohjelmia - 397 00:17:38,320 --> 00:17:39,600 et voi suorittaa lähdekoodia. 398 00:17:39,600 --> 00:17:41,500 Sinulla sen sijaan on tehtävä mitä se ensin? 399 00:17:41,500 --> 00:17:41,900 Joo. 400 00:17:41,900 --> 00:17:43,200 DAVID J. MALAN: Sinun 401 00:17:43,200 --> 00:17:44,130 kääntää sen. 402 00:17:44,130 --> 00:17:49,010 Ja joku muu, kokoamiseen lähdekoodi tarkoittaa - 403 00:17:49,010 --> 00:17:50,260 [Kuulumattomissa] 404 00:17:52,300 --> 00:17:52,700 DAVID J. MALAN: Aivan. 405 00:17:52,700 --> 00:17:54,430 Kääntäminen se nollia ja ykkösiä. 406 00:17:54,430 --> 00:17:57,150 Koska me kaikki, näinä päivinä, joiden tietokoneet ovat suorittimet, 407 00:17:57,150 --> 00:18:00,350 lähes kaikki, jotka on valmistettu niminen yhtiö Intel, ja 408 00:18:00,350 --> 00:18:03,320 Intel Inside, tarkoittaa, että tämä aivojen sisäpuolelle 409 00:18:03,320 --> 00:18:04,990 tietokone, joka tunnetaan nimellä CPU. 410 00:18:04,990 --> 00:18:07,570 Ja yksi niistä asioista, että aivot tekee on, se tietää 411 00:18:07,570 --> 00:18:10,390 miten ymmärtää malleja nollia ja ykkösiä. 412 00:18:10,390 --> 00:18:13,240 Se tietää mitä mallia bittien edustaa lisäksi, mitä 413 00:18:13,240 --> 00:18:15,500 malli edustaa subtractions, mikä malli 414 00:18:15,500 --> 00:18:18,890 bittiä edustavat tulostus, ja luoda kuultavan äänen. 415 00:18:18,890 --> 00:18:22,450 >> Niin lyhyt, CPU, joka on kytketty käyttöjärjestelmän kanssa, 416 00:18:22,450 --> 00:18:25,230 joka on pala ohjelmisto, joka toimii päälle CPU, 417 00:18:25,230 --> 00:18:26,050 niin sanoakseni. 418 00:18:26,050 --> 00:18:29,850 Yhdessä nämä kaksi osaa ajaa ohjelmia 419 00:18:29,850 --> 00:18:31,070 me ihmiset kirjoittaa. 420 00:18:31,070 --> 00:18:34,040 >> Joten jos menen CS50 Appliance täällä, minun täytyy avata 421 00:18:34,040 --> 00:18:35,660 ylös tekstieditorissa ja voin käyttää tätä 422 00:18:35,660 --> 00:18:36,560 parin tavoin. 423 00:18:36,560 --> 00:18:39,060 Voin joko mennä Menu, ohjelmointi, 424 00:18:39,060 --> 00:18:40,230 ja sitten voin valita - 425 00:18:40,230 --> 00:18:40,810 Ehei, ei se valikko. 426 00:18:40,810 --> 00:18:43,860 Voin mennä Tarvikkeet / gedit tästä avataksesi 427 00:18:43,860 --> 00:18:45,090 pikku tekstieditorilla. 428 00:18:45,090 --> 00:18:48,030 Tai yksinkertaisemmin, voin napsauttaa tätä pientä kuvaketta alareunassa 429 00:18:48,030 --> 00:18:48,970 vasemmassa alakulmassa. 430 00:18:48,970 --> 00:18:50,430 Ja nyt saan tämän ympäristön tänne. 431 00:18:50,430 --> 00:18:52,590 Ihan mieleen yksinkertainen tekstieditori, vain 432 00:18:52,590 --> 00:18:53,820 yksi tai kaksi eroja. 433 00:18:53,820 --> 00:18:56,420 Vuonna alkuun, missä kursori vilkkuu nyt, tämä on silloin 434 00:18:56,420 --> 00:18:57,900 Voin aloittaa kirjallisesti minun koodi. 435 00:18:57,900 --> 00:19:00,415 Pohjaan on tämä asia sanottu pääteikkuna. 436 00:19:00,415 --> 00:19:03,400 Ja millaisia ​​asioita voin tehdä tässä 437 00:19:03,400 --> 00:19:04,960 ns pääteikkunassa? 438 00:19:04,960 --> 00:19:06,680 [Kuulumattomissa] 439 00:19:06,680 --> 00:19:07,890 >> Okei, joten minä ajaa komentoja. 440 00:19:07,890 --> 00:19:10,300 Ja jotkut komennot me juoksi maanantaina olivat hieman 441 00:19:10,300 --> 00:19:15,070 arvoituksellinen aluksi, mutta ls-luettelosta cd muutoksen hakemistoon, 442 00:19:15,070 --> 00:19:16,540 rm varten poista. 443 00:19:16,540 --> 00:19:19,680 Joten se on tavallaan vanhan koulukunnan tapa selaamisesta 444 00:19:19,680 --> 00:19:22,310 tietokone, käyttäen vain näppäimistön ja tekstuaalinen komentoja, 445 00:19:22,310 --> 00:19:24,130 ja ei, yleensä, hiiren avulla. 446 00:19:24,130 --> 00:19:25,960 Mutta näemme, ennen pitkää, tämä todella antaa meille 447 00:19:25,960 --> 00:19:28,520 hieman enemmän tehoa ja hieman enemmän tarkkuutta, jolla on 448 00:19:28,520 --> 00:19:29,600 ilmaista itseämme. 449 00:19:29,600 --> 00:19:31,330 Ja sitten tänne vasemmalle, olemme juuri menossa nähdä, 450 00:19:31,330 --> 00:19:34,360 kun alamme kirjallisesti ohjelmisto, pieni yhteenveto 451 00:19:34,360 --> 00:19:36,350 ohjelma, olemme kirjoittaneet ylhäällä vasemmalla. 452 00:19:36,350 --> 00:19:38,360 Mutta me näemme, että vielä ennen pitkää. 453 00:19:38,360 --> 00:19:40,050 >> Joten jotain melko yksinkertainen täällä. 454 00:19:40,050 --> 00:19:43,440 Sallikaa minun ensin mennä eteenpäin ja mene Tiedosto, Tallenna ja olen juuri 455 00:19:43,440 --> 00:19:45,970 menossa klikkaa jharvard täällä yli vasemmalla, ja 456 00:19:45,970 --> 00:19:48,930 jharvard on jälleen nimi kotini kansion, minun 457 00:19:48,930 --> 00:19:52,110 henkilökohtaisia ​​tiedostoja, minulle, nyt John Harvard, kuten te kaikki 458 00:19:52,110 --> 00:19:54,230 pian John Harvardin tässä ympäristössä. 459 00:19:54,230 --> 00:19:57,360 Hän sai tämän kotihakemisto, Omat tiedostot ja niin edelleen, 460 00:19:57,360 --> 00:19:58,900 että haluan pelastaa, nyt, tämän tiedoston sisään 461 00:19:58,900 --> 00:20:01,520 Joten aion kutsua sitä hello.c. Sitten menen 462 00:20:01,520 --> 00:20:05,770 eteenpäin ja valitse Tallenna, ja mitä nyt olen tässä välilehti 463 00:20:05,770 --> 00:20:09,440 kutsutaan hello.c, niin paljon kuin muunlaista editori. 464 00:20:09,440 --> 00:20:11,760 >> Joten nyt haluan mennä eteenpäin ja alkaa kirjoittaa ohjelman. 465 00:20:11,760 --> 00:20:14,440 int main (void). 466 00:20:14,440 --> 00:20:18,150 Ja sitten tein viimeisen kerran, printf, tulostus alustettu, 467 00:20:18,150 --> 00:20:22,120 ("Hei, maailma!" 468 00:20:22,120 --> 00:20:24,500 );. 469 00:20:24,500 --> 00:20:25,630 Lähes täydellinen. 470 00:20:25,630 --> 00:20:27,130 Mutta minulta puuttuu pari yksityiskohtia. 471 00:20:27,130 --> 00:20:30,210 Mitä puuttuu tästä ohjelmasta että olen todella tarvitsevat 472 00:20:30,210 --> 00:20:31,890 se todella koota? 473 00:20:31,890 --> 00:20:32,130 Joo. 474 00:20:32,130 --> 00:20:33,980 [Kuulumattomissa]? 475 00:20:33,980 --> 00:20:35,770 >> DAVID J. MALAN: Joo, niin minun täytyy sisällyttää standardin 476 00:20:35,770 --> 00:20:36,700 I / O-kirjasto. 477 00:20:36,700 --> 00:20:39,470 Joten tämä mentävä edellä main, joten olen juuri menossa 478 00:20:39,470 --> 00:20:40,790 tehdä joitakin tilaa siellä. 479 00:20:40,790 --> 00:20:44,420 Ja aion tehdä # include . 480 00:20:44,420 --> 00:20:46,570 Ja huomaa kulmikas suluissa siellä. 481 00:20:46,570 --> 00:20:49,410 Ja kuten syrjään, gedit on pieni käyttäjäystävällinen, jos 482 00:20:49,410 --> 00:20:52,420 joskus hieman sekava, koska se yrittää auttaa 483 00:20:52,420 --> 00:20:54,770 silmät huomaa mitä on linjassa sen kanssa, mitä. 484 00:20:54,770 --> 00:20:57,760 Niin että minun kohdistin on aivan tämän kulma 485 00:20:57,760 --> 00:21:00,600 kiinnike, huomaa kuinka se korostaa muiden kulmikas 486 00:21:00,600 --> 00:21:01,920 kiinnike plus tämä. 487 00:21:01,920 --> 00:21:03,770 Ja juuri kiinnittää huomioni siihen, että olen 488 00:21:03,770 --> 00:21:04,460 on symmetria. 489 00:21:04,460 --> 00:21:07,010 Ja symmetria ohjelmointi on yleensä hyvä asia. 490 00:21:07,010 --> 00:21:10,270 Samoin jos voin siirtää kohdistimen loppuun, huomaa, miten 491 00:21:10,270 --> 00:21:13,630 aaltosulkeita riviin osoittamaan, kyllä, olen avaa jokin 492 00:21:13,630 --> 00:21:15,160 ja suljettu, niin sanotusti. 493 00:21:15,160 --> 00:21:16,640 >> Selvä, ja voin tehdä yksi asia. 494 00:21:16,640 --> 00:21:20,090 Se ei ole välttämätöntä, mutta hyvä käytäntö, eli 495 00:21:20,090 --> 00:21:21,250 palauttaa 0. 496 00:21:21,250 --> 00:21:24,140 Ja return 0 mitäkin meille täällä? 497 00:21:24,140 --> 00:21:25,584 Tai merkitsee mitä? 498 00:21:25,584 --> 00:21:27,480 [Kuulumattomissa] 499 00:21:27,480 --> 00:21:28,300 DAVID J. MALAN: Mutta mitään vikaa. 500 00:21:28,300 --> 00:21:30,280 Ja suoraan sanottuna on vaikea paljon mennä pieleen 501 00:21:30,280 --> 00:21:31,250 ohjelmoida tämän lyhyen. 502 00:21:31,250 --> 00:21:33,930 Joten olen juuri parhaillaan Super nimenomaisesti, että kaikki on hyvin. 503 00:21:33,930 --> 00:21:36,740 Minä, ihminen, kun suoritat tämän ohjelman, luultavasti koskaan 504 00:21:36,740 --> 00:21:38,150 nähdä, että 0. 505 00:21:38,150 --> 00:21:41,070 Yleensä nämä numerot ovat palanneet tärkeimmistä 506 00:21:41,070 --> 00:21:43,540 vain kasvattaa päänsä ihmisille, kun 507 00:21:43,540 --> 00:21:44,360 jokin menee pieleen. 508 00:21:44,360 --> 00:21:46,640 Ja saat vähän pop up sanoa järjestelmä virhe, yksi, 509 00:21:46,640 --> 00:21:48,760 kaksi, kolme, tai mitä tahansa määrä oli se, että 510 00:21:48,760 --> 00:21:50,100 oli palannut. 511 00:21:50,100 --> 00:21:52,870 Joten jotain muuta vikaa? 512 00:21:52,870 --> 00:21:55,300 [Kuulumattomissa] 513 00:21:55,300 --> 00:21:58,100 >> DAVID J. MALAN: Eli tämä ei ole niinkään toiminnallinen virhe 514 00:21:58,100 --> 00:21:59,240 mutta esteettinen yksi. 515 00:21:59,240 --> 00:22:02,340 Minun pitäisi varmaan laittaa rivinvaihtomerkki siellä 516 00:22:02,340 --> 00:22:05,240 lopussa merkkijonon, jotta me todella siirtää osoitinta 517 00:22:05,240 --> 00:22:08,340 seuraavalle riville, ja ohjelma vain näyttää hieman kauniimpi. 518 00:22:08,340 --> 00:22:10,340 >> Joten nyt haluan mennä alas minun pääteikkunassa 519 00:22:10,340 --> 00:22:11,490 ja zoom takaisin sisään 520 00:22:11,490 --> 00:22:13,390 Ja tämä juttu täällä, sitä kutsutaan viipymättä. 521 00:22:13,390 --> 00:22:16,760 Se vain muistuttaa minulle, kuka olen, jharvard @ laite, jossa 522 00:22:16,760 --> 00:22:18,850 Laite on nimi tietokoneen olen. 523 00:22:18,850 --> 00:22:22,380 Suluissa on tämä tilde, koukero symboli, joka 524 00:22:22,380 --> 00:22:24,160 edustaa mitä? 525 00:22:24,160 --> 00:22:25,590 YLEISÖ: kotihakemisto. 526 00:22:25,590 --> 00:22:26,350 DAVID J. MALAN: kotihakemisto. 527 00:22:26,350 --> 00:22:29,350 Joten se on vain lyhennetty merkintätapa sanomalla olet 528 00:22:29,350 --> 00:22:32,780 henkilökohtainen kansio, johon kaikki tiedostot menevät oletuksena. 529 00:22:32,780 --> 00:22:36,080 Joten nyt, täällä, voin kirjoittaa ls-luettelosta. 530 00:22:36,080 --> 00:22:40,020 Ja ainoa asia näen täällä tällä hetkellä hello.c. 531 00:22:40,020 --> 00:22:41,770 Ja se on hyvä, koska olen juuri kirjoitin tämän. 532 00:22:41,770 --> 00:22:44,380 >> Joten anna minun mennä eteenpäin ja tehdä tee hei. 533 00:22:44,380 --> 00:22:46,830 Ja huomaa En kirjoittamalla tee hello.c. 534 00:22:46,830 --> 00:22:50,300 Sen sijaan olen vain kirjoittamalla pohjan tiedoston nimeä, hei. 535 00:22:50,300 --> 00:22:53,690 Ja tee, kuten näimme maanantaina, tulee vain päätellä, että haluan 536 00:22:53,690 --> 00:22:54,920 . C-tiedoston. 537 00:22:54,920 --> 00:22:56,820 Joten nyt olen kirjoittanut tehdä hei. 538 00:22:56,820 --> 00:22:59,280 Nyt näen tämän melko pitkä komento ja jatkuu 539 00:22:59,280 --> 00:23:00,480 nähdä tämä uudestaan ​​ja uudestaan. 540 00:23:00,480 --> 00:23:03,620 Mutta selvää, clang, sana joka vain ilmestyi, 541 00:23:03,620 --> 00:23:05,340 se todellinen kääntäjä. 542 00:23:05,340 --> 00:23:08,200 Tee vain rakentaa apuohjelma. 543 00:23:08,200 --> 00:23:11,900 Se on vain entistä käyttäjäystävällisempiä ohjelma säästää minua, 544 00:23:11,900 --> 00:23:15,310 pitkällä aikavälillä, saamasta kirjoittaa ulos uskomattoman tylsiä pitkä 545 00:23:15,310 --> 00:23:17,020 komennot kuten että yksi. 546 00:23:17,020 --> 00:23:18,950 Joten voisit ajaa clang manuaalisesti. 547 00:23:18,950 --> 00:23:20,530 Voisit kirjoittaa kaiken tuon manuaalisesti. 548 00:23:20,530 --> 00:23:21,580 Vain saa erittäin tylsiä. 549 00:23:21,580 --> 00:23:24,720 Ja niin tekevät on vain ohjelma, joka yksinkertaistaa elämäämme ja 550 00:23:24,720 --> 00:23:27,120 toimii monimutkaisempia komentoja meille. 551 00:23:27,120 --> 00:23:29,410 >> Selvä, joten nyt mitä tiedostoa minun tulisi 552 00:23:29,410 --> 00:23:31,540 minun hakemistossa? 553 00:23:31,540 --> 00:23:36,310 Ei vain hello.c, vaan myös hei. 554 00:23:36,310 --> 00:23:39,710 Joten jos haluan ajaa Hei, muistaa, että sanon piste slash, 555 00:23:39,710 --> 00:23:42,220 missä piste tarkoittaa mennä nykyisen kansion, missä 556 00:23:42,220 --> 00:23:46,060 ovat, ja suorita sitten ohjelma nimeltä Hei, ja todellakin, nyt, 557 00:23:46,060 --> 00:23:48,080 Minulla on Hello world. 558 00:23:48,080 --> 00:23:51,640 Selvä, kysyttävää työnkulun tai syntaksia 559 00:23:51,640 --> 00:23:52,890 mitä me juuri teimme? 560 00:23:55,380 --> 00:23:57,040 >> Selvä, joten otetaanpa asioita notch uudelleen. 561 00:23:57,040 --> 00:24:00,430 Joten tämä oli underwhelming vain kirjoittaa ohjelma, että vain 562 00:24:00,430 --> 00:24:01,790 koskaan sano hei, maailma. 563 00:24:01,790 --> 00:24:03,920 Niinpä muutimme sen, maanantaina sanoa, hei, David. 564 00:24:03,920 --> 00:24:06,560 Se on hieman enemmän henkilökohtaista, mutta aivan yhtä kovaa koodattu 565 00:24:06,560 --> 00:24:07,410 ensimmäinen versio. 566 00:24:07,410 --> 00:24:08,780 Joten ei kaikki pakottavia. 567 00:24:08,780 --> 00:24:13,120 Mutta on olemassa, C, toimii varmasti lisäksi 568 00:24:13,120 --> 00:24:15,700 Tulosta, toimintoja, joiden avulla saat käyttäjän syötettä. 569 00:24:15,700 --> 00:24:17,990 Ja miten me teimme tämän, toinen päivä, oli seuraava. 570 00:24:17,990 --> 00:24:21,440 Ennen kuin itse tulostaa jotain, Sain ensin 571 00:24:21,440 --> 00:24:22,410 jotain käyttäjältä. 572 00:24:22,410 --> 00:24:23,370 Joten anna minun tehdä tätä uudelleen. 573 00:24:23,370 --> 00:24:26,580 >> String s, missä s on vain mielivaltainen nimi, tähän, 574 00:24:26,580 --> 00:24:30,600 string, vastaa GetString. 575 00:24:30,600 --> 00:24:32,070 Joten mitä GetString? 576 00:24:32,070 --> 00:24:34,630 Se ilmeisesti saa merkkijonon, joka perustuu sen nimeä. 577 00:24:34,630 --> 00:24:37,560 Mutta mitä se on, enemmän teknisesti? 578 00:24:37,560 --> 00:24:38,440 Se on funktio. 579 00:24:38,440 --> 00:24:41,790 Joten on toiminto, joka ei tule C sinänsä. 580 00:24:41,790 --> 00:24:43,660 CS50 henkilökunta kirjoitti tämän. 581 00:24:43,660 --> 00:24:46,940 Ja niin käyttää tätä, et voi vain sisällyttää stdio.h, 582 00:24:46,940 --> 00:24:49,630 Tarvitset myös sisällyttää mitä? 583 00:24:49,630 --> 00:24:50,060 Joo. 584 00:24:50,060 --> 00:24:54,210 Joten cs50.h, joka on vain tiedosto kirjoitimme muutamia vuosia sitten. 585 00:24:54,210 --> 00:24:57,130 Asensimme sen laitteen sinulle rinnalla 586 00:24:57,130 --> 00:24:58,490 kaikki tavalliset tiedostot. 587 00:24:58,490 --> 00:25:00,500 Ja niin näiden muutaman ensimmäisen viikon luokkaa, käytämme 588 00:25:00,500 --> 00:25:02,820 tämä vain yksinkertaistaa tekemässä very basic 589 00:25:02,820 --> 00:25:04,600 asioita, kuten saada käyttäjä syöttää. 590 00:25:04,600 --> 00:25:07,370 Koska kuten tulemme näkemään muutaman viikon päästä käyttäjän panos 591 00:25:07,370 --> 00:25:10,180 kieli kuin C on oikeastaan ​​yllättävän monimutkainen, 592 00:25:10,180 --> 00:25:14,360 varsinkin koska et tiedä etukäteen, yleensä, miten 593 00:25:14,360 --> 00:25:17,030 paljon tavaraa käyttäjä aikoo kirjoittaa tuumaa 594 00:25:17,030 --> 00:25:20,340 Ja kun et tiedä, kuinka paljon dataa odottaa, et 595 00:25:20,340 --> 00:25:22,380 tietää kuinka paljon muistia jakaa. 596 00:25:22,380 --> 00:25:25,480 Ja jos todella on vastineensa käyttäjä, joka yrittää 597 00:25:25,480 --> 00:25:28,180 murtautua järjestelmään, kaataa tietokoneen, hyvin, 598 00:25:28,180 --> 00:25:31,600 yleensä ensimmäinen tapa hyökkäys on, aivan kuten tein 599 00:25:31,600 --> 00:25:34,950 Maanantai, kirjoita koko pitkä jono satunnaisia ​​merkkejä, 600 00:25:34,950 --> 00:25:37,020 Enter, ja mitä rikkoo. 601 00:25:37,020 --> 00:25:40,800 Koska yleensä, jos ohjelma taukoja, että vihjaa 602 00:25:40,800 --> 00:25:42,650 turvallisuuden puute, mahdollisesti. 603 00:25:42,650 --> 00:25:45,250 Se varmasti vihjaa sinua, ohjelmoija, joka on tehnyt 604 00:25:45,250 --> 00:25:49,050 virhe, mutta vaarallisesti, olet ehkä tehnyt 605 00:25:49,050 --> 00:25:52,430 turvallisuuteen liittyviä virhe, ja yleensä näemme, että 606 00:25:52,430 --> 00:25:54,840 näin koneet ovat vaarassa tänä päivänä, niin 607 00:25:54,840 --> 00:25:56,620 maailmassa web ja ohjelmat 608 00:25:56,620 --> 00:25:58,070 komentoriviltä, ​​kuten tämä. 609 00:25:58,070 --> 00:25:58,350 >> Selvä. 610 00:25:58,350 --> 00:26:00,460 Joten string s vastaa GetString. 611 00:26:00,460 --> 00:26:03,380 Joten konkreettisemmin nyt, mitä rivillä 6 tehdä täällä? 612 00:26:03,380 --> 00:26:05,640 Joten toiminnon oikealla saa merkkijonon, 613 00:26:05,640 --> 00:26:06,890 ottaa kuinka monta argumenttia? 614 00:26:09,458 --> 00:26:09,900 Okei. 615 00:26:09,900 --> 00:26:10,400 Niin mikään. 616 00:26:10,400 --> 00:26:11,360 Vähän järki tarkistaa. 617 00:26:11,360 --> 00:26:15,380 Argumentti, jälleen, on vain tulo funktion muuttamaan 618 00:26:15,380 --> 00:26:17,250 sen oletusasetus jollakin tavalla. 619 00:26:17,250 --> 00:26:19,540 Mutta tässä tapauksessa en halua muuttaa 620 00:26:19,540 --> 00:26:20,650 käyttäytymistä GetString. 621 00:26:20,650 --> 00:26:22,430 Halusin vain saada merkkijono. 622 00:26:22,430 --> 00:26:25,190 Joten laitoin mitään suluissa, ja sitten laitoin 623 00:26:25,190 --> 00:26:27,550 puolipiste demarking loppuun riviä koodia. 624 00:26:27,550 --> 00:26:29,840 Nyt, yhtäsuuruusmerkki ei tarkoita yhtä, sinänsä. 625 00:26:29,840 --> 00:26:32,690 Se tarkoittaa tehtävän, mikä tarkoittaa laittaa mitä saa 626 00:26:32,690 --> 00:26:36,060 ulos oikealla sisäpuolella mitä on vasemmalla. 627 00:26:36,060 --> 00:26:39,400 >> Joten vasemmalla, sanomme, että meillä on julistettu 628 00:26:39,400 --> 00:26:41,630 merkkijono kutsutaan s. 629 00:26:41,630 --> 00:26:44,240 Ja tarkemmin sanottuna, olemme jaettu muisti sisällä 630 00:26:44,240 --> 00:26:46,340 jonka laitamme bitit, joka edustaa sekvenssi 631 00:26:46,340 --> 00:26:46,850 merkkiä. 632 00:26:46,850 --> 00:26:49,400 Mutta tänään, olemme varanneet 633 00:26:49,400 --> 00:26:51,450 tai julistettu merkkijono. 634 00:26:51,450 --> 00:26:51,790 Selvä. 635 00:26:51,790 --> 00:26:54,760 Joten nyt kun olen tehnyt tämän, haluan kytkeä arvon 636 00:26:54,760 --> 00:26:56,535 s, ei ole arvoa David. 637 00:26:56,535 --> 00:27:00,200 Joten tämä on väärin, miksi? 638 00:27:03,060 --> 00:27:04,870 Joten tämä on vain kirjaimellisesti kovakoodatuilla s. 639 00:27:04,870 --> 00:27:06,870 On sanoa "Hei, s", joka ei ole sitä mitä haluan. 640 00:27:06,870 --> 00:27:07,790 Joten en voi tehdä tätä. 641 00:27:07,790 --> 00:27:10,330 Prosenttimerkki on paikkamerkki, mutta nyt minun täytyy 642 00:27:10,330 --> 00:27:12,520 erittyä tulostaa toisesta väitteestä. 643 00:27:12,520 --> 00:27:15,160 Muistutan, että argumentit toiminnot erotetaan 644 00:27:15,160 --> 00:27:20,300 pilkut, joten seuraava pilkku tässä esitin tämän jälkeen kirjeen s. 645 00:27:20,300 --> 00:27:23,740 Ja tässä yhteydessä nyt s on muuttuja, ja printf, 646 00:27:23,740 --> 00:27:25,550 saatuaan nämä kaksi tuloa - 647 00:27:25,550 --> 00:27:29,440 merkkijono vasemmalla ja muuttujan nimi s oikealla - 648 00:27:29,440 --> 00:27:32,750 se kytke jälkimmäinen entiseen meille, ja 649 00:27:32,750 --> 00:27:34,600 vain tulostaa kiva kaunis merkkijono sisältää 650 00:27:34,600 --> 00:27:36,770 mitä se on, että me kirjoitetaan sisään 651 00:27:36,770 --> 00:27:37,560 >> Joten kokeile tätä. 652 00:27:37,560 --> 00:27:38,860 Menossa eteenpäin ja loitontaa, selkä 653 00:27:38,860 --> 00:27:40,250 minun pääteikkuna. 654 00:27:40,250 --> 00:27:41,840 Lähennä alareunassa täällä. 655 00:27:41,840 --> 00:27:44,070 Kirjoittamalla tekevät Hei. 656 00:27:44,070 --> 00:27:45,870 Clang on ilmeisesti uusintana. 657 00:27:45,870 --> 00:27:49,280 Aion kirjoittaa. / Hei, Anna. 658 00:27:49,280 --> 00:27:52,145 Mikään ei tunnu tapahtuvan vielä, mutta se on tällä kehotteeseen 659 00:27:52,145 --> 00:27:55,700 että voin kirjoittaa jotain Nate, Anna, ja nyt meillä on 660 00:27:55,700 --> 00:27:56,380 Hei, Nate. 661 00:27:56,380 --> 00:27:59,600 Ja voin tehdä sen uudelleen Rob, ja niin edelleen. 662 00:27:59,600 --> 00:28:03,410 Joten toivottavasti nyt tämän ohjelman käyttäytyy aion. 663 00:28:03,410 --> 00:28:05,720 >> Nyt ei kaikki käyttäjäystävällinen. 664 00:28:05,720 --> 00:28:07,930 Minulla ei ole aavistustakaan, mitä on odotettavissa minua. 665 00:28:07,930 --> 00:28:09,620 Niinpä voimme varmasti puhdistaa tähän asti hieman. 666 00:28:09,620 --> 00:28:13,270 Saanen palata tänne, ja eikä vain sukellus ja 667 00:28:13,270 --> 00:28:16,480 pyytää käyttäjältä merkkijonon, haluan nimenomaan sanoa 668 00:28:16,480 --> 00:28:17,750 käyttäjä mitä olen odottanut. 669 00:28:17,750 --> 00:28:21,610 So printf ("Anna merkkijono:" 670 00:28:21,610 --> 00:28:24,080 ); 671 00:28:24,080 --> 00:28:25,510 Joten ei muuttujia täällä. 672 00:28:25,510 --> 00:28:26,750 Ei prosenttia merkkejä. 673 00:28:26,750 --> 00:28:28,550 Aivan yksinkertaista Englanti lause. 674 00:28:28,550 --> 00:28:34,030 Sallikaa minun nyt mennä pohjaan täällä ja uusintana minun ohjelma. 675 00:28:34,030 --> 00:28:35,380 Mutta mikään ei tunnu muuttuneen. 676 00:28:35,380 --> 00:28:37,350 Miksi? 677 00:28:37,350 --> 00:28:38,380 Minun täytyy kääntää se. 678 00:28:38,380 --> 00:28:39,570 Niin helppo virhe tehdä. 679 00:28:39,570 --> 00:28:41,700 Mutta sinun täytyy ei vain tallentaa tiedoston, mutta 680 00:28:41,700 --> 00:28:43,260 kääntää ohjelman. 681 00:28:43,260 --> 00:28:46,640 Ja niin jos uusinnassa tekevät Hei, nyt clang toimii. 682 00:28:46,640 --> 00:28:51,800 Nyt voin ajaa. / Hello. Ja nyt näen "Anna merkkijono:". 683 00:28:51,800 --> 00:28:52,050 Okei. 684 00:28:52,050 --> 00:28:53,440 Nyt se on hieman käyttäjäystävällisempi. 685 00:28:53,440 --> 00:28:55,850 Nate, Anna, hei, Nate. 686 00:28:55,850 --> 00:28:57,310 >> No, yritetään tätä uudelleen ja alkaa ajatella 687 00:28:57,310 --> 00:28:58,080 noin rajatapauksissa. 688 00:28:58,080 --> 00:29:00,520 Eli aivan kuten Scratch, olet rohkaissut tai ollaan 689 00:29:00,520 --> 00:29:03,180 kannustetaan spec sellaista miettiä mitä voisi mennä 690 00:29:03,180 --> 00:29:06,610 väärin, jos et ennakoida kaikkea käyttäjä voisi tehdä. 691 00:29:06,610 --> 00:29:08,050 Vikoja, siis voisi seurata. 692 00:29:08,050 --> 00:29:09,710 Joten anna merkkijono - 693 00:29:09,710 --> 00:29:11,130 mitä nurkassa tässä tapauksessa? 694 00:29:11,130 --> 00:29:13,320 Mikä skenaario, että minä, ohjelmoija, ei ehkä 695 00:29:13,320 --> 00:29:16,070 odotettavissa? 696 00:29:16,070 --> 00:29:17,600 Joo. 697 00:29:17,600 --> 00:29:17,920 Okei. 698 00:29:17,920 --> 00:29:22,060 Joten mitä jos en kirjoita numero näin? 699 00:29:22,060 --> 00:29:22,500 Selvä. 700 00:29:22,500 --> 00:29:24,490 Niin se toimii edelleen. 701 00:29:24,490 --> 00:29:25,880 Gramatically ei ole mitään järkeä. 702 00:29:25,880 --> 00:29:27,180 Mutta ainakin ohjelma toimii. 703 00:29:27,180 --> 00:29:28,650 >> Mikä on toinen kulma tapauksessa? 704 00:29:28,650 --> 00:29:29,610 Jotain en odottanut. 705 00:29:29,610 --> 00:29:31,590 Niin? 706 00:29:31,590 --> 00:29:31,940 Okei. 707 00:29:31,940 --> 00:29:34,950 Joten voisimme tehdä jotain todella, todella iso määrä. 708 00:29:34,950 --> 00:29:37,270 Tehdäänpä tämä täällä. 709 00:29:37,270 --> 00:29:40,880 Saanen loitontaa toinen, haluan korostaa. 710 00:29:40,880 --> 00:29:42,250 Ei voi kopioida ja liittää tänne. 711 00:29:42,250 --> 00:29:42,470 Selvä. 712 00:29:42,470 --> 00:29:44,440 Joten en voi kopioida ja liittää tämän pääteikkunaa niin me 713 00:29:44,440 --> 00:29:46,950 vain simuloida sitä. 714 00:29:46,950 --> 00:29:51,340 Saanen loitontaa, menossa kääri. 715 00:29:51,340 --> 00:29:52,700 En aio tehdä tätä liian pitkään, koska se ei 716 00:29:52,700 --> 00:29:54,440 todella rikkoa tässä ohjelmassa. 717 00:29:54,440 --> 00:29:55,260 Mutta se voisi. 718 00:29:55,260 --> 00:29:55,830 Enter. 719 00:29:55,830 --> 00:29:56,580 Mutta se ei ole. 720 00:29:56,580 --> 00:29:57,050 Selvä. 721 00:29:57,050 --> 00:29:58,440 Mutta se on aito nurkkaan tapaus. 722 00:29:58,440 --> 00:30:01,610 Ja ainoa syy, että käyttäytyi oikein, niin 723 00:30:01,610 --> 00:30:05,820 puhua, johtuu siitä, että CS50 toiminto GetString on oikeastaan 724 00:30:05,820 --> 00:30:08,040 suunnitellut alla huppu, kuten tulemme näkemään muutaman viikon, 725 00:30:08,040 --> 00:30:11,570 automaattisesti jakaa enemmän ja enemmän muistia, enemmän ja enemmän 726 00:30:11,570 --> 00:30:14,330 muisti käyttöjärjestelmästä, kun se tajuaa, wow, 727 00:30:14,330 --> 00:30:16,670 olet todella kirjoittanut jotain melko pitkä. 728 00:30:16,670 --> 00:30:18,500 Nyt tämä on vähän valkoinen valhe. 729 00:30:18,500 --> 00:30:22,020 Jos me todella pysähtyi jo jonkin aikaa, ja olen kirjoittanut 730 00:30:22,020 --> 00:30:24,640 jotain 5000000000 merkkiä näppäimistöllä 731 00:30:24,640 --> 00:30:28,060 täällä, tai oikeastaan ​​osuma copy-paste melko vähän, me hyvin mahdollisesti 732 00:30:28,060 --> 00:30:29,730 saattaa aiheuttaa ohjelman kaatumisen. 733 00:30:29,730 --> 00:30:32,130 Hieman vaikeampi simuloida että äärellinen 734 00:30:32,130 --> 00:30:33,740 aikaa. 735 00:30:33,740 --> 00:30:37,320 >> Mikä on toinen nurkka tapauksessa voisimme kokeilla? 736 00:30:37,320 --> 00:30:38,730 Niin? 737 00:30:38,730 --> 00:30:39,020 Joo. 738 00:30:39,020 --> 00:30:40,360 Joten miksi emme vastaa mitään? 739 00:30:40,360 --> 00:30:43,130 Joten meillä on todellakin ryhtyä joihinkin toimiin, koska muuten 740 00:30:43,130 --> 00:30:45,060 Ohjelman tulee istua siellä vilkkuu koko päivän. 741 00:30:45,060 --> 00:30:46,860 Mutta jos minä vain Enter - 742 00:30:46,860 --> 00:30:48,780 OK, nyt näyttää silti väärässä. 743 00:30:48,780 --> 00:30:51,670 Eikö kaatua, mutta ehkä siellä on nyt tilaisuus 744 00:30:51,670 --> 00:30:54,190 alkaa toteuttaa tiukempaa ohjelmaa 745 00:30:54,190 --> 00:30:55,290 että todella tarkastaa. 746 00:30:55,290 --> 00:30:57,640 Ja jos merkkijono, lause, sana, jonka minä 747 00:30:57,640 --> 00:31:00,890 kirjoitettu on pituus 0, hyvin, ehkä minun pitäisi huutaa 748 00:31:00,890 --> 00:31:03,770 käyttäjä, tai kertoa hänelle syöttää merkkijonon uudelleen, jotta 749 00:31:03,770 --> 00:31:06,560 me todella saada mitä näyttää oikeaa käyttäytymistä eikä 750 00:31:06,560 --> 00:31:08,570 juuri täydellinen valvonta omasta puolestani. 751 00:31:08,570 --> 00:31:11,130 >> Kysymys takana? 752 00:31:11,130 --> 00:31:11,970 Desimaaliluku. 753 00:31:11,970 --> 00:31:13,120 Joten voisimme kokeilla sekin. 754 00:31:13,120 --> 00:31:16,840 1,10000005. 755 00:31:16,840 --> 00:31:19,470 Tuntuu että menee vain toimivat todella hyvin. 756 00:31:19,470 --> 00:31:21,160 Ja se todella odotetaan. 757 00:31:21,160 --> 00:31:24,550 Vaikka olisimme kirjoittanut, että numero on, tai 758 00:31:24,550 --> 00:31:28,200 isompi numero aiemmin, ymmärtää, että kun olemme kirjoitat käyttäjä 759 00:31:28,200 --> 00:31:31,070 tulo-ja käytämme GetString toimintoa, ei 760 00:31:31,070 --> 00:31:34,380 väliä, jos olen kirjoittamalla näyttää numero. 761 00:31:34,380 --> 00:31:36,720 Muistutan, että mukaan ASCII, kaiken sinun 762 00:31:36,720 --> 00:31:39,920 Näppäimistössä on numeerinen arvo, joka voidaan kuvata 763 00:31:39,920 --> 00:31:41,480 merkki, char. 764 00:31:41,480 --> 00:31:44,490 Joten tässä tapauksessa, vaikka voisin kirjoittaa numero, 765 00:31:44,490 --> 00:31:48,190 tietokone tulee ajatella sitä, niin sanotusti, koska string - 766 00:31:48,190 --> 00:31:49,870 jotain, joka näyttää useita, mutta on 767 00:31:49,870 --> 00:31:51,090 ei itse asiassa useita. 768 00:31:51,090 --> 00:31:53,450 Mutta se on oikeastaan ​​täydellinen SEGUE, koska nyt voimme 769 00:31:53,450 --> 00:31:55,450 todella siirtyminen kirjallisesti ohjelmia 770 00:31:55,450 --> 00:31:56,730 käyttää muita tietotyyppejä. 771 00:31:56,730 --> 00:32:01,840 >> Joten lisäksi käyttää merkkiä, tai pikemminkin, lisäksi käyttämällä jouset, 772 00:32:01,840 --> 00:32:04,510 ymmärrettävä, että meillä on muita tietotyyppejä C sekä 773 00:32:04,510 --> 00:32:05,230 muita kieliä. 774 00:32:05,230 --> 00:32:08,480 Char, kuten nimestä voi päätellä, on vain yksi merkki. 775 00:32:08,480 --> 00:32:12,150 Koho on Liukulukuarvo, ja se on vain hieno 776 00:32:12,150 --> 00:32:14,470 tapa sanoa reaaliluku - jotain, joka on desimaaliluku 777 00:32:14,470 --> 00:32:17,410 kohta sen joitakin numeroita vasemmalle ja / tai oikealle. 778 00:32:17,410 --> 00:32:21,370 Int on kokonaisluku, joka on vain numero kuin 123. 779 00:32:21,370 --> 00:32:24,170 Ja nyt mielenkiintoisesti ovat asioita, kuten kaksinkertainen. 780 00:32:24,170 --> 00:32:28,540 Mitä sanomme kaksinkertainen viime kerralla? 781 00:32:28,540 --> 00:32:30,050 Se on 64, oikea. 782 00:32:30,050 --> 00:32:33,560 Joten taas tyypillisesti float on 32-bittinen - 783 00:32:33,560 --> 00:32:37,340 niin se on tämä pitkä muisti, se käyttää 32 nollia ja ykkösiä ja 784 00:32:37,340 --> 00:32:40,530 edustavat arvoja - kaksinkertainen on kirjaimellisesti kaksinkertainen, mikä 785 00:32:40,530 --> 00:32:43,810 tarkoittaa, että voit joko edustaa isompia numeroita tai 786 00:32:43,810 --> 00:32:45,810 voit sen tarkempia numeroita. 787 00:32:45,810 --> 00:32:48,690 Joten voit olla enemmän numeroita desimaalipilkun jälkeen, mutta 788 00:32:48,690 --> 00:32:51,520 kuten kaveri sanoi videon, vaikka jotain yksinkertaista 789 00:32:51,520 --> 00:32:55,360 käsitteellisesti kuten kolmasosa ei voi edustaa nimenomaan 790 00:32:55,360 --> 00:32:58,330 tietokone, koska lopulta te loppuu bittiä ja 791 00:32:58,330 --> 00:33:02,510 Siksi voit vain tehdä .33333333 niin monta kertaa, 792 00:33:02,510 --> 00:33:05,050 jolloin sinun tarvitsee vain sanoa, että olen poissa edustuksen 793 00:33:05,050 --> 00:33:08,120 tila, minun täytyy vain kutsua sitä päivä ja edustaa sitä 794 00:33:08,120 --> 00:33:10,200 hieman epätarkasti tuosta. 795 00:33:10,200 --> 00:33:11,110 Ja pitkä pitkä - 796 00:33:11,110 --> 00:33:13,880 tyhmä nimi, mutta se on koska siellä tietotyyppi tunnetaan 797 00:33:13,880 --> 00:33:19,350 kauan C, joka sattumoisin on usein 32 bittiä, aivan kuten 798 00:33:19,350 --> 00:33:21,670 int on 32 bittiä, mutta pitkä pitkä 799 00:33:21,670 --> 00:33:23,560 yleensä 64 bittiä. 800 00:33:23,560 --> 00:33:25,740 Niin se vain tarkoittaa, että voit edustaa isompi 801 00:33:25,740 --> 00:33:26,990 numerot kuin tämä. 802 00:33:26,990 --> 00:33:27,410 >> Selvä. 803 00:33:27,410 --> 00:33:29,390 Joten jos todella haluat aloittaa edustavat asioita, me 804 00:33:29,390 --> 00:33:31,030 ehkä kehittyneempiä tyyppejä, ja 805 00:33:31,030 --> 00:33:32,340 Siksi meillä on merkkijono. 806 00:33:32,340 --> 00:33:36,450 Joten CS50 kirjastossa, että tiedosto nimeltä cs50.h, olemme 807 00:33:36,450 --> 00:33:41,110 itse julisti tietotyyppi, niin sanotusti, kutsutaan merkkijono, 808 00:33:41,110 --> 00:33:42,710 mutta merkkijono ei ole olemassakaan. 809 00:33:42,710 --> 00:33:44,780 Tämä on jälleen yksi näistä kerroksista aiomme kuoria 810 00:33:44,780 --> 00:33:47,490 takaisin viikon tai kaksi ja heitä se pois, ja oikeastaan 811 00:33:47,490 --> 00:33:49,640 katso alla huppu, mitä merkkijono oikeastaan ​​on, ja 812 00:33:49,640 --> 00:33:50,840 miten se oli. 813 00:33:50,840 --> 00:33:53,520 Olemme myös menossa katsomaan Boolean-arvot. 814 00:33:53,520 --> 00:33:56,040 >> Joten mikä oli bool yhteydessä Scratch? 815 00:33:59,154 --> 00:34:00,300 Se on tosi tai epätosi. 816 00:34:00,300 --> 00:34:03,900 Joten se on vain arvo, joka on tosi tai epätosi, päälle tai pois päältä, 1 tai 817 00:34:03,900 --> 00:34:06,140 0, mutta haluat tarkastella maailmaa. 818 00:34:06,140 --> 00:34:09,739 Joten C, kiitos CS50 kirjasto, joka puolestaan 819 00:34:09,739 --> 00:34:12,179 sisältää toisen kirjaston alla huppu, olemme 820 00:34:12,179 --> 00:34:14,909 pääsy tietotyyppi kutsutaan bool, joka 821 00:34:14,909 --> 00:34:18,730 kirjaimellisesti avulla voimme määrittää arvot true tai false 822 00:34:18,730 --> 00:34:20,219 asioita ohjelmassa. 823 00:34:20,219 --> 00:34:23,880 >> Joten mene eteenpäin tänne ja kirjoittaa pieni ohjelma, joka 824 00:34:23,880 --> 00:34:26,330 tekee jotain johon numeroita sijaan. 825 00:34:26,330 --> 00:34:29,840 Joten anna minun mennä takaisin CS50 Appliance, anna minun mennä eteenpäin ja 826 00:34:29,840 --> 00:34:32,770 Luo uusi tiedosto tähän nimi - 827 00:34:32,770 --> 00:34:35,460 Sanotaan vain jotain yksinkertaista, kuten math.c. 828 00:34:38,270 --> 00:34:38,710 Selvä. 829 00:34:38,710 --> 00:34:41,600 Ja nyt mene ylös minun ohjelma, olen 830 00:34:41,600 --> 00:34:42,510 aikoo tehdä tavallista - 831 00:34:42,510 --> 00:34:44,780 # Include , jotta voin käyttää 832 00:34:44,780 --> 00:34:46,860 printf, int main (void) - 833 00:34:46,860 --> 00:34:49,270 tulemme takaisin, lopulta, mitä int tarkoittaa 834 00:34:49,270 --> 00:34:52,389 täällä, mitä void tarkoittaa tässä, mutta nyt vain tietää, että 835 00:34:52,389 --> 00:34:54,270 joudut ohjelmia kuten tämä. 836 00:34:54,270 --> 00:34:56,280 Nyt aion mennä eteenpäin ja sanoa jotain hieman 837 00:34:56,280 --> 00:35:02,110 Eri - printf ("Anna minulle numero:" 838 00:35:02,110 --> 00:35:03,570 );. 839 00:35:03,570 --> 00:35:09,220 Sitten aion tehdä int n = GetInt, koska se 840 00:35:09,220 --> 00:35:12,770 Osoittautuu GetInt on toinen funktio CS50 kirjastossa 841 00:35:12,770 --> 00:35:14,060 lisäksi GetString. 842 00:35:14,060 --> 00:35:17,340 Ja nyt aion tehdä jotain typerää, kuten "kiitos 843 00:35:17,340 --> 00:35:25,760 on% d ", desimaali kokonaisluku, ja sitten pilkku n ja 844 00:35:25,760 --> 00:35:26,620 palaa sitten 0. 845 00:35:26,620 --> 00:35:28,940 Joten jälleen, palauttaa 0 ei ole mitään tekemistä numero olen 846 00:35:28,940 --> 00:35:30,080 pyytää käyttäjää. 847 00:35:30,080 --> 00:35:33,620 Vain merkitsee lopussa kaikki, oletettavasti, on hyvin. 848 00:35:33,620 --> 00:35:36,290 >> Joten anna minun mennä alas minun pääteikkuna täällä. 849 00:35:36,290 --> 00:35:39,590 Saanen kirjoita tehdä matematiikkaa, kirjoita. 850 00:35:39,590 --> 00:35:41,360 Ja jotain on vialla. 851 00:35:41,360 --> 00:35:44,620 Tee matematiikka ei toimi. 852 00:35:44,620 --> 00:35:46,170 Tässä on ensimmäinen meidän virheilmoituksia. 853 00:35:46,170 --> 00:35:46,570 Miksi? 854 00:35:46,570 --> 00:35:49,720 Hieman arvoituksellinen, mutta - 855 00:35:49,720 --> 00:35:50,060 Joo. 856 00:35:50,060 --> 00:35:51,240 Niin cs50.h. 857 00:35:51,240 --> 00:35:53,900 Joten jälleen, varsinkin aikaisin, voit kirjoittaa ensimmäinen 858 00:35:53,900 --> 00:35:56,590 ohjelma PSET 1 kohdassa, on virka-ja 859 00:35:56,590 --> 00:35:59,050 rehellisesti, se tulee olemaan valtava joskus mitä nämä asiat 860 00:35:59,050 --> 00:36:00,000 todella sanovat. 861 00:36:00,000 --> 00:36:01,890 Mutta huomaat nopeasti ne alkavat laskea 862 00:36:01,890 --> 00:36:06,120 segmentteihin, jolloin tämä tarkoittaa, että olet jättänyt pois yhden 863 00:36:06,120 --> 00:36:08,290 ja # sisältyvät yläosassa tiedoston. 864 00:36:08,290 --> 00:36:10,960 Ja clang, kääntäjä, on ilmoittaa teille tämän 865 00:36:10,960 --> 00:36:14,090 sanoen melko fancifully, implisiittinen ilmoitus 866 00:36:14,090 --> 00:36:15,990 toiminto GetInt on virheellinen. 867 00:36:15,990 --> 00:36:16,310 >> Selvä. 868 00:36:16,310 --> 00:36:17,520 Joten mitä se tarkoittaa? 869 00:36:17,520 --> 00:36:22,080 Se vain tarkoittaa, olet epäsuorasti ilmoitettu GetInt vuonna 870 00:36:22,080 --> 00:36:24,850 mielessä, että et ole erikseen ilmoittanut sitä. 871 00:36:24,850 --> 00:36:27,300 Nimenomaisesti julistaa int, sinun täytyy opettaa 872 00:36:27,300 --> 00:36:28,740 Clang että se on olemassa. 873 00:36:28,740 --> 00:36:32,020 Ja hyvin yksinkertainen ratkaisu, joka on opettaa sitä 874 00:36:32,020 --> 00:36:34,780 lukien tämä muu tiedosto, cs50.h klo 875 00:36:34,780 --> 00:36:35,850 alkuun tiedoston. 876 00:36:35,850 --> 00:36:40,380 Koska kirjaimellisesti, mitä # include ei se kertoo clang 877 00:36:40,380 --> 00:36:44,030 melko paljon mennä etsimään tiedosto nimeltä cs50.h, kopioida, 878 00:36:44,030 --> 00:36:48,150 liitä se automaattisesti alkuun minun ohjelma minulle, 879 00:36:48,150 --> 00:36:50,850 ja sitten muuntaa lähdekoodin nollia ja ykkösiä. 880 00:36:50,850 --> 00:36:52,850 Mutta se olisi tietenkin erittäin ikävä, jos me ihmiset olisi 881 00:36:52,850 --> 00:36:55,370 mennä kopioiminen ja liittäminen näitä suuria tiedostoja koko ajan, 882 00:36:55,370 --> 00:36:58,540 joten # include juuri tämä kaikki automaattisesti ilman 883 00:36:58,540 --> 00:37:01,550 muddying minun koodi jonkun kanssa kirjastossa. 884 00:37:01,550 --> 00:37:06,370 Ja kirjasto on vain yksi tiedosto, joka sisältää toimintoja ja 885 00:37:06,370 --> 00:37:08,340 muun muassa, että joku muu on kirjoittanut, että olemme 886 00:37:08,340 --> 00:37:10,270 Hyödyntämällä meidän vuoksemme. 887 00:37:10,270 --> 00:37:10,580 >> Selvä. 888 00:37:10,580 --> 00:37:11,200 Yritetään uudestaan. 889 00:37:11,200 --> 00:37:12,250 Tee matematiikka. 890 00:37:12,250 --> 00:37:13,120 Enter. 891 00:37:13,120 --> 00:37:13,530 Hyvä. 892 00:37:13,530 --> 00:37:14,880 Niin, että näyttää toimineen. 893 00:37:14,880 --> 00:37:18,330 Sallikaa minun nyt ajaa matematiikka;. / Math. 894 00:37:18,330 --> 00:37:21,100 Anna antaa minulle numero, 123. 895 00:37:21,100 --> 00:37:22,620 Kiitos 123. 896 00:37:22,620 --> 00:37:24,490 Nyt yritetään toista kulma tapaus. 897 00:37:24,490 --> 00:37:26,530 Merkkijono on melko antelias, koska 898 00:37:26,530 --> 00:37:27,620 merkkijono voi olla mitä tahansa. 899 00:37:27,620 --> 00:37:28,910 Voi näyttää numerot, näyttävät 900 00:37:28,910 --> 00:37:30,600 merkkejä, näyttävät sanoja. 901 00:37:30,600 --> 00:37:31,900 Mutta int on int. 902 00:37:31,900 --> 00:37:34,370 Joten nyt jos olen vaikea käyttäjä, ja se sanoo "Anna minulle 903 00:37:34,370 --> 00:37:38,730 numero, "mitä jos yritän tehdä jotain 0,1? 904 00:37:38,730 --> 00:37:41,510 No, se on numero, ja se on sopusoinnussa 905 00:37:41,510 --> 00:37:44,180 kielioppi käytin täällä, mutta alla huppu, olen of 906 00:37:44,180 --> 00:37:45,610 kurssille toimintoa GetInt. 907 00:37:45,610 --> 00:37:46,610 >> Joten mitä tapahtuu. 908 00:37:46,610 --> 00:37:48,250 Anna, yritä uudelleen. 909 00:37:48,250 --> 00:37:48,560 Selvä. 910 00:37:48,560 --> 00:37:50,570 Saanen olla vaikeaa ja painaa Enter uudelleen. 911 00:37:50,570 --> 00:37:51,700 Anna, Anna. 912 00:37:51,700 --> 00:37:53,890 Joten nyt näyttää siltä, ​​että GetInt on hieman 913 00:37:53,890 --> 00:37:55,240 voimakas kuin GetString. 914 00:37:55,240 --> 00:37:58,540 Me, henkilöstö, toteutetaan siten, että jos huomaamme 915 00:37:58,540 --> 00:38:02,100 et ole antanut meille int - ja int on desimaaliluku 916 00:38:02,100 --> 00:38:04,785 sisältää nollia, niitä, kaksittain, kolmosta, nelosta, vitosta, kuutosta, 917 00:38:04,785 --> 00:38:05,540 seiskat, kasia tai ysiä. 918 00:38:05,540 --> 00:38:06,310 Ja siinä se. 919 00:38:06,310 --> 00:38:08,810 Ei desimaaleja, ei merkkiä, ei välimerkkejä. 920 00:38:08,810 --> 00:38:10,390 Näyttää siltä, ​​että meidän on tehtävä yhteistyötä. 921 00:38:10,390 --> 00:38:13,680 Sallikaa minun yrittää neljä, viisi, kuusi, ja joka saa minut läpi. 922 00:38:13,680 --> 00:38:16,760 Siis todella, olla anaali täällä, minun pitäisi varmaan sanoa "Antakaa minulle 923 00:38:16,760 --> 00:38:20,310 kokonaisluku "voidakseen välittää käyttäjälle 924 00:38:20,310 --> 00:38:22,620 mitä aion. 925 00:38:22,620 --> 00:38:24,090 >> Nyt ajatella alla huppu. 926 00:38:24,090 --> 00:38:27,930 Emme menossa katsomaan miten cs50.h toteutetaan tänään, 927 00:38:27,930 --> 00:38:29,080 että kirjasto. 928 00:38:29,080 --> 00:38:33,600 Mutta jos se pitää sanoa yrittää, yrittää, yrittää, mitä ohjelmointi 929 00:38:33,600 --> 00:38:36,970 rakentaa minä oletettavasti käyttämällä alla huppu 930 00:38:36,970 --> 00:38:39,000 toteuttaa se? 931 00:38:39,000 --> 00:38:39,980 Joten silmukan, eikö? 932 00:38:39,980 --> 00:38:41,930 Yksi yksinkertaisimmat ideat näimme Scratch. 933 00:38:41,930 --> 00:38:45,050 Ikuisesti rakentaa, Toista rakentaa. 934 00:38:45,050 --> 00:38:47,320 Oletettavasti tässä ohjelmassa, alla huppu, vaikka 935 00:38:47,320 --> 00:38:49,470 vaikka se on kirjoitettu C eikä tyhjästä, se tekee 936 00:38:49,470 --> 00:38:54,300 jotain nimeltään vastaa ikuisesti, jos käyttäjä ei ole 937 00:38:54,300 --> 00:38:58,710 kirjoittanut kokonaisluku, vaikkapa yrittää, yrittää, yrittää, yrittää, joten 938 00:38:58,710 --> 00:39:01,220 lopulta kun me ei saada kokonaisluku, niin 939 00:39:01,220 --> 00:39:02,970 murtautua ulos että silmukka. 940 00:39:02,970 --> 00:39:05,610 >> Joten mitä muita toimintoja voidaan käytämme täällä CS50 kirjastossa? 941 00:39:05,610 --> 00:39:07,880 No, tavallaan selvää niistä, ainakin perustuvat 942 00:39:07,880 --> 00:39:09,570 tietotyyppejä että tiedämme nyt olemassa. 943 00:39:09,570 --> 00:39:12,900 Otimme GetString, GetInt, vaan koko 944 00:39:12,900 --> 00:39:15,680 ensimmäisten viikkojen ajan, voit käyttää myös GetFloat ja 945 00:39:15,680 --> 00:39:18,870 GetDouble ja GetLongLong saadakseen tarkasti 946 00:39:18,870 --> 00:39:20,030 tietotyypit, jotka haluat. 947 00:39:20,030 --> 00:39:24,030 Koska avain yksityiskohta on, että toisin kuin joissakin kielissä, 948 00:39:24,030 --> 00:39:26,630 kuten Python ja Ruby, jossa sinun ei välttämättä tarvitse 949 00:39:26,630 --> 00:39:29,730 julistaa tietotyyppi muuttujan - 950 00:39:29,730 --> 00:39:32,390 sinun ei tarvitse kertoa tietokoneen millaista tavaraa 951 00:39:32,390 --> 00:39:34,000 aiot laittaa muuttuja - 952 00:39:34,000 --> 00:39:36,640 C, sinun täytyy olla aina niin tarkka. 953 00:39:36,640 --> 00:39:40,060 Joten jos haluat muuttuja nimeltä N kimpale varastointi 954 00:39:40,060 --> 00:39:42,900 että tässä tapauksessa sattuu olemaan 32 bittiä sopimuksen mukaan, voit 955 00:39:42,900 --> 00:39:45,660 on kertoa tietokoneen nämä bitit ovat 956 00:39:45,660 --> 00:39:47,840 menossa tallentaa numeron - 957 00:39:47,840 --> 00:39:50,630 ei merkki, eikä merkkijono, eikä float. 958 00:39:50,630 --> 00:39:52,620 Ja tämä ratkaisee ongelman me tehokkaasti 959 00:39:52,620 --> 00:39:53,760 juoksi viime viikolla. 960 00:39:53,760 --> 00:39:57,050 Jos käytämme nollia ja ykkösiä numeroita edustaa paitsi 961 00:39:57,050 --> 00:40:00,770 numeroita vaan ja B ja Cs, miten maailma on 962 00:40:00,770 --> 00:40:03,460 tietokone tulee tietää, että tämä malli bittien todella 963 00:40:03,460 --> 00:40:07,650 edustaa numero 65, toisin kuin edustavan 964 00:40:07,650 --> 00:40:09,860 kirjeen, joka sattumalta mukaan 965 00:40:09,860 --> 00:40:13,440 ASCII, muistuttaa, vastasi 65? 966 00:40:13,440 --> 00:40:16,550 >> Joten nämä tiedot tyypit tarjoavat yhteydessä tietokoneeseen, niin 967 00:40:16,550 --> 00:40:18,810 että se tietää, että jos nämä bitit pitäisi tulkita 968 00:40:18,810 --> 00:40:23,660 int tai merkkijono. 969 00:40:23,660 --> 00:40:26,500 Kaikki kysymykset, sitten tämän? 970 00:40:26,500 --> 00:40:28,149 Niin? 971 00:40:34,780 --> 00:40:35,270 DAVID J. MALAN: Hyvä kysymys. 972 00:40:35,270 --> 00:40:39,140 Jos otamme pois stdio.h, me tallenna tiedosto - 973 00:40:39,140 --> 00:40:44,360 anna minun mennä alas pääteikkuna ja suorita make matematiikka, zoom 974 00:40:44,360 --> 00:40:45,530 ja anna - 975 00:40:45,530 --> 00:40:47,700 Nyt saan eri virhettä, koska olen implisiittisesti 976 00:40:47,700 --> 00:40:49,650 julistaa mitä toimia nyt? 977 00:40:49,650 --> 00:40:50,700 Printf. 978 00:40:50,700 --> 00:40:52,970 Joten nyt olen luonut uuden ongelman, jonka ratkaisu on 979 00:40:52,970 --> 00:40:53,890 olennaisesti sama. 980 00:40:53,890 --> 00:40:55,365 Minun täytyy laittaa se takaisin. 981 00:40:55,365 --> 00:40:56,615 YLEISÖ: [kuulumattomissa] 982 00:41:03,534 --> 00:41:04,030 DAVID J. MALAN: Oh. 983 00:41:04,030 --> 00:41:04,850 Joten jos otan pois - 984 00:41:04,850 --> 00:41:05,360 Okei, joo. 985 00:41:05,360 --> 00:41:08,960 Joten jos voin poistaa vakio I / O-kirjasto sisällyttäminen ylös 986 00:41:08,960 --> 00:41:12,020 täällä, ja sitten sanot jos pääsen eroon printf, saavat 987 00:41:12,020 --> 00:41:13,450 eroon printf? 988 00:41:13,450 --> 00:41:13,810 Kyllä. 989 00:41:13,810 --> 00:41:18,450 Tämän pitäisi toimia, koska en enää käytä mitään - Hupsista. 990 00:41:18,450 --> 00:41:20,110 Sanoinko juuri valehdella? 991 00:41:20,110 --> 00:41:21,650 Selvä. 992 00:41:21,650 --> 00:41:25,640 Tämä ei toimi, koska uuden virheen me vain käyttöön. 993 00:41:25,640 --> 00:41:28,390 Ja tämä on hieman itsestäänselvyyksiä. 994 00:41:28,390 --> 00:41:29,440 >> Mikä on ongelmana? 995 00:41:29,440 --> 00:41:30,680 Käyttämätön muuttujan n. 996 00:41:30,680 --> 00:41:34,040 Niin tämä virhe on tulos siitä, että se on konfiguroitu 997 00:41:34,040 --> 00:41:36,640 Laitteen erityisen pikkutarkka, todella huutaa 998 00:41:36,640 --> 00:41:39,060 jokaisesta mahdollinen virhe, vaikka se on eräänlainen 999 00:41:39,060 --> 00:41:41,950 ei-fataali virhe näin - on se todella niin suuri 1000 00:41:41,950 --> 00:41:44,820 käsitellä, että olen varattu int, laita numero, ja sitten 1001 00:41:44,820 --> 00:41:46,030 juuri tehnyt mitään sen kanssa? 1002 00:41:46,030 --> 00:41:47,020 Niin toiminnallisesti, no. 1003 00:41:47,020 --> 00:41:50,410 Se ei tule rikkoa ohjelmaan. 1004 00:41:50,410 --> 00:41:51,490 Se on vain typerää, eikö? 1005 00:41:51,490 --> 00:41:54,220 Ei arvoa hakeneista että numero, varastoitu 1006 00:41:54,220 --> 00:41:56,370 se muuttuja, jos olet koskaan tehdä mitään 1007 00:41:56,370 --> 00:41:58,000 sen kanssa, onko tulostaa tai tallentaa sen. 1008 00:41:58,000 --> 00:42:00,270 Joten tässä tapauksessa, clang on tunnustaa niin paljon, ja 1009 00:42:00,270 --> 00:42:02,010 se sanoo käyttämätön muuttuja n. 1010 00:42:02,010 --> 00:42:05,380 >> Jotta voimme korjata tämän, jos todella haluamme. 1011 00:42:05,380 --> 00:42:07,250 Mutta taas, tämä ei ole hyvä ohjelma nyt. 1012 00:42:07,250 --> 00:42:09,310 Joten voisin tehdä tätä - 1013 00:42:09,310 --> 00:42:12,060 mene tänne, haluan tyhjentää näytön, tee matematiikka. 1014 00:42:12,060 --> 00:42:13,090 Se toimii. 1015 00:42:13,090 --> 00:42:18,110 Nyt voin ajaa minun matematiikka ohjelma vie tulo - 1016 00:42:18,110 --> 00:42:18,700 No, se oli huono. 1017 00:42:18,700 --> 00:42:23,450 Tulee tulo, ja että on kaikki se, tässä tapauksessa. 1018 00:42:23,450 --> 00:42:25,220 >> Joten oikeastaan, yritetään yhdessä muussa nurkassa tapaus, että me 1019 00:42:25,220 --> 00:42:26,300 ei ajattele aikaisemmin. 1020 00:42:26,300 --> 00:42:28,220 Tässä tapauksessa - tässä mennään takaisin yksi, joka on 1021 00:42:28,220 --> 00:42:29,500 hieman käyttäjäystävällinen. 1022 00:42:29,500 --> 00:42:32,580 Saanen palata tänne ja suorita make matematiikka uudelleen. 1023 00:42:32,580 --> 00:42:34,190 Oho, mitä tein väärin? 1024 00:42:34,190 --> 00:42:35,400 Täytyy perua entisestään. 1025 00:42:35,400 --> 00:42:36,390 Okei. 1026 00:42:36,390 --> 00:42:38,490 Nyt olemme takaisin alkuperäiseen tilaan, jossa kaikki 1027 00:42:38,490 --> 00:42:39,990 on toivottavasti hyvin. 1028 00:42:39,990 --> 00:42:43,360 Ja nyt jos juoksen matematiikkaa, 123 tuntuu toimivan. 1029 00:42:43,360 --> 00:42:46,010 Mutta tämä ei ole todellakaan tehokkaita todisteita, vain sanoa 1030 00:42:46,010 --> 00:42:47,930 Okei, se toimii. 1031 00:42:47,930 --> 00:42:49,120 789, joka toimii. 1032 00:42:49,120 --> 00:42:50,100 Aikaa toimittaa. 1033 00:42:50,100 --> 00:42:51,870 Koska siellä on muita rajatapauksissa täällä. 1034 00:42:51,870 --> 00:42:55,040 Merkkijono ei todellakaan anna meille paljon vaivaa kirjoittamalla 1035 00:42:55,040 --> 00:42:56,510 paljon merkkejä. 1036 00:42:56,510 --> 00:42:59,580 Mutta entä jos en kirjoita tähän? 1037 00:42:59,580 --> 00:43:04,850 Lyömällä numero 1 paljon, paljon täällä - 1038 00:43:04,850 --> 00:43:06,300 Selvä, se alkaa hieman tylsä, joten aion 1039 00:43:06,300 --> 00:43:10,040 lopettaa tähän, ja aion Enter. 1040 00:43:10,040 --> 00:43:11,290 >> Mitä helvettiä juuri tapahtui? 1041 00:43:14,110 --> 00:43:17,680 Joten tämä voi todella selittää. 1042 00:43:17,680 --> 00:43:18,920 Joten ei se ota se binary? 1043 00:43:18,920 --> 00:43:21,130 Hyvä ajatus, mutta ei, se ei ole sitä, että se otti 1044 00:43:21,130 --> 00:43:22,815 kuten binary, koska todellakin, se oli vain sellainen 1045 00:43:22,815 --> 00:43:23,080 sattuma. 1046 00:43:23,080 --> 00:43:23,930 Voimme tehdä tämän uudestaan. 1047 00:43:23,930 --> 00:43:26,530 Joten ei ole mitään 2-binary-järjestelmän, joka on 1048 00:43:26,530 --> 00:43:27,420 luultavasti tarpeeksi muutenkin. 1049 00:43:27,420 --> 00:43:28,780 Enter. 1050 00:43:28,780 --> 00:43:30,140 Niin että ei ollut ongelma. 1051 00:43:30,140 --> 00:43:31,390 Mitä muuta? 1052 00:43:34,650 --> 00:43:35,400 Aivan. 1053 00:43:35,400 --> 00:43:37,830 >> Joten muistelen mitä int todellisuudessa on. 1054 00:43:37,830 --> 00:43:40,970 Se on 32 bittiä, jotka yhdessä tulkitaan 1055 00:43:40,970 --> 00:43:42,090 lukuna. 1056 00:43:42,090 --> 00:43:44,730 Jos on 32 bittiä, se tarkoittaa, että kukin bitit voivat olla 1057 00:43:44,730 --> 00:43:46,690 0 tai 1, 0 tai 1. 1058 00:43:46,690 --> 00:43:49,090 Joten se tarkoittaa, että on kaksi vaihtoehtoa tämän bitin, 1059 00:43:49,090 --> 00:43:51,140 kaksi mahdollisuutta, että kaksi mahdollisuuksia tämän 1060 00:43:51,140 --> 00:43:52,570 bit - niin se on 2 kertaa 2 kertaa - 1061 00:43:52,570 --> 00:43:55,480 niin se on 2 32 teho on kokonaismäärä 1062 00:43:55,480 --> 00:43:58,960 permutaatioista nollia ja ykkösiä, jos sinulla on 32 1063 00:43:58,960 --> 00:44:01,400 paikkamerkkejä nollista tai ykkösistä, edessä. 1064 00:44:01,400 --> 00:44:04,250 Joten jos olen 2 32, matemaattisesti, että mitä? 1065 00:44:07,080 --> 00:44:07,840 Joten se on paljon. 1066 00:44:07,840 --> 00:44:09,910 Se on 4000000000, antaa tai ottaa. 1067 00:44:09,910 --> 00:44:13,510 Ja 4000000000 ei näytä olevan mitä tulostaa täältä. 1068 00:44:13,510 --> 00:44:16,290 Itse asiassa tämä näyttää lähempänä 2000000000. 1069 00:44:16,290 --> 00:44:17,970 Mutta tämä ei ole sattumaa. 1070 00:44:17,970 --> 00:44:21,590 Siitä, että tietokone on tulkinnut minun valtava määrä, 1071 00:44:21,590 --> 00:44:24,260 minun valtava jono ykkösiä ja sitten minun valtava jono kaksittain, 1072 00:44:24,260 --> 00:44:26,880 kuin noin 2 miljardia selitetään miten? 1073 00:44:30,250 --> 00:44:32,180 On korkki int. 1074 00:44:32,180 --> 00:44:34,970 Siellä on varmasti suurin arvo, joka voi edustaa. 1075 00:44:34,970 --> 00:44:36,370 Mutta se on yleensä 4000000000, eikö? 1076 00:44:36,370 --> 00:44:39,100 Jos 2 ja 32 on noin 4 miljardia euroa, joka tuntuu 1077 00:44:39,100 --> 00:44:40,350 se on suurin numero. 1078 00:44:42,420 --> 00:44:45,240 Joten ei muilta, mutta hyvä ajatus. 1079 00:44:45,240 --> 00:44:46,340 Negatiivisia lukuja. 1080 00:44:46,340 --> 00:44:49,570 Joten jos sinulla on 4 miljardia mahdollisia asioita voit 1081 00:44:49,570 --> 00:44:52,970 edustavat näitä eri permutaatiot 32 0 ja 1082 00:44:52,970 --> 00:44:55,600 1s, hyvin, on järkevää, että me ihmiset saattavat haluta 1083 00:44:55,600 --> 00:44:57,110 edustavat ei vain positiivisia kokonaislukuja 1084 00:44:57,110 --> 00:44:58,240 mutta negatiivisia kokonaislukuja. 1085 00:44:58,240 --> 00:45:00,410 Ja todellakin, se olettaa, että C tekee. 1086 00:45:00,410 --> 00:45:03,550 Joten 32 bittiä, voit edustaa karkeasti negatiivinen 2 1087 00:45:03,550 --> 00:45:06,630 miljardia kaikki tavalla jopa myönteisiä 2000000000. 1088 00:45:06,630 --> 00:45:08,750 Ja niin tässä tapauksessa, mitä me oikeastaan ​​nähdä vain 1089 00:45:08,750 --> 00:45:13,600 laitamilla kykyjä kokonaisluku, ja olemme, niin 1090 00:45:13,600 --> 00:45:15,860 puhua, tulvimisesta kokonaisluku. 1091 00:45:15,860 --> 00:45:19,180 Olemme yrittäneet ahtaa enemmän bittejä sinne kuin voi oikeastaan ​​sovi. 1092 00:45:19,180 --> 00:45:22,960 Niin lopputulos on, että meillä on olennaisesti kaikki 1 bittiä. 1093 00:45:22,960 --> 00:45:25,280 Olemme selattava kaikessa bittiä, olemme yrittäneet edustamaan 1094 00:45:25,280 --> 00:45:27,630 suurin mahdollinen määrä, mutta se ei selvästikään ole läheskään 1095 00:45:27,630 --> 00:45:30,960 tarpeeksi suuri edustaa kaksi asiaa olen juuri kirjoittanut tuumaa 1096 00:45:30,960 --> 00:45:31,730 Niin? 1097 00:45:31,730 --> 00:45:32,980 YLEISÖ: [kuulumattomissa] 1098 00:45:37,230 --> 00:45:37,830 >> DAVID J. MALAN: Hyvä kysymys. 1099 00:45:37,830 --> 00:45:40,080 Miksi emme edusta vain että negatiiviset 1100 00:45:40,080 --> 00:45:41,500 merkki vain hahmo? 1101 00:45:41,500 --> 00:45:44,200 Joten me ehdottomasti voisi, ja voisimme sitten pelastaa 1102 00:45:44,200 --> 00:45:45,470 lisäbitin. 1103 00:45:45,470 --> 00:45:49,100 Mutta olet silti täytyy edustaa tätä viiva, ja 1104 00:45:49,100 --> 00:45:50,700 että tulee maksamaan sinulle ainakin jotain, 1105 00:45:50,700 --> 00:45:52,220 oletettavasti hieman. 1106 00:45:52,220 --> 00:45:55,610 Joten kyllä, meillä voisi olla 32 bittiä käytetään meidän numero, mutta nyt 1107 00:45:55,610 --> 00:45:57,610 Tarvitsemme toinen vähän käytetty meidän Dash 1108 00:45:57,610 --> 00:45:58,810 symboli, miinusmerkki. 1109 00:45:58,810 --> 00:46:01,470 Joten nyt meillä on 33 bitin arvot, joita voisimme tehdä, mutta se on 1110 00:46:01,470 --> 00:46:02,570 juuri ole, miten se on tehty. 1111 00:46:02,570 --> 00:46:05,140 Teimme arvostele vuotta sitten, 32 bittiä on eräänlainen 1112 00:46:05,140 --> 00:46:06,170 mittayksikkö täältä. 1113 00:46:06,170 --> 00:46:08,120 Joten aiomme käyttää yhtä näistä biteistä tehokkaasti 1114 00:46:08,120 --> 00:46:12,950 edustavat negatiivisuutta, ja 31 bittiä edustaa numero. 1115 00:46:12,950 --> 00:46:15,550 Muita kysymyksiä? 1116 00:46:15,550 --> 00:46:15,670 Selvä. 1117 00:46:15,670 --> 00:46:16,030 Se on paljon. 1118 00:46:16,030 --> 00:46:17,930 Miksi emme mene eteenpäin ja otamme viiden minuutin taukoa täällä? 1119 00:46:23,580 --> 00:46:24,270 >> Selvä. 1120 00:46:24,270 --> 00:46:31,250 Joten jälleen, ei apunasi matemaattinen sovelluksia 1121 00:46:31,250 --> 00:46:33,840 ohjelmoinnin, haluan vain nyppiä pois tästä yksi esimerkki 1122 00:46:33,840 --> 00:46:36,590 ennen kuin siirrymme muihin konstruktioita, vain koska se 1123 00:46:36,590 --> 00:46:39,430 havainnollistavat muutamia yhteisiä kompastuskivi pistettä joihinkin 1124 00:46:39,430 --> 00:46:41,520 perusasiat, kun se tulee kirjoittaa ohjelmia. 1125 00:46:41,520 --> 00:46:44,360 Tässä tapauksessa, laskutoimitusten ilmaisuja, jotka ovat jonkin 1126 00:46:44,360 --> 00:46:48,010 mielenkiintoista merkitystä syntaksin. 1127 00:46:48,010 --> 00:46:50,430 >> Joten tämä on vain kaava, jolla voimme muuntaa 1128 00:46:50,430 --> 00:46:52,690 lämpötilat Fahrenheit ja Celsius. 1129 00:46:52,690 --> 00:46:54,600 Jos et muista, tämä on vain kaava. 1130 00:46:54,600 --> 00:46:58,870 Joten jos me kytkeä Fahrenheit arvo 32 astetta, mikä on 1131 00:46:58,870 --> 00:47:02,850 jäädyttäminen, että tulee olemaan 32 miinus 32 on 0, ja todellakin, 1132 00:47:02,850 --> 00:47:05,130 0 Celsius on myös jäätymisen. 1133 00:47:05,130 --> 00:47:08,210 Niin nopeasti järki tarkistaa siellä - se on tuttu kaava. 1134 00:47:08,210 --> 00:47:10,880 Antakaa minun mennä yli laitteeseen, vaikka, ja aloita 1135 00:47:10,880 --> 00:47:13,920 kirjoittaminen ohjelma nimeltä, kuten, f2c, "Fahrenheit 1136 00:47:13,920 --> 00:47:15,920 Celsius piste c ". 1137 00:47:15,920 --> 00:47:18,930 Ja ylös huipulla täällä, aion aloittaa pois # include 1138 00:47:18,930 --> 00:47:22,190 stdio.h, ja aion tehdä int main (void), ja 1139 00:47:22,190 --> 00:47:24,680 jälleen, tulemme takaisin tulevaisuudessa, mitä int tarkoittaa 1140 00:47:24,680 --> 00:47:26,820 siellä ja mitä void tarkoittaa siellä. 1141 00:47:26,820 --> 00:47:28,770 Ja nyt haluan mennä eteenpäin ja toteuttaa ohjelma, joka 1142 00:47:28,770 --> 00:47:31,170 lähinnä tämä muuntaminen meille. 1143 00:47:31,170 --> 00:47:36,830 >> Joten printf, sanokaamme, lämpötila Fahrenheit. 1144 00:47:36,830 --> 00:47:40,140 Ja sitten haluan mennä eteenpäin ja saada arvoa käyttäjältä. 1145 00:47:40,140 --> 00:47:43,120 Millainen arvo pitäisi saada käyttäjän jos haluan 1146 00:47:43,120 --> 00:47:45,620 heitä antamaan minulle lämpötila Fahrenheit? 1147 00:47:45,620 --> 00:47:48,090 Niin? 1148 00:47:48,090 --> 00:47:50,090 Mitä ehdotatte? 1149 00:47:50,090 --> 00:47:50,410 Joo. 1150 00:47:50,410 --> 00:47:51,960 Joten float tuntuu melko kohtuullinen. 1151 00:47:51,960 --> 00:47:53,950 Meillä on taas vain muutamia vaihtoehtoja, jotka 1152 00:47:53,950 --> 00:47:55,310 olemme nähneet tähän mennessä. 1153 00:47:55,310 --> 00:48:00,100 Meillä on asioita, kuten nieriä, kaksinkertainen, kellua, int, pitkä pitkä, 1154 00:48:00,100 --> 00:48:01,150 bool, merkkijono. 1155 00:48:01,150 --> 00:48:03,510 Joten näistä, float tuntuu melko kohtuullinen. 1156 00:48:03,510 --> 00:48:06,340 Voisimme käyttää kaksinkertainen, oikea, sillä jos haluamme todella 1157 00:48:06,340 --> 00:48:07,580 edustavat ihmisen lämpötila - 1158 00:48:07,580 --> 00:48:10,730 98.60000 - 1159 00:48:10,730 --> 00:48:12,990 voisimme käyttää 64 bittiä tehdä niin, mutta se tuntuu 1160 00:48:12,990 --> 00:48:14,200 ylilyönti lämpötilan. 1161 00:48:14,200 --> 00:48:16,380 Joten vain mennä kellua. 1162 00:48:16,380 --> 00:48:18,100 Nyt tarvitsen muuttuja. 1163 00:48:18,100 --> 00:48:20,500 Vain pitää asiat yksinkertaisina, aion kutsua sitä f, mutta 1164 00:48:20,500 --> 00:48:23,370 voisi yhtä perustellusti kutsua sitä lämpötilaa, 1165 00:48:23,370 --> 00:48:24,600 mutta joko on hieno. 1166 00:48:24,600 --> 00:48:27,610 Joten float f = GetFloat. 1167 00:48:27,610 --> 00:48:30,220 Heti kun olen nyt päättänyt käyttää GetFloat, olen kuitenkin 1168 00:48:30,220 --> 00:48:33,340 täytyy tehdä yksi korjaus. 1169 00:48:33,340 --> 00:48:33,720 Joo. 1170 00:48:33,720 --> 00:48:37,460 Joten meidän # include , muuten kääntäjä on 1171 00:48:37,460 --> 00:48:39,000 menossa huutaa meille. 1172 00:48:39,000 --> 00:48:41,720 Nyt minulla on float, anna minun mennä eteenpäin ja tehdä 1173 00:48:41,720 --> 00:48:42,460 muuntaminen. 1174 00:48:42,460 --> 00:48:44,980 >> Joten ensin haluan myös tottua täällä 1175 00:48:44,980 --> 00:48:46,310 kommentoi minun koodi. 1176 00:48:46,310 --> 00:48:49,820 Joten jälleen, kommentti on vain merkintä ihmisen, joka on 1177 00:48:49,820 --> 00:48:52,600 ei ole osa ohjelmaa sinänsä, mutta se on yksi, auttaa 1178 00:48:52,600 --> 00:48:55,010 ymmärtää, mitä teit seuraavana aamuna, tai seuraava 1179 00:48:55,010 --> 00:48:57,570 kuukaudessa, se auttaa opetuksen stipendiaatti ymmärtää, mitä teit 1180 00:48:57,570 --> 00:48:59,230 tai mitä aikoi tehdä, joten se on 1181 00:48:59,230 --> 00:49:00,950 yleensä erittäin hyviä toimintatapoja. 1182 00:49:00,950 --> 00:49:02,940 Aina muutaman rivin koodia, kirjoittaa kommentin 1183 00:49:02,940 --> 00:49:04,490 itseäsi tai työtoverisi. 1184 00:49:04,490 --> 00:49:08,460 Joten tässä, aion sanoa, "Kysy käyttäjältä lämpötilan." 1185 00:49:08,460 --> 00:49:10,890 Ei tarvitse olla kokonainen lause, vain lyhyt lause. 1186 00:49:10,890 --> 00:49:14,270 Mutta idea kommentoimalla C on, että jokainen 1187 00:49:14,270 --> 00:49:17,980 kommentit olisi annettava sinä - tai vaikkapa TF tai kollega - 1188 00:49:17,980 --> 00:49:21,290 silmäillä ohjelman ja tietää tarkalleen, mitä se tekee, se ei 1189 00:49:21,290 --> 00:49:24,650 niin paljon lukemista koodia, mutta lukemalla kommentit, jotka 1190 00:49:24,650 --> 00:49:26,220 tulisi olla ytimekäs ja selkeä. 1191 00:49:26,220 --> 00:49:29,030 Selvä, joten nyt haluan mennä eteenpäin ja sanoa, "Convert 1192 00:49:29,030 --> 00:49:32,660 Fahrenheit Celsius. "Joten aion mennä eteenpäin ja tehdä, 1193 00:49:32,660 --> 00:49:34,340 sanotaanko, float c. 1194 00:49:34,340 --> 00:49:36,610 Pidämme Celsius kuin Liukulukuarvo. 1195 00:49:36,610 --> 00:49:37,630 >> Ja anna minun ottaa puukottaa tätä. 1196 00:49:37,630 --> 00:49:40,350 Kaava on jälleen täällä. 1197 00:49:40,350 --> 00:49:45,510 Koska 5/9 kertaa F miinus 32. 1198 00:49:45,510 --> 00:49:46,360 Joten tehdään tämä. 1199 00:49:46,360 --> 00:49:50,450 Joten 5 jaettuna 9, miinus - 1200 00:49:50,450 --> 00:49:52,330 Oho, olen sekaisin sen jo. 1201 00:49:52,330 --> 00:49:53,070 Times. 1202 00:49:53,070 --> 00:49:56,550 Joten 5/9 kertaa F miinus 32. 1203 00:49:56,550 --> 00:49:59,650 Joten F miinus 32, puolipiste. 1204 00:49:59,650 --> 00:50:02,000 Ja nyt, täällä, aion mennä eteenpäin 1205 00:50:02,000 --> 00:50:03,220 ja sanoa, tulostaa tuloksen. 1206 00:50:03,220 --> 00:50:05,160 Ja tämä osa on helppo. Printf. 1207 00:50:05,160 --> 00:50:07,980 Miten edetä tulostamista tästä? 1208 00:50:07,980 --> 00:50:16,890 No, voisin sanoa "Tuo luku Celsius on% f \ n", 1209 00:50:16,890 --> 00:50:18,060 vain muutamia estetiikkaa. 1210 00:50:18,060 --> 00:50:20,450 Ja mitä sitten arvoa en halua kytkeä täällä printf n 1211 00:50:20,450 --> 00:50:21,360 Toinen perustelu? 1212 00:50:21,360 --> 00:50:21,650 Okei. 1213 00:50:21,650 --> 00:50:22,540 Joten c. 1214 00:50:22,540 --> 00:50:24,760 Niinpä aloitamme tämän ja sitten vain palata 0. 1215 00:50:24,760 --> 00:50:25,960 Uudelleen, se ei ole mitään tekemistä matematiikkaa. 1216 00:50:25,960 --> 00:50:27,610 Se vain tarkoittaa että kaikki on hyvin. 1217 00:50:27,610 --> 00:50:31,210 >> Nyt on tämä oikea, tämä ohjelma? 1218 00:50:31,210 --> 00:50:31,520 Selvä. 1219 00:50:31,520 --> 00:50:33,630 Joten olen tehnyt joitakin virheitä. 1220 00:50:33,630 --> 00:50:35,980 Vaikka sinulla ei ole aavistustakaan, mitä ohjelmointi on, voit lajitella 1221 00:50:35,980 --> 00:50:37,120 ja päättelevät takaisin peruskoulun mitä 1222 00:50:37,120 --> 00:50:38,740 virheitä täällä voisi olla. 1223 00:50:38,740 --> 00:50:40,050 Mitä yksi ensimmäisistä? 1224 00:50:40,050 --> 00:50:41,256 YLEISÖ: [kuulumattomissa] 1225 00:50:41,256 --> 00:50:41,660 DAVID J. MALAN: Joo. 1226 00:50:41,660 --> 00:50:42,940 Eli meiltä puuttuu sulkeita. 1227 00:50:42,940 --> 00:50:45,420 Se oli tahallinen, että tein suluissa perussävel 1228 00:50:45,420 --> 00:50:48,130 liu'uta täällä, koska siellä oikeastaan ​​tämä käsite tilauksen 1229 00:50:48,130 --> 00:50:51,590 toiminnan tai edelle, jolloin tietyt toiminnot - 1230 00:50:51,590 --> 00:50:52,890 kertolasku - 1231 00:50:52,890 --> 00:50:56,000 on korkeampi sitova, on korkeampi etusija kuin asiat 1232 00:50:56,000 --> 00:50:58,050 kuten lisäys tai vähennys. 1233 00:50:58,050 --> 00:51:00,550 Joten olemme tehneet tätä jo vuosia vain tehdä selväksi täsmälleen 1234 00:51:00,550 --> 00:51:02,840 Mitä matemaattinen operaatio pitäisi tehdä ensin. 1235 00:51:02,840 --> 00:51:05,010 Joten minun pitäisi varmaan jäljitellä juuri tätä. 1236 00:51:05,010 --> 00:51:08,990 Muuten tietokone on oletettavasti yrittävät tehdä 1237 00:51:08,990 --> 00:51:13,090 jotain jakautuminen 5 9, niin kerrotaan F, vähennä 1238 00:51:13,090 --> 00:51:14,850 32 alkaen koko juttu. 1239 00:51:14,850 --> 00:51:16,480 Joka ei itse asiassa mitä haluamme tehdä. 1240 00:51:16,480 --> 00:51:17,340 Joten parenthesize. 1241 00:51:17,340 --> 00:51:20,860 Katsotaanpa lisätä minun sulkeisiin tässä, suluissa täällä. 1242 00:51:20,860 --> 00:51:22,670 Laitetaan tämä tänne. 1243 00:51:22,670 --> 00:51:25,130 Täällä olen vain huomannut toisen virheen tein matkan varrella. 1244 00:51:25,130 --> 00:51:25,680 Niin? 1245 00:51:25,680 --> 00:51:26,930 YLEISÖ: [kuulumattomissa] 1246 00:51:29,632 --> 00:51:30,130 >> DAVID J. MALAN: Ah. 1247 00:51:30,130 --> 00:51:30,470 Hyvä. 1248 00:51:30,470 --> 00:51:32,400 Joten meillä on todellakin sama kokonaisluku 1249 00:51:32,400 --> 00:51:34,020 jako asiaa ennen. 1250 00:51:34,020 --> 00:51:35,800 Olen paikkansa, että katsotaanpa mitä oire on. 1251 00:51:35,800 --> 00:51:36,990 Mutta aiomme pitää korjata yhden 1252 00:51:36,990 --> 00:51:37,680 muut erehdys. 1253 00:51:37,680 --> 00:51:38,015 Niin? 1254 00:51:38,015 --> 00:51:39,540 YLEISÖ: [kuulumattomissa] 1255 00:51:39,540 --> 00:51:40,070 DAVID J. MALAN: Kyllä. 1256 00:51:40,070 --> 00:51:43,130 Joten tyhmä virhe tein, mutta uskomattoman tärkeä. 1257 00:51:43,130 --> 00:51:45,870 Tietokone ei aio vain sulkea silmänsä ja antaa 1258 00:51:45,870 --> 00:51:48,770 minun käyttää pääomaa F, kun olen itse julisti muuttujan 1259 00:51:48,770 --> 00:51:51,360 kuten pieniä f täällä, vastaa 8. 1260 00:51:51,360 --> 00:51:54,470 Joten minun täytyy korjata vastaamaan 11 minun arvo, joka 1261 00:51:54,470 --> 00:51:56,820 hetki sitten oli pääkaupunki F vahingossa. 1262 00:51:56,820 --> 00:51:57,610 Entä täällä? 1263 00:51:57,610 --> 00:51:59,980 Pitäisikö tämän olla pieniä samoin? 1264 00:51:59,980 --> 00:52:02,260 Olisi, mutta se sattumaa. 1265 00:52:02,260 --> 00:52:05,070 Että% f ei ole mitään tekemistä muuttuja. 1266 00:52:05,070 --> 00:52:07,980 Joten vain olla super selväksi täällä, anna minun mennä eteenpäin ja 1267 00:52:07,980 --> 00:52:10,710 Nimeä lyhyesti "lämpötila". Saanen nimeä 1268 00:52:10,710 --> 00:52:15,050 Tämä "lämpötila". Saanen ei nimeä tätä. 1269 00:52:15,050 --> 00:52:18,180 Koska taas% F maailmanlaajuisesti tarkoittaa "Liukulukuarvo." 1270 00:52:18,180 --> 00:52:19,950 Ei ole mitään tekemistä minun muuttuvan. 1271 00:52:19,950 --> 00:52:23,080 Mutta "lämpötila" levällään on vain vähän monisanainen, 1272 00:52:23,080 --> 00:52:25,370 joten aion mennä takaisin minun pieni "F" s. 1273 00:52:25,370 --> 00:52:27,890 >> Nyt haluan mennä eteenpäin alas minun ikkunaan täällä. 1274 00:52:27,890 --> 00:52:29,190 Make f2c - 1275 00:52:29,190 --> 00:52:31,200 joka oli jälleen mielivaltainen nimi I 1276 00:52:31,200 --> 00:52:32,590 antoi tähän tiedostoon. 1277 00:52:32,590 --> 00:52:33,690 Näyttää koonneet. 1278 00:52:33,690 --> 00:52:35,080 Saanen juosta f2c. 1279 00:52:35,080 --> 00:52:35,780 Enter. 1280 00:52:35,780 --> 00:52:37,786 Lämpötila Fahrenheit - Tehdään helppo. 1281 00:52:37,786 --> 00:52:39,370 32. 1282 00:52:39,370 --> 00:52:40,910 OK, korjata. 1283 00:52:40,910 --> 00:52:45,910 Mutta, jos en nyt tee 212 kiehuvaa - 1284 00:52:45,910 --> 00:52:46,630 damn. 1285 00:52:46,630 --> 00:52:47,030 Selvä. 1286 00:52:47,030 --> 00:52:50,780 Joten selvästikään ole oikein, jos TF yrittää 1287 00:52:50,780 --> 00:52:51,800 ainakin kaksi arvoa. 1288 00:52:51,800 --> 00:52:53,340 Joten mikä on ongelma? 1289 00:52:53,340 --> 00:52:55,970 No, olet jo laittaa sormi mitä asiasta on. 1290 00:52:55,970 --> 00:52:57,600 Mutta miksi näin on? 1291 00:52:57,600 --> 00:53:00,630 Täällä, kun olen tekemässä matematiikkaa 5 jaettuna 9. 1292 00:53:00,630 --> 00:53:02,190 Niin käsitteellisesti, että on täysin oikein. 1293 00:53:02,190 --> 00:53:03,690 Täysin sopusoinnussa kaavalla. 1294 00:53:03,690 --> 00:53:05,940 Mutta tietokoneet vain tehdä juuri mitä 1295 00:53:05,940 --> 00:53:06,760 kertoa heille tehdä. 1296 00:53:06,760 --> 00:53:08,940 Ja mitä me tosiasiassa kertoo tietokoneen tässä 1297 00:53:08,940 --> 00:53:12,320 jaa kokonaisluku 5 kokonaisluvun 9 1298 00:53:12,320 --> 00:53:13,670 ja anna minulle tulosta. 1299 00:53:13,670 --> 00:53:16,230 Ongelmana on kuitenkin, kun et jakolaskuja tietoja 1300 00:53:16,230 --> 00:53:20,220 tyyppejä, lähtö on samaa tietotyyppiä kuin tulot. 1301 00:53:20,220 --> 00:53:23,670 Ja joten jos kaksi tuloa ovat molemmat ints, lähtö on menossa 1302 00:53:23,670 --> 00:53:25,110 olla int. 1303 00:53:25,110 --> 00:53:28,770 Ja niin 5 jaettuna 9 on pilkku jotain. 1304 00:53:28,770 --> 00:53:32,320 Mutta mitä lähin kokonaisluku kohtaan jotain? 1305 00:53:32,320 --> 00:53:33,630 Joten, se on oikeastaan ​​0. 1306 00:53:33,630 --> 00:53:36,620 Niin kuin olemme keskustelleet maanantaina, kaikki desimaalipilkun jälkeen 1307 00:53:36,620 --> 00:53:37,940 kohta saa katkaistu. 1308 00:53:37,940 --> 00:53:39,495 Se vain saa heittää pois. 1309 00:53:39,495 --> 00:53:42,760 Joten tämä on täydellinen virhe, koska voisin yhtä hyvin 1310 00:53:42,760 --> 00:53:44,700 kerrotaan kaiken 0 tänne. 1311 00:53:44,700 --> 00:53:46,550 >> Nyt voin korjata tämän pari tapaa. 1312 00:53:46,550 --> 00:53:48,080 Voisin tehdä tätä. 1313 00:53:48,080 --> 00:53:50,490 5,0 jaettuna 9,0. 1314 00:53:50,490 --> 00:53:52,110 Teknisesti, en edes tarvitse tehdä. 1315 00:53:52,110 --> 00:53:55,780 Se riittää vain tehdä yhden numerot float - 1316 00:53:55,780 --> 00:53:58,290 tai kaksinkertaisen - laittamalla desimaalipilkun täällä. 1317 00:53:58,290 --> 00:54:01,740 Koska mitä tapahtuu nyt, kun jaat kokonaisluku by 1318 00:54:01,740 --> 00:54:04,670 float tai kaksinkertainen, tietokone menee ymmärtää 1319 00:54:04,670 --> 00:54:06,830 oh, yksi niistä on tarkempi. 1320 00:54:06,830 --> 00:54:09,420 Saanen err puolella antaa sinulle enemmän tarkkuutta kuin 1321 00:54:09,420 --> 00:54:10,310 sinulle tarkoitettu. 1322 00:54:10,310 --> 00:54:12,700 Joten se muuntaa tulos - 1323 00:54:12,700 --> 00:54:16,240 se palauttaa tuloksen Liukulukuarvo samoin. 1324 00:54:16,240 --> 00:54:17,330 Joten se toimisi. 1325 00:54:17,330 --> 00:54:18,060 Tämä toimisi. 1326 00:54:18,060 --> 00:54:20,010 Ja vielä yksi muu mekanismi, joka nähdään vuonna 1327 00:54:20,010 --> 00:54:21,390 tarkemmin ensi viikolla. 1328 00:54:21,390 --> 00:54:24,690 Voit itse, kuten ohjelmoija, kerro tietokone 1329 00:54:24,690 --> 00:54:27,930 todella kohtelevat tietotyypin 1330 00:54:27,930 --> 00:54:29,260 vaikka se oli toinen. 1331 00:54:29,260 --> 00:54:30,990 >> Joten voisin itse tehdä tämän. 1332 00:54:30,990 --> 00:54:35,280 Suluissa, voin sanoa jotain (float), avoin 1333 00:54:35,280 --> 00:54:36,350 Paren, sulje paren. 1334 00:54:36,350 --> 00:54:39,050 Ja tämä on mitä kutsutaan "valu". Jälleen, lisää 1335 00:54:39,050 --> 00:54:39,940 tästä ensi viikolla. 1336 00:54:39,940 --> 00:54:42,280 Mutta tämä on vain ohjelmallinen tapa kertoa 1337 00:54:42,280 --> 00:54:45,910 tietokone, joo tiedän 9 on kokonaisluku tai pitkä. 1338 00:54:45,910 --> 00:54:47,700 Tiedän, että se ei ole Liukulukuarvo. 1339 00:54:47,700 --> 00:54:49,420 Mutta kohdella sitä sellaisena tapauksessa. 1340 00:54:49,420 --> 00:54:52,000 Joten heittää tietotyyppi tarkoittaa muuntaa 1341 00:54:52,000 --> 00:54:53,310 yhdestä toiseen. 1342 00:54:53,310 --> 00:54:55,790 Rehellisesti sanottuna tämä on vain pieni ruma, joten ehdotan mennään 1343 00:54:55,790 --> 00:54:58,830 takaisin alkuperäiseen ehdotukseen vain muuntaa 1344 00:54:58,830 --> 00:55:00,770 näitä asioita liukuluvuiksi manuaalisesti. 1345 00:55:00,770 --> 00:55:02,890 Koska nyt on aivan super selväksi, mitä on tekeillä, ja 1346 00:55:02,890 --> 00:55:04,280 se ei ole kaikki, että häiritsevä. 1347 00:55:04,280 --> 00:55:06,710 >> Joten nyt mennä takaisin minun pääteikkuna. 1348 00:55:06,710 --> 00:55:07,990 Tee f2c. 1349 00:55:07,990 --> 00:55:09,430 Anna minun mennä eteenpäin ja ajaa tätä. 1350 00:55:09,430 --> 00:55:12,340 Ja kuten syrjään, et kyllästy kirjoittaa näitä komentoja 1351 00:55:12,340 --> 00:55:14,910 uudestaan ​​ja uudestaan, ymmärtää, että tietokoneet, kuten Linux täällä, 1352 00:55:14,910 --> 00:55:16,010 melkoisen fiksu. 1353 00:55:16,010 --> 00:55:18,890 Ja jos minä osuma, voimme käydä läpi koko historian 1354 00:55:18,890 --> 00:55:20,380 komentoja, ylös ja alas. 1355 00:55:20,380 --> 00:55:23,840 Eli tässä tapauksessa täällä, voin vain mennä jopa ajaa tekemään f2c. 1356 00:55:23,840 --> 00:55:25,830 Minua huusin, koska tein että toinen sitten. 1357 00:55:25,830 --> 00:55:27,030 Se on jo ajan tasalla. 1358 00:55:27,030 --> 00:55:30,720 Joten nyt voin ajaa f2c uudelleen. 1359 00:55:30,720 --> 00:55:33,260 Kokeillaan 32 Fahrenheit. 1360 00:55:33,260 --> 00:55:36,720 Nyt yritetään 212 Fahrenheit. 1361 00:55:36,720 --> 00:55:37,250 >> Huoh. 1362 00:55:37,250 --> 00:55:38,250 Tuntuu toimivan. 1363 00:55:38,250 --> 00:55:41,760 Nyt tämä on hyvä, mutta se tuntuu hieman mielivaltaista joka 1364 00:55:41,760 --> 00:55:44,890 Näytän kuusi numeroa desimaalipilkun jälkeen kohdat. 1365 00:55:44,890 --> 00:55:45,070 Oikea? 1366 00:55:45,070 --> 00:55:47,830 Jos olet sää henkilö televisiossa, olet sellainen Doofus 1367 00:55:47,830 --> 00:55:49,150 jos luet lämpötila 1368 00:55:49,150 --> 00:55:50,070 Tämä tarkkuus. 1369 00:55:50,070 --> 00:55:51,270 Joten yksinkertaistamiseksi. 1370 00:55:51,270 --> 00:55:53,880 Joten itse mennä tänne, minun printf. 1371 00:55:53,880 --> 00:55:55,490 Ja joo, haluan kellua. 1372 00:55:55,490 --> 00:55:57,570 Mutta haluan nyt määritellä tarkasti. 1373 00:55:57,570 --> 00:55:59,070 Ja aion olla hieman ytimekäs. 1374 00:55:59,070 --> 00:56:03,090 Aion sanoa, anna minulle yksi piste kuluttua desimaalin tarkkuudella. 1375 00:56:03,090 --> 00:56:07,590 Joten sen sijaan sanoa% f, aion sanoa% .1 f. 1376 00:56:07,590 --> 00:56:09,760 Ja tämä tarkoittaa vain antaa minulle yhden paikan 1377 00:56:09,760 --> 00:56:11,410 desimaalipilkun jälkeen. 1378 00:56:11,410 --> 00:56:11,700 Selvä. 1379 00:56:11,700 --> 00:56:12,570 Kokeillaan uudestaan. 1380 00:56:12,570 --> 00:56:15,590 Saanen uusinnassa sen jälkeen kokoamisessa. 1381 00:56:15,590 --> 00:56:18,160 Ja nyt minä kirjoita 32 ja minä saada takaisin 1382 00:56:18,160 --> 00:56:19,310 ytimekkäämpi arvoa. 1383 00:56:19,310 --> 00:56:22,480 Ja voin kirjoittaa, nyt 212, ja saada takaisin suppeampi 1384 00:56:22,480 --> 00:56:23,260 arvo. 1385 00:56:23,260 --> 00:56:25,190 Ja siellä on muita asioita voit tehdä printf. 1386 00:56:25,190 --> 00:56:27,950 Voit itse määrittää, kuinka suuri määrä olisi. 1387 00:56:27,950 --> 00:56:30,900 Jos haluat olla pehmusteet sitä, joten voit hiiren tasata tai 1388 00:56:30,900 --> 00:56:32,360 vasen-align kaikki numerot tai 1389 00:56:32,360 --> 00:56:33,400 yrittää center asioita. 1390 00:56:33,400 --> 00:56:35,340 Joten ymmärtää olemassa vähän temppuja voit tehdä siellä. 1391 00:56:35,340 --> 00:56:38,420 Mutta he vain keitetään alas muotoon koodeja, 1392 00:56:38,420 --> 00:56:39,600 kuten olemme siellä. 1393 00:56:39,600 --> 00:56:41,090 >> Joten mitä tässä numerossa edelle. 1394 00:56:41,090 --> 00:56:43,820 Tämä on erittäin tylsä ​​pöydän läpi järjestelmällisesti. 1395 00:56:43,820 --> 00:56:46,780 Mutta ymmärtää, että laatijat C on keksiä 1396 00:56:46,780 --> 00:56:50,190 säännöt, joissa määritellään toimijat ovat korkeammat 1397 00:56:50,190 --> 00:56:53,680 edelle, enemmän sitovaa valtaa, kuin toiset. 1398 00:56:53,680 --> 00:56:55,890 Joten taas alakoulussa, me yleensä tiesi, että se oli 1399 00:56:55,890 --> 00:56:58,930 kerto-ja jakolasku, sitten yhteen-ja vähennyslaskua, 1400 00:56:58,930 --> 00:56:59,950 sitten joitakin muita juttuja. 1401 00:56:59,950 --> 00:57:01,720 Maailmassa ohjelmointi, siellä paljon 1402 00:57:01,720 --> 00:57:03,360 pidempi lista asioista. 1403 00:57:03,360 --> 00:57:05,150 Ja tämä ei ole jotain syytä muistaa nyt. 1404 00:57:05,150 --> 00:57:07,310 Saat totutettu ennen pitkää. 1405 00:57:07,310 --> 00:57:10,690 Mutta aivan kuten alakoulussa, suluissa yleensä ratkaista 1406 00:57:10,690 --> 00:57:12,990 kysymykset edelle, tekemällä erittäin selväksi 1407 00:57:12,990 --> 00:57:15,620 tietokoneen ja ihmisen lailla, mitä on tarkoitettu. 1408 00:57:15,620 --> 00:57:17,770 Joten pitää tätä hieman lunttilappua siellä. 1409 00:57:17,770 --> 00:57:21,690 Mutta suurin niistä yksityiskohtia emme pääse vähään aikaan. 1410 00:57:21,690 --> 00:57:21,900 >> Selvä. 1411 00:57:21,900 --> 00:57:24,120 Nyt, rakentaa ja siirtymään pois näiltä typerä pikku 1412 00:57:24,120 --> 00:57:25,460 matemaattisia esimerkkejä. 1413 00:57:25,460 --> 00:57:27,500 Silti käyttää samoja perusteita, mutta aloita 1414 00:57:27,500 --> 00:57:29,960 ilmaista itseämme hieman enemmän kuin Scratch. 1415 00:57:29,960 --> 00:57:31,660 Joten Scratch, meillä oli nämä Boolen lausekkeita. 1416 00:57:31,660 --> 00:57:34,890 Ja Englanti, Boolen lauseke on mitä? 1417 00:57:34,890 --> 00:57:35,580 Totta vai tarua. 1418 00:57:35,580 --> 00:57:38,300 Se on jotain, tosi tai epätosi. 1419 00:57:38,300 --> 00:57:39,060 1 tai 0. 1420 00:57:39,060 --> 00:57:39,870 Päälle tai pois päältä. 1421 00:57:39,870 --> 00:57:41,000 Mitä haluat kutsua sitä. 1422 00:57:41,000 --> 00:57:43,210 Nyt Scratch, palapelin palat näytti tältä. 1423 00:57:43,210 --> 00:57:45,850 Ja se on yhdistelmä, pohjassa siellä kolme 1424 00:57:45,850 --> 00:57:47,980 palapelin palaset. 1425 00:57:47,980 --> 00:57:48,980 Yksi yhdessä - 1426 00:57:48,980 --> 00:57:51,710 jotain, joka on tyhjä ja tyhjä. 1427 00:57:51,710 --> 00:57:53,970 Ja sitten kaksi Boolen sisälle. 1428 00:57:53,970 --> 00:57:56,460 Joten voit pesä Boolen saada enemmän 1429 00:57:56,460 --> 00:57:59,360 monimutkaista Boolean ilmaisuja. 1430 00:57:59,360 --> 00:58:03,930 Esimerkiksi, jos se on lauantai, ja se on mukavaa 1431 00:58:03,930 --> 00:58:06,180 sää, sitten mennä ulos. 1432 00:58:06,180 --> 00:58:07,500 Tai jotain mielivaltaista tuollaista. 1433 00:58:07,500 --> 00:58:10,090 Joten voit liittyä Boolen keksiä 1434 00:58:10,090 --> 00:58:12,780 suurempi totuusarvo, jonka vastaus perustuu 1435 00:58:12,780 --> 00:58:13,800 on pienempiä. 1436 00:58:13,800 --> 00:58:15,770 >> Nyt, C, onneksi tämä kartoitus on 1437 00:58:15,770 --> 00:58:16,720 oikeastaan ​​aika yksinkertainen. 1438 00:58:16,720 --> 00:58:18,820 Sulut auttaa selvittää asioita täällä. 1439 00:58:18,820 --> 00:58:21,700 && Mitä tarkoittaa "ja". Niin, että miten 1440 00:58:21,700 --> 00:58:24,700 aiomme muuttaa nämä lohkot tyhjästä C. 1441 00:58:24,700 --> 00:58:27,590 Ja edellytykset näimme Scratch, vasemmalla 1442 00:58:27,590 --> 00:58:31,150 puolella, voin pinota niitä samankaltaisesti C. Jos x on pienempi 1443 00:58:31,150 --> 00:58:32,970 kuin y, tee tätä. 1444 00:58:32,970 --> 00:58:35,100 If x on suurempi kuin y, niin tähän. 1445 00:58:35,100 --> 00:58:38,030 Else loogisesti niiden on oltava sama, joten sano 1446 00:58:38,030 --> 00:58:39,140 että ne ovat yhtä suuret. 1447 00:58:39,140 --> 00:58:41,210 Joten voimme nyt alkaa rakentaa näitä asioita. 1448 00:58:41,210 --> 00:58:42,170 >> Tehdäänpä esimerkki. 1449 00:58:42,170 --> 00:58:45,550 Saanen avata tiedoston, joka on kurssin verkkosivuilla, että 1450 00:58:45,550 --> 00:58:47,270 Kirjoitin etukäteen. 1451 00:58:47,270 --> 00:58:50,540 Tätä kutsutaan nonswitch.c. 1452 00:58:50,540 --> 00:58:52,270 Ja näemme miksi vain hetken. 1453 00:58:52,270 --> 00:58:54,770 Joten tämä tiedosto - nonswitch.c-- 1454 00:58:54,770 --> 00:58:56,830 ensin ymmärtää, että on olemassa koko joukko 1455 00:58:56,830 --> 00:58:58,460 kommentit yläreunassa. 1456 00:58:58,460 --> 00:59:00,110 Se on vain selittää tiedoston nimi, mitä se 1457 00:59:00,110 --> 00:59:01,260 ei, ja niin edelleen. 1458 00:59:01,260 --> 00:59:04,390 Ja se ilmeisesti osoittaa käytön Boolen JA-ta - 1459 00:59:04,390 --> 00:59:06,220 conjoining kaksi ilmaisua. 1460 00:59:06,220 --> 00:59:07,670 >> Joten miten tämä ohjelma toimii. 1461 00:59:07,670 --> 00:59:10,840 Voin lisätä kaksi tiedostoa, cs50.h ja stdio.h. 1462 00:59:10,840 --> 00:59:13,180 Jos minä selaa, nyt on ohjelma, se on vähän pidempi 1463 00:59:13,180 --> 00:59:15,730 kuin olemme kirjoitettu ennen, mutta melko luettavissa. 1464 00:59:15,730 --> 00:59:18,360 Joten haluan ensin tulostaa käyttäjälle, linjalla 18, 1465 00:59:18,360 --> 00:59:20,460 "Anna minulle kokonaisluku väliltä 1 ja 10". Niin 1466 00:59:20,460 --> 00:59:21,530 että on tuolla. 1467 00:59:21,530 --> 00:59:23,410 Nyt saan kokonaisluku. 1468 00:59:23,410 --> 00:59:25,380 Mutta ymmärrä, että GetInt - melko yksinkertainen. 1469 00:59:25,380 --> 00:59:26,510 Se vain mennä int. 1470 00:59:26,510 --> 00:59:28,830 Se aikoo varmistaa, että se saa int eikä 1471 00:59:28,830 --> 00:59:30,060 merkkijono tai float. 1472 00:59:30,060 --> 00:59:32,390 Mutta se ei aio tehdä minkäänlaista rajan tarkkailun. 1473 00:59:32,390 --> 00:59:34,750 Se ei aio suodattaa numeroita olla välillä 1474 00:59:34,750 --> 00:59:35,630 tietyissä rajoissa. 1475 00:59:35,630 --> 00:59:37,730 Joten meidän täytyy toteuttaa se itse. 1476 00:59:37,730 --> 00:59:40,680 Eli aivan kuten Scratch, jossa voisin tehdä konjunktio 1477 00:59:40,680 --> 00:59:43,560 kaksi lauseketta, voin tehdä sen C seuraavasti. 1478 00:59:43,560 --> 00:59:48,660 Jos n on suurempi tai yhtä suuri kuin 1, ja n on pienempi kuin ja 1479 00:59:48,660 --> 00:59:52,220 tai yhtä suuri kuin 3, aion hyvin mielivaltaisesti käskyn, että 1480 00:59:52,220 --> 00:59:53,830 numero olla pieni määrä. 1481 00:59:53,830 --> 00:59:56,730 Vain vuoksi julkilausuman. 1482 00:59:56,730 --> 01:00:00,210 Else jos n on välillä 4 ja 6, print "Valitsit keskipitkällä 1483 01:00:00,210 --> 01:00:03,440 numero. "if n on välillä 7 ja 10, print" Valitsit 1484 01:00:03,440 --> 01:00:06,390 suuri määrä. "muuta tulosta" Valitset virheellinen numero. " 1485 01:00:06,390 --> 01:00:07,900 Koska loogisesti, että seuraa jos olemme 1486 01:00:07,900 --> 01:00:09,230 loppuun valikoimaamme. 1487 01:00:09,230 --> 01:00:12,400 >> Joten ymmärtää tämä ei ole aivan miten kirjoittaa tai suurempi 1488 01:00:12,400 --> 01:00:15,000 vastaa vuonna matematiikan luokassa. 1489 01:00:15,000 --> 01:00:15,160 Oikea? 1490 01:00:15,160 --> 01:00:17,430 Voit yleensä tehdä se näin, jossa viiva sen alle. 1491 01:00:17,430 --> 01:00:19,250 Mutta ei ole sellainen keskeinen minun näppäimistö. 1492 01:00:19,250 --> 01:00:22,390 Niin symboli C ilmaisemiseen tai suurempi kuin 1493 01:00:22,390 --> 01:00:25,770 yhtä suuri kuin on kaksi merkkiä, ja symboli alle 1494 01:00:25,770 --> 01:00:29,100 tai yhtä suuri kuin on kaksi merkkiä samoin. 1495 01:00:29,100 --> 01:00:29,330 Selvä. 1496 01:00:29,330 --> 01:00:31,910 Joten jos suoritat tämän ohjelman, voit varmaan arvata mitä se on 1497 01:00:31,910 --> 01:00:32,650 teemme. 1498 01:00:32,650 --> 01:00:36,180 Jos menen eteenpäin ja tehdä nonswitch, Enter. 1499 01:00:36,180 --> 01:00:38,130 Ja sitten ajaa nonswitch. 1500 01:00:38,130 --> 01:00:39,530 Anna minulle numero 1 ja 10. 1501 01:00:39,530 --> 01:00:40,870 Aion antaa sen 11. 1502 01:00:40,870 --> 01:00:42,280 Otin virheellinen numero. 1503 01:00:42,280 --> 01:00:44,090 Yritän numero 3. 1504 01:00:44,090 --> 01:00:45,990 Otin pienen määrän. 1505 01:00:45,990 --> 01:00:48,360 Joten melko suoraviivaista siellä. 1506 01:00:48,360 --> 01:00:52,230 >> Mitä jos haluan muuttaa käyttäytymistä tämän ohjelman ja 1507 01:00:52,230 --> 01:00:54,250 tehdä jotain hieman erilaista sijaan? 1508 01:00:54,250 --> 01:00:57,620 Anna minun mennä eteenpäin ja sanoa. 1509 01:00:57,620 --> 01:00:59,480 Saanen päästä eroon kaikesta tästä. 1510 01:00:59,480 --> 01:01:03,780 Ja haluan sanoa, jos (n == 42). 1511 01:01:03,780 --> 01:01:08,730 Ja sitten aion mennä eteenpäin ja sanoa print "Valitsit 1512 01:01:08,730 --> 01:01:16,340 oikea vastaus. "Else aiomme mennä eteenpäin ja sanoa, 1513 01:01:16,340 --> 01:01:18,460 printf ("Valitsit 1514 01:01:18,460 --> 01:01:21,170 väärä vastaus. "); Okei. 1515 01:01:21,170 --> 01:01:22,040 Vain siksi. 1516 01:01:22,040 --> 01:01:23,890 >> Nyt muutamia kohtia voimme tehdä täällä. 1517 01:01:23,890 --> 01:01:26,570 Yksi, en kirjoita symboli luulisi on 1518 01:01:26,570 --> 01:01:27,390 järkevin. 1519 01:01:27,390 --> 01:01:30,110 Kun haluan tarkistaa tasa-kääntyy pois et käytä 1520 01:01:30,110 --> 01:01:30,910 yhtäläisyysmerkki. 1521 01:01:30,910 --> 01:01:34,000 Voit sen sijaan käyttää yhtä yhtäläisyysmerkki. 1522 01:01:34,000 --> 01:01:36,440 Ja miksi se voisi olla vain intuitiivisesti? 1523 01:01:36,440 --> 01:01:37,030 Joo. 1524 01:01:37,030 --> 01:01:39,330 YLEISÖ: [kuulumattomissa] 1525 01:01:39,330 --> 01:01:39,615 DAVID J. MALAN: Oikea. 1526 01:01:39,615 --> 01:01:41,630 Yhtäläisyysmerkki käytetään jo tehtävän. 1527 01:01:41,630 --> 01:01:43,020 Joku ei tosiaan tätä kautta. 1528 01:01:43,020 --> 01:01:45,820 Ja nyt, kun se tulee tasa testaus, meidän on 1529 01:01:45,820 --> 01:01:48,850 olla selkeä, ja sano vastaa yhtä. 1530 01:01:48,850 --> 01:01:52,110 Hyvin yleinen virhe on tehdä tämä. 1531 01:01:52,110 --> 01:01:54,800 Ja jos virka tai ensi viikolla tai 1532 01:01:54,800 --> 01:01:58,340 Seuraavat kaksi viikkoa teet jotain tällaista, ja sitten 1533 01:01:58,340 --> 01:02:00,920 kamppailemaan sen 10, 20 minuuttia yrittää selvittää 1534 01:02:00,920 --> 01:02:03,330 Mikä hemmetin vika on, ymmärtää, että olet yksi niistä 1535 01:02:03,330 --> 01:02:04,470 ihmisiä, jotka teki tämän virheen. 1536 01:02:04,470 --> 01:02:06,030 Joten, super helppo tehdä. 1537 01:02:06,030 --> 01:02:08,240 Mutta tavoitteena onkin nyt torjua tämän virheen. 1538 01:02:08,240 --> 01:02:11,840 Tämä voi arvioida, sillä se, mitä tämä todella sanoo? 1539 01:02:11,840 --> 01:02:15,010 Jos n saa 42. 1540 01:02:15,010 --> 01:02:18,250 Joten verbi ihmiset käyttävät, sanallisesti ilmaista 1541 01:02:18,250 --> 01:02:21,800 käsite luovutus on "saa". Joten jos n saa 42. 1542 01:02:21,800 --> 01:02:24,060 Joten se tarkoittaa antaa 42-n. 1543 01:02:24,060 --> 01:02:26,250 Nyt minulla on Boolen lauseke suluissa, 1544 01:02:26,250 --> 01:02:30,230 sisällä tämän edellytyksen, jonka arvo on 42. 1545 01:02:30,230 --> 01:02:30,390 Oikea? 1546 01:02:30,390 --> 01:02:32,690 Koska jos arvioimaan sen sisältä ulos, yhteensä 1547 01:02:32,690 --> 01:02:34,100 vastaus, nyt on 42. 1548 01:02:34,100 --> 01:02:37,360 >> Joten jos Kysyin teiltä kysymyksen, "Jos (42)," mikä on 1549 01:02:37,360 --> 01:02:38,410 todella sanoa? 1550 01:02:38,410 --> 01:02:40,990 No, Boolen lausekkeita voi olla vain tosi tai epätosi. 1551 01:02:40,990 --> 01:02:42,010 1 tai 0. 1552 01:02:42,010 --> 01:02:43,010 Päälle tai pois päältä. 1553 01:02:43,010 --> 01:02:45,240 Joten meillä näyttää olevan nurkkaan tässä tapauksessa, jolloin kaikki 1554 01:02:45,240 --> 01:02:50,060 äkillinen, en sano "jos (42)". Tämä ei ole totuusarvon. 1555 01:02:50,060 --> 01:02:54,500 Joten mitä tietokoneet tekevät, vaikka on se lähinnä vastaa 1556 01:02:54,500 --> 01:02:58,620 mitään, ei 0 tulkitaan olevan totta. 1557 01:02:58,620 --> 01:02:59,340 1. 1558 01:02:59,340 --> 01:02:59,690 On. 1559 01:02:59,690 --> 01:03:01,510 He kaikki toiminnallisesti vastaavat. 1560 01:03:01,510 --> 01:03:05,070 Ainoastaan ​​arvo 0 tai avainsanan väärä, kuten tulemme 1561 01:03:05,070 --> 01:03:07,860 lopulta nähdä, on oikeastaan ​​väärä. 1562 01:03:07,860 --> 01:03:15,040 Joten ", jos (42)" olisi todella olla totta, koska se on ei-nolla. 1563 01:03:15,040 --> 01:03:18,620 Joten tarkemmin sanottuna tässä Boolen arvo ei todellakaan ole niin 1564 01:03:18,620 --> 01:03:20,680 paljon totta vai tarua, mutta tämä 1565 01:03:20,680 --> 01:03:24,650 tapauksessa, jos on 0 tai ei-nolla. 1566 01:03:24,650 --> 01:03:26,330 Joten vääriä tai ole vääriä. 1567 01:03:26,330 --> 01:03:28,640 Ja jonka avulla voimme kattaa kaikki enemmän 1568 01:03:28,640 --> 01:03:30,980 mahdollisuuksia sulkulausekkeesta. 1569 01:03:30,980 --> 01:03:33,840 Joten meidän täytyy, aina niin huolellisesti, sanoa - 1570 01:03:33,840 --> 01:03:35,620 jos (n == 42). 1571 01:03:35,620 --> 01:03:39,100 Yksinkertaisesti siksi meidän on määrittää testin tasa- 1572 01:03:39,100 --> 01:03:40,930 ei siirrosta arvo. 1573 01:03:40,930 --> 01:03:42,830 >> Mitä muuta on syytä huomata täällä? 1574 01:03:42,830 --> 01:03:46,030 Nämä aaltosulkeita eivät oikeastaan ​​ole tarpeen. 1575 01:03:46,030 --> 01:03:48,650 Olen tehnyt niitä vain olla NIT-nirso täällä. 1576 01:03:48,650 --> 01:03:51,350 Mutta kun sinulla on sairaus, joka on vain yksi rivi 1577 01:03:51,350 --> 01:03:55,100 koodia, kuten mukavuus, ohjelmoijat ei tarvitse käyttää 1578 01:03:55,100 --> 01:03:56,030 aaltosulkeita. 1579 01:03:56,030 --> 01:03:59,370 Riittää vain luetelmakohdan esteettisistä syistä, ja 1580 01:03:59,370 --> 01:04:01,050 Sitten kirjoita rivi koodia. 1581 01:04:01,050 --> 01:04:04,160 Vasta kun haluat kirjoittaa kaksi riviä koodia - ja 1582 01:04:04,160 --> 01:04:08,230 Esimerkiksi muuten printf ("Hei!"). Jos haluat tehdä 1583 01:04:08,230 --> 01:04:09,540 , että tämä on rikki. 1584 01:04:09,540 --> 01:04:11,700 Voit luetelmakohta kaiken haluamasi, mutta se, että olet 1585 01:04:11,700 --> 01:04:14,600 kirjoitettu kaksi riviä koodia ilman aaltosulkeita 1586 01:04:14,600 --> 01:04:16,860 tarkoittaa, että tämä ohjelma ei toimi oikein tai saattavat 1587 01:04:16,860 --> 01:04:18,530 ei edes kääntää oikein. 1588 01:04:18,530 --> 01:04:21,040 Joten nyt, ollakseni rehellinen, minusta paras tapa on vain 1589 01:04:21,040 --> 01:04:24,460 Käytä aaltosulkeita, ja huomaat, että he tekevät 1590 01:04:24,460 --> 01:04:25,750 erittäin selväksi, mitä on tekeillä. 1591 01:04:25,750 --> 01:04:29,410 >> Myös, koska syrjään - varsinkin jos olet yksi niistä, jotka käyttävät 1592 01:04:29,410 --> 01:04:31,700 Suositeltavia teoksia tai resursseja verkossa - 1593 01:04:31,700 --> 01:04:33,480 tajuaa, että tämä käsite tyylin 1594 01:04:33,480 --> 01:04:34,130 ohjelmointi. 1595 01:04:34,130 --> 01:04:37,280 Ja jotkut ihmiset todella haluavat laittaa kihara ahdin 1596 01:04:37,280 --> 01:04:38,720 tänne linjalla. 1597 01:04:38,720 --> 01:04:41,520 Jotkut ihmiset haluavat tehdä naurettavia asioita, 1598 01:04:41,520 --> 01:04:43,830 haluaisin laittaa ne tänne. 1599 01:04:43,830 --> 01:04:45,140 Ei ole väärää vastausta, kun se tulee 1600 01:04:45,140 --> 01:04:46,710 tyyli, mutta tämä on väärin. 1601 01:04:46,710 --> 01:04:47,700 Mutta jotkut ihmiset tekevät sen. 1602 01:04:47,700 --> 01:04:49,160 [Naurua] 1603 01:04:49,160 --> 01:04:51,760 DAVID J. MALAN: Eli Mainitsen tämän nyt yksinkertaisesti siksi koska 1604 01:04:51,760 --> 01:04:54,400 luet ylös asioita kirjoista tai verkossa, olet menossa 1605 01:04:54,400 --> 01:04:55,990 erilaisia ​​viestejä eri opettajien ja 1606 01:04:55,990 --> 01:04:56,730 Eri kirjoittajat. 1607 01:04:56,730 --> 01:04:58,640 Ja juuri ymmärtää, että toiminnallisesti, he 1608 01:04:58,640 --> 01:05:00,740 yleensä vastaa, mutta johdonmukaisesti. 1609 01:05:00,740 --> 01:05:02,850 Joten tässä tapauksessa, me standardisoida kihara 1610 01:05:02,850 --> 01:05:04,650 housunkannattimet riviin tänne vasemmalle. 1611 01:05:04,650 --> 01:05:04,910 >> Selvä. 1612 01:05:04,910 --> 01:05:07,040 Joten mene eteenpäin nyt ja ajaa tätä, ja katso mitä tapahtuu 1613 01:05:07,040 --> 01:05:07,780 tällä ohjelmalla. 1614 01:05:07,780 --> 01:05:09,970 Tee nonswitch. 1615 01:05:09,970 --> 01:05:11,040 Sitten ajaa nonswitch. 1616 01:05:11,040 --> 01:05:13,900 Anna kokonaisluku välillä 0 ja - niin, että ei ole merkitystä 1617 01:05:13,900 --> 01:05:16,480 enää, mutta olen juuri menossa mielivaltaisesti sanoa 42. 1618 01:05:16,480 --> 01:05:17,850 Ja otin oikean vastauksen. 1619 01:05:17,850 --> 01:05:20,430 No nyt mennään todella ottaa tämän eri suuntaan. 1620 01:05:20,430 --> 01:05:22,070 On käynyt ilmi, on olemassa joitakin muita syntaksin me 1621 01:05:22,070 --> 01:05:23,480 voi käyttää ohjelmaa. 1622 01:05:23,480 --> 01:05:27,310 Tässä on uusi pala syntaksia on toiminnallisesti sama, 1623 01:05:27,310 --> 01:05:30,680 vaan tuo toinen tapa ilmaista itseämme. 1624 01:05:30,680 --> 01:05:32,830 Joten tämä on mitä kutsutaan "kytkin lausunto." Ja 1625 01:05:32,830 --> 01:05:34,820 vaihtolause toimii seuraavasti. 1626 01:05:34,820 --> 01:05:37,580 Kestää, suluissa, arvo, jonka haluat 1627 01:05:37,580 --> 01:05:38,860 "Kytkin". 1628 01:05:38,860 --> 01:05:41,490 Haluat käyttäytyä eri perusteella sen arvosta. 1629 01:05:41,490 --> 01:05:44,360 Joten tämä tarkoittaa kytkin n: n arvo. 1630 01:05:44,360 --> 01:05:45,480 Ja mitä tämä tarkoittaa? 1631 01:05:45,480 --> 01:05:50,530 No, jos n on 1 tai 2 tai 3, mennä eteenpäin ja tulostaa "You 1632 01:05:50,530 --> 01:05:52,680 valitsi iso numero "ja sitten tauko. 1633 01:05:52,680 --> 01:05:55,720 Syynä tauko on, että tapa C toimii on yhtä 1634 01:05:55,720 --> 01:05:59,790 Heti kun se toteaa tapauksessa, joka vastaa, se alkaa täytäntöönpanovaltion 1635 01:05:59,790 --> 01:06:01,610 kaikki koodi alla. 1636 01:06:01,610 --> 01:06:04,580 Joten jos minulla on yksi rivi koodia, niin kuin minä täällä line 27, se 1637 01:06:04,580 --> 01:06:05,360 saa suorittaa. 1638 01:06:05,360 --> 01:06:07,520 Jos voin lisätä toisen rivin tässä, se saa teloitettiin. 1639 01:06:07,520 --> 01:06:09,350 Toinen linja täällä, se saa teloitettiin. 1640 01:06:09,350 --> 01:06:12,460 Ohjelma pysähtyy vain täytäntöönpanovaltion mitä alla 1641 01:06:12,460 --> 01:06:14,680 soveltaa tapaus tuloslaskelmaan, kun I nimenomaan 1642 01:06:14,680 --> 01:06:17,210 sanoa "break". Niin väärin. 1643 01:06:17,210 --> 01:06:19,220 Aivan, tässä tapauksessa seurauksena. 1644 01:06:19,220 --> 01:06:22,130 Asia 4 tai 5 tai 6, vastaavasti, on menossa 1645 01:06:22,130 --> 01:06:23,160 tulostaa viestin. 1646 01:06:23,160 --> 01:06:24,410 Tässä tapauksessa, keski-numero. 1647 01:06:24,410 --> 01:06:25,200 Riko. 1648 01:06:25,200 --> 01:06:28,160 Tapaus 7, 8, 9, 10, se tulee tulostaa "Valitsit iso 1649 01:06:28,160 --> 01:06:28,950 numero. "Break. 1650 01:06:28,950 --> 01:06:31,290 Ja sitten on kirjaimellisesti avainsanan nimeltään "default" 1651 01:06:31,290 --> 01:06:34,090 se tehokkaasti kuin "muuten" rakentaa. 1652 01:06:34,090 --> 01:06:36,010 Joten uusi syntaksi, mutta älyllisesti, 1653 01:06:36,010 --> 01:06:37,060 mitään uutta täällä. 1654 01:06:37,060 --> 01:06:38,280 Se on aivan kuten Scratch. 1655 01:06:38,280 --> 01:06:41,040 Jos if, if, tavallaan lohkon. 1656 01:06:41,040 --> 01:06:44,560 >> Niin, että virta versio ohjelmasta. 1657 01:06:44,560 --> 01:06:46,280 Mutta huomaa, että me teimme sen numerot tähän. 1658 01:06:46,280 --> 01:06:49,040 Saanen avata toinen versio vain näyttää 1659 01:06:49,040 --> 01:06:50,670 jotain vähän konkreettisempaa. 1660 01:06:50,670 --> 01:06:52,840 Joten tässä meillä on arvosanoja sijaan. 1661 01:06:52,840 --> 01:06:55,540 Osoittautuu voit käyttää valitsimia ei vain kokonaislukuja, vaan 1662 01:06:55,540 --> 01:06:56,340 merkkiä. 1663 01:06:56,340 --> 01:06:58,930 Ei kaikki tiedot tyyppejä, mutta ainakin merkkiä. 1664 01:06:58,930 --> 01:07:02,670 Joten tässä, voisimme tehdä jotain, jos arvo C, että 1665 01:07:02,670 --> 01:07:06,230 käyttäjän kirjoitettu, linjassa 19, käyttämällä GetChar toimintoa, 1666 01:07:06,230 --> 01:07:09,410 on pääoman tai pieniksi, mennään tulkita sen laatu, 1667 01:07:09,410 --> 01:07:11,340 ja sanovat poimitaan kiitettävän arvosanan. 1668 01:07:11,340 --> 01:07:14,690 Ja alas pitkin kytkimen lausuman, meillä on muita 1669 01:07:14,690 --> 01:07:17,950 tapauksissa "B": n ja "C": n, ja niin edelleen. 1670 01:07:17,950 --> 01:07:19,780 Mutta katsotaanpa nyt pyöristää yksi asia. 1671 01:07:19,780 --> 01:07:21,130 Ja vielä, millaisia ​​lentää 1672 01:07:21,130 --> 01:07:22,200 Joissakin näistä esimerkeistä. 1673 01:07:22,200 --> 01:07:26,990 Mutta se on todella niin, että voimme soveltaa niitä, nyt - 1674 01:07:26,990 --> 01:07:28,880 tai oikeastaan ​​vain kääntää ne nyt - 1675 01:07:28,880 --> 01:07:32,220 ja C. 1676 01:07:32,220 --> 01:07:33,310 >> Joten anna minun mennä eteenpäin ja tehdä tätä. 1677 01:07:33,310 --> 01:07:34,830 Aion avata uuden tiedoston. 1678 01:07:34,830 --> 01:07:39,430 Ja aion tehdä sisällyttää . 1679 01:07:39,430 --> 01:07:42,770 Ja sitten aion tehdä int main (void). 1680 01:07:42,770 --> 01:07:46,390 Saanen tallentaa tiedoston loop.c. 1681 01:07:46,390 --> 01:07:48,280 Vain esimerkkinä. 1682 01:07:48,280 --> 01:07:49,910 Ja aion mennä eteenpäin ja tehdä seuraavasti. 1683 01:07:49,910 --> 01:07:54,180 Haluan kirjoittaa erittäin ikävä ohjelma. 1684 01:07:54,180 --> 01:07:56,170 Joten 10. 1685 01:07:56,170 --> 01:07:58,862 Tehdään tämä. 1686 01:07:58,862 --> 01:07:59,320 9. 1687 01:07:59,320 --> 01:08:00,360 Selvä. 1688 01:08:00,360 --> 01:08:02,120 Heti kun alkaa tehdä tämän ohjelmoinnin, olet 1689 01:08:02,120 --> 01:08:03,490 luultavasti jotain väärin. 1690 01:08:03,490 --> 01:08:04,950 Mutta aloitamme siellä joka tapauksessa. 1691 01:08:04,950 --> 01:08:05,430 Oho. 1692 01:08:05,430 --> 01:08:06,950 Se on todella väärin. 1693 01:08:06,950 --> 01:08:08,230 7. 1694 01:08:08,230 --> 01:08:09,440 6. 1695 01:08:09,440 --> 01:08:10,750 5. 1696 01:08:10,750 --> 01:08:11,200 4. 1697 01:08:11,200 --> 01:08:12,450 Mitään ei tapahdu, kun pääsemme 0. 1698 01:08:12,450 --> 01:08:13,290 3. 1699 01:08:13,290 --> 01:08:14,590 2. 1700 01:08:14,590 --> 01:08:15,630 1. 1701 01:08:15,630 --> 01:08:16,020 Okei. 1702 01:08:16,020 --> 01:08:17,560 0. 1703 01:08:17,560 --> 01:08:18,689 Poista. 1704 01:08:18,689 --> 01:08:19,029 >> Selvä. 1705 01:08:19,029 --> 01:08:20,029 Niin palata 0. 1706 01:08:20,029 --> 01:08:22,010 Joten tämä ohjelma on toki mitä se hyvin 1707 01:08:22,010 --> 01:08:23,310 ikävän sanoo se aikoo tehdä. 1708 01:08:23,310 --> 01:08:24,060 Se tulee tulostaa kaikki nämä 1709 01:08:24,060 --> 01:08:25,290 arvot, ylhäältä alas. 1710 01:08:25,290 --> 01:08:27,140 Joten anna minun tehdä tehdä silmukka. 1711 01:08:27,140 --> 01:08:28,640 Ja sitten - Hupsista. 1712 01:08:28,640 --> 01:08:29,700 Tee silmukka. 1713 01:08:29,700 --> 01:08:31,479 Olin väärässä hakemistossa. 1714 01:08:31,479 --> 01:08:33,300 Ja nyt haluan juosta silmukka. 1715 01:08:33,300 --> 01:08:34,140 Enter. 1716 01:08:34,140 --> 01:08:34,620 Woohoo. 1717 01:08:34,620 --> 01:08:35,270 Very nice. 1718 01:08:35,270 --> 01:08:36,279 Nice, pitkä ohjelma. 1719 01:08:36,279 --> 01:08:38,109 >> Okei, mutta nyt tehdään tämä paremmin. 1720 01:08:38,109 --> 01:08:40,810 Aivan kuten Scratch, kun alkoivat käyttää looping 1721 01:08:40,810 --> 01:08:43,149 rakentaa, eikä vain kopioimalla kaikki 1722 01:08:43,149 --> 01:08:45,580 palapelin palaset, haluan esitellä tämän asian. 1723 01:08:45,580 --> 01:08:48,609 Joten C, on olemassa erilaisia ​​kiehkura rakenteita, 1724 01:08:48,609 --> 01:08:50,540 joista yksi näyttää tältä. 1725 01:08:50,540 --> 01:08:55,069 "For" loop on kolme asiaa, erottaa kaksi puolipisteillä. 1726 01:08:55,069 --> 01:08:57,770 Ja sitten sisällä rungon silmukan, niin sanotusti - 1727 01:08:57,770 --> 01:08:59,390 tavaraa sisällä aaltosulkeita - 1728 01:08:59,390 --> 01:09:01,010 Voimme tehdä jotain uudestaan ​​ja uudestaan. 1729 01:09:01,010 --> 01:09:02,310 Joten mitä olen täällä ruudulla, tämä on 1730 01:09:02,310 --> 01:09:03,300 kirjaimellisesti vain kommentti. 1731 01:09:03,300 --> 01:09:05,380 / / Tarkoittaa tässä tulee kommenttia. 1732 01:09:05,380 --> 01:09:06,180 Tämä ei ole koodia. 1733 01:09:06,180 --> 01:09:08,890 Tämä on vain Englanti kuvaus, minulle ihmisen. 1734 01:09:08,890 --> 01:09:11,300 >> Joten alustukset, olosuhteet ja päivityksiä. 1735 01:09:11,300 --> 01:09:12,770 No, katsotaanpa miten tämä toimii. 1736 01:09:12,770 --> 01:09:15,520 Tämä antaa minulle mahdollisuuden kirjoittaa tähän ohjelmaan seuraavasti. 1737 01:09:15,520 --> 01:09:16,399 For - 1738 01:09:16,399 --> 01:09:18,029 joten tässä tulee minun loop - 1739 01:09:18,029 --> 01:09:19,439 int i - 1740 01:09:19,439 --> 01:09:21,330 tässä tulee muuttuja nimeltään "I" - 1741 01:09:21,330 --> 01:09:23,140 saa alustetaan 10. 1742 01:09:23,140 --> 01:09:25,260 Joten ei minun alustusta. 1743 01:09:25,260 --> 01:09:29,450 Haluan tehdä tämän silmukan niin kauan kuin "i" on suurempi tai 1744 01:09:29,450 --> 01:09:30,899 yhtä suuri kuin 0. 1745 01:09:30,899 --> 01:09:32,880 Ja jokainen iteraatio tämän silmukan, haluan 1746 01:09:32,880 --> 01:09:34,979 tehdä i -. 1747 01:09:34,979 --> 01:09:36,310 Joten näimme + + maanantaina. 1748 01:09:36,310 --> 01:09:37,660 - On päinvastainen. 1749 01:09:37,660 --> 01:09:39,410 Se pienentää arvoa 1. 1750 01:09:39,410 --> 01:09:43,319 Inside tämän silmukan, haluan todella tehdä jotain. 1751 01:09:43,319 --> 01:09:46,390 Joten aion sanoa jotain printf. 1752 01:09:46,390 --> 01:09:48,939 En halua sanoa 10 nyt, koska tämä on luonnollisesti vain 1753 01:09:48,939 --> 01:09:50,000 painoon sama arvo. 1754 01:09:50,000 --> 01:09:52,246 Mitä haluan tulostaa sijaan, luultavasti? 1755 01:09:52,246 --> 01:09:52,590 Joo. 1756 01:09:52,590 --> 01:09:55,270 Joten "i". Joten% d, i. 1757 01:09:55,270 --> 01:09:57,340 >> Joten aion varastaa yksi niistä ideoita aiemmin - 1758 01:09:57,340 --> 01:09:59,640 Tämä substituutio muotoa koodit - 1759 01:09:59,640 --> 01:10:01,620 ja sitten täällä, alareunassa, palaan 0, vain 1760 01:10:01,620 --> 01:10:02,710 hyvä toimenpide. 1761 01:10:02,710 --> 01:10:04,740 Mutta nyt minulla on enemmän ytimekäs ohjelma. 1762 01:10:04,740 --> 01:10:07,490 Se on vain muutaman rivin, eikä noin 10 tai 11 riviä. 1763 01:10:07,490 --> 01:10:09,440 Anna minun mennä minun nopeasti tänne. 1764 01:10:09,440 --> 01:10:10,630 Remake silmukka. 1765 01:10:10,630 --> 01:10:12,140 Uusintana silmukka. 1766 01:10:12,140 --> 01:10:13,570 Ja se näyttää olevan sama. 1767 01:10:13,570 --> 01:10:15,550 Nyt ohjelma ole mielenkiintoisempaa. 1768 01:10:15,550 --> 01:10:17,180 Mutta nyt voin kirjoittaa jotain tällaista. 1769 01:10:17,180 --> 01:10:18,970 Voin vaihtaa tämän 100. 1770 01:10:18,970 --> 01:10:21,400 Voin sitten kääntää minun ohjelma. 1771 01:10:21,400 --> 01:10:23,360 Ja sitten voin ajaa uudelleen oman ohjelman. 1772 01:10:23,360 --> 01:10:26,390 Ja nyt se menee supernopea tämänpäiväisestä tietokoneissa. 1773 01:10:26,390 --> 01:10:27,820 Mutta minulla on - 1774 01:10:27,820 --> 01:10:29,620 ja oikeastaan ​​minun scrollback puskuri ei 1775 01:10:29,620 --> 01:10:30,890 menevät jopa niin pitkälle. 1776 01:10:30,890 --> 01:10:31,680 Siellä mennään. 1777 01:10:31,680 --> 01:10:34,090 Joten siellä olemme kaikki 100. 1778 01:10:34,090 --> 01:10:35,880 Mutta se on helppo tehdä virheitä täällä. 1779 01:10:35,880 --> 01:10:37,920 Mitä tulee olemaan odotettua käyttäytymistä, jos 1780 01:10:37,920 --> 01:10:41,150 vahingossa tehdä? 1781 01:10:41,150 --> 01:10:42,550 Joten se tuntuu äärettömän. 1782 01:10:42,550 --> 01:10:44,670 Joten katsotaanpas jos tietokone käyttäytyy. 1783 01:10:44,670 --> 01:10:47,020 >> Joten anna minun mennä eteenpäin ja tehdä silmukka. 1784 01:10:47,020 --> 01:10:48,355 Ja anna minun ajaa silmukka. 1785 01:10:53,590 --> 01:10:55,210 Joten palata että vain hetken. 1786 01:10:55,210 --> 01:10:56,720 Annamme että aikavälillä. 1787 01:10:56,720 --> 01:10:59,520 Koska mitä pitäisi laskea jopa minimaalisesti? 1788 01:10:59,520 --> 01:11:02,200 Luultavasti vähintään 2 miljardia jos meillä on, että monet bittiä, ja 1789 01:11:02,200 --> 01:11:03,660 käytämme positiivisia arvoja. 1790 01:11:03,660 --> 01:11:04,890 Joten hyppää takaisin tänne. 1791 01:11:04,890 --> 01:11:07,810 Näiden lisäksi erilaisia ​​silmukoita, meillä on mitä kutsutaan taas 1792 01:11:07,810 --> 01:11:09,430 silmukoita. Eli aivan kuten Scratch, sinulla oli Ikuisesti 1793 01:11:09,430 --> 01:11:11,240 lohkot, ja teillä oli Repeat lohkoja. 1794 01:11:11,240 --> 01:11:13,270 Vastaavasti C, juuri muita keinoja 1795 01:11:13,270 --> 01:11:14,260 ilmaista itseäsi. 1796 01:11:14,260 --> 01:11:17,110 Joten sinulla on käsitys while-silmukka, jonka avulla voit 1797 01:11:17,110 --> 01:11:18,860 ilmaista itseäsi hieman eri. 1798 01:11:18,860 --> 01:11:21,490 Ja sitten sinulla on jotain kutsutaan do-while-silmukka, 1799 01:11:21,490 --> 01:11:24,200 joka toimii hieman eri tavalla samoin. 1800 01:11:24,200 --> 01:11:25,320 Ja me kiusata näitä toisistaan ​​ajan. 1801 01:11:25,320 --> 01:11:28,630 >> Mutta katsotaanpa katsomaan tämä viimeinen täällä. 1802 01:11:28,630 --> 01:11:30,160 Jos menemme - 1803 01:11:30,160 --> 01:11:31,466 edelleen käynnissä. 1804 01:11:31,466 --> 01:11:32,770 Se on melko loputon. 1805 01:11:32,770 --> 01:11:36,870 Joten anna minun mennä positiivinen, ja miten voimme todella 1806 01:11:36,870 --> 01:11:39,410 ohjaavat käyttäjän syöttää hieman tehokkaammin. 1807 01:11:39,410 --> 01:11:40,910 Se on melko lyhyt ohjelma. 1808 01:11:40,910 --> 01:11:43,730 Ja tässä meillä, main, int n ilmoitusta. 1809 01:11:43,730 --> 01:11:46,570 Joten anna minulle muuttuja nimeltä N. Nyt olen kirjaimellisesti sanoa 1810 01:11:46,570 --> 01:11:48,340 "Do." Ja sitten minulla auki kihara 1811 01:11:48,340 --> 01:11:49,630 ahdin, sulje kihara ahdin. 1812 01:11:49,630 --> 01:11:52,000 Ja sitten huomaat, heti sen jälkeen, se sanoo taas n 1813 01:11:52,000 --> 01:11:53,790 on vähemmän kuin 1. 1814 01:11:53,790 --> 01:11:55,300 Niin huomaa, että nämä linjat - 1815 01:11:55,300 --> 01:11:56,740 19-24 - 1816 01:11:56,740 --> 01:11:59,450 säveltää yhdessä do-while-silmukka. 1817 01:11:59,450 --> 01:12:01,280 Ja vielä, uutta syntaksia, eikä uusi idea. 1818 01:12:01,280 --> 01:12:03,740 Se on vain yksi tapa kiehkura, syntaktisesti. 1819 01:12:03,740 --> 01:12:04,890 Mitä tämä tekee? 1820 01:12:04,890 --> 01:12:08,000 Toimi seuraavasti, kun n on alle 1. 1821 01:12:08,000 --> 01:12:09,080 Joten mitä haluan tehdä? 1822 01:12:09,080 --> 01:12:11,390 Vaadin, että annat minulle positiivinen kokonaisluku. 1823 01:12:11,390 --> 01:12:14,110 Sitten itse yrittää saada kokonaisluku käyttäjältä. 1824 01:12:14,110 --> 01:12:16,740 Mutta suhteen järjestyksessä toiminnan tässä, koska 1825 01:12:16,740 --> 01:12:21,850 kun ehto on täällä, olen sitten menossa tarkistaa, on n 1826 01:12:21,850 --> 01:12:23,100 vähemmän kuin 1? 1827 01:12:23,100 --> 01:12:24,600 Joten Oletetaan, että käyttäjä - 1828 01:12:24,600 --> 01:12:26,450 jälkeen vaati tällä tavalla - 1829 01:12:26,450 --> 01:12:29,190 tyyppejä arvo 0. 1830 01:12:29,190 --> 01:12:34,510 Tämä ehto tulee olemaan tosi vai epätosi? 1831 01:12:34,510 --> 01:12:35,820 No, se on todella olemaan totta. 1832 01:12:35,820 --> 01:12:38,700 Koska n on 0, ja 0 on pienempi kuin 1. 1833 01:12:38,700 --> 01:12:40,140 Mitähän tämä merkitsee? 1834 01:12:40,140 --> 01:12:41,160 Tee se uudestaan. 1835 01:12:41,160 --> 01:12:41,990 Tee se uudestaan. 1836 01:12:41,990 --> 01:12:42,640 Tee se uudestaan. 1837 01:12:42,640 --> 01:12:46,080 Vain kerran, että ehto on epätosi. 1838 01:12:46,080 --> 01:12:47,510 Jos minä kirjoita 42. 1839 01:12:47,510 --> 01:12:49,690 No ei, 42 ei ole pienempi kuin 1. 1840 01:12:49,690 --> 01:12:52,320 Siksi tämä silmukka tehdään täytäntöönpanovaltiossa. 1841 01:12:52,320 --> 01:12:54,650 Ja niin siinä vaiheessa, ohjelma sanoo, kiitos 1842 01:12:54,650 --> 01:12:57,530 42, tässä tapauksessa. 1843 01:12:57,530 --> 01:13:00,320 Nyt sinulla on tapa ilmaista itseäsi - 1844 01:13:00,320 --> 01:13:02,360 Meidän ei pitäisi odottaa tätä loppuun. 1845 01:13:02,360 --> 01:13:03,620 Se vie aikaa. 1846 01:13:03,620 --> 01:13:04,990 Jatkuu seuraavalla kerralla, ehkä. 1847 01:13:04,990 --> 01:13:08,050 >> Mutta nyt, sinulla on kyky toivottavasti ymmärtää 1848 01:13:08,050 --> 01:13:09,060 vähän pelle huumoria. 1849 01:13:09,060 --> 01:13:11,560 Pahoittelut. 1850 01:13:11,560 --> 01:13:13,620 Tämä ei edusta huumoria tietojenkäsittelytieteen 1851 01:13:13,620 --> 01:13:14,870 maailmassa, mutta se on söpö. 1852 01:13:21,020 --> 01:13:23,890 [Nauraa] ​​Lopetetaan tältä huomautuksen. 1853 01:13:23,890 --> 01:13:25,750 Ja näemme sinut maanantaina. 1854 01:13:25,750 --> 01:13:31,629 [Taputuksia]