1 00:00:07,590 --> 00:00:09,920 [Powered by Google Translate] David J. Malan: Olgu, see on CS50 ja see on 2 00:00:09,920 --> 00:00:15,250 1. nädala lõpust, nii et uuring kaardid on ja koguarv 3 00:00:15,250 --> 00:00:18,640 klassikaaslastega, et teil on sel aastal on 745. 4 00:00:18,640 --> 00:00:20,920 Ja me oleme nii põnevil, et on nii palju sa aasta jooksul 5 00:00:20,920 --> 00:00:23,680 Sel poolaastal, kuid isegi kui see muidugi on nii suur, 6 00:00:23,680 --> 00:00:26,090 aru, et see on need asjad nagu reede lõunaks, nagu 7 00:00:26,090 --> 00:00:29,020 tööaega, 15-isik lõigud, ja nii edasi, et 8 00:00:29,020 --> 00:00:30,590 on tegelikult tähendas, et luua see intiimsem 9 00:00:30,590 --> 00:00:31,140 keskkond. 10 00:00:31,140 --> 00:00:34,070 Nii et kuigi me võime koguda üks kord või kaks korda nädalas, siin 11 00:00:34,070 --> 00:00:36,420 Sanders, tean, et palju teie kogemused selles muidugi 12 00:00:36,420 --> 00:00:39,330 on väga palju olla käed-peal koos oma klassikaaslastega 13 00:00:39,330 --> 00:00:40,730 ja õppejõud. 14 00:00:40,730 --> 00:00:43,960 >> Nii et siin me läheme, Fall 2012. 15 00:00:43,960 --> 00:00:47,530 Nii et tuletada meelde, et viimane kord kui me lõppes teadmiseks 16 00:00:47,530 --> 00:00:50,460 ebatäpsuse, räägime esindatus numbrid. 17 00:00:50,460 --> 00:00:52,950 Ja me vaatasime üks ebaõnnestumisi, mis juhtus, et 18 00:00:52,950 --> 00:00:54,920 reaalses maailmas, kui ta tuli arusaamatus 19 00:00:54,920 --> 00:00:55,890 kuidas arvutid töötavad. 20 00:00:55,890 --> 00:00:58,590 Noh, täna me uuesti veel üks neist ideid 21 00:00:58,590 --> 00:01:01,410 samuti jätkame arutelu CS50 kliendi 22 00:01:01,410 --> 00:01:04,090 ja C ning mida see tähendab tegelikult programmeerida. 23 00:01:04,090 --> 00:01:06,430 Aga kõigepealt paar tuulispask teadaandeid. 24 00:01:06,430 --> 00:01:08,930 >> Sektsioonid algab sel pühapäeval, ja esimene nädal on alati 25 00:01:08,930 --> 00:01:11,030 natuke kiire algus, sest me saime sisse 26 00:01:11,030 --> 00:01:12,620 oma osa vorme. 27 00:01:12,620 --> 00:01:14,450 Me teeme sama, nüüd, kus õppetöö stipendiaatide nüüd 28 00:01:14,450 --> 00:01:16,410 et nad teavad nende graafikuid, nii et me oleme eesmärk, mida 29 00:01:16,410 --> 00:01:19,380 Laupäeva hommikul, et jälgida teie oma osa 30 00:01:19,380 --> 00:01:20,760 loovutamine ja TF. 31 00:01:20,760 --> 00:01:22,770 Aru, et siis hakatakse neid järgmisel päeval, pühapäeval 32 00:01:22,770 --> 00:01:24,510 või esmaspäeval või teisipäeval. 33 00:01:24,510 --> 00:01:27,730 Ja siis me majutada osa muudatusi, kui need tekivad 34 00:01:27,730 --> 00:01:28,690 päevil tulla. 35 00:01:28,690 --> 00:01:31,590 Tööaeg, vahepeal on taas täna, 08:00 kuni 11, 36 00:01:31,590 --> 00:01:33,740 Annenberg, samuti homme õhtul. 37 00:01:33,740 --> 00:01:36,150 Kuigi probleem komplektid on tavaliselt tingitud neljapäeviti 38 00:01:36,150 --> 00:01:39,020 keskpäeval aru, teil on kuni viis hilja päeva veeta, 39 00:01:39,020 --> 00:01:42,430 seega kättesaadavus tööajal neljapäeviti, kui 40 00:01:42,430 --> 00:01:45,930 te raha ühes neist hilja päeva ja seeläbi esitama 41 00:01:45,930 --> 00:01:47,070 midagi reedel. 42 00:01:47,070 --> 00:01:50,850 Lubage mul oletada, et Scratch on üks lõbusam seas 43 00:01:50,850 --> 00:01:52,390 rohkem madala võti probleem seab. 44 00:01:52,390 --> 00:01:55,160 Ja ma riputada peale nende hilinenud päeva, strateegiliselt, lihtsalt 45 00:01:55,160 --> 00:01:57,380 käesolevaks poolaastaks kui elu hakkab saada takistuseks 46 00:01:57,380 --> 00:01:59,470 koos midterms ja teistesse klassidesse. 47 00:01:59,470 --> 00:02:01,580 Ülesanded 1, vahepeal oleks postitati kursuse 48 00:02:01,580 --> 00:02:06,080 kodulehel sel reedel, kui antakse kell käigus jalutuskäigu 49 00:02:06,080 --> 00:02:08,789 läbi video, mis filmiti 02:30 reedel 50 00:02:08,789 --> 00:02:11,890 ja siis Internetti järgmisel päeval. 51 00:02:11,890 --> 00:02:13,880 >> Nii et me lõppes esmaspäeval. 52 00:02:13,880 --> 00:02:15,450 Ma tahan - tegelikult, üks märkus siin. 53 00:02:15,450 --> 00:02:18,870 Kuna klassid - sest Sanders täpselt ei laenata 54 00:02:18,870 --> 00:02:22,220 ise juhutöö Q & edasi-tagasi väga hästi, et me oleme 55 00:02:22,220 --> 00:02:24,030 kavatsen proovida midagi veidi uut sel aastal, kusjuures 56 00:02:24,030 --> 00:02:26,160 kui sa ei ole mugav tõsta oma käsi või sa lihtsalt 57 00:02:26,160 --> 00:02:28,800 pigem ei tõsta oma kätt sellises ruumis, 58 00:02:28,800 --> 00:02:30,710 me lähed on mõned õpetamise stipendiaatide ja CA 59 00:02:30,710 --> 00:02:33,260 mehitamise cs50.net/discuss ajal loeng. 60 00:02:33,260 --> 00:02:35,440 Nii et kui teil on küsimus, sest ma olin täiesti 61 00:02:35,440 --> 00:02:37,510 ebaselge midagi või oled uudishimulik mõned 62 00:02:37,510 --> 00:02:39,640 teema, proovige postitad sinna. 63 00:02:39,640 --> 00:02:42,670 Tag seda silti Loeng, ja me teeme oma parima, 64 00:02:42,670 --> 00:02:45,430 täna ja järgmisel nädalal - we'll proovida seda välja - et väljakujunenud kohtupraktika 65 00:02:45,430 --> 00:02:47,990 kas elektrooniliselt internetis, või kui see tundub peaksime 66 00:02:47,990 --> 00:02:50,430 tõesti käsitleda seda massiliselt, üks õpetamise stipendiaatide või 67 00:02:50,430 --> 00:02:52,080 SK tõstab oma käe ja paluma 68 00:02:52,080 --> 00:02:53,480 anonüümselt teie nimel. 69 00:02:53,480 --> 00:02:55,650 Nii et me anname seda proovida ja näha, kui hästi see töötab. 70 00:02:55,650 --> 00:02:58,540 Aga, kõigi vahenditega, jätkuvalt tõsta käed, kui sa sooviksid. 71 00:02:58,540 --> 00:03:11,420 >> Nii et viimasel ajal oleme selgus, et 10% või üks kümnendik ei ole, on 72 00:03:11,420 --> 00:03:13,840 Tegelikult 0.1, nagu teid on õpetatud juba aastaid tagasi. 73 00:03:13,840 --> 00:03:15,390 See on tegelikult väärtus niimoodi. 74 00:03:15,390 --> 00:03:16,970 Aga see pole täielikult tõsi, eks? 75 00:03:16,970 --> 00:03:19,585 Meil on lihtsalt see piirang arvutid, mille abil, kui te 76 00:03:19,585 --> 00:03:22,450 ainult piiratud kogus mälu, RAM või rohkem 77 00:03:22,450 --> 00:03:25,220 spetsiaalselt bitti, noh, seal on ainult piiratud arv 78 00:03:25,220 --> 00:03:26,980 asju saab esindada. 79 00:03:26,980 --> 00:03:29,780 Näiteks, kui meil on number null, ja me tahame 80 00:03:29,780 --> 00:03:32,790 esindama kahekomponentsete kasutades kaheksa bitti, kus natuke, 81 00:03:32,790 --> 00:03:34,710 jälle on null või üks, me võiksime 82 00:03:34,710 --> 00:03:39,240 esindada seda 00000000. 83 00:03:39,240 --> 00:03:41,160 Ja see on veidi asjatult paljusõnaline. 84 00:03:41,160 --> 00:03:43,700 Täpselt nagu detsimaalsüsteem reaalses maailmas, 85 00:03:43,700 --> 00:03:47,040 Üldiselt, kui sa tahad kirjutada number 123, me 86 00:03:47,040 --> 00:03:52,240 inimesed ilmselt ei kirjuta 00000123 kuigi 87 00:03:52,240 --> 00:03:53,940 funktsionaalselt, see on täpselt sama number. 88 00:03:53,940 --> 00:03:56,580 Me lihtsalt tilk nulle, kui nii võib öelda. 89 00:03:56,580 --> 00:03:58,270 >> In binaarne, mida me saame teha sama. 90 00:03:58,270 --> 00:04:01,440 Binary ja null, null ja binaarne on lihtsalt null. 91 00:04:01,440 --> 00:04:02,870 Sa pead ainult ühe natuke. 92 00:04:02,870 --> 00:04:05,020 Aga jälle, kõige levinum mõõtühik maailmas 93 00:04:05,020 --> 00:04:07,820 arvutustehnika on baiti, kaheksa bitti. 94 00:04:07,820 --> 00:04:09,720 Lihtsalt, sest üks natuke, üsna kasutu. 95 00:04:09,720 --> 00:04:12,020 Kaheksa bitti, ei ole väga kasulik, kuid vähemalt on see rohkem 96 00:04:12,020 --> 00:04:14,280 kasulik kui üks mõõtühik. 97 00:04:14,280 --> 00:04:17,100 Nii kaheksa bitti, siis me tüüpiliselt binaarne. 98 00:04:17,100 --> 00:04:20,459 Nii et siin on meil numbrid null, üks, kaks, ja siis, kui 99 00:04:20,459 --> 00:04:24,200 Nate tegi meie video eelmisel kolmapäeval, saame jätkata 100 00:04:24,200 --> 00:04:25,940 lugedes kuni seitse, kaheksa. 101 00:04:25,940 --> 00:04:27,860 Ja siis kui me kasutame rohkem ja rohkem bitte, me 102 00:04:27,860 --> 00:04:29,880 võib loota kuni lõpmatus. 103 00:04:29,880 --> 00:04:32,800 Aga kui sul on ainult piiratud arv neid bitti, nagu on 104 00:04:32,800 --> 00:04:35,030 Kui mingil arvutisüsteemi või isegi raketi 105 00:04:35,030 --> 00:04:36,670 süsteemi, hästi, tõepoolest, kui vaid 106 00:04:36,670 --> 00:04:37,900 piiratud kogus täpsusega. 107 00:04:37,900 --> 00:04:41,290 Nii et kui soovite esindama arvu nagu 0.1, noh, 108 00:04:41,290 --> 00:04:43,410 arvuti peab hoolikalt valima. 109 00:04:43,410 --> 00:04:45,970 Ja kui see on ainult piiratud arv numbreid ta saab 110 00:04:45,970 --> 00:04:50,490 esindama, võib see tulla tihe 0,1 teid, kuid see ei saa 111 00:04:50,490 --> 00:04:53,730 tingimata teile täpselt soovitud väärtus. 112 00:04:53,730 --> 00:04:55,660 Ja see on vaid üks väljakutseid arvutid, 113 00:04:55,660 --> 00:04:57,090 all kapuuts, õnneks. 114 00:04:57,090 --> 00:04:59,110 >> Nagu me liikuda kaugemale semester, need madalamal tasemel 115 00:04:59,110 --> 00:05:02,310 üksikasjad muutunud palju vähem huvitav, kuid kindlasti 116 00:05:02,310 --> 00:05:05,700 rakendada neid ideid saab mõned väga reaalne maailm 117 00:05:05,700 --> 00:05:06,760 tagajärgi. 118 00:05:06,760 --> 00:05:08,190 Üks on natuke lõbus. 119 00:05:08,190 --> 00:05:12,150 Kui paljud teist on näinud hämmastav film Office Space? 120 00:05:12,150 --> 00:05:13,620 Kui sa ei ole, et su mitteametlik 121 00:05:13,620 --> 00:05:14,370 kodutööd nädalas. 122 00:05:14,370 --> 00:05:16,730 Aga bürooruumid, stipendiaatide, et filmi teha 123 00:05:16,730 --> 00:05:19,900 ära just see mõte, kuid nad tegelikult varastas 124 00:05:19,900 --> 00:05:21,270 see teise filmi, et sa võisid 125 00:05:21,270 --> 00:05:22,760 näinud, isegi aastaid enne. 126 00:05:22,760 --> 00:05:24,920 Nii et lubage mul anda teile mõned sekundid selle haagis 127 00:05:24,920 --> 00:05:27,470 see hämmastav film ja see on väga palju 128 00:05:27,470 --> 00:05:28,340 akadeemiliselt asjakohane. 129 00:05:28,340 --> 00:05:30,310 >> [Mängib Filmi] 130 00:05:30,310 --> 00:05:32,240 Tegelikult ma reklaamitakse. 131 00:05:32,240 --> 00:05:33,360 Võin programmeerida viirus, et rebin et 132 00:05:33,360 --> 00:05:34,460 asetage maha suur aega. 133 00:05:34,460 --> 00:05:35,770 Noh, kuidas see toimib? 134 00:05:35,770 --> 00:05:37,836 Iga kord, kui seal on pangaoperatsioon kus huvi on 135 00:05:37,836 --> 00:05:40,154 arvutatud, on tuhandeid päevas, arvuti jõuab 136 00:05:40,154 --> 00:05:41,040 nende fraktsioonid protsenti. 137 00:05:41,040 --> 00:05:43,050 Aga ma ei kavatse teha midagi ebaseaduslikku. 138 00:05:43,050 --> 00:05:46,730 Ebaseaduslik? Samir, see on Ameerika. 139 00:05:46,730 --> 00:05:48,010 Sa pead Jumala nimel. 140 00:05:48,010 --> 00:05:51,870 Kui keegi teab sellest aga meile, eks? Ei pereliikmed, ei 141 00:05:51,870 --> 00:05:52,490 sõbrannade keegi. 142 00:05:52,490 --> 00:05:53,882 [Kuuldamatu]. 143 00:05:53,882 --> 00:05:57,594 Ära muretse, mees, ma ei ütle kellelegi kas. 144 00:05:57,594 --> 00:05:59,680 [Video lõpeb] 145 00:05:59,680 --> 00:06:01,900 >> Olgu, võibolla ma leidsin selle filmi paremini kui enamik 146 00:06:01,900 --> 00:06:05,530 inimesed siin, aga igal juhul, viirus, et nad olid 147 00:06:05,530 --> 00:06:06,400 püüame luua - 148 00:06:06,400 --> 00:06:08,410 ja filmides, millal nad tahaks helistada midagi viirus, 149 00:06:08,410 --> 00:06:09,770 et üldiselt ei ole tegelikult viirus. 150 00:06:09,770 --> 00:06:11,600 See on lihtsalt programm, et keegi kirjutas midagi teha. 151 00:06:11,600 --> 00:06:13,800 Ja sel juhul, poisid üritasid kirjutada programm 152 00:06:13,800 --> 00:06:16,610 et võttis ära oma firma nimega Innotech on 153 00:06:16,610 --> 00:06:19,740 arvutisüsteem, mille arvutid, liiga isegi siis, kui see 154 00:06:19,740 --> 00:06:21,350 tegemist on raha, ei pruugi tingimata 155 00:06:21,350 --> 00:06:23,490 esindada raha täpselt. 156 00:06:23,490 --> 00:06:27,630 Nii et kuigi sa võisid $ 0,10 pangakontole, 157 00:06:27,630 --> 00:06:31,060 0,10, noh, arvuti võib tegelikult arvan, et teil on 158 00:06:31,060 --> 00:06:33,560 Selle paljud senti pangakontole. 159 00:06:33,560 --> 00:06:35,750 Ja mis need kutid olid soovivad teha - ja nad 160 00:06:35,750 --> 00:06:38,240 varastas idee, selgub alates Superman III, kus 161 00:06:38,240 --> 00:06:41,210 Richard Pryor tegi sama asja - nad olid peamiselt 162 00:06:41,210 --> 00:06:44,880 kirjutamise programmid, et soovivad võtta kõik trailing 163 00:06:44,880 --> 00:06:46,930 numbrid, kõik tilluke, pisike, tiny fraktsioonid 164 00:06:46,930 --> 00:06:50,160 penne, ja siphoning need ära nii, et inimestele lihtsalt 165 00:06:50,160 --> 00:06:52,620 mõtlesin, oh, see on ainult $ 0,10 seal, kuid kõik need 166 00:06:52,620 --> 00:06:54,410 trailing numbrid lõpuks tõusta. 167 00:06:54,410 --> 00:06:57,490 Nii tore mõte ja see tagasilöögi lõbusalt selles 168 00:06:57,490 --> 00:06:58,250 eelkõige film. 169 00:06:58,250 --> 00:07:01,800 >> Aga reaalses maailmas, liiga, seal on palju rohkem seotud 170 00:07:01,800 --> 00:07:03,190 mõju nende erinevaid asju. 171 00:07:03,190 --> 00:07:05,450 Ja üks põhjus sukelduda valdkonnas arvuti 172 00:07:05,450 --> 00:07:07,620 teadus on jällegi selle kohaldamist ei 173 00:07:07,620 --> 00:07:09,740 tehnikateaduste üksi, vaid lihtsalt 174 00:07:09,740 --> 00:07:10,650 teistes valdkondades. 175 00:07:10,650 --> 00:07:14,760 Nii et see on vähem lighthearted pilk saab valesti minna, kuid 176 00:07:14,760 --> 00:07:17,630 see on ka üsna silmade avanemise, ma arvan, kui tegemist on 177 00:07:17,630 --> 00:07:20,760 mõista täpselt, kuidas kõikjal tehnoloogiad nagu 178 00:07:20,760 --> 00:07:22,870 arvutid ja programmeerimine või nendel päevadel, 179 00:07:22,870 --> 00:07:23,930 kujul tarkvara. 180 00:07:23,930 --> 00:07:26,500 Nii et see järgmine klipp on lihtsalt umbes kuus minutit, jätkub 181 00:07:26,500 --> 00:07:30,320 kus meil pooleli jäi eelmine kord, kuid võimaldab meil vaadata veidi 182 00:07:30,320 --> 00:07:33,370 süvendatult ühte sellist nendest küsimustest. 183 00:07:33,370 --> 00:07:35,270 Lubage mul otse soovitud kus pooleli jäime, 184 00:07:35,270 --> 00:07:37,780 mis oli siinsamas. 185 00:07:37,780 --> 00:07:41,580 Ja meil on osa Kahest, umbes kuus minutit siin. 186 00:07:41,580 --> 00:07:41,980 >> [Play Movie] 187 00:07:41,980 --> 00:07:45,430 Vaevavad kaasaegse raketi tehnoloogiat. 188 00:07:45,430 --> 00:07:49,280 Aastal 1991, siis algas esimese Lahesõja, Patriot 189 00:07:49,280 --> 00:07:51,350 rakett kogenud sarnast tüüpi 190 00:07:51,350 --> 00:07:52,645 number konverteerimise probleem. 191 00:07:52,645 --> 00:07:57,460 Ja nagu tulemuse, 20 inimest, 20 ameerika sõdurit, tapeti 192 00:07:57,460 --> 00:08:01,130 ja umbes 100 muud haavata, kui Patriot, mis pidi 193 00:08:01,130 --> 00:08:03,400 kaitsta sissetulevad Scuds, 194 00:08:03,400 --> 00:08:06,020 suutnud tulekahju rakett. 195 00:08:06,020 --> 00:08:09,350 >> Kui Iraak tungis Kuveiti ja Ameerika käivitas Desert 196 00:08:09,350 --> 00:08:13,530 Torm alguses 1991 Patriot rakettide patareid olid 197 00:08:13,530 --> 00:08:16,970 kasutusele kaitsta Saudi Araabia ja Iisraeli Iraagi 198 00:08:16,970 --> 00:08:19,810 Scud rakettide rünnakud. 199 00:08:19,810 --> 00:08:23,740 Patriot on USA keskmise ulatusega maa-õhk süsteem, 200 00:08:23,740 --> 00:08:26,370 toodetud Raytheon ettevõte. 201 00:08:26,370 --> 00:08:30,860 Suurus Patriot püüdurhävitajaga ise, see on umbes 202 00:08:30,860 --> 00:08:35,650 umbes 20 jalga pikk ja ta kaalub umbes 2000 naela. 203 00:08:35,650 --> 00:08:38,809 Ja see viib lõhkepea umbes - Ma arvan, et see on enam-vähem 204 00:08:38,809 --> 00:08:40,169 150 £. 205 00:08:40,169 --> 00:08:45,820 Ja lõhkepea ise on väga plahvatusohtlikus mis on 206 00:08:45,820 --> 00:08:48,120 killud selle ümber. 207 00:08:48,120 --> 00:08:51,870 Korpust lõhkepea on mõeldud tegutsema nagu haavlid. 208 00:08:51,870 --> 00:08:54,920 Raketid on läbi nelja konteineri kohta ja on 209 00:08:54,920 --> 00:08:57,850 veab pool haagis. 210 00:08:57,850 --> 00:09:02,940 >> Patriot raketitõrjesüsteem läheb tagasi vähemalt 211 00:09:02,940 --> 00:09:05,530 20 aastat nüüd. 212 00:09:05,530 --> 00:09:09,150 See oli algselt mõeldud õhutõrje rakettide 213 00:09:09,150 --> 00:09:12,920 tulistama vaenlase lennukid, esimese Lahesõja. 214 00:09:12,920 --> 00:09:17,700 Kui see sõda tuli mööda, Armee tahtis kasutada seda tulistada 215 00:09:17,700 --> 00:09:19,880 alla Scuds, mitte lennukid. 216 00:09:19,880 --> 00:09:24,860 Air Iraagi vägede olnud nii suur probleem, kuid armee 217 00:09:24,860 --> 00:09:27,260 muretsesin Scuds. 218 00:09:27,260 --> 00:09:30,810 Ja nii nad üritasid minna Patriot. 219 00:09:30,810 --> 00:09:33,770 Pealtkuulamist vaenlase raketi sõita Mach 5 läksin 220 00:09:33,770 --> 00:09:35,790 tuleb raske piisavalt. 221 00:09:35,790 --> 00:09:39,460 Aga kui Patriot oli tormas teenus, armee 222 00:09:39,460 --> 00:09:43,730 ei olnud teadlik Iraagi muudatustest, mis tehakse nende 223 00:09:43,730 --> 00:09:46,510 Scuds peaaegu võimatu tabada. 224 00:09:46,510 --> 00:09:50,040 >> Juhtus see Scuds mis olid 225 00:09:50,040 --> 00:09:51,360 tulevad olid ebastabiilsed. 226 00:09:51,360 --> 00:09:52,266 Nad olid wobbling. 227 00:09:52,266 --> 00:09:56,300 Selle põhjuseks oli iraaklaste, et saada 600 228 00:09:56,300 --> 00:10:00,650 kilomeetrisel lõigul 300 kilomeetri rakett, võttis 229 00:10:00,650 --> 00:10:02,423 massist välja ees lõhkepea ja 230 00:10:02,423 --> 00:10:03,990 tehtud lõhkepea kergem. 231 00:10:03,990 --> 00:10:08,700 Nüüd Patriot üritab tulla Scud, ja enamik 232 00:10:08,700 --> 00:10:11,192 aega, et valdav enamik ajal oleks 233 00:10:11,192 --> 00:10:13,450 lihtsalt lennata Scud. 234 00:10:13,450 --> 00:10:16,300 Kui Patriot haldurid aru Patriot 235 00:10:16,300 --> 00:10:20,160 oma eesmärki täitnud, nad lõhkeda Patriot lõhkepea. 236 00:10:20,160 --> 00:10:22,760 Et vältida võimalikke õnnetusi, see oli lubatud 237 00:10:22,760 --> 00:10:25,100 langevad maapinnale. 238 00:10:25,100 --> 00:10:29,400 See oli see, mida enamik inimesi nägin, kui suur fireballs taevas, 239 00:10:29,400 --> 00:10:34,930 ja vääriti kui lõikepunktide Scud lõhkepeade. 240 00:10:34,930 --> 00:10:37,490 >> Kuigi öösel taevas, patrioodid osutus 241 00:10:37,490 --> 00:10:41,570 edukalt hävitatud Scuds, kell Dhahran, ei saa olla 242 00:10:41,570 --> 00:10:43,730 viga selle toimivuse. 243 00:10:43,730 --> 00:10:46,370 Seal Patriot radarisüsteemi kaotanud jälgida 244 00:10:46,370 --> 00:10:50,090 sissetulevad Scud ja kunagi käivitatud tõttu 245 00:10:50,090 --> 00:10:51,340 et tarkvara viga. 246 00:10:54,030 --> 00:10:57,050 See oli iisraellasi, kes esimesena avastas, et mida kauem 247 00:10:57,050 --> 00:11:02,000 süsteem oli, mida pikem on lahknevus sai, 248 00:11:02,000 --> 00:11:05,530 tõttu kella varjatud süsteemi arvuti. 249 00:11:05,530 --> 00:11:09,060 Umbes kaks nädalat enne tragöödiat Dhahran, 250 00:11:09,060 --> 00:11:11,730 Iisraeli teatada kaitseministeerium, et 251 00:11:11,730 --> 00:11:13,250 Süsteem oli kaotame aega. 252 00:11:13,250 --> 00:11:15,610 Pärast umbes kaheksa tundi järjest, nad märkasid, et 253 00:11:15,610 --> 00:11:18,330 süsteem oli muutumas märgatavalt vähem täpne. 254 00:11:18,330 --> 00:11:20,910 Defense Department vastas, rääkides kõik 255 00:11:20,910 --> 00:11:23,710 Patriot-rakettide patareid ei jääks süsteemid 256 00:11:23,710 --> 00:11:25,450 juba pikka aega. 257 00:11:25,450 --> 00:11:28,010 Nad ei ole kunagi öelnud, mida pikka aega oli - 8 tundi, 10 258 00:11:28,010 --> 00:11:29,690 tundi, 1000 tundi. 259 00:11:29,690 --> 00:11:31,940 Keegi ei teadnud. 260 00:11:31,940 --> 00:11:35,020 >> Patriot aku seisvad kasarmute juures Dhahran 261 00:11:35,020 --> 00:11:39,030 ja selle vigane sisemine kell oli üle 100 tunni 262 00:11:39,030 --> 00:11:42,240 Ööl vastu 25. veebruar. 263 00:11:42,240 --> 00:11:46,580 See jälgida aega täpsusega umbes kümnendik sekundit. 264 00:11:46,580 --> 00:11:48,830 Nüüd kümnendik teine ​​on huvitav number, sest 265 00:11:48,830 --> 00:11:52,660 seda ei saa väljendada binaarne, täpselt, mis tähendab, 266 00:11:52,660 --> 00:11:54,940 see ei ole võimalik esitada täpselt igas 267 00:11:54,940 --> 00:11:57,330 kaasaegne raal. 268 00:11:57,330 --> 00:11:59,130 Seda on raske uskuda. 269 00:11:59,130 --> 00:12:01,720 Aga kasutada seda kui näidet. 270 00:12:01,720 --> 00:12:04,090 >> Võtame arvu kolmandiku võrra. 271 00:12:04,090 --> 00:12:07,950 Üks kolmandik ei saa kümnendkraadides, täpselt. 272 00:12:07,950 --> 00:12:12,710 Üks kolmandik on 0,333 kestnud lõpmatuseni. 273 00:12:12,710 --> 00:12:17,050 Ei ole nii, et seda teha ülima täpsusega kohaga. 274 00:12:17,050 --> 00:12:19,340 See on täpselt samasugune probleem, mis juhtus 275 00:12:19,340 --> 00:12:20,190 Patriot. 276 00:12:20,190 --> 00:12:24,680 Mida kauem süsteem jooksis hullem aeg viga sai. 277 00:12:24,680 --> 00:12:28,640 Pärast 100 töötundi, viga ajal oli ainult 278 00:12:28,640 --> 00:12:29,870 umbes kolmandik sekundis. 279 00:12:29,870 --> 00:12:34,790 Aga nii suunatud raketi sõita Mach 5, 280 00:12:34,790 --> 00:12:39,140 see põhjustas jälgimise viga üle 600 meetri. 281 00:12:39,140 --> 00:12:42,510 Oleks saatuslik viga sõdurid Dhahran. 282 00:12:42,510 --> 00:12:48,680 >> Juhtus see Scud käivitada avastati varajase hoiatamise 283 00:12:48,680 --> 00:12:52,440 satelliite ja nad teadsid, et Scud oli tulemas nende 284 00:12:52,440 --> 00:12:53,350 üldine suund. 285 00:12:53,350 --> 00:12:55,470 Nad ei teadnud, kust see tuli. 286 00:12:55,470 --> 00:12:58,210 See oli nüüd kuni radari komponent Patriot 287 00:12:58,210 --> 00:13:01,920 süsteem, kaitstes Dhahran, leida ja jälgida 288 00:13:01,920 --> 00:13:03,700 sissetulevad vaenlase rakett. 289 00:13:03,700 --> 00:13:05,390 Radar oli väga tark. 290 00:13:05,390 --> 00:13:07,570 Sa oleks tegelikult jälgida olukorda Scud ja seejärel 291 00:13:07,570 --> 00:13:10,340 ennustada, kuhu see ilmselt oleks järgmine kord 292 00:13:10,340 --> 00:13:12,040 radar saatis impulsi läbi. 293 00:13:12,040 --> 00:13:13,730 See kutsuti vahemikus värava. 294 00:13:13,730 --> 00:13:18,820 Siis, kui Patriot otsustab piisavalt aega on möödas minna 295 00:13:18,820 --> 00:13:22,600 seljatoele ja kontrollitakse järgmisel asukoht Avastatud 296 00:13:22,600 --> 00:13:24,190 objekti, siis läheb tagasi. 297 00:13:24,190 --> 00:13:27,940 Nii et kui ta läks tagasi vales kohas, see siis ei näe 298 00:13:27,940 --> 00:13:31,000 vastuväiteid ning ta otsustab, et seal ei olnud. 299 00:13:31,000 --> 00:13:34,370 See oli vale tuvastamise ja langeb teele. 300 00:13:34,370 --> 00:13:37,630 >> Sissetulevad Scud kadus radari ekraanilt. 301 00:13:37,630 --> 00:13:41,300 Ja sekundit hiljem ta slammed arvesse kasarmud. Scud 302 00:13:41,300 --> 00:13:44,730 hukkus 28 ja oli viimane vallandati ajal 303 00:13:44,730 --> 00:13:46,450 esimest Lahesõda. 304 00:13:46,450 --> 00:13:50,570 Traagiliselt, uuendatud tarkvara saabus Dhahran 305 00:13:50,570 --> 00:13:52,060 järgmisel päeval. 306 00:13:52,060 --> 00:13:56,210 Ja tarkvara viga oli kinnitatud, sulgedes ühe peatüki 307 00:13:56,210 --> 00:13:58,370 rahutu ajalugu Patriot rakettide. 308 00:14:01,790 --> 00:14:04,990 PATRIOT on tegelikult akronüüm "suunadiagrammiga jälgimine 309 00:14:04,990 --> 00:14:08,516 Vabaliige Target. " 310 00:14:08,516 --> 00:14:13,390 >> Olgu, nii palju kurblik tulemus ei ole päris 311 00:14:13,390 --> 00:14:14,430 mõistmiseks sellesse maailma. 312 00:14:14,430 --> 00:14:18,180 Ja Buffee, tõesti, filmist on see, et lahendus 313 00:14:18,180 --> 00:14:20,790 seal oli taaskäivitab teie raketitõrjesüsteemi 314 00:14:20,790 --> 00:14:21,770 iga kord samal ajal. 315 00:14:21,770 --> 00:14:24,280 Ja nii jälle, üks eesmärke on see muidugi, kindlasti 316 00:14:24,280 --> 00:14:26,900 kohta rohkem tagasihoidlik skaala kui neid taotlusi, on 317 00:14:26,900 --> 00:14:30,710 tõesti avatud kõigile silmad täpselt, kuidas sa minna 318 00:14:30,710 --> 00:14:34,380 valmistamise masinad seda, mida sa tahad neid teha ja kuidas minna 319 00:14:34,380 --> 00:14:37,180 seda teed, et õigesti, kui mööda teed tee seda 320 00:14:37,180 --> 00:14:38,810 Noh, elegantselt, ja nii edasi. 321 00:14:38,810 --> 00:14:41,680 Ja nii täna, lähme sukelduda natuke rohkem seda, kuid 322 00:14:41,680 --> 00:14:44,210 nii et me ei lähe liiga kiiresti, eriti neile vähem 323 00:14:44,210 --> 00:14:46,590 mugav, vaid ka selleks, et saaksime säilitada huvi 324 00:14:46,590 --> 00:14:49,390 need mugavamaks, lähme lihtsalt kiiresti alustada natuke 325 00:14:49,390 --> 00:14:50,970 ning sulgege mõned neist ideedest. 326 00:14:50,970 --> 00:14:53,710 Ja jälle küsima minema, nii isiklikult või online, kui teil on 327 00:14:53,710 --> 00:14:56,320 küsimustele, et saaksime hoida kõik samal leheküljel. 328 00:14:56,320 --> 00:14:58,820 >> Nii CS50 Appliance, kiire samm tagasi, on 329 00:14:58,820 --> 00:15:02,360 Mis, oma sõnadega? 330 00:15:02,360 --> 00:15:06,454 See on OK, kui sa ei tea, mida need sõnad võivad olla veel. 331 00:15:06,454 --> 00:15:07,830 [Kuuldamatu] 332 00:15:07,830 --> 00:15:10,950 Okei, nii universaalne liides - 333 00:15:10,950 --> 00:15:11,900 et me kõik jagame. 334 00:15:11,900 --> 00:15:12,470 Absoluutselt. 335 00:15:12,470 --> 00:15:14,840 Nii et me võiks näiteks öelda, et minna mõnele 336 00:15:14,840 --> 00:15:16,910 veebilehel, lae see tarkvara Mac OS. 337 00:15:16,910 --> 00:15:19,140 Lae see tarkvara Windows, konfigureerida sisse 338 00:15:19,140 --> 00:15:20,100 Sel viisil ja et. 339 00:15:20,100 --> 00:15:22,370 Kuid reaalsus on see siis satume lugematu tehniline 340 00:15:22,370 --> 00:15:23,200 toetada küsimusi. 341 00:15:23,200 --> 00:15:26,630 Ja ka nendel päevadel, palju sellest, mida on juba tehtud serveripoolne, 342 00:15:26,630 --> 00:15:28,490 maailma arvutustehnika, eriti kui tegemist on 343 00:15:28,490 --> 00:15:31,460 veebiarendust ja veebipõhiseid rakendusi, on tegelikult 344 00:15:31,460 --> 00:15:35,110 üsna sageli teha Unix või Linux arvutid, erinevalt 345 00:15:35,110 --> 00:15:36,800 Mac või Windows arvutites. 346 00:15:36,800 --> 00:15:39,240 >> Nii hulgas tasa, siis kasutades seda asja nimetatakse 347 00:15:39,240 --> 00:15:41,500 CS50 Appliance on meil kõigil on sama keskkond. 348 00:15:41,500 --> 00:15:43,670 Nii et igaühel on samal lehel ükskõik millist riistvara sa 349 00:15:43,670 --> 00:15:46,650 tuli campus, vaid ka siis espalla täpselt 350 00:15:46,650 --> 00:15:48,230 samas keskkonnas, mis teid kasutades suunas 351 00:15:48,230 --> 00:15:51,080 semestri lõpuks ka veebi arengut, samuti 352 00:15:51,080 --> 00:15:53,580 tulevik reaalses maailmas rakendusi sätestatut. 353 00:15:53,580 --> 00:15:56,350 Nii konkreetsemalt, CS50 Appliance on tasuta tükk 354 00:15:56,350 --> 00:15:59,400 tarkvara, mis võimaldab käivitada teise operatsioonisüsteemi, 355 00:15:59,400 --> 00:16:02,670 Linux, sel juhul oma arvutisse, akna. 356 00:16:02,670 --> 00:16:04,750 Nüüd sa ei saa lihtsalt alla laadida seadmesse. 357 00:16:04,750 --> 00:16:08,170 Sa pead programm, millega mängida või epileerijat. 358 00:16:08,170 --> 00:16:11,220 Ja see tükk tarkvara on üldiselt tuntud kui 359 00:16:11,220 --> 00:16:11,520 hypervisor. 360 00:16:11,520 --> 00:16:14,050 Hypervisors tulevad vormis tooteid nagu VMware, 361 00:16:14,050 --> 00:16:15,820 Virtual Box, Parallels. 362 00:16:15,820 --> 00:16:18,390 Igasuguseid ettevõtted teevad tarkvara, nii vaba ja 363 00:16:18,390 --> 00:16:19,310 kaubandus-, samasugused. 364 00:16:19,310 --> 00:16:21,480 Mida te näete Ülesanded nr 1 on juhised, kuidas 365 00:16:21,480 --> 00:16:23,440 saada tasuta tarkvara, mille abil 366 00:16:23,440 --> 00:16:25,000 käivitada CS50 Appliance. 367 00:16:25,000 --> 00:16:28,060 Ja kui sa teed, sa pead, et aken Mac või PC, 368 00:16:28,060 --> 00:16:30,710 töölaua keskkond, mis näeb välja üsna nagu see, kus 369 00:16:30,710 --> 00:16:33,100 see on Start menüü moodi asi 370 00:16:33,100 --> 00:16:34,510 alumises vasakus nurgas. 371 00:16:34,510 --> 00:16:38,030 See on kodukataloog või kodu kataloogi ülemises vasakus 372 00:16:38,030 --> 00:16:40,280 seal, prügikast jne. 373 00:16:40,280 --> 00:16:43,450 Nii et me tease peale vajalikud üksikasjad nagu me minna. 374 00:16:43,450 --> 00:16:46,430 >> Aga nüüd alustame sukelduda C. 375 00:16:46,430 --> 00:16:49,200 Nii et C on see programmeerimiskeelt sarnase sisuga 376 00:16:49,200 --> 00:16:52,390 Scratch, kuid palju vähem graafiline, kuid irooniliselt, kaugele 377 00:16:52,390 --> 00:16:54,730 võimsam kui sa saad Savvy koos sellega. 378 00:16:54,730 --> 00:16:58,970 Nii C, me kirjutada programme kirjutades lähtekoodi, mis on 379 00:16:58,970 --> 00:17:01,640 ingliskeelse nagu süntaks, mis on sarnane sokid 380 00:17:01,640 --> 00:17:05,609 tõestus, et me tegime viimane kord, mis võimaldab teil 381 00:17:05,609 --> 00:17:07,910 väljendada ennast üsna täpselt, kui 382 00:17:07,910 --> 00:17:09,760 arcanely, et arvuti. 383 00:17:09,760 --> 00:17:11,960 >> Nii et millist toodet tarkvara sa tegelikult vajad 384 00:17:11,960 --> 00:17:15,520 kirjutada programme keeles nagu C, mis põhineb meie 385 00:17:15,520 --> 00:17:17,492 vestlus esmaspäeval? 386 00:17:17,492 --> 00:17:19,650 [Kuuldamatu] 387 00:17:19,650 --> 00:17:21,079 OK, sa lihtsalt vaja tekstiredaktorit. 388 00:17:21,079 --> 00:17:22,890 Sa ei vaja mingit erilist tarkvara 389 00:17:22,890 --> 00:17:24,460 iseenesest kirjutada programme. 390 00:17:24,460 --> 00:17:27,220 Sa lihtsalt vaja tekstiredaktoriga nagu Notepad, Windows, 391 00:17:27,220 --> 00:17:30,450 TextEdit Mac, või midagi, mida nimetatakse gedit, maailma 392 00:17:30,450 --> 00:17:32,020 Linux, mis me kasutame siin. 393 00:17:32,020 --> 00:17:33,750 Ja ongi selleks, et kirjutada programme. 394 00:17:33,750 --> 00:17:35,480 >> Kuid kirjutamine on ainult pool võrrandit. 395 00:17:35,480 --> 00:17:36,630 Seejärel tuleb käivitada neid. 396 00:17:36,630 --> 00:17:38,320 Aga selleks, et käivitada programme - 397 00:17:38,320 --> 00:17:39,600 sa ei saa joosta lähtekoodi. 398 00:17:39,600 --> 00:17:41,500 Sa asemel pead tegema, mida ta esimesena? 399 00:17:41,500 --> 00:17:41,900 Jah. 400 00:17:41,900 --> 00:17:43,200 David J. Malan: Sa pead 401 00:17:43,200 --> 00:17:44,130 kompileerida. 402 00:17:44,130 --> 00:17:49,010 Ja keegi teine, koostamise lähtetekst tähendab - 403 00:17:49,010 --> 00:17:50,260 [Kuuldamatu] 404 00:17:52,300 --> 00:17:52,700 David J. Malan: Täpselt. 405 00:17:52,700 --> 00:17:54,430 Tõlkides seda nulle ja ühtesid. 406 00:17:54,430 --> 00:17:57,150 Sest me kõik, nendel päevadel, on arvutid, mis on protsessoriga, 407 00:17:57,150 --> 00:18:00,350 peaaegu kõik, mis on tehtud firma nimega Intel ja 408 00:18:00,350 --> 00:18:03,320 Intel Inside, tähendab, et see on aju sees oma 409 00:18:03,320 --> 00:18:04,990 arvuti, tuntud kui CPU. 410 00:18:04,990 --> 00:18:07,570 Ja üks neist asjadest, et aju ei ole, see teab 411 00:18:07,570 --> 00:18:10,390 kuidas mõista mustrid nulle ja ühtesid. 412 00:18:10,390 --> 00:18:13,240 Ta teab, mida muster bitti moodustab Lisaks mida 413 00:18:13,240 --> 00:18:15,500 muster kujutab tehet, mis muster 414 00:18:15,500 --> 00:18:18,890 bitti esindavad trüki ja luua kuuldav heli. 415 00:18:18,890 --> 00:18:22,450 >> Nii lühike, CPU, koos operatsioonisüsteemi, 416 00:18:22,450 --> 00:18:25,230 mis on tarkvara, mis jookseb peal CPU, 417 00:18:25,230 --> 00:18:26,050 nii rääkida. 418 00:18:26,050 --> 00:18:29,850 Koos need kaks teavad, kuidas käivitada programme, mis 419 00:18:29,850 --> 00:18:31,070 meie, inimesed kirjutavad. 420 00:18:31,070 --> 00:18:34,040 >> Nii et kui ma minema CS50 Appliance siin, mul on vaja avada 421 00:18:34,040 --> 00:18:35,660 kuni tekstiredaktor ja võin kasutada seda 422 00:18:35,660 --> 00:18:36,560 aastal paar võimalust. 423 00:18:36,560 --> 00:18:39,060 Võin kas minna Menüü, programmeerimine, 424 00:18:39,060 --> 00:18:40,230 ja siis ma saan valida - 425 00:18:40,230 --> 00:18:40,810 nope, ei ole, et menüü. 426 00:18:40,810 --> 00:18:43,860 Ma ei saa minna Tarvikud / gedit siin avada 427 00:18:43,860 --> 00:18:45,090 mu väike tekstiredaktorit. 428 00:18:45,090 --> 00:18:48,030 Või lihtsamalt, ma ei kliki seda väikest ikooni alumises 429 00:18:48,030 --> 00:18:48,970 vasakus nurgas. 430 00:18:48,970 --> 00:18:50,430 Ja nüüd ma saan seda keskkonda siin. 431 00:18:50,430 --> 00:18:52,590 See on päris meenutavad lihtne tekstiredaktor, vaid 432 00:18:52,590 --> 00:18:53,820 üks või kaks erinevust. 433 00:18:53,820 --> 00:18:56,420 Üleval, kus kursor vilgub nüüd, see on koht, kus 434 00:18:56,420 --> 00:18:57,900 Ma ei hakake minu koodi. 435 00:18:57,900 --> 00:19:00,415 Põhjas on see asi, mida nimetatakse terminaliakent. 436 00:19:00,415 --> 00:19:03,400 Ja milliseid asju ma saan teha selles 437 00:19:03,400 --> 00:19:04,960 nn terminaliakent? 438 00:19:04,960 --> 00:19:06,680 [Kuuldamatu] 439 00:19:06,680 --> 00:19:07,890 >> Okei, nii et ma jooksen käske. 440 00:19:07,890 --> 00:19:10,300 Ja mõned käsud me jooksime esmaspäeval oli vähe 441 00:19:10,300 --> 00:19:15,070 segasena alguses, kuid ls nimekirja, cd muutus kataloog, 442 00:19:15,070 --> 00:19:16,540 rm jaoks eemaldada. 443 00:19:16,540 --> 00:19:19,680 Nii et see on omamoodi vana kooli viis navigeerida oma 444 00:19:19,680 --> 00:19:22,310 arvuti, kasutades ainult klaviatuuri ja tekstiline käske, 445 00:19:22,310 --> 00:19:24,130 ja ei, üldiselt, kasutades hiirt. 446 00:19:24,130 --> 00:19:25,960 Aga eks näis, enne pikk, see tegelikult annab meile 447 00:19:25,960 --> 00:19:28,520 veidi rohkem võimu ja vähe rohkem täpsust, millega 448 00:19:28,520 --> 00:19:29,600 väljendada end. 449 00:19:29,600 --> 00:19:31,330 Ja siis siin vasakul, me lihtsalt näeme, 450 00:19:31,330 --> 00:19:34,360 kui me hakkame kirjutamise tarkvara, väike kokkuvõte 451 00:19:34,360 --> 00:19:36,350 programm, et oleme kirjutanud vasakus ülaservas. 452 00:19:36,350 --> 00:19:38,360 Aga me näeme, et jälle enne pikk. 453 00:19:38,360 --> 00:19:40,050 >> Teeme midagi üsna lihtne siin. 454 00:19:40,050 --> 00:19:43,440 Lubage mul kõigepealt minna ja minge File, Save, ja ma olen lihtsalt 455 00:19:43,440 --> 00:19:45,970 läheb klõpsa jharvard siin, üle vasakul, ja 456 00:19:45,970 --> 00:19:48,930 jharvard on jällegi nimi minu kodukataloogi, minu 457 00:19:48,930 --> 00:19:52,110 isiklikud failid, mind, nüüd on John Harvard, nagu te kõik 458 00:19:52,110 --> 00:19:54,230 varsti John Harvard selles keskkonnas. 459 00:19:54,230 --> 00:19:57,360 Tal on see kodu kataloogi My Documents ja nii edasi, 460 00:19:57,360 --> 00:19:58,900 et ma tahan salvestada, nüüd see fail sisse 461 00:19:58,900 --> 00:20:01,520 Nii et ma lähen kutsun seda hello.c. Siis ma lähen 462 00:20:01,520 --> 00:20:05,770 edasi ja vajuta Save, ja nüüd, mida ma olen siin sakk 463 00:20:05,770 --> 00:20:09,440 nimetatakse hello.c, nii palju nagu teist tüüpi toimetaja. 464 00:20:09,440 --> 00:20:11,760 >> Nüüd lubage mul minna ja hakake kirjutama programmi. 465 00:20:11,760 --> 00:20:14,440 int main (void). 466 00:20:14,440 --> 00:20:18,150 Ja siis ma lihtsalt tegin viimane kord, printf, trüki-vormindatud, 467 00:20:18,150 --> 00:20:22,120 ("Hello, world!" 468 00:20:22,120 --> 00:20:24,500 );. 469 00:20:24,500 --> 00:20:25,630 Peaaegu valmis. 470 00:20:25,630 --> 00:20:27,130 Aga ma olen kadunud paar üksikasju. 471 00:20:27,130 --> 00:20:30,210 Mis puudub selle programmi, et ma tõesti vaja 472 00:20:30,210 --> 00:20:31,890 see tegelikult kompileerida? 473 00:20:31,890 --> 00:20:32,130 Jah. 474 00:20:32,130 --> 00:20:33,980 [Kuuldamatu]? 475 00:20:33,980 --> 00:20:35,770 >> David J. Malan: Jah, nii et ma vaja lisada standardne 476 00:20:35,770 --> 00:20:36,700 I / O teek. 477 00:20:36,700 --> 00:20:39,470 Nii et see peab minema üle peamine, nii et ma olen lihtsalt kavatse 478 00:20:39,470 --> 00:20:40,790 teha mõned ruumi seal. 479 00:20:40,790 --> 00:20:44,420 Ja ma teen # include . 480 00:20:44,420 --> 00:20:46,570 Ja märkate nurga sulgudes seal. 481 00:20:46,570 --> 00:20:49,410 Ja kui kõrvale, gedit on väike kasutajasõbralik, kui 482 00:20:49,410 --> 00:20:52,420 mõnikord segadusse ajav, sest see püüab aidata oma 483 00:20:52,420 --> 00:20:54,770 silmad teate, mis ridade järele mida. 484 00:20:54,770 --> 00:20:57,760 Nii et minu kursor on kohe selle nurga 485 00:20:57,760 --> 00:21:00,600 sulg, märgata, kuidas see esile teiste nurgaga 486 00:21:00,600 --> 00:21:01,920 sulg pluss see üks. 487 00:21:01,920 --> 00:21:03,770 Ja see on ainult mu tähelepanu juhtida sellele, et ma 488 00:21:03,770 --> 00:21:04,460 on sümmeetria. 489 00:21:04,460 --> 00:21:07,010 Ja sümmeetria programmeerimine on üldiselt hea. 490 00:21:07,010 --> 00:21:10,270 Samamoodi, kui ma liikuda mu kursor lõpus, märgata, kuidas 491 00:21:10,270 --> 00:21:13,630 looksulg rivistama näidata, et jah, mul on avatud üks 492 00:21:13,630 --> 00:21:15,160 ja suletud üks, nii rääkida. 493 00:21:15,160 --> 00:21:16,640 >> Hea küll, ja ma suudan veel üks asi. 494 00:21:16,640 --> 00:21:20,090 See ei ole tingimata vajalik, kuid hea tava öelda 495 00:21:20,090 --> 00:21:21,250 return 0. 496 00:21:21,250 --> 00:21:24,140 Ja return 0 teeb mida meile siin? 497 00:21:24,140 --> 00:21:25,584 Või tähendab mida? 498 00:21:25,584 --> 00:21:27,480 [Kuuldamatu] 499 00:21:27,480 --> 00:21:28,300 David J. Malan: Aga midagi on valesti. 500 00:21:28,300 --> 00:21:30,280 Ja ausalt öeldes on raske palju valesti minna 501 00:21:30,280 --> 00:21:31,250 programmeerida see lühike. 502 00:21:31,250 --> 00:21:33,930 Nii et ma olen lihtsalt super selge, et kõik on hästi. 503 00:21:33,930 --> 00:21:36,740 Mina, inimene, kui ma saan selle programmi, ei saa vist kunagi 504 00:21:36,740 --> 00:21:38,150 näha, et 0. 505 00:21:38,150 --> 00:21:41,070 Üldiselt on need numbrid, mida parasjagu naasnud peamine 506 00:21:41,070 --> 00:21:43,540 ainult kasvatada oma pead inimestele kui 507 00:21:43,540 --> 00:21:44,360 midagi läheb valesti. 508 00:21:44,360 --> 00:21:46,640 Ja sa saad vähe pop-up öeldes süsteemi viga, üks, 509 00:21:46,640 --> 00:21:48,760 kaks, kolm või mis iganes arv oli 510 00:21:48,760 --> 00:21:50,100 tegelikult tagastatud. 511 00:21:50,100 --> 00:21:52,870 Nii et midagi valesti on? 512 00:21:52,870 --> 00:21:55,300 [Kuuldamatu] 513 00:21:55,300 --> 00:21:58,100 >> David J. Malan: Nii et see ei ole nii palju funktsionaalne viga 514 00:21:58,100 --> 00:21:59,240 kuid esteetiline üks. 515 00:21:59,240 --> 00:22:02,340 Ma peaks ilmselt kasutusele reavahetus sümbol seal 516 00:22:02,340 --> 00:22:05,240 lõpuks see string nii et me tegelikult liikuda kursoriga 517 00:22:05,240 --> 00:22:08,340 järgmisele reale ja programm lihtsalt tundub veidi ilusam. 518 00:22:08,340 --> 00:22:10,340 >> Nüüd lubage mul minna minu terminaliakent 519 00:22:10,340 --> 00:22:11,490 ja suum sisse tagasi 520 00:22:11,490 --> 00:22:13,390 Ja see asi siin, seda kutsutakse viivitamatult. 521 00:22:13,390 --> 00:22:16,760 See on lihtsalt meenutas mulle, kes ma olen, jharvard @ aparaat, kus 522 00:22:16,760 --> 00:22:18,850 Seade on arvuti nime ma olen. 523 00:22:18,850 --> 00:22:22,380 Sulgudes on see tilde, kriipseldus sümbol, mis 524 00:22:22,380 --> 00:22:24,160 näitab, mida? 525 00:22:24,160 --> 00:22:25,590 Sihtrühm: Kodu kataloog. 526 00:22:25,590 --> 00:22:26,350 David J. Malan: Kodu kataloog. 527 00:22:26,350 --> 00:22:29,350 Nii et see on lihtsalt stenografisti märke öeldes olete 528 00:22:29,350 --> 00:22:32,780 Isikliku kausta, kus kõik failid lähevad vaikimisi. 529 00:22:32,780 --> 00:22:36,080 Nüüd, siin, ma ei kirjuta LS nimekirja. 530 00:22:36,080 --> 00:22:40,020 Ja ainus asi, ma näen siin hetkel on hello.c. 531 00:22:40,020 --> 00:22:41,770 Ja see on hea, sest ma lihtsalt kirjutasin selle. 532 00:22:41,770 --> 00:22:44,380 >> Nii et lubage mul minna ja ei tee tere. 533 00:22:44,380 --> 00:22:46,830 Ja märka ma ei kirjutades teha hello.c. 534 00:22:46,830 --> 00:22:50,300 Selle asemel, ma olen ainult kirjutades baasi faili nimi, tere. 535 00:22:50,300 --> 00:22:53,690 Ja teha, nagu me nägime esmaspäeval, lihtsalt järeldada, et ma tahan 536 00:22:53,690 --> 00:22:54,920 . c faili. 537 00:22:54,920 --> 00:22:56,820 Nii et nüüd ma olen kirjutatud tegema tere. 538 00:22:56,820 --> 00:22:59,280 Nüüd ma näen seda üsna pikk käsk ja jätkab 539 00:22:59,280 --> 00:23:00,480 nähes seda ikka ja jälle. 540 00:23:00,480 --> 00:23:03,620 Aga peab olema selge, rõkkama sõna, et just ilmunud, 541 00:23:03,620 --> 00:23:05,340 see on tegelik koostaja. 542 00:23:05,340 --> 00:23:08,200 Tee on lihtsalt ehitada kasulikkust. 543 00:23:08,200 --> 00:23:11,900 See on lihtsalt rohkem kasutajasõbralik programm, mis säästab mind, et 544 00:23:11,900 --> 00:23:15,310 Pikemas perspektiivis omamast tüüp välja uskumatult tüütu pikk 545 00:23:15,310 --> 00:23:17,020 käske, et üks. 546 00:23:17,020 --> 00:23:18,950 Nii et sa võiksid minna rõkkama käsitsi. 547 00:23:18,950 --> 00:23:20,530 Sa võiksid kirjutada kõik, et käsitsi. 548 00:23:20,530 --> 00:23:21,580 Lihtsalt läheb väga tüütu. 549 00:23:21,580 --> 00:23:24,720 Ja nii teha on lihtsalt programm, mis lihtsustab meie elu ja 550 00:23:24,720 --> 00:23:27,120 jookseb keerulisem käsud meile. 551 00:23:27,120 --> 00:23:29,410 >> Olgu, nüüd mida faili ma peaksin 552 00:23:29,410 --> 00:23:31,540 minu praegune kataloog? 553 00:23:31,540 --> 00:23:36,310 Mitte ainult hello.c, vaid ka tere. 554 00:23:36,310 --> 00:23:39,710 Nii et kui ma tahan joosta tere, meelde tuletada, et ma ütlen dot kaldkriips, 555 00:23:39,710 --> 00:23:42,220 kus dot vahendid lähevad praegune kaust, kuhu 556 00:23:42,220 --> 00:23:46,060 on, ja seejärel käivitage programm nimega tere, ja tõepoolest, nüüd, 557 00:23:46,060 --> 00:23:48,080 Mul on tere. 558 00:23:48,080 --> 00:23:51,640 Olgu, mingeid küsimusi tööprotsesside või süntaks 559 00:23:51,640 --> 00:23:52,890 mida me tegime? 560 00:23:55,380 --> 00:23:57,040 >> Olgu, võtame asju pügala uuesti. 561 00:23:57,040 --> 00:24:00,430 Nii et see oli underwhelming lihtsalt kirjutada programm, mis ainult 562 00:24:00,430 --> 00:24:01,790 kunagi ütleb tere, maailm. 563 00:24:01,790 --> 00:24:03,920 Nii muutsime ta esmaspäeval, et öelda, tere, David. 564 00:24:03,920 --> 00:24:06,560 See on natuke rohkem isiklikku, aga lihtsalt nii raske kodeeritakse 565 00:24:06,560 --> 00:24:07,410 esimene versioon. 566 00:24:07,410 --> 00:24:08,780 Nii et ole nii veenvad. 567 00:24:08,780 --> 00:24:13,120 Kuid on olemas, C, funktsioonide kindlasti lisaks 568 00:24:13,120 --> 00:24:15,700 prindi, funktsioone, mis võimaldavad teil saada kasutaja sisend. 569 00:24:15,700 --> 00:24:17,990 Ja kuidas me seda tegime, teisel päeval, oli järgmine. 570 00:24:17,990 --> 00:24:21,440 Enne kui ma tegelikult välja printida midagi, ma esimest korda sain 571 00:24:21,440 --> 00:24:22,410 midagi kasutaja. 572 00:24:22,410 --> 00:24:23,370 Nii et las ma teen seda uuesti. 573 00:24:23,370 --> 00:24:26,580 >> String s, kus s on lihtsalt suvaline nimi, siin, 574 00:24:26,580 --> 00:24:30,600 string, võrdub getString. 575 00:24:30,600 --> 00:24:32,070 Mis siis oli getString? 576 00:24:32,070 --> 00:24:34,630 See ilmselt saab stringi, mis põhineb tema nimi. 577 00:24:34,630 --> 00:24:37,560 Aga mida see enam tehniliselt? 578 00:24:37,560 --> 00:24:38,440 See funktsioon. 579 00:24:38,440 --> 00:24:41,790 Nii et see on funktsioon, mis ei tule koos C iseenesest. 580 00:24:41,790 --> 00:24:43,660 CS50 töötajad kirjutas selle. 581 00:24:43,660 --> 00:24:46,940 Ja nii kasutada seda, sa ei saa lihtsalt lisada stdio.h, 582 00:24:46,940 --> 00:24:49,630 Teil on vaja ka lisada seda, mida? 583 00:24:49,630 --> 00:24:50,060 Jah. 584 00:24:50,060 --> 00:24:54,210 Nii cs50.h, mis on lihtsalt fail me kirjutas mõned aastad tagasi. 585 00:24:54,210 --> 00:24:57,130 Me paigaldatud see seade teie kõrval 586 00:24:57,130 --> 00:24:58,490 kõik kindlad failid. 587 00:24:58,490 --> 00:25:00,500 Ja nii need esimestel nädalatel klassi, me kasutame 588 00:25:00,500 --> 00:25:02,820 see lihtsalt lihtsustada protsessi teed väga lihtne 589 00:25:02,820 --> 00:25:04,600 asjad nagu saada kasutaja sisend. 590 00:25:04,600 --> 00:25:07,370 Sest nagu me näha paari nädala jooksul, saada kasutaja sisend 591 00:25:07,370 --> 00:25:10,180 keeles nagu C on tegelikult üllatavalt keeruline, 592 00:25:10,180 --> 00:25:14,360 eriti kuna sa ei tea ette, tavaliselt, kuidas 593 00:25:14,360 --> 00:25:17,030 palju asju kasutaja saab tippida sisse 594 00:25:17,030 --> 00:25:20,340 Ja kui sa ei tea, kui palju andmeid oodata, sa ei pea 595 00:25:20,340 --> 00:25:22,380 teada, kui palju mälu eraldada. 596 00:25:22,380 --> 00:25:25,480 Ja kui sa tegelikult võistleva kasutaja, kes üritab 597 00:25:25,480 --> 00:25:28,180 sissemurdmist teie süsteemi krahhi arvuti, noh, 598 00:25:28,180 --> 00:25:31,600 üldiselt esimene meetod rünnak on, nagu ma tegin 599 00:25:31,600 --> 00:25:34,950 Esmaspäev, kirjuta terve pikk jada juhuslikult valitud märgist, 600 00:25:34,950 --> 00:25:37,020 Enter, ja vaata, mis murrab. 601 00:25:37,020 --> 00:25:40,800 Sest üldiselt, kui programm pause, et vihjab 602 00:25:40,800 --> 00:25:42,650 turvaprobleem, mis võib. 603 00:25:42,650 --> 00:25:45,250 Kindlasti vihjab sulle, programmeerija, kes on teinud 604 00:25:45,250 --> 00:25:49,050 viga, kuid rohkem ohtlikult, mida oleks võinud teha 605 00:25:49,050 --> 00:25:52,430 turvalisusega seotud viga, ja üldiselt me ​​näeme, et 606 00:25:52,430 --> 00:25:54,840 see on, kuidas masinad on ohus, et sellel päeval, nii 607 00:25:54,840 --> 00:25:56,620 maailmas veebi-ja programmid 608 00:25:56,620 --> 00:25:58,070 käsurealt, nagu see. 609 00:25:58,070 --> 00:25:58,350 >> Hea küll. 610 00:25:58,350 --> 00:26:00,460 Nii et string s võrdub getString. 611 00:26:00,460 --> 00:26:03,380 Nii konkreetsemalt nüüd, mida see rida 6 teha siin? 612 00:26:03,380 --> 00:26:05,640 Nii funktsiooni paremal saab stringi, 613 00:26:05,640 --> 00:26:06,890 võtab mitu argumendid? 614 00:26:09,458 --> 00:26:09,900 Okei. 615 00:26:09,900 --> 00:26:10,400 Nii et mitte ükski. 616 00:26:10,400 --> 00:26:11,360 Vähe meelerahu vaadata. 617 00:26:11,360 --> 00:26:15,380 Argument jällegi, on ainult sisend funktsiooni muuta 618 00:26:15,380 --> 00:26:17,250 selle vaikimisi käitumist mingil moel. 619 00:26:17,250 --> 00:26:19,540 Aga sel juhul, ma ei taha muuta 620 00:26:19,540 --> 00:26:20,650 käitumist getString. 621 00:26:20,650 --> 00:26:22,430 Ma tahtsin saada stringi. 622 00:26:22,430 --> 00:26:25,190 Nii et ma panin midagi sulgudes ja siis panin 623 00:26:25,190 --> 00:26:27,550 semikooloniga demarking lõppu rida koodi. 624 00:26:27,550 --> 00:26:29,840 Nüüd võrdusmärki ei tähenda võrdne iseenesest. 625 00:26:29,840 --> 00:26:32,690 See tähendab, loovutamine, mis tähendab, pane mis iganes 626 00:26:32,690 --> 00:26:36,060 väljastada paremal sees kõik, mis on vasakul. 627 00:26:36,060 --> 00:26:39,400 >> Nii vasakul, me ütleme, et meil on deklareeritud 628 00:26:39,400 --> 00:26:41,630 string nimega s. 629 00:26:41,630 --> 00:26:44,240 Ja täpsemalt, oleme eraldatud mälu sees 630 00:26:44,240 --> 00:26:46,340 mis me paneme bitti, mis tähistab jada 631 00:26:46,340 --> 00:26:46,850 tähemärki. 632 00:26:46,850 --> 00:26:49,400 Aga täna oleme eraldatud 633 00:26:49,400 --> 00:26:51,450 või deklareeritud string. 634 00:26:51,450 --> 00:26:51,790 Hea küll. 635 00:26:51,790 --> 00:26:54,760 Nüüd kui olen seda teinud, ma tahan ühendada väärtus 636 00:26:54,760 --> 00:26:56,535 s, mitte väärtus David. 637 00:26:56,535 --> 00:27:00,200 Nii et see on vale, miks? 638 00:27:03,060 --> 00:27:04,870 Nii et see on lihtsalt sõna otseses mõttes püsiprogrammeeritud s. 639 00:27:04,870 --> 00:27:06,870 See on öelda "tere, s," mis ei ole mida ma tahan. 640 00:27:06,870 --> 00:27:07,790 Nii et ma suudan seda. 641 00:27:07,790 --> 00:27:10,330 Protsendimärk on kohatäide, kuid nüüd pean 642 00:27:10,330 --> 00:27:12,520 erituda printida teine ​​argument. 643 00:27:12,520 --> 00:27:15,160 Tuletame meelde, et argumendid, mis funktsioonid on eraldatud 644 00:27:15,160 --> 00:27:20,300 komasid, nii et järgmine eralda siin panin pärast seda kirja s. 645 00:27:20,300 --> 00:27:23,740 Ja selles kontekstis nüüd, s on muutuv ja printf, 646 00:27:23,740 --> 00:27:25,550 saamisel need kaks sisendit - 647 00:27:25,550 --> 00:27:29,440 string vasakul ja muutuja nimi on paremal - 648 00:27:29,440 --> 00:27:32,750 siis ühendage sellest saab endise meile ja 649 00:27:32,750 --> 00:27:34,600 lihtsalt välja printida kena ilus sisaldav string 650 00:27:34,600 --> 00:27:36,770 mis iganes see on, et me kirjutada logida 651 00:27:36,770 --> 00:27:37,560 >> Nii et proovime seda. 652 00:27:37,560 --> 00:27:38,860 Lähen edasi minna ja välja suumida, tagasi 653 00:27:38,860 --> 00:27:40,250 minu terminaliakent. 654 00:27:40,250 --> 00:27:41,840 Pildi suurendamiseks allosas siin. 655 00:27:41,840 --> 00:27:44,070 Korrake teha tere. 656 00:27:44,070 --> 00:27:45,870 Rõkkama on ilmselt kordamisega. 657 00:27:45,870 --> 00:27:49,280 Ma lähen kirjuta. / Hello, Enter. 658 00:27:49,280 --> 00:27:52,145 Miski tundub toimuvat veel, kuid see on seda kiire 659 00:27:52,145 --> 00:27:55,700 et ma ei kirjuta midagi Nate, Enter, ja nüüd on meil 660 00:27:55,700 --> 00:27:56,380 Tere, Nate. 661 00:27:56,380 --> 00:27:59,600 Ja ma ei saa seda uuesti teha koos Rob ja nii edasi. 662 00:27:59,600 --> 00:28:03,410 Nii et loodetavasti nüüd see programm käitub kavatsen. 663 00:28:03,410 --> 00:28:05,720 >> Nüüd, mitte kõik, et kasutajasõbralik. 664 00:28:05,720 --> 00:28:07,930 Mul pole aimugi, mis on minult oodatakse. 665 00:28:07,930 --> 00:28:09,620 Nii saame kindlasti korista see ära natuke. 666 00:28:09,620 --> 00:28:13,270 Lubage mul tagasi minna siia üles, ja mitte lihtsalt sukeldumine ja 667 00:28:13,270 --> 00:28:16,480 küsib kasutajalt string, lubage mul selgelt öelda 668 00:28:16,480 --> 00:28:17,750 kasutaja mida ma ootan. 669 00:28:17,750 --> 00:28:21,610 Nii printf ("Sisesta string" 670 00:28:21,610 --> 00:28:24,080 ); 671 00:28:24,080 --> 00:28:25,510 Nii ei muutujad siin. 672 00:28:25,510 --> 00:28:26,750 Ei protsenti märke. 673 00:28:26,750 --> 00:28:28,550 Lihtsalt lihtne inglise fraas. 674 00:28:28,550 --> 00:28:34,030 Lubage mul nüüd minna põhja siin ja uuesti, minu programmi. 675 00:28:34,030 --> 00:28:35,380 Kuid mitte miski ei muutunud. 676 00:28:35,380 --> 00:28:37,350 Miks? 677 00:28:37,350 --> 00:28:38,380 Mul on kompileeri see. 678 00:28:38,380 --> 00:28:39,570 Nii lihtne viga teha. 679 00:28:39,570 --> 00:28:41,700 Aga sa pead mitte ainult faili salvestada vaid 680 00:28:41,700 --> 00:28:43,260 kompileeri programm. 681 00:28:43,260 --> 00:28:46,640 Ja nii kui ma uuesti käivitada tegema tere, nüüd rõkkama jookseb. 682 00:28:46,640 --> 00:28:51,800 Nüüd ma saan käivitada. / Hello. Ja nüüd ma näen, "Sisesta string". 683 00:28:51,800 --> 00:28:52,050 Okei. 684 00:28:52,050 --> 00:28:53,440 Nüüd on natuke rohkem kasutajasõbralikumaks. 685 00:28:53,440 --> 00:28:55,850 Nate, Enter, tere, Nate. 686 00:28:55,850 --> 00:28:57,310 >> Noh, proovime seda uuesti ja hakata mõtlema 687 00:28:57,310 --> 00:28:58,080 umbes nurgas juhtudel. 688 00:28:58,080 --> 00:29:00,520 Nii nagu ka Scratch, sa julgustada või on sellel 689 00:29:00,520 --> 00:29:03,180 julgustada spec omamoodi mõelda, mida võiks minna 690 00:29:03,180 --> 00:29:06,610 vale, kui sa ei usu kõike, kasutaja võiks teha. 691 00:29:06,610 --> 00:29:08,050 Bugs, seetõttu võib tekkida. 692 00:29:08,050 --> 00:29:09,710 Nii et sisestada stringi - 693 00:29:09,710 --> 00:29:11,130 Mis nurgas asjas? 694 00:29:11,130 --> 00:29:13,320 Mis on stsenaarium, et mina, programmeerija, ei pruugi olla 695 00:29:13,320 --> 00:29:16,070 oodata? 696 00:29:16,070 --> 00:29:17,600 Jah. 697 00:29:17,600 --> 00:29:17,920 Okei. 698 00:29:17,920 --> 00:29:22,060 Mis siis, kui ma kirjuta number, nagu see on? 699 00:29:22,060 --> 00:29:22,500 Hea küll. 700 00:29:22,500 --> 00:29:24,490 Nii et see ikka töötab. 701 00:29:24,490 --> 00:29:25,880 Gramatically ei ole mõtet. 702 00:29:25,880 --> 00:29:27,180 Aga vähemalt programm töötab. 703 00:29:27,180 --> 00:29:28,650 >> Mis on teise nurga puhul? 704 00:29:28,650 --> 00:29:29,610 Midagi ma ei arvanud. 705 00:29:29,610 --> 00:29:31,590 Jah? 706 00:29:31,590 --> 00:29:31,940 Okei. 707 00:29:31,940 --> 00:29:34,950 Nii et me võiksime teha midagi tõesti väga suur number. 708 00:29:34,950 --> 00:29:37,270 Teeme seda siin. 709 00:29:37,270 --> 00:29:40,880 Lubage mul välja suumida teist, lubage mul rõhutada. 710 00:29:40,880 --> 00:29:42,250 Ei saa kopeerida ja kleepida siia. 711 00:29:42,250 --> 00:29:42,470 Hea küll. 712 00:29:42,470 --> 00:29:44,440 Nii et ma ei saa kopeerida ja kleepida see terminaliakent, nii me 713 00:29:44,440 --> 00:29:46,950 lihtsalt simuleerida seda. 714 00:29:46,950 --> 00:29:51,340 Lubage mul suumimiseks läheb pakkima. 715 00:29:51,340 --> 00:29:52,700 Ma ei kavatse seda teha liiga kaua, sest see ei 716 00:29:52,700 --> 00:29:54,440 tegelikult murda selles programmis. 717 00:29:54,440 --> 00:29:55,260 Aga võiks. 718 00:29:55,260 --> 00:29:55,830 Enter. 719 00:29:55,830 --> 00:29:56,580 Aga seda ei juhtunud. 720 00:29:56,580 --> 00:29:57,050 Hea küll. 721 00:29:57,050 --> 00:29:58,440 Aga see on tõeline nurgas puhul. 722 00:29:58,440 --> 00:30:01,610 Ja ainus põhjus, et käitus õigesti, nii et 723 00:30:01,610 --> 00:30:05,820 rääkida, sest CS50 funktsioon getString on tegelikult 724 00:30:05,820 --> 00:30:08,040 kavandatud all kapuuts, nagu me näha paari nädala jooksul, 725 00:30:08,040 --> 00:30:11,570 automaatselt eraldama rohkem ja rohkem RAM, rohkem ja rohkem 726 00:30:11,570 --> 00:30:14,330 mälu operatsioonisüsteemi, kui ta mõistab, wow, 727 00:30:14,330 --> 00:30:16,670 olete tõesti kirjutatus midagi üsna pikk. 728 00:30:16,670 --> 00:30:18,500 Nüüd on see natuke hädavale. 729 00:30:18,500 --> 00:30:22,020 Kui me tegelikult peatatud pikka aega ja ma ei tippinud 730 00:30:22,020 --> 00:30:24,640 midagi 5000000000 tähemärki klaviatuuri 731 00:30:24,640 --> 00:30:28,060 siin, või tõesti tabanud copy-paste üsna natuke, me üsna tõenäoliselt 732 00:30:28,060 --> 00:30:29,730 võib põhjustada programmi crash. 733 00:30:29,730 --> 00:30:32,130 Lihtsalt veidi raskem jäljendada et koos piiratud 734 00:30:32,130 --> 00:30:33,740 aja jooksul. 735 00:30:33,740 --> 00:30:37,320 >> Mis on teise nurga juhul me võiks proovida? 736 00:30:37,320 --> 00:30:38,730 Jah? 737 00:30:38,730 --> 00:30:39,020 Jah. 738 00:30:39,020 --> 00:30:40,360 Nii et miks me ei vastata midagi? 739 00:30:40,360 --> 00:30:43,130 Nii et me tegelikult võtta teatud meetmeid, sest muidu 740 00:30:43,130 --> 00:30:45,060 Programmi kavatse istuda seal vilgub kogu päeva. 741 00:30:45,060 --> 00:30:46,860 Aga kui ma lihtsalt Enter - 742 00:30:46,860 --> 00:30:48,780 OK, nüüd, ikka ootab vale. 743 00:30:48,780 --> 00:30:51,670 Kas ei ole viga, aga äkki seal on nüüd võimalus 744 00:30:51,670 --> 00:30:54,190 rakendamise alustamine rangem programmi 745 00:30:54,190 --> 00:30:55,290 et tegelikult kontrollib. 746 00:30:55,290 --> 00:30:57,640 Ja kui string, lause, sõna, mida ma 747 00:30:57,640 --> 00:31:00,890 kirjutatus on pikkusega 0, noh, äkki ma peaks kisa 748 00:31:00,890 --> 00:31:03,770 kasutaja, või ütle talle sisestada stringi uuesti, nii et 749 00:31:03,770 --> 00:31:06,560 me tegelikult saada, mida näeb õiget käitumist ja ei 750 00:31:06,560 --> 00:31:08,570 lihtsalt täielik kontroll minu poolt. 751 00:31:08,570 --> 00:31:11,130 >> Küsimus on tagasi? 752 00:31:11,130 --> 00:31:11,970 Kümnendikuni. 753 00:31:11,970 --> 00:31:13,120 Nii et me võiks proovida seda ka. 754 00:31:13,120 --> 00:31:16,840 1,10000005. 755 00:31:16,840 --> 00:31:19,470 Tundub, et läheb lihtsalt tööd tegelikult midagi. 756 00:31:19,470 --> 00:31:21,160 Ja et tegelikult oodatakse. 757 00:31:21,160 --> 00:31:24,550 Isegi kui me oleks kirjutatud, et number on olemas, või 758 00:31:24,550 --> 00:31:28,200 suurem hulk varem aru, et kui me kirjutades kasutaja 759 00:31:28,200 --> 00:31:31,070 sisend ja me kasutame getString funktsioon, ei 760 00:31:31,070 --> 00:31:34,380 ükskõik, kui ma olen masinakirja välja näeb arvu. 761 00:31:34,380 --> 00:31:36,720 Tuletame meelde, et vastavalt ASCII, kõik oma 762 00:31:36,720 --> 00:31:39,920 Klaviatuuril on numbriline väärtus, mis saab kaardistada 763 00:31:39,920 --> 00:31:41,480 iseloomu, char. 764 00:31:41,480 --> 00:31:44,490 Nii et sel juhul, kuigi ma võiks kirjutada number, 765 00:31:44,490 --> 00:31:48,190 arvuti läheb mõtlevad, kui nii võib öelda, kui string - 766 00:31:48,190 --> 00:31:49,870 midagi, mis näeb välja nagu hulk, kuid on 767 00:31:49,870 --> 00:31:51,090 ei tegelikult arv. 768 00:31:51,090 --> 00:31:53,450 Aga see on tegelikult täiuslik segue, sest nüüd saame 769 00:31:53,450 --> 00:31:55,450 tegelikult üleminek kirjalikult programmid, mis 770 00:31:55,450 --> 00:31:56,730 kasutada muid andmetüüpe. 771 00:31:56,730 --> 00:32:01,840 >> Nii et peale kasutades sümboleid, või õigemini peale kasutades stringid, 772 00:32:01,840 --> 00:32:04,510 mõistma, et meil on ka teisi andmetüüpe C kui ka 773 00:32:04,510 --> 00:32:05,230 teistes keeltes. 774 00:32:05,230 --> 00:32:08,480 Char, nagu nimigi ütleb, on lihtsalt üks sümbol. 775 00:32:08,480 --> 00:32:12,150 Ujuk on ujukoma väärtust ja see on lihtsalt väljamõeldud 776 00:32:12,150 --> 00:32:14,470 viis öelda tegelikku arvu - midagi, millel on kohaga 777 00:32:14,470 --> 00:32:17,410 mõtet seda mõned numbrid vasakule ja / või paremale. 778 00:32:17,410 --> 00:32:21,370 Väravavahi on täisarv, mis on lihtsalt number, nagu 123. 779 00:32:21,370 --> 00:32:24,170 Ja nüüd veel huvitavalt on asjad topelt. 780 00:32:24,170 --> 00:32:28,540 Mida me ütleme topelt oli viimane kord? 781 00:32:28,540 --> 00:32:30,050 See on 64, õigus. 782 00:32:30,050 --> 00:32:33,560 Nii et arvestades tavaliselt Ujuk on 32-bitine - 783 00:32:33,560 --> 00:32:37,340 nii et see on see pikk mälu, ta kasutab 32 nulle ja ühtesid kuni 784 00:32:37,340 --> 00:32:40,530 esindavad väärtused - topelt on sõna otseses mõttes kaks korda suurem, mis 785 00:32:40,530 --> 00:32:43,810 tähendab, et sa saad ise esindada suurem numbrid või 786 00:32:43,810 --> 00:32:45,810 saate esindama täpsemad numbrid. 787 00:32:45,810 --> 00:32:48,690 Nii et sul võib olla mitu numbrit pärast koma, kuid 788 00:32:48,690 --> 00:32:51,520 kui mehe sõnul on video, isegi midagi lihtsat 789 00:32:51,520 --> 00:32:55,360 kontseptuaalselt nagu 1/3 ei saa olla esindatud just 790 00:32:55,360 --> 00:32:58,330 arvuti, sest lõpuks otsa bitti, ja 791 00:32:58,330 --> 00:33:02,510 Seega saab teha ainult .33333333 nii palju kordi, on 792 00:33:02,510 --> 00:33:05,050 mis hetkel sa lihtsalt pean ütlema, ma kaon esindus 793 00:33:05,050 --> 00:33:08,120 ruumi, ma pean lihtsalt nimetavad seda päeva ja esindada 794 00:33:08,120 --> 00:33:10,200 mõnevõrra ebatäpselt meeldib. 795 00:33:10,200 --> 00:33:11,110 Ja pikka - 796 00:33:11,110 --> 00:33:13,880 loll nimi, kuid see on, sest seal on andmetüüp, mida nimetatakse 797 00:33:13,880 --> 00:33:19,350 pikk C, mis juhuslikult on sageli 32 bitti, nagu 798 00:33:19,350 --> 00:33:21,670 int on 32 bitti, kuid pikk pikk on 799 00:33:21,670 --> 00:33:23,560 üldiselt 64 bitti. 800 00:33:23,560 --> 00:33:25,740 Nii see lihtsalt tähendab, et saate esindama suurem 801 00:33:25,740 --> 00:33:26,990 numbreid kui see. 802 00:33:26,990 --> 00:33:27,410 >> Hea küll. 803 00:33:27,410 --> 00:33:29,390 Nii et kui me tegelikult tahame alustada esindavad asju, me 804 00:33:29,390 --> 00:33:31,030 võib olla vaja keerukamaid tüüpi ning 805 00:33:31,030 --> 00:33:32,340 Sellepärast on meil string. 806 00:33:32,340 --> 00:33:36,450 Nii CS50 raamatukogu, et fail nimega cs50.h, oleme 807 00:33:36,450 --> 00:33:41,110 tegelikult deklareeritud andmete tüüp, nii et rääkida, mida nimetatakse jada, 808 00:33:41,110 --> 00:33:42,710 kuid string tegelikult ei ole. 809 00:33:42,710 --> 00:33:44,780 See on taas üks neist kihtidest läheme koor 810 00:33:44,780 --> 00:33:47,490 tagasi nädala või kaks ja see ära visata, ja tegelikult 811 00:33:47,490 --> 00:33:49,640 alla vaadata kapuuts, mida string tegelikult on, ja 812 00:33:49,640 --> 00:33:50,840 kuidas see esindatud. 813 00:33:50,840 --> 00:33:53,520 Töötame ka läheb pilk Boolean väärtused. 814 00:33:53,520 --> 00:33:56,040 >> Mis siis oli bool kontekstis Scratch? 815 00:33:59,154 --> 00:34:00,300 See on õige või vale. 816 00:34:00,300 --> 00:34:03,900 Nii et see on lihtsalt väärtus, mis on õige või vale, või välja lülitada, 1 või 817 00:34:03,900 --> 00:34:06,140 0, aga mida soovite vaadata kogu maailma. 818 00:34:06,140 --> 00:34:09,739 Nii C tänu CS50 raamatukogu, mis omakorda 819 00:34:09,739 --> 00:34:12,179 sisaldab teise raamatukogu all kapuuts, meil on 820 00:34:12,179 --> 00:34:14,909 juurdepääsu andmetüüp, mis kutsutakse bool, kes edastab 821 00:34:14,909 --> 00:34:18,730 sõna otseses mõttes võimaldab meil määrata väärtused õige või vale, et 822 00:34:18,730 --> 00:34:20,219 asjad programm. 823 00:34:20,219 --> 00:34:23,880 >> Nii lähme edasi siin ja kirjutada väike programm, mis 824 00:34:23,880 --> 00:34:26,330 ei midagi seotud numbrite asemel. 825 00:34:26,330 --> 00:34:29,840 Nii et lubage mul tagasi minna CS50 Appliance, lubage mul minna ja 826 00:34:29,840 --> 00:34:32,770 Uue faili siin nimetatakse - 827 00:34:32,770 --> 00:34:35,460 ütleme lihtsalt midagi lihtsat, nagu math.c. 828 00:34:38,270 --> 00:34:38,710 Hea küll. 829 00:34:38,710 --> 00:34:41,600 Ja nüüd tõusta tippu minu programm, ma olen 830 00:34:41,600 --> 00:34:42,510 teeme ikka - 831 00:34:42,510 --> 00:34:44,780 # Include , nii et võin kasutada 832 00:34:44,780 --> 00:34:46,860 printf, int main (void) - 833 00:34:46,860 --> 00:34:49,270 me tuleme tagasi, lõpuks, mis int tähendab 834 00:34:49,270 --> 00:34:52,389 siin, mida tühine tähendab siin, aga praegu, lihtsalt tean, et 835 00:34:52,389 --> 00:34:54,270 sa pead alustama programmid nagu see. 836 00:34:54,270 --> 00:34:56,280 Nüüd ma lähen edasi minna ja öelda midagi veidi 837 00:34:56,280 --> 00:35:02,110 erinev - printf ("Anna mulle number:" 838 00:35:02,110 --> 00:35:03,570 );. 839 00:35:03,570 --> 00:35:09,220 Siis ma teen int n = GetInt, sest see 840 00:35:09,220 --> 00:35:12,770 Tuleb välja, GetInt on teine ​​funktsioon CS50 raamatukogu 841 00:35:12,770 --> 00:35:14,060 lisaks getString. 842 00:35:14,060 --> 00:35:17,340 Ja nüüd ma teen midagi rumalat, nagu "tänu 843 00:35:17,340 --> 00:35:25,760 jaoks% d "jaoks kohaga täisarv, ja siis koma n ja 844 00:35:25,760 --> 00:35:26,620 siis tagastab 0. 845 00:35:26,620 --> 00:35:28,940 Nii et taas, tagastab 0 on midagi pistmist arvu ma olen 846 00:35:28,940 --> 00:35:30,080 küsib kasutaja jaoks. 847 00:35:30,080 --> 00:35:33,620 Lihtsalt tähistab lõpus, et kõik, arvatavasti, on hästi. 848 00:35:33,620 --> 00:35:36,290 >> Nii et lubage mul minna minu terminaliakent siin. 849 00:35:36,290 --> 00:35:39,590 Lubage mul tippida teha matemaatika, siseneda. 850 00:35:39,590 --> 00:35:41,360 Ja midagi on valesti. 851 00:35:41,360 --> 00:35:44,620 Tee matemaatika ei tööta. 852 00:35:44,620 --> 00:35:46,170 Siin on esimene meie veateateid. 853 00:35:46,170 --> 00:35:46,570 Miks? 854 00:35:46,570 --> 00:35:49,720 Vähe segasena, kuid - 855 00:35:49,720 --> 00:35:50,060 Jah. 856 00:35:50,060 --> 00:35:51,240 Nii cs50.h. 857 00:35:51,240 --> 00:35:53,900 Nii et taas, eriti varakult, siis saad kirjutada oma esimese 858 00:35:53,900 --> 00:35:56,590 programmi pset 1 osadeks, tööaega ja 859 00:35:56,590 --> 00:35:59,050 ausalt, see saab olema valdav mõnikord millised need asjad 860 00:35:59,050 --> 00:36:00,000 tegelikult öelda. 861 00:36:00,000 --> 00:36:01,890 Aga saate aru väga kiiresti nad hakkavad langema 862 00:36:01,890 --> 00:36:06,120 arvesse ämbrid, millega see tähendab, et olete lahkunud välja üks 863 00:36:06,120 --> 00:36:08,290 on # sisaldab ülaosas faili. 864 00:36:08,290 --> 00:36:10,960 Ja rõkkama, kompilaator on teavitab teid selle poolt 865 00:36:10,960 --> 00:36:14,090 öeldes, pigem luulelennuliselt kaudne deklaratsioon 866 00:36:14,090 --> 00:36:15,990 funktsioon GetInt on kehtetu. 867 00:36:15,990 --> 00:36:16,310 >> Hea küll. 868 00:36:16,310 --> 00:36:17,520 Nii et mida see tähendab? 869 00:36:17,520 --> 00:36:22,080 See lihtsalt tähendab, et olete vaikimisi, GetInt sisse 870 00:36:22,080 --> 00:36:24,850 selles mõttes, et sa ei ole selgesõnaliselt kuulutanud. 871 00:36:24,850 --> 00:36:27,300 Selgesõnaliselt deklareerida int, sa pead õpetama 872 00:36:27,300 --> 00:36:28,740 Rõkkama, et see on olemas. 873 00:36:28,740 --> 00:36:32,020 Ja väga lihtne lahendus, mis on õpetada seda 874 00:36:32,020 --> 00:36:34,780 sealhulgas selle teise faili, cs50.h, kell 875 00:36:34,780 --> 00:36:35,850 üles oma faili. 876 00:36:35,850 --> 00:36:40,380 Sest sõna otseses mõttes, mida # include ei ole see ütleb rõkkama 877 00:36:40,380 --> 00:36:44,030 päris palju minna leia faili nimega cs50.h, kopeerida, 878 00:36:44,030 --> 00:36:48,150 kleepige see automaatselt peale minu programm minu jaoks, 879 00:36:48,150 --> 00:36:50,850 ja seejärel teisendada lähtekoodi nulle ja ühtesid. 880 00:36:50,850 --> 00:36:52,850 Aga see oleks ilmselt väga tüütu, kui meie, inimesed pidid 881 00:36:52,850 --> 00:36:55,370 minna kopeerides ja kleepides need suured failid kogu aeg, 882 00:36:55,370 --> 00:36:58,540 nii # include lihtsalt teeb kõik, et automaatselt ilma 883 00:36:58,540 --> 00:37:01,550 muddying minu kood kellegi teise raamatukogu. 884 00:37:01,550 --> 00:37:06,370 Ja raamatukogu on lihtsalt üks fail funktsioone ja 885 00:37:06,370 --> 00:37:08,340 muid asju, mida keegi teine ​​on kirjutanud, et me oleme 886 00:37:08,340 --> 00:37:10,270 võimendades meie endi huvides. 887 00:37:10,270 --> 00:37:10,580 >> Hea küll. 888 00:37:10,580 --> 00:37:11,200 Proovime uuesti. 889 00:37:11,200 --> 00:37:12,250 Tee matemaatikat. 890 00:37:12,250 --> 00:37:13,120 Enter. 891 00:37:13,120 --> 00:37:13,530 Hea. 892 00:37:13,530 --> 00:37:14,880 Nii et tundub, et on töötanud. 893 00:37:14,880 --> 00:37:18,330 Nii et lubage mul nüüd jooksma matemaatika;. / Matemaatika. 894 00:37:18,330 --> 00:37:21,100 Sisesta annab mulle number, 123. 895 00:37:21,100 --> 00:37:22,620 Täname 123. 896 00:37:22,620 --> 00:37:24,490 Nüüd proovime teise nurga puhul. 897 00:37:24,490 --> 00:37:26,530 String on üsna helde, sest 898 00:37:26,530 --> 00:37:27,620 string võib olla mis iganes. 899 00:37:27,620 --> 00:37:28,910 Kas nägema numbrid, nägema 900 00:37:28,910 --> 00:37:30,600 tähemärki, näeb välja sõnad. 901 00:37:30,600 --> 00:37:31,900 Aga int on int. 902 00:37:31,900 --> 00:37:34,370 Nii et nüüd, kui ma olen raske kasutaja ja see ütleb: "Anna mulle 903 00:37:34,370 --> 00:37:38,730 arvu, "mis siis, kui ma üritan teha midagi 0,1? 904 00:37:38,730 --> 00:37:41,510 Noh, see on number, ja see on kooskõlas 905 00:37:41,510 --> 00:37:44,180 grammatika ma siin kasutatud, kuid all kapuuts, ma olen 906 00:37:44,180 --> 00:37:45,610 Muidugi, kasutades funktsiooni GetInt. 907 00:37:45,610 --> 00:37:46,610 >> Nii et vaatame, mis juhtub. 908 00:37:46,610 --> 00:37:48,250 Sisesta, proovige uuesti. 909 00:37:48,250 --> 00:37:48,560 Hea küll. 910 00:37:48,560 --> 00:37:50,570 Lubage mul olla raske ja lihtsalt Enter uuesti. 911 00:37:50,570 --> 00:37:51,700 Sisesta Enter. 912 00:37:51,700 --> 00:37:53,890 Nüüd tundub, et GetInt on natuke rohkem 913 00:37:53,890 --> 00:37:55,240 võimsam kui getString. 914 00:37:55,240 --> 00:37:58,540 Meie, personal, rakendatakse nii, et kui märkame 915 00:37:58,540 --> 00:38:02,100 te ei ole andnud meile int - ja int on kümnendmurruna 916 00:38:02,100 --> 00:38:04,785 sisaldab nulle, need, kahekesi, kolmekesi, püksid, viied, kuuekaupa 917 00:38:04,785 --> 00:38:05,540 seitsmed, kaheksad või üheksad. 918 00:38:05,540 --> 00:38:06,310 Ja ongi kõik. 919 00:38:06,310 --> 00:38:08,810 Ei koma, ühtegi märki, mitte kirjavahemärke. 920 00:38:08,810 --> 00:38:10,390 Tundub, et me peame koostööd tegema. 921 00:38:10,390 --> 00:38:13,680 Nii et lubage mul proovida neli, viis, kuus, ja mis saab mind läbi. 922 00:38:13,680 --> 00:38:16,760 Nii et tõesti, et anal siin, ma peaks ilmselt öelda: "Anna mulle 923 00:38:16,760 --> 00:38:20,310 täisarv ", et edastada kasutaja 924 00:38:20,310 --> 00:38:22,620 täpselt, mida ma kavatsen. 925 00:38:22,620 --> 00:38:24,090 >> Nüüd mõtleme selle all kapuuts. 926 00:38:24,090 --> 00:38:27,930 Me ei lähe vaatama, kuidas cs50.h rakendatakse täna, 927 00:38:27,930 --> 00:38:29,080 et raamatukogu. 928 00:38:29,080 --> 00:38:33,600 Aga kui ta hoiab öeldes proovige uuesti, uuesti, uuesti, mida programmeerimine 929 00:38:33,600 --> 00:38:36,970 ehitada ma arvatavasti kasutades all kapuuts 930 00:38:36,970 --> 00:38:39,000 rakendada seda? 931 00:38:39,000 --> 00:38:39,980 Nii lihtsalt loop, eks? 932 00:38:39,980 --> 00:38:41,930 Üks lihtsamaid ideid, mida nägime Scratch. 933 00:38:41,930 --> 00:38:45,050 Forever ehitada, kordamise konstruktsiooni. 934 00:38:45,050 --> 00:38:47,320 Arvatavasti selles programmis all kapuuts, isegi 935 00:38:47,320 --> 00:38:49,470 kuigi see on kirjutatud C ja mitte nullist, see läheb 936 00:38:49,470 --> 00:38:54,300 midagi, mida nimetatakse samaväärseks igavesti kui kasutaja ei ole 937 00:38:54,300 --> 00:38:58,710 sisestatud täisarv, öelda uuesti, uuesti, uuesti, uuesti, nii 938 00:38:58,710 --> 00:39:01,220 siis lõpuks, kui me ei saada täisarvu, siis 939 00:39:01,220 --> 00:39:02,970 murda läbi selle kontuuri. 940 00:39:02,970 --> 00:39:05,610 >> Mis siis muud funktsioonid saame kasutada siin CS50 raamatukogu? 941 00:39:05,610 --> 00:39:07,880 Noh, selline ilmne need, vähemalt põhineb 942 00:39:07,880 --> 00:39:09,570 andmetüübid, et me teame nüüd olemas. 943 00:39:09,570 --> 00:39:12,900 Me rakendatakse getString, GetInt, kuid kogu 944 00:39:12,900 --> 00:39:15,680 esimeste nädalate perspektiivis, võid kasutada ka GetFloat ja 945 00:39:15,680 --> 00:39:18,870 GetDouble ja GetLongLong, et saada täpselt 946 00:39:18,870 --> 00:39:20,030 andmetüübid, mida soovite. 947 00:39:20,030 --> 00:39:24,030 Sest võti detail on see, et erinevalt mõnest keeles, 948 00:39:24,030 --> 00:39:26,630 nagu Python ja Ruby, kus sa ei pea tingimata 949 00:39:26,630 --> 00:39:29,730 tunnistada andmete tüüpi muutuja - 950 00:39:29,730 --> 00:39:32,390 sa ei pea ütleb arvuti, mida sellist kraami 951 00:39:32,390 --> 00:39:34,000 sa lähed panna muutuja - 952 00:39:34,000 --> 00:39:36,640 C, peate olema kunagi nii täpne. 953 00:39:36,640 --> 00:39:40,060 Nii et kui soovite muutuja nimega n, patakas ladustamine 954 00:39:40,060 --> 00:39:42,900 et sel juhul juhtub olema 32 bitti, kokkuleppeliselt te 955 00:39:42,900 --> 00:39:45,660 pean ütlema arvuti, et need bitid on 956 00:39:45,660 --> 00:39:47,840 lähed salvestada arv - 957 00:39:47,840 --> 00:39:50,630 ei iseloomu, ei ole string, mitte sularahaga. 958 00:39:50,630 --> 00:39:52,620 Ja see lahendab probleemi, me tõhusalt 959 00:39:52,620 --> 00:39:53,760 sattus eelmisel nädalal. 960 00:39:53,760 --> 00:39:57,050 Kui me kasutame nulle ja ühtesid numbreid esindama mitte ainult 961 00:39:57,050 --> 00:40:00,770 numbrid aga As ja Bs ja Cs, kuidas maailmas on 962 00:40:00,770 --> 00:40:03,460 arvuti läheb teame, et see muster bitti tegelikult 963 00:40:03,460 --> 00:40:07,650 esindab arv 65, vastandina esindavad 964 00:40:07,650 --> 00:40:09,860 kirja, mis juhuslikult, vastavalt 965 00:40:09,860 --> 00:40:13,440 ASCII, mäletate, oli see võrdub 65? 966 00:40:13,440 --> 00:40:16,550 >> Nii et need andmetüübid luua kontekst arvutiga, nii 967 00:40:16,550 --> 00:40:18,810 et ta teab, kui need bitid tuleks tõlgendada 968 00:40:18,810 --> 00:40:23,660 int või string. 969 00:40:23,660 --> 00:40:26,500 Kõik küsimused, siis sellest? 970 00:40:26,500 --> 00:40:28,149 Jah? 971 00:40:34,780 --> 00:40:35,270 David J. Malan: Hea küsimus. 972 00:40:35,270 --> 00:40:39,140 Kui me võtame välja stdio.h, me salvestada faili - 973 00:40:39,140 --> 00:40:44,360 lubage mul minna terminaliakent ja kestab teha matemaatika, zoom 974 00:40:44,360 --> 00:40:45,530 ja sisestage - 975 00:40:45,530 --> 00:40:47,700 nüüd ma saan erinevaid viga, sest ma olen kaudselt 976 00:40:47,700 --> 00:40:49,650 kuulutatakse missugust ülesannet nüüd? 977 00:40:49,650 --> 00:40:50,700 Printf. 978 00:40:50,700 --> 00:40:52,970 Nii et nüüd ma olen loonud uue probleemi, mille lahendamine on 979 00:40:52,970 --> 00:40:53,890 sisuliselt sama. 980 00:40:53,890 --> 00:40:55,365 Ma pean tagasi jalga panna. 981 00:40:55,365 --> 00:40:56,615 Sihtrühm: [kuuldamatu] 982 00:41:03,534 --> 00:41:04,030 David J. Malan: Oh. 983 00:41:04,030 --> 00:41:04,850 Nii et kui ma võtan välja - 984 00:41:04,850 --> 00:41:05,360 Okei, jah. 985 00:41:05,360 --> 00:41:08,960 Nii et kui ma eemaldan standard I / O raamatukogu kaasamise üles 986 00:41:08,960 --> 00:41:12,020 siin ja siis sa ütled kui ma vabaneda printf, saada 987 00:41:12,020 --> 00:41:13,450 lahti printf? 988 00:41:13,450 --> 00:41:13,810 Jah. 989 00:41:13,810 --> 00:41:18,450 See peaks töötama, sest ma ei kasuta enam üldse - Ups. 990 00:41:18,450 --> 00:41:20,110 Kas ma lihtsalt valetada? 991 00:41:20,110 --> 00:41:21,650 Oh, okei. 992 00:41:21,650 --> 00:41:25,640 See ei toimi, sest uus viga me lihtsalt sisse. 993 00:41:25,640 --> 00:41:28,390 Ja see üks on natuke rohkem iseenesestmõistetavad. 994 00:41:28,390 --> 00:41:29,440 >> Milles probleem? 995 00:41:29,440 --> 00:41:30,680 Kasutamata muutuja n. 996 00:41:30,680 --> 00:41:34,040 Nii et see viga on tingitud meie olles seadistatud 997 00:41:34,040 --> 00:41:36,640 Seade on eriti pedantne, tõesti kisa 998 00:41:36,640 --> 00:41:39,060 sa iga võimalikku viga, isegi kui see on selline 999 00:41:39,060 --> 00:41:41,950 mitte-fataalne viga niimoodi - kas see on tõesti nii suur 1000 00:41:41,950 --> 00:41:44,820 tegeleda, et ma eraldatud int, pane number see ja seejärel 1001 00:41:44,820 --> 00:41:46,030 lihtsalt ei teinud midagi sellega? 1002 00:41:46,030 --> 00:41:47,020 Nii funktsionaalselt, ei. 1003 00:41:47,020 --> 00:41:50,410 See ei kavatse murda programm. 1004 00:41:50,410 --> 00:41:51,490 See on lihtsalt tobe, eks? 1005 00:41:51,490 --> 00:41:54,220 Ei ole väärtust, kes palus, et number, salvestatakse 1006 00:41:54,220 --> 00:41:56,370 see muutujale, kui sa oled kunagi midagi teha 1007 00:41:56,370 --> 00:41:58,000 seda, kas printida või salvestada. 1008 00:41:58,000 --> 00:42:00,270 Nii et sel juhul rõkkama on teadvustamine nii palju, ja 1009 00:42:00,270 --> 00:42:02,010 ta ütleb kasutamata muutuja n. 1010 00:42:02,010 --> 00:42:05,380 >> Nii saame määrata seda kui me tõesti tahame. 1011 00:42:05,380 --> 00:42:07,250 Aga jälle, see ei ole hea programmeerimise nüüd. 1012 00:42:07,250 --> 00:42:09,310 Ma võiks lihtsalt teha - 1013 00:42:09,310 --> 00:42:12,060 minna siin, lubage mul selge ekraan, teha matemaatikat. 1014 00:42:12,060 --> 00:42:13,090 See toimib. 1015 00:42:13,090 --> 00:42:18,110 Nüüd ma saan käivitada mu matemaatika programm, võtab sisend - 1016 00:42:18,110 --> 00:42:18,700 Noh, see oli halb. 1017 00:42:18,700 --> 00:42:23,450 Teeb panuse, ja see on kõik see, käesoleval juhul. 1018 00:42:23,450 --> 00:42:25,220 >> Nii et tegelikult, proovime ühte teist nurka nii, et me 1019 00:42:25,220 --> 00:42:26,300 ei mõelnud varem. 1020 00:42:26,300 --> 00:42:28,220 Sel juhul - siin, lähme tagasi üks, mis on 1021 00:42:28,220 --> 00:42:29,500 natuke rohkem kasutajasõbralikumaks. 1022 00:42:29,500 --> 00:42:32,580 Laske mul minna siia tagasi ja käivitage teha matemaatika uuesti. 1023 00:42:32,580 --> 00:42:34,190 Oih, mida ma valesti tegin? 1024 00:42:34,190 --> 00:42:35,400 Sain tagasi pöörata veelgi. 1025 00:42:35,400 --> 00:42:36,390 Okei. 1026 00:42:36,390 --> 00:42:38,490 Nüüd oleme tagasi algne olek, kus kõik 1027 00:42:38,490 --> 00:42:39,990 on loodetavasti hästi. 1028 00:42:39,990 --> 00:42:43,360 Ja nüüd, kui ma saan matemaatika, 123 tundub töötavat. 1029 00:42:43,360 --> 00:42:46,010 Kuid see ei ole tõesti tõhus tõend, et lihtsalt öelda 1030 00:42:46,010 --> 00:42:47,930 okei, mis töötab. 1031 00:42:47,930 --> 00:42:49,120 789, mis töötab. 1032 00:42:49,120 --> 00:42:50,100 Aega esitada. 1033 00:42:50,100 --> 00:42:51,870 Sest seal on teises nurgas juhtudel siin. 1034 00:42:51,870 --> 00:42:55,040 String tegelikult ei anna meile palju pahandust kirjutades 1035 00:42:55,040 --> 00:42:56,510 kogu palju tähemärke. 1036 00:42:56,510 --> 00:42:59,580 Aga kui ma kirjuta see? 1037 00:42:59,580 --> 00:43:04,850 Lööb number 1 kogu palju, palju siin - 1038 00:43:04,850 --> 00:43:06,300 Olgu, see läheb natuke igav, nii et ma lähen 1039 00:43:06,300 --> 00:43:10,040 lõpe siin, ja ma lähen Enter. 1040 00:43:10,040 --> 00:43:11,290 >> Mis kurat nüüd juhtus? 1041 00:43:14,110 --> 00:43:17,680 Nii et see võib tegelikult seletada. 1042 00:43:17,680 --> 00:43:18,920 Nii kulus seda binaarne? 1043 00:43:18,920 --> 00:43:21,130 Hea mõte, aga ei, see ei ole asjaolu, et ta võttis selle 1044 00:43:21,130 --> 00:43:22,815 nagu binaarsed, sest tõepoolest, see oli lihtsalt selline 1045 00:43:22,815 --> 00:43:23,080 kokkusattumus. 1046 00:43:23,080 --> 00:43:23,930 Me saame seda teha uuesti. 1047 00:43:23,930 --> 00:43:26,530 Seega puudub 2 binaarne süsteem, mis on 1048 00:43:26,530 --> 00:43:27,420 ilmselt piisavalt niikuinii. 1049 00:43:27,420 --> 00:43:28,780 Enter. 1050 00:43:28,780 --> 00:43:30,140 Nii et see ei olnud probleem. 1051 00:43:30,140 --> 00:43:31,390 Mis veel? 1052 00:43:34,650 --> 00:43:35,400 Täpselt. 1053 00:43:35,400 --> 00:43:37,830 >> Nii et mõtle sellele, mida int tegelikult on. 1054 00:43:37,830 --> 00:43:40,970 See on 32 bitti, mis kokku on tõlgendatud 1055 00:43:40,970 --> 00:43:42,090 nagu number. 1056 00:43:42,090 --> 00:43:44,730 Kui teil on 32 bitti, mis tähendab, et iga bitti võib olla 1057 00:43:44,730 --> 00:43:46,690 0 või 1, 0 või 1. 1058 00:43:46,690 --> 00:43:49,090 See tähendab, seal on kaks võimalust seda natuke, 1059 00:43:49,090 --> 00:43:51,140 kaks võimalust seda, on kaks võimalust selle 1060 00:43:51,140 --> 00:43:52,570 natuke - nii see on 2 korda 2 korda - 1061 00:43:52,570 --> 00:43:55,480 nii et on 2 kuni 32 võimsus on kokku 1062 00:43:55,480 --> 00:43:58,960 permutatsiooni nulle ja ühtesid kui teil on 32 1063 00:43:58,960 --> 00:44:01,400 kohatäited, nulli või need, teie ees. 1064 00:44:01,400 --> 00:44:04,250 Nii et kui mul on 2 kuni 32, matemaatiliselt, see on, mida? 1065 00:44:07,080 --> 00:44:07,840 Nii et see on palju. 1066 00:44:07,840 --> 00:44:09,910 See on 4 miljardit anda või võtta. 1067 00:44:09,910 --> 00:44:13,510 Ja 4000000000 ei tundu olema, mida trükiti siin. 1068 00:44:13,510 --> 00:44:16,290 Tegelikult see näeb välja 2 miljardit eurot. 1069 00:44:16,290 --> 00:44:17,970 Kuid see ei ole juhus. 1070 00:44:17,970 --> 00:44:21,590 Asjaolu, et arvuti on valesti minu suur arv, 1071 00:44:21,590 --> 00:44:24,260 minu tohutu jada ühtesid ja siis mu tohutu järjekord kahekesi 1072 00:44:24,260 --> 00:44:26,880 kui umbes 2 miljardit on selgitatud kuidas? 1073 00:44:30,250 --> 00:44:32,180 Seal on piir int. 1074 00:44:32,180 --> 00:44:34,970 Seal on kindlasti suurim väärtus, mida saab esindada. 1075 00:44:34,970 --> 00:44:36,370 Aga see on tavaliselt 4000000000, eks? 1076 00:44:36,370 --> 00:44:39,100 Kui 2 32 on ligikaudu 4 miljardit eurot, mis tundub 1077 00:44:39,100 --> 00:44:40,350 See on suurim number. 1078 00:44:42,420 --> 00:44:45,240 Nii ei jäänud, kuid hea mõte. 1079 00:44:45,240 --> 00:44:46,340 Negatiivsed arvud. 1080 00:44:46,340 --> 00:44:49,570 Nii et kui teil on 4000000000 võimalik asju saab 1081 00:44:49,570 --> 00:44:52,970 esindada nende erinevate kombinatsioonide 32 0s ja 1082 00:44:52,970 --> 00:44:55,600 1s, noh, siis loogiline, et meie, inimesed, võiksite 1083 00:44:55,600 --> 00:44:57,110 esindada mitte ainult positiivsed täisarvud 1084 00:44:57,110 --> 00:44:58,240 kuid taisarvud. 1085 00:44:58,240 --> 00:45:00,410 Ja tõepoolest, see on eeldusel, et C teeb. 1086 00:45:00,410 --> 00:45:03,550 Nii 32 bitti, saab esindada jämedalt negatiivne 2 1087 00:45:03,550 --> 00:45:06,630 miljardi kõik viis kuni positiivseid 2 miljardit eurot. 1088 00:45:06,630 --> 00:45:08,750 Ja nii sel juhul, mida me tegelikult näeme, on lihtsalt 1089 00:45:08,750 --> 00:45:13,600 kulgev suutlikkust meie täisarv, ja meil on, nii 1090 00:45:13,600 --> 00:45:15,860 rääkida, ülevoolavalt täisarv. 1091 00:45:15,860 --> 00:45:19,180 Oleme püüdnud tuupima rohkem bitte sinna peale saab tegelikult sobivad. 1092 00:45:19,180 --> 00:45:22,960 Nii et lõpptulemus on meil sisuliselt on kõik 1 bitti. 1093 00:45:22,960 --> 00:45:25,280 Oleme keerata kõik meie bitti, oleme püüdnud esindada 1094 00:45:25,280 --> 00:45:27,630 Kõige rohkem võimalik, kuid see on selgelt ei pea 1095 00:45:27,630 --> 00:45:30,960 piisavalt suur, et esindada kahte asja ma olen lihtsalt kirjutada logida 1096 00:45:30,960 --> 00:45:31,730 Jah? 1097 00:45:31,730 --> 00:45:32,980 Sihtrühm: [kuuldamatu] 1098 00:45:37,230 --> 00:45:37,830 >> David J. Malan: Hea küsimus. 1099 00:45:37,830 --> 00:45:40,080 Miks me ei võiks lihtsalt esindavad et negatiivne 1100 00:45:40,080 --> 00:45:41,500 kirjutama kui lihtsalt iseloomu? 1101 00:45:41,500 --> 00:45:44,200 Nii et me absoluutselt suutnud, võiksime päästa 1102 00:45:44,200 --> 00:45:45,470 täiendavaid natuke. 1103 00:45:45,470 --> 00:45:49,100 Aga sa ikkagi ise esindada, et kriips, ja 1104 00:45:49,100 --> 00:45:50,700 et läheb teile maksma vähemalt midagi, 1105 00:45:50,700 --> 00:45:52,220 eeldatavasti veidi. 1106 00:45:52,220 --> 00:45:55,610 Nii et jah, me võiks olla 32 bitti kasutatakse meie number, kuid nüüd 1107 00:45:55,610 --> 00:45:57,610 vajame teist natuke kasutatud meie kriips 1108 00:45:57,610 --> 00:45:58,810 sümbol, miinusmärgiga. 1109 00:45:58,810 --> 00:46:01,470 Nii et nüüd on meil 33 bit väärtused, mida me võiksime teha, aga see on 1110 00:46:01,470 --> 00:46:02,570 lihtsalt ei tee seda tehakse. 1111 00:46:02,570 --> 00:46:05,140 Tegime otsuse kõne aastat tagasi, 32 bitti on omamoodi 1112 00:46:05,140 --> 00:46:06,170 mõõtühik siin. 1113 00:46:06,170 --> 00:46:08,120 Nii et me ei kavatse kasutada üks neist bitti tõhusalt 1114 00:46:08,120 --> 00:46:12,950 esindada negatiivsus, ja 31 bitti esindama arvu. 1115 00:46:12,950 --> 00:46:15,550 Muud küsimused? 1116 00:46:15,550 --> 00:46:15,670 Hea küll. 1117 00:46:15,670 --> 00:46:16,030 See on palju. 1118 00:46:16,030 --> 00:46:17,930 Miks me ei võiks minna edasi ja võtta meie viieminutiline paus siin? 1119 00:46:23,580 --> 00:46:24,270 >> Hea küll. 1120 00:46:24,270 --> 00:46:31,250 Nii et taas, mitte overemphasize matemaatika rakendusi 1121 00:46:31,250 --> 00:46:33,840 programmeerimine, lähme lihtsalt sikutama välja see üks näide 1122 00:46:33,840 --> 00:46:36,590 enne Astume muud skeemid, lihtsalt sellepärast, et see 1123 00:46:36,590 --> 00:46:39,430 illustreerivad mõned ühised komistuskivi punkte mõned 1124 00:46:39,430 --> 00:46:41,520 põhitõdesid, kui on tegemist kirjalikult programmid. 1125 00:46:41,520 --> 00:46:44,360 Sellisel juhul teeb aritmeetilised avaldised et mõned 1126 00:46:44,360 --> 00:46:48,010 huvitav olulised süntaks. 1127 00:46:48,010 --> 00:46:50,430 >> Nii et see on lihtsalt valem, mille abil saame muuta 1128 00:46:50,430 --> 00:46:52,690 temperatuurid Fahrenheiti Celsiuse järgi. 1129 00:46:52,690 --> 00:46:54,600 Kui te ei mäleta, see on lihtsalt valem. 1130 00:46:54,600 --> 00:46:58,870 Nii et kui me lülitame sisse Fahrenheiti väärtus 32 kraadi, mis on 1131 00:46:58,870 --> 00:47:02,850 külmutamine, mis saab olema 32 miinus 32 on 0, ja tõepoolest, 1132 00:47:02,850 --> 00:47:05,130 0 Celsiuse järgi on ka külmutamiseks. 1133 00:47:05,130 --> 00:47:08,210 Nii kiire meelerahu vaadata seal - see on tuttav valem. 1134 00:47:08,210 --> 00:47:10,880 Lubage mul minna üle seadme, kuigi ja alustada 1135 00:47:10,880 --> 00:47:13,920 kirjalikult programmi nimega, nagu, f2c; "Fahrenheiti 1136 00:47:13,920 --> 00:47:15,920 Celsiuse dot c ". 1137 00:47:15,920 --> 00:47:18,930 Ja kuni ülaosas siin, ma lähen alustad # include 1138 00:47:18,930 --> 00:47:22,190 stdio.h, ja ma teen int main (void), ja 1139 00:47:22,190 --> 00:47:24,680 Jällegi, me tuleme tulevikus, milliseid int tähendab 1140 00:47:24,680 --> 00:47:26,820 ja millised tühine tähendab seal. 1141 00:47:26,820 --> 00:47:28,770 Ja nüüd lubage mul minna ja rakendama programmi, et 1142 00:47:28,770 --> 00:47:31,170 sisuliselt teeb see muundumine meile. 1143 00:47:31,170 --> 00:47:36,830 >> Nii printf, oletame, temperatuur Fahrenheiti järgi. 1144 00:47:36,830 --> 00:47:40,140 Ja siis lubage mul minna ja saada raha kasutaja. 1145 00:47:40,140 --> 00:47:43,120 Millist väärtust ma peaksin kasutaja, kui ma tahan 1146 00:47:43,120 --> 00:47:45,620 neid mulle temperatuuri Fahrenheiti? 1147 00:47:45,620 --> 00:47:48,090 Jah? 1148 00:47:48,090 --> 00:47:50,090 Mida soovitaksite? 1149 00:47:50,090 --> 00:47:50,410 Jah. 1150 00:47:50,410 --> 00:47:51,960 Nii Ujuk tundub päris mõistlik. 1151 00:47:51,960 --> 00:47:53,950 Meil on jällegi vaid mõned võimalused, mis 1152 00:47:53,950 --> 00:47:55,310 oleme näinud siiani. 1153 00:47:55,310 --> 00:48:00,100 Meil on asjad nagu paalia, double, float, int, long pikk, 1154 00:48:00,100 --> 00:48:01,150 bool, string. 1155 00:48:01,150 --> 00:48:03,510 Nii et need, float tundub päris mõistlik. 1156 00:48:03,510 --> 00:48:06,340 Me võiksime kasutada topelt, eks, sest kui me tõesti tahame 1157 00:48:06,340 --> 00:48:07,580 esindab inimese temperatuur - 1158 00:48:07,580 --> 00:48:10,730 98,60000 - 1159 00:48:10,730 --> 00:48:12,990 saaksime kasutada 64 bitti teha, kuid tundub, nagu 1160 00:48:12,990 --> 00:48:14,200 overkill temperatuur. 1161 00:48:14,200 --> 00:48:16,380 Nii Lähme koos sularahaga. 1162 00:48:16,380 --> 00:48:18,100 Nüüd on mul vaja muutuja. 1163 00:48:18,100 --> 00:48:20,500 Lihtsalt hoida asjad lihtsad, ma lähen kutsun seda f, aga ma 1164 00:48:20,500 --> 00:48:23,370 võiks sama õigesti nimetan seda temperatuuri, 1165 00:48:23,370 --> 00:48:24,600 kuid kas on hea. 1166 00:48:24,600 --> 00:48:27,610 Nii float f = GetFloat. 1167 00:48:27,610 --> 00:48:30,220 Niipea, kui ma nüüd oleme otsustanud kasutada GetFloat, kuigi ma 1168 00:48:30,220 --> 00:48:33,340 vaja teha ühe korrektsiooni. 1169 00:48:33,340 --> 00:48:33,720 Jah. 1170 00:48:33,720 --> 00:48:37,460 Seega peame # include , muidu kompilaator on 1171 00:48:37,460 --> 00:48:39,000 läheb kisa meile. 1172 00:48:39,000 --> 00:48:41,720 Nüüd, kui mul on ujuk, lubage mul minna ja teha 1173 00:48:41,720 --> 00:48:42,460 vahetamisega. 1174 00:48:42,460 --> 00:48:44,980 >> Nii et esimene, las ma ka sattuda harjumus siin 1175 00:48:44,980 --> 00:48:46,310 Kommenteerides minu koodi. 1176 00:48:46,310 --> 00:48:49,820 Nii et taas, kommentaar on lihtsalt märge inimese, mis on 1177 00:48:49,820 --> 00:48:52,600 ei kuulu programm iseenesest, kuid see üks, mis aitab teil 1178 00:48:52,600 --> 00:48:55,010 mõista, mida sa tegid järgmisel hommikul või järgmisel 1179 00:48:55,010 --> 00:48:57,570 kuus, see aitab teie õpetamise mehe aru, mida sa tegid 1180 00:48:57,570 --> 00:48:59,230 või mida sa ette teha, nii et see on 1181 00:48:59,230 --> 00:49:00,950 üldiselt väga häid tavasid. 1182 00:49:00,950 --> 00:49:02,940 Iga paar rida koodi, kirjutada kommentaari 1183 00:49:02,940 --> 00:49:04,490 ise või teie kolleeg. 1184 00:49:04,490 --> 00:49:08,460 Nii et siin, ma lähen ütlen, "Küsi kasutajalt temperatuur." 1185 00:49:08,460 --> 00:49:10,890 Ei pea olema täielik lause, vaid lühikese fraasi. 1186 00:49:10,890 --> 00:49:14,270 Aga mõte kommenteerib C on see, et iga teie 1187 00:49:14,270 --> 00:49:17,980 märkusi tuleks anda teile - või, ütleme, TF või kolleeg - 1188 00:49:17,980 --> 00:49:21,290 koorima oma programmi ja teavad täpselt, mida ta teeb, mida ei 1189 00:49:21,290 --> 00:49:24,650 nii palju koodi lugemine, kuid lugedes kommentaare, mis 1190 00:49:24,650 --> 00:49:26,220 peaks olema lühike ja selge. 1191 00:49:26,220 --> 00:49:29,030 Olgu, nüüd las ma minna ja öelda: "Convert 1192 00:49:29,030 --> 00:49:32,660 Fahrenheiti Celsiuse järgi. "Ma lähen edasi minna ja teha, 1193 00:49:32,660 --> 00:49:34,340 oletame, float c. 1194 00:49:34,340 --> 00:49:36,610 Hoiame Celsiuse kui ujukoma väärtus. 1195 00:49:36,610 --> 00:49:37,630 >> Ja las ma võtke torkehaav seda. 1196 00:49:37,630 --> 00:49:40,350 Valem on taas siin. 1197 00:49:40,350 --> 00:49:45,510 Nagu 09/05 korda F miinus 32. 1198 00:49:45,510 --> 00:49:46,360 Nii et teeme seda. 1199 00:49:46,360 --> 00:49:50,450 Nii 5 jagatud 9, miinus - 1200 00:49:50,450 --> 00:49:52,330 Oih, ma messed see üles juba. 1201 00:49:52,330 --> 00:49:53,070 Times. 1202 00:49:53,070 --> 00:49:56,550 Nii 09/05 korda F miinus 32. 1203 00:49:56,550 --> 00:49:59,650 Nii et F miinus 32, semikoolon. 1204 00:49:59,650 --> 00:50:02,000 Ja nüüd, siin, ma lähen edasi minna 1205 00:50:02,000 --> 00:50:03,220 ja öelda, printida tulemust. 1206 00:50:03,220 --> 00:50:05,160 Ja see osa on lihtne. Printf. 1207 00:50:05,160 --> 00:50:07,980 Kuidas minna umbes trükkimiseks? 1208 00:50:07,980 --> 00:50:16,890 Noh, ma võiks öelda: "See number Celsiuse järgi on% f \ n", 1209 00:50:16,890 --> 00:50:18,060 ainult mõned esteetika. 1210 00:50:18,060 --> 00:50:20,450 Ja mis siis raha ma tahan ühendada siin printf poolt 1211 00:50:20,450 --> 00:50:21,360 Teine argument? 1212 00:50:21,360 --> 00:50:21,650 Okei. 1213 00:50:21,650 --> 00:50:22,540 Nii lihtsalt c. 1214 00:50:22,540 --> 00:50:24,760 Nii et hakkame koos seda ja siis lihtsalt tagasi 0. 1215 00:50:24,760 --> 00:50:25,960 Jällegi, see on midagi pistmist matemaatikat. 1216 00:50:25,960 --> 00:50:27,610 See tähendab lihtsalt, et kõik on hästi. 1217 00:50:27,610 --> 00:50:31,210 >> Nüüd on see õige, see programm? 1218 00:50:31,210 --> 00:50:31,520 Hea küll. 1219 00:50:31,520 --> 00:50:33,630 Nii et ma olen teinud vigu. 1220 00:50:33,630 --> 00:50:35,980 Isegi kui sa ei tea, mida programmeerimine on, saate sortida 1221 00:50:35,980 --> 00:50:37,120 ja järeldavad tagasi algkool mida 1222 00:50:37,120 --> 00:50:38,740 vigu siin olla. 1223 00:50:38,740 --> 00:50:40,050 Mis on üks esimesi? 1224 00:50:40,050 --> 00:50:41,256 Sihtrühm: [kuuldamatu] 1225 00:50:41,256 --> 00:50:41,660 David J. Malan: Jah. 1226 00:50:41,660 --> 00:50:42,940 Nii et meil puuduvad sulud. 1227 00:50:42,940 --> 00:50:45,420 See oli tahtlik, et ma tegin sulgudes Keynote 1228 00:50:45,420 --> 00:50:48,130 lükake siia, sest seal on tegelikult see mõiste selleks, 1229 00:50:48,130 --> 00:50:51,590 tegevusest või pretsedendist, kus teatavad toimingud - 1230 00:50:51,590 --> 00:50:52,890 korrutamine - 1231 00:50:52,890 --> 00:50:56,000 on suurem siduvad, on suurem pretsedendist, kui asjad 1232 00:50:56,000 --> 00:50:58,050 nagu lisamise või mahaarvamise. 1233 00:50:58,050 --> 00:51:00,550 Nii et me oleme teinud seda juba aastaid just täpselt selgeks 1234 00:51:00,550 --> 00:51:02,840 mida matemaatilist operatsiooni tuleks teha esimene. 1235 00:51:02,840 --> 00:51:05,010 Nii et ma peaks ilmselt jäljendada täpselt seda. 1236 00:51:05,010 --> 00:51:08,990 Muidu arvuti on arvatavasti läheb püüdma teha 1237 00:51:08,990 --> 00:51:13,090 midagi lõhe 5 9, siis korrutatakse F, lahutage 1238 00:51:13,090 --> 00:51:14,850 32 alates kogu asi. 1239 00:51:14,850 --> 00:51:16,480 Mis ei ole tegelikult see, mida me tahame teha. 1240 00:51:16,480 --> 00:51:17,340 Nii et olgem parenthesize. 1241 00:51:17,340 --> 00:51:20,860 Olgem lisada oma sulud siia, sulgudes siin. 1242 00:51:20,860 --> 00:51:22,670 Paneme selle siia. 1243 00:51:22,670 --> 00:51:25,130 Siin ma lihtsalt märkasin teise viga tegin mööda teed. 1244 00:51:25,130 --> 00:51:25,680 Jah? 1245 00:51:25,680 --> 00:51:26,930 Sihtrühm: [kuuldamatu] 1246 00:51:29,632 --> 00:51:30,130 >> David J. Malan: Ah. 1247 00:51:30,130 --> 00:51:30,470 Hea. 1248 00:51:30,470 --> 00:51:32,400 Nii et meil on tegelikult sama täisarv 1249 00:51:32,400 --> 00:51:34,020 jagunemise küsimusega enne. 1250 00:51:34,020 --> 00:51:35,800 Ma korrigeerida, et vaatame, mis sümptom on. 1251 00:51:35,800 --> 00:51:36,990 Aga me ei kavatse on õige 1252 00:51:36,990 --> 00:51:37,680 muud viga siin. 1253 00:51:37,680 --> 00:51:38,015 Jah? 1254 00:51:38,015 --> 00:51:39,540 Sihtrühm: [kuuldamatu] 1255 00:51:39,540 --> 00:51:40,070 David J. Malan: Jah. 1256 00:51:40,070 --> 00:51:43,130 Nii loll viga tegin, kuid uskumatult oluline. 1257 00:51:43,130 --> 00:51:45,870 Arvuti ei kavatse lihtsalt silmi kinni pigistama ja lase 1258 00:51:45,870 --> 00:51:48,770 mul kasutada kapitali F, kui ma tegelikult deklareeritud muutuja 1259 00:51:48,770 --> 00:51:51,360 kui väiketähti f siia, reas 8. 1260 00:51:51,360 --> 00:51:54,470 Nii et mul on vaja korrigeerida line 11 minu kapitalisatsiooni, mis 1261 00:51:54,470 --> 00:51:56,820 hetk tagasi oli kapital F kogemata. 1262 00:51:56,820 --> 00:51:57,610 Aga siin? 1263 00:51:57,610 --> 00:51:59,980 Kas see peaks olema väiketähtedega ka? 1264 00:51:59,980 --> 00:52:02,260 See peaks olema, kuid see on kokkusattumus. 1265 00:52:02,260 --> 00:52:05,070 See% f on midagi pistmist muutuja. 1266 00:52:05,070 --> 00:52:07,980 Nii lihtsalt olema super selge siin, lubage mul minna ja 1267 00:52:07,980 --> 00:52:10,710 Nimeta lühidalt "temperatuuri." Lubage mul ümber 1268 00:52:10,710 --> 00:52:15,050 see "temperatuuri." Las ma ei nimeta seda. 1269 00:52:15,050 --> 00:52:18,180 Sest jällegi% f maailmas tähendab, "ujukoma väärtus." 1270 00:52:18,180 --> 00:52:19,950 Pole midagi pistmist minu muutuja. 1271 00:52:19,950 --> 00:52:23,080 Aga "temperatuur" kogu koht on natuke sõnaohter, 1272 00:52:23,080 --> 00:52:25,370 nii et ma lähen tagasi oma väike "f" s. 1273 00:52:25,370 --> 00:52:27,890 >> Nüüd lubage mul minna kuni mu akna siin. 1274 00:52:27,890 --> 00:52:29,190 Tee f2c - 1275 00:52:29,190 --> 00:52:31,200 mis oli jällegi suvalise nime ma 1276 00:52:31,200 --> 00:52:32,590 andis sellele failile. 1277 00:52:32,590 --> 00:52:33,690 Tundub, et on koostatud. 1278 00:52:33,690 --> 00:52:35,080 Ma jooksen f2c. 1279 00:52:35,080 --> 00:52:35,780 Enter. 1280 00:52:35,780 --> 00:52:37,786 Temperatuuri Fahrenheiti - teeme lihtne. 1281 00:52:37,786 --> 00:52:39,370 32. 1282 00:52:39,370 --> 00:52:40,910 OK, parandage. 1283 00:52:40,910 --> 00:52:45,910 Aga kui ma nüüd tegema 212 keeva - 1284 00:52:45,910 --> 00:52:46,630 neetud. 1285 00:52:46,630 --> 00:52:47,030 Hea küll. 1286 00:52:47,030 --> 00:52:50,780 Niisiis, selgelt vale, kui teie TF püüab 1287 00:52:50,780 --> 00:52:51,800 vähemalt kaks väärtust. 1288 00:52:51,800 --> 00:52:53,340 Mis siis probleem? 1289 00:52:53,340 --> 00:52:55,970 Noh, sa juba näpuga näidata, mida on küsimus. 1290 00:52:55,970 --> 00:52:57,600 Aga miks on see nii? 1291 00:52:57,600 --> 00:53:00,630 Siin üleval, kui teen matemaatika 5. jagatud 9. 1292 00:53:00,630 --> 00:53:02,190 Nii et põhimõtteliselt, see on täiesti õige. 1293 00:53:02,190 --> 00:53:03,690 Täielikus kooskõlas valem. 1294 00:53:03,690 --> 00:53:05,940 Aga arvutid teha ainult täpselt, mida sa 1295 00:53:05,940 --> 00:53:06,760 ütle neile, mida teha. 1296 00:53:06,760 --> 00:53:08,940 Ja mida me tegelikult ütleb arvuti, siin on 1297 00:53:08,940 --> 00:53:12,320 jagada täisarv 5, täisarv 9 1298 00:53:12,320 --> 00:53:13,670 ja mulle tulemus. 1299 00:53:13,670 --> 00:53:16,230 Probleem on, aga kui sa rajoon andmeid kasutades 1300 00:53:16,230 --> 00:53:20,220 tüübid, väljund on sama andmetüüp kui sisendeid. 1301 00:53:20,220 --> 00:53:23,670 Ja nii kui kaks sisendit on nii ints, toodang läheb 1302 00:53:23,670 --> 00:53:25,110 olema int. 1303 00:53:25,110 --> 00:53:28,770 Ja nii 5 jagatud 9 on punkt midagi. 1304 00:53:28,770 --> 00:53:32,320 Aga mis on lähim täisarv juhtida midagi? 1305 00:53:32,320 --> 00:53:33,630 Nii, see on tegelikult 0. 1306 00:53:33,630 --> 00:53:36,620 Nii et kui me arutasime esmaspäeval, kõike pärast koma 1307 00:53:36,620 --> 00:53:37,940 Punkti saab kärbitud. 1308 00:53:37,940 --> 00:53:39,495 See lihtsalt läheb minema visata. 1309 00:53:39,495 --> 00:53:42,760 Nii et see on täielik vale, sest ma võin ka lihtsalt 1310 00:53:42,760 --> 00:53:44,700 korrutab kõike 0 siin. 1311 00:53:44,700 --> 00:53:46,550 >> Nüüd saan selle kohta paar võimalust. 1312 00:53:46,550 --> 00:53:48,080 Ma võiksin seda teha. 1313 00:53:48,080 --> 00:53:50,490 5,0 jagatuna 9.0. 1314 00:53:50,490 --> 00:53:52,110 Tehniliselt, ma isegi ei pea seda tegema. 1315 00:53:52,110 --> 00:53:55,780 See ei piisa lihtsalt üks arvudest float - 1316 00:53:55,780 --> 00:53:58,290 või topelt - pannes koma siin. 1317 00:53:58,290 --> 00:54:01,740 Sest see, mis juhtub nüüd on, kui sa jagad täisarv poolt 1318 00:54:01,740 --> 00:54:04,670 float või topelt, arvuti läheb mõistma 1319 00:54:04,670 --> 00:54:06,830 oh, üks neist on täpsem. 1320 00:54:06,830 --> 00:54:09,420 Lubage mul Syyllistyä annab teile rohkem täpsust kui 1321 00:54:09,420 --> 00:54:10,310 Te soovisite. 1322 00:54:10,310 --> 00:54:12,700 Nii et see teisendada tulemus - 1323 00:54:12,700 --> 00:54:16,240 ta naaseb tulemus ujukoma väärtus samuti. 1324 00:54:16,240 --> 00:54:17,330 Nii, et oleks tööd. 1325 00:54:17,330 --> 00:54:18,060 See teeks. 1326 00:54:18,060 --> 00:54:20,010 Ja seal on üks teine ​​mehhanism, et me näeme 1327 00:54:20,010 --> 00:54:21,390 üksikasjalikumalt järgmisel nädalal. 1328 00:54:21,390 --> 00:54:24,690 Võite tegelikult, nagu programmeerija, ütleb arvuti 1329 00:54:24,690 --> 00:54:27,930 tegelikult ravida ühe andmetüübi nagu 1330 00:54:27,930 --> 00:54:29,260 kuigi see oli teine. 1331 00:54:29,260 --> 00:54:30,990 >> Ma võiks tegelikult teha. 1332 00:54:30,990 --> 00:54:35,280 Sulgudes võin öelda midagi sellist (float), avatud 1333 00:54:35,280 --> 00:54:36,350 paren lähedal paren. 1334 00:54:36,350 --> 00:54:39,050 Ja see on, mida nimetatakse "casting." Jällegi rohkem 1335 00:54:39,050 --> 00:54:39,940 selle järgmisel nädalal. 1336 00:54:39,940 --> 00:54:42,280 Kuid see on vaid programmilise viis öelda 1337 00:54:42,280 --> 00:54:45,910 arvuti, jah ma tean 9 on täisarv või pikk. 1338 00:54:45,910 --> 00:54:47,700 Ma tean, et see pole ujukoma väärtus. 1339 00:54:47,700 --> 00:54:49,420 Aga käsitleme seda sellisena niikuinii. 1340 00:54:49,420 --> 00:54:52,000 Nii et enamus andmetüüp tähendab teisendada 1341 00:54:52,000 --> 00:54:53,310 ühest teise. 1342 00:54:53,310 --> 00:54:55,790 Ausalt, see on lihtsalt natuke inetu, et ma teeksin ettepaneku, me läheme 1343 00:54:55,790 --> 00:54:58,830 Tagasi esialgne ettepanek lihtsalt konverteeriva 1344 00:54:58,830 --> 00:55:00,770 need asjad murdarve käsitsi. 1345 00:55:00,770 --> 00:55:02,890 Sest nüüd, see on lihtsalt super selge, mis toimub, ja 1346 00:55:02,890 --> 00:55:04,280 see pole kõik, mis häirivad. 1347 00:55:04,280 --> 00:55:06,710 >> Nii et olgem nüüd minna tagasi minu terminaliakent. 1348 00:55:06,710 --> 00:55:07,990 Tee f2c. 1349 00:55:07,990 --> 00:55:09,430 Lubage mul minna ja teha selle. 1350 00:55:09,430 --> 00:55:12,340 Ja nagu kõrvale, kui teil igav kirjutades neid käske 1351 00:55:12,340 --> 00:55:14,910 ikka ja jälle aru, et arvutid, nagu Linux siin, 1352 00:55:14,910 --> 00:55:16,010 kipuvad olema üsna nutikas. 1353 00:55:16,010 --> 00:55:18,890 Ja kui ma tabanud, me ei lähe läbi kogu mu ajalugu 1354 00:55:18,890 --> 00:55:20,380 käske, üles ja alla. 1355 00:55:20,380 --> 00:55:23,840 Nii et selles asjas, ma ei saa lihtsalt minna kuni kestab teha f2c. 1356 00:55:23,840 --> 00:55:25,830 Mind karjusin, sest ma just tegin seda hetk tagasi. 1357 00:55:25,830 --> 00:55:27,030 See on juba kursis. 1358 00:55:27,030 --> 00:55:30,720 Nii et nüüd ma saan käivitada f2c uuesti. 1359 00:55:30,720 --> 00:55:33,260 Proovime 32 Fahrenheiti järgi. 1360 00:55:33,260 --> 00:55:36,720 Nüüd proovime 212 Fahrenheiti järgi. 1361 00:55:36,720 --> 00:55:37,250 >> Phew. 1362 00:55:37,250 --> 00:55:38,250 Tundub, et töö. 1363 00:55:38,250 --> 00:55:41,760 Nüüd on see hea, kuid tundub veidi meelevaldne, et 1364 00:55:41,760 --> 00:55:44,890 Ma näitan kuus numbrit pärast koma. 1365 00:55:44,890 --> 00:55:45,070 Eks? 1366 00:55:45,070 --> 00:55:47,830 Kui oled ilm inimene televisioonis, et sa oled mingi jobu 1367 00:55:47,830 --> 00:55:49,150 kui sa loed temperatuuri 1368 00:55:49,150 --> 00:55:50,070 Selle täpsusega. 1369 00:55:50,070 --> 00:55:51,270 Nii et olgem seda lihtsustada. 1370 00:55:51,270 --> 00:55:53,880 Nii et olgem ikka lendab siin, et minu printf. 1371 00:55:53,880 --> 00:55:55,490 Ja jah, ma tahan ujuma. 1372 00:55:55,490 --> 00:55:57,570 Aga ma tahan nüüd täpsustada täpsusega. 1373 00:55:57,570 --> 00:55:59,070 Ja ma lähen olema natuke lühike. 1374 00:55:59,070 --> 00:56:03,090 Ma ütlen, anna mulle üks punkt pärast koma. 1375 00:56:03,090 --> 00:56:07,590 Nii et pigem öelda% f, ma lähen ütlen% .1 f. 1376 00:56:07,590 --> 00:56:09,760 Ja see tähendab lihtsalt, anna mulle üks positsioon 1377 00:56:09,760 --> 00:56:11,410 pärast koma. 1378 00:56:11,410 --> 00:56:11,700 Hea küll. 1379 00:56:11,700 --> 00:56:12,570 Proovime seda uuesti. 1380 00:56:12,570 --> 00:56:15,590 Lubage mul uuesti käivitada pärast kompileerimist. 1381 00:56:15,590 --> 00:56:18,160 Ja nüüd ma kirjuta 32, ja ma saan tagasi 1382 00:56:18,160 --> 00:56:19,310 sisutihe väärtus. 1383 00:56:19,310 --> 00:56:22,480 Ja ma ei kirjuta, nüüd, 212, ja saada tagasi sisutihe 1384 00:56:22,480 --> 00:56:23,260 väärtus samuti. 1385 00:56:23,260 --> 00:56:25,190 Ja seal on teisi asju, mida saate teha printf. 1386 00:56:25,190 --> 00:56:27,950 Võite tegelikult täpsustada, kuidas suur hulk peaks olema. 1387 00:56:27,950 --> 00:56:30,900 Kui sa tahad olla pehmendus see, et saaksite paremjoondamiseks või 1388 00:56:30,900 --> 00:56:32,360 vasaku viia kõik oma numbrid või 1389 00:56:32,360 --> 00:56:33,400 proovige keskus asju. 1390 00:56:33,400 --> 00:56:35,340 Nii aru, seal on vähe trikke saab teha seal. 1391 00:56:35,340 --> 00:56:38,420 Aga nad lihtsalt taanduvad vormingu tähistamine, 1392 00:56:38,420 --> 00:56:39,600 nagu oleme seal. 1393 00:56:39,600 --> 00:56:41,090 >> Nii et nii see küsimus tähtsam. 1394 00:56:41,090 --> 00:56:43,820 See on väga igav tabel minna läbi metoodiliselt. 1395 00:56:43,820 --> 00:56:46,780 Aga mõistan, et autorid C on tulla 1396 00:56:46,780 --> 00:56:50,190 eeskirjad, mis määravad, mida ettevõtjad on suurem 1397 00:56:50,190 --> 00:56:53,680 pretsedendist, mitu siduvat jõudu, kui teised. 1398 00:56:53,680 --> 00:56:55,890 Nii et arvestades algkool, me üldiselt teadsime, et see oli 1399 00:56:55,890 --> 00:56:58,930 korrutamine ja jagamine, siis liitmine ja lahutamine, 1400 00:56:58,930 --> 00:56:59,950 siis mõned muud kraami. 1401 00:56:59,950 --> 00:57:01,720 Maailmas, programmeerimine, seal on palju 1402 00:57:01,720 --> 00:57:03,360 enam nimekirja asjadest. 1403 00:57:03,360 --> 00:57:05,150 Ja see ei ole midagi väärt meeldejätmist nüüd. 1404 00:57:05,150 --> 00:57:07,310 Saad harjutada enne pikk. 1405 00:57:07,310 --> 00:57:10,690 Aga nagu algkool, sulgudes üldiselt lahendada 1406 00:57:10,690 --> 00:57:12,990 küsimustes ülimuslik, tehes super selge 1407 00:57:12,990 --> 00:57:15,620 arvuti ja inimese moodi mida on mõeldud. 1408 00:57:15,620 --> 00:57:17,770 Nii et pean seda natuke petma lehte seal. 1409 00:57:17,770 --> 00:57:21,690 Aga enamik neist üksikasju me ei jõua mõnda aega. 1410 00:57:21,690 --> 00:57:21,900 >> Hea küll. 1411 00:57:21,900 --> 00:57:24,120 Nüüd saab luua ja eemalduda neist rumal vähe 1412 00:57:24,120 --> 00:57:25,460 matemaatilisi näiteid. 1413 00:57:25,460 --> 00:57:27,500 Ikka kasutada sama põhialuste, kuid alustada 1414 00:57:27,500 --> 00:57:29,960 eneseväljendamisel veidi nagu nullist. 1415 00:57:29,960 --> 00:57:31,660 Nii Scratch, meil oli neid Boole'i ​​avaldised. 1416 00:57:31,660 --> 00:57:34,890 Ja inglise keeles, Boole'i ​​avaldis on mis? 1417 00:57:34,890 --> 00:57:35,580 Õige või vale. 1418 00:57:35,580 --> 00:57:38,300 See on midagi, mis hindab õige või vale. 1419 00:57:38,300 --> 00:57:39,060 1 või 0. 1420 00:57:39,060 --> 00:57:39,870 Sisse või välja. 1421 00:57:39,870 --> 00:57:41,000 Mida iganes sa tahad seda kutsuda. 1422 00:57:41,000 --> 00:57:43,210 Nüüd Scratch, puzzle tükki nägi välja selline. 1423 00:57:43,210 --> 00:57:45,850 Ja see on kombinatsioon, põhja seal, kolme 1424 00:57:45,850 --> 00:57:47,980 puzzle tükki. 1425 00:57:47,980 --> 00:57:48,980 Üks koos - 1426 00:57:48,980 --> 00:57:51,710 midagi, mis on tühi ja tühjaks. 1427 00:57:51,710 --> 00:57:53,970 Ja siis kaks Boole'i ​​avaldiste sees on. 1428 00:57:53,970 --> 00:57:56,460 Nii saad pesa Loogiline väljendeid saada rohkem 1429 00:57:56,460 --> 00:57:59,360 keeruline Boole'i ​​avaldised. 1430 00:57:59,360 --> 00:58:03,930 Näiteks, kui see on laupäev, ja see on tore 1431 00:58:03,930 --> 00:58:06,180 ilm, siis mine välja. 1432 00:58:06,180 --> 00:58:07,500 Või midagi meelevaldset niimoodi. 1433 00:58:07,500 --> 00:58:10,090 Nii saab liituda Loogiline väljendeid tulla 1434 00:58:10,090 --> 00:58:12,780 suurem tõde väärtus, mille vastus põhineb 1435 00:58:12,780 --> 00:58:13,800 kohta väiksemad. 1436 00:58:13,800 --> 00:58:15,770 >> Nüüd, C, õnneks see kaardistamine on 1437 00:58:15,770 --> 00:58:16,720 tegelikult päris lihtne. 1438 00:58:16,720 --> 00:58:18,820 Sulgudes aidata teha asju selgeks siin. 1439 00:58:18,820 --> 00:58:21,700 && On see, mida tähendab "ja". Nii see on, kuidas 1440 00:58:21,700 --> 00:58:24,700 me ei kavatse muuta need plokid nullist C. 1441 00:58:24,700 --> 00:58:27,590 Ja tingimused nägime Scratch, vasakul 1442 00:58:27,590 --> 00:58:31,150 poolel, võin korstnat neid samamoodi ka C. Kui x on väiksem 1443 00:58:31,150 --> 00:58:32,970 kui y, siis tee seda. 1444 00:58:32,970 --> 00:58:35,100 Else if x on suurem kui y, siis tee seda. 1445 00:58:35,100 --> 00:58:38,030 Else loogiliselt need peavad olema võrdsed, nii öelda 1446 00:58:38,030 --> 00:58:39,140 et nad on võrdsed. 1447 00:58:39,140 --> 00:58:41,210 Nii saame nüüd hakata ehitama neid asju. 1448 00:58:41,210 --> 00:58:42,170 >> Teeme näite. 1449 00:58:42,170 --> 00:58:45,550 Lubage mul avada faili, mis on rajal veebilehte, et 1450 00:58:45,550 --> 00:58:47,270 Ma kirjutasin eelnevalt. 1451 00:58:47,270 --> 00:58:50,540 Seda nimetatakse nonswitch.c. 1452 00:58:50,540 --> 00:58:52,270 Ja me näeme, miks just hetk. 1453 00:58:52,270 --> 00:58:54,770 Nii et see fail - nonswitch.c-- 1454 00:58:54,770 --> 00:58:56,830 kõigepealt mõistma, et seal on terve hunnik 1455 00:58:56,830 --> 00:58:58,460 kommentaarid ülaosas. 1456 00:58:58,460 --> 00:59:00,110 See on lihtsalt selgitades faili nimi, mida ta 1457 00:59:00,110 --> 00:59:01,260 ei, ja nii edasi. 1458 00:59:01,260 --> 00:59:04,390 Ja see ilmselt näitab kasutamist Loogiline JA-se - 1459 00:59:04,390 --> 00:59:06,220 konjungeerimise kaks väljendit. 1460 00:59:06,220 --> 00:59:07,670 >> Nii et vaatame, kuidas see programm töötab. 1461 00:59:07,670 --> 00:59:10,840 Ma sisaldama minu kaks faili, cs50.h ja stdio.h. 1462 00:59:10,840 --> 00:59:13,180 Kui ma keri, nüüd, et programm, see on natuke pikem 1463 00:59:13,180 --> 00:59:15,730 kui oleme kirjutanud varem, kuid päris loetav. 1464 00:59:15,730 --> 00:59:18,360 Nii et ma esimest printida kasutaja on line 18 1465 00:59:18,360 --> 00:59:20,460 "Anna mulle täisarv vahemikus 1 kuni 10." Nii 1466 00:59:20,460 --> 00:59:21,530 see on seal. 1467 00:59:21,530 --> 00:59:23,410 Nüüd ma saan täisarv. 1468 00:59:23,410 --> 00:59:25,380 Aga mõistan, et GetInt - päris lihtne. 1469 00:59:25,380 --> 00:59:26,510 See on lihtsalt hakka int. 1470 00:59:26,510 --> 00:59:28,830 See saab tagada, et see ei saa int ja ei 1471 00:59:28,830 --> 00:59:30,060 jada või sularahaga. 1472 00:59:30,060 --> 00:59:32,390 Aga ta ei kavatse teha mingeid piire kontrollitakse. 1473 00:59:32,390 --> 00:59:34,750 Ta ei kavatse filtreerida numbrid olla vahel 1474 00:59:34,750 --> 00:59:35,630 teatud piirides. 1475 00:59:35,630 --> 00:59:37,730 Seega peame rakendama, et ise. 1476 00:59:37,730 --> 00:59:40,680 Nii nagu ka Scratch, kus ma võiksin teha koosmõjul 1477 00:59:40,680 --> 00:59:43,560 kaks väljendit, mida ma teha saan, et C järgmiselt. 1478 00:59:43,560 --> 00:59:48,660 Kui n on võrdne või suurem kui 1, ja n on väiksem kui ja 1479 00:59:48,660 --> 00:59:52,220 3 või sellega võrdne, ma väga meelevaldselt dekreet, et 1480 00:59:52,220 --> 00:59:53,830 arv olema väike arv. 1481 00:59:53,830 --> 00:59:56,730 Lihtsalt huvides oma avalduses. 1482 00:59:56,730 --> 01:00:00,210 Else if n on vahemikus 4 kuni 6, print "Sa valisid keskmise 1483 01:00:00,210 --> 01:00:03,440 arvu. "Else kui n on vahemikus 7 ja 10, print" Sa valisid 1484 01:00:03,440 --> 01:00:06,390 suur arv. "Else print" Sa vali vale number. " 1485 01:00:06,390 --> 01:00:07,900 Sest loogiliselt, et järgmine, kui oleme 1486 01:00:07,900 --> 01:00:09,230 ammendatud meie valik. 1487 01:00:09,230 --> 01:00:12,400 >> Nii et realiseerida see ei ole päris, kuidas me kirjutame suurem või 1488 01:00:12,400 --> 01:00:15,000 võrdne aastal matemaatika klassi. 1489 01:00:15,000 --> 01:00:15,160 Eks? 1490 01:00:15,160 --> 01:00:17,430 Te tavaliselt joonistan selle niimoodi, koos rida selle alusel. 1491 01:00:17,430 --> 01:00:19,250 Aga ei ole olemas sellist klahvi minu klaviatuuri. 1492 01:00:19,250 --> 01:00:22,390 Nii sümbol C väljendamiseks suurem või 1493 01:00:22,390 --> 01:00:25,770 võrdne on kaks märki ja sümbolit alla 1494 01:00:25,770 --> 01:00:29,100 või võrdne on kaks märki ka. 1495 01:00:29,100 --> 01:00:29,330 Hea küll. 1496 01:00:29,330 --> 01:00:31,910 Nii et kui ma saan selle programmi, saate ilmselt arvata, mis see on 1497 01:00:31,910 --> 01:00:32,650 teeme. 1498 01:00:32,650 --> 01:00:36,180 Kui ma minna ja teha nonswitch, Enter. 1499 01:00:36,180 --> 01:00:38,130 Ja siis joosta nonswitch. 1500 01:00:38,130 --> 01:00:39,530 Anna mulle number vahemikus 1 kuni 10. 1501 01:00:39,530 --> 01:00:40,870 Ma annan ta 11. 1502 01:00:40,870 --> 01:00:42,280 Ma valisin vale numbri. 1503 01:00:42,280 --> 01:00:44,090 Las ma proovin number 3. 1504 01:00:44,090 --> 01:00:45,990 Ma valisin väikese arvu. 1505 01:00:45,990 --> 01:00:48,360 Nii et üsna lihtne on. 1506 01:00:48,360 --> 01:00:52,230 >> Mida teha, kui ma tahan muuta käitumist selle programmi ja 1507 01:00:52,230 --> 01:00:54,250 teha midagi veidi teistsugune asemel? 1508 01:00:54,250 --> 01:00:57,620 Lubage mul minna ja öelda. 1509 01:00:57,620 --> 01:00:59,480 Lubage mul vabaneda sellest kõigest. 1510 01:00:59,480 --> 01:01:03,780 Ja lubage mul öelda, kui (n == 42). 1511 01:01:03,780 --> 01:01:08,730 Ja siis ma lähen edasi minna ja öelda print "Sa valisid 1512 01:01:08,730 --> 01:01:16,340 õige vastus. "muidu me läheme edasi minna ja öelda, 1513 01:01:16,340 --> 01:01:18,460 printf ("Sa valisid 1514 01:01:18,460 --> 01:01:21,170 vale vastus. "); Okei. 1515 01:01:21,170 --> 01:01:22,040 Lihtsalt. 1516 01:01:22,040 --> 01:01:23,890 >> Nüüd, mõned punktid saame teha siin. 1517 01:01:23,890 --> 01:01:26,570 Üks, ma ei kirjuta sümbol, mis sa arvad on 1518 01:01:26,570 --> 01:01:27,390 kõige mõistlikum. 1519 01:01:27,390 --> 01:01:30,110 Kui ma tahan vaadata võrdsus, selgub te ei kasuta 1520 01:01:30,110 --> 01:01:30,910 võrdusmärk. 1521 01:01:30,910 --> 01:01:34,000 Sa asemel kasutada võrdse võrdusmärk. 1522 01:01:34,000 --> 01:01:36,440 Ja miks see võiks olla, lihtsalt intuitiivselt? 1523 01:01:36,440 --> 01:01:37,030 Jah. 1524 01:01:37,030 --> 01:01:39,330 Sihtrühm: [kuuldamatu] 1525 01:01:39,330 --> 01:01:39,615 David J. Malan: Õige. 1526 01:01:39,615 --> 01:01:41,630 Võrdusmärk on juba kasutatud loovutamisega. 1527 01:01:41,630 --> 01:01:43,020 Keegi tegelikult ei usu, et see läbi. 1528 01:01:43,020 --> 01:01:45,820 Ja nüüd, kui on tegemist võrdõiguslikkuse katsetamine, peame 1529 01:01:45,820 --> 01:01:48,850 olema selgem, ja öelda võrdub võrdsetena. 1530 01:01:48,850 --> 01:01:52,110 Väga levinud viga on seda teha. 1531 01:01:52,110 --> 01:01:54,800 Ja kui ka tööaega või millalgi järgmisel nädalal või 1532 01:01:54,800 --> 01:01:58,340 Järgmise kahe nädala jooksul sa midagi sellist ja siis 1533 01:01:58,340 --> 01:02:00,920 võitlevad sellega 10, 20 minutit püüab välja selgitada 1534 01:02:00,920 --> 01:02:03,330 Mis kuradi viga on, aru, et te olete üks neist, 1535 01:02:03,330 --> 01:02:04,470 inimesed, kes tegid selle vea. 1536 01:02:04,470 --> 01:02:06,030 Nii super lihtne teha. 1537 01:02:06,030 --> 01:02:08,240 Aga eesmärk on nüüd ennekuulmatut seda viga. 1538 01:02:08,240 --> 01:02:11,840 See võiks hinnata, sest see, mida see tegelikult öelda? 1539 01:02:11,840 --> 01:02:15,010 Kui n saab 42. 1540 01:02:15,010 --> 01:02:18,250 Nii tegusõna inimesed kasutavad, verbaalselt väljendada 1541 01:02:18,250 --> 01:02:21,800 mõiste loovutamine on "läheb." Nii et kui n saab 42. 1542 01:02:21,800 --> 01:02:24,060 Nii et see tähendab määrata 42 kuni n. 1543 01:02:24,060 --> 01:02:26,250 Nüüd on mul Boole'i ​​avaldis sulgudes, 1544 01:02:26,250 --> 01:02:30,230 sees see tingimus, mille väärtus on 42. 1545 01:02:30,230 --> 01:02:30,390 Eks? 1546 01:02:30,390 --> 01:02:32,690 Sest kui sa seda hinnata seest kokku 1547 01:02:32,690 --> 01:02:34,100 vastus, nüüd on 42. 1548 01:02:34,100 --> 01:02:37,360 >> Nii et kui ma küsisin sult küsimuse, "kas (42)," Mis on 1549 01:02:37,360 --> 01:02:38,410 et tegelikult öelda? 1550 01:02:38,410 --> 01:02:40,990 Noh, Boole'i ​​avaldiste saab olla ainult õige või vale. 1551 01:02:40,990 --> 01:02:42,010 1 või 0. 1552 01:02:42,010 --> 01:02:43,010 Sisse või välja. 1553 01:02:43,010 --> 01:02:45,240 Nii näib, et oleme nurka asjas, mille kohaselt tuleb kõik 1554 01:02:45,240 --> 01:02:50,060 ootamatu, ma ütlen "kui (42)". See ei ole tõeväärtus. 1555 01:02:50,060 --> 01:02:54,500 Nii et mida arvutid teha, kuigi on see sisuliselt võrdsustab 1556 01:02:54,500 --> 01:02:58,620 midagi, mis ei ole 0 on tõlgendanud, et olla tõsi. 1557 01:02:58,620 --> 01:02:59,340 1. 1558 01:02:59,340 --> 01:02:59,690 Sees. 1559 01:02:59,690 --> 01:03:01,510 Nad kõik funktsionaalselt võrdväärsed. 1560 01:03:01,510 --> 01:03:05,070 Ainult väärtus 0 või märksõna vale, nagu me 1561 01:03:05,070 --> 01:03:07,860 lõpuks näha, on tegelikult vale. 1562 01:03:07,860 --> 01:03:15,040 Nii et "if (42)" oleks tegelikult tõsi, sest see ei ole null. 1563 01:03:15,040 --> 01:03:18,620 Nii et täpsemalt siin, Boole'i ​​väärtus ei ole tegelikult nii 1564 01:03:18,620 --> 01:03:20,680 palju õige või vale, vaid see 1565 01:03:20,680 --> 01:03:24,650 juhul, kui on 0 või nullist. 1566 01:03:24,650 --> 01:03:26,330 Nii et vale või ei ole vale. 1567 01:03:26,330 --> 01:03:28,640 Ja see lubab meil hõlmata kõiki rohkem 1568 01:03:28,640 --> 01:03:30,980 võimalusi Sulgudes väljend. 1569 01:03:30,980 --> 01:03:33,840 Nii et me peame kunagi nii hoolikalt, ütlen seda - 1570 01:03:33,840 --> 01:03:35,620 if (n == 42). 1571 01:03:35,620 --> 01:03:39,100 Lihtsalt sellepärast peame täpsustama test võrdsuse, 1572 01:03:39,100 --> 01:03:40,930 ei loovutamise väärtust. 1573 01:03:40,930 --> 01:03:42,830 >> Mida veel märkida siin? 1574 01:03:42,830 --> 01:03:46,030 Need looksulg on tegelikult ei vaja. 1575 01:03:46,030 --> 01:03:48,650 Olen teinud neid lihtsalt olla ting-Nirso siin. 1576 01:03:48,650 --> 01:03:51,350 Aga kui teil on seisund, et on ainult üks rida 1577 01:03:51,350 --> 01:03:55,100 kood, nagu mugavus, programmeerijad ei pea kasutama 1578 01:03:55,100 --> 01:03:56,030 looksulg. 1579 01:03:56,030 --> 01:03:59,370 Piisab lihtsalt taandes esteetilistel põhjustel, ja 1580 01:03:59,370 --> 01:04:01,050 seejärel kirjutage rida koodi. 1581 01:04:01,050 --> 01:04:04,160 Ainult siis, kui sa tahad kirjutada kaks rida koodi - eest 1582 01:04:04,160 --> 01:04:08,230 Näiteks teine ​​printf ("Bye!"). Kui sa tahad teha 1583 01:04:08,230 --> 01:04:09,540 et see on katki. 1584 01:04:09,540 --> 01:04:11,700 Võite taandes kõik soovid, kuid asjaolu, et teil on 1585 01:04:11,700 --> 01:04:14,600 trükitud kaks rida koodi ilma looksulg 1586 01:04:14,600 --> 01:04:16,860 tähendab, et see programm ei tööta õigesti või võib 1587 01:04:16,860 --> 01:04:18,530 isegi mitte koostada õigesti. 1588 01:04:18,530 --> 01:04:21,040 Nii et nüüd, kui aus olla, siis ma arvan, et parim harjumus on lihtsalt 1589 01:04:21,040 --> 01:04:24,460 kasutada looksulg, ja leiad, et nad teevad 1590 01:04:24,460 --> 01:04:25,750 super selge, mis toimub. 1591 01:04:25,750 --> 01:04:29,410 >> Samuti, nagu kõrvale - eriti kui oled nende seas, kes kasutavad 1592 01:04:29,410 --> 01:04:31,700 soovitusliku kirjanduse või ressursse internetis - 1593 01:04:31,700 --> 01:04:33,480 aru, et seal on see mõiste stiili 1594 01:04:33,480 --> 01:04:34,130 programmeerimine. 1595 01:04:34,130 --> 01:04:37,280 Ja mõned inimesed tegelikult eelistavad panna lokkis traksidega 1596 01:04:37,280 --> 01:04:38,720 siin joonel. 1597 01:04:38,720 --> 01:04:41,520 Mõned inimesed eelistavad teha naeruväärsed asjad, 1598 01:04:41,520 --> 01:04:43,830 meeldib panna neid siia. 1599 01:04:43,830 --> 01:04:45,140 Ei ole vale vastus, kui tegemist on 1600 01:04:45,140 --> 01:04:46,710 stiili, kuid see on vale. 1601 01:04:46,710 --> 01:04:47,700 Aga mõned inimesed teevad seda. 1602 01:04:47,700 --> 01:04:49,160 [Naer] 1603 01:04:49,160 --> 01:04:51,760 David J. Malan: Ma mainin seda nüüd lihtsalt sellepärast, et nii 1604 01:04:51,760 --> 01:04:54,400 teil lugeda üles asjad raamatute või online, sa lähed, et saada 1605 01:04:54,400 --> 01:04:55,990 erinevaid sõnumeid erinevate õpetajate ja 1606 01:04:55,990 --> 01:04:56,730 erinevatelt autoritelt. 1607 01:04:56,730 --> 01:04:58,640 Ja just sellest aru, funktsionaalselt on nad 1608 01:04:58,640 --> 01:05:00,740 üldiselt samaväärne, kuid olla järjekindel. 1609 01:05:00,740 --> 01:05:02,850 Nii et sel juhul me standardiseerida lokkis 1610 01:05:02,850 --> 01:05:04,650 traksid vooder kuni siin vasakul. 1611 01:05:04,650 --> 01:05:04,910 >> Hea küll. 1612 01:05:04,910 --> 01:05:07,040 Nii lähme edasi nüüd ja käivitada see, ja vaata, mis juhtub 1613 01:05:07,040 --> 01:05:07,780 selle programmiga. 1614 01:05:07,780 --> 01:05:09,970 Tee nonswitch. 1615 01:05:09,970 --> 01:05:11,040 Seejärel käivita nonswitch. 1616 01:05:11,040 --> 01:05:13,900 Anna täisarv vahemikus 0 kuni - nii et ei ole asjakohane 1617 01:05:13,900 --> 01:05:16,480 enam, kuid ma lihtsalt suvaliselt öelda 42. 1618 01:05:16,480 --> 01:05:17,850 Ja ma valisin õige vastus. 1619 01:05:17,850 --> 01:05:20,430 Noh nüüd, lähme tegelikult seda teises suunas. 1620 01:05:20,430 --> 01:05:22,070 Tuleb välja, seal on mõned muud süntaks me 1621 01:05:22,070 --> 01:05:23,480 saab kasutada programmi. 1622 01:05:23,480 --> 01:05:27,310 Siin on uus tükk süntaks, mis on funktsionaalselt sama, 1623 01:05:27,310 --> 01:05:30,680 aga lihtsalt tutvustab teises viis väljendada ennast. 1624 01:05:30,680 --> 01:05:32,830 Nii et see on, mida nimetatakse "lüliti avaldus." Ja 1625 01:05:32,830 --> 01:05:34,820 lüliti avaldus toimib järgmiselt. 1626 01:05:34,820 --> 01:05:37,580 See võtab, sulgudes väärtus, mida soovite 1627 01:05:37,580 --> 01:05:38,860 "Lüliti" kohta. 1628 01:05:38,860 --> 01:05:41,490 Sa tahad käituda erinevalt põhineb selle väärtus. 1629 01:05:41,490 --> 01:05:44,360 Nii et see tähendab, lülitage n väärtus. 1630 01:05:44,360 --> 01:05:45,480 Ja mida see tähendab? 1631 01:05:45,480 --> 01:05:50,530 Noh, kui n on 1, 2 või 3, edasi minna ja välja printida "Sa 1632 01:05:50,530 --> 01:05:52,680 korjatakse suur hulk "ja seejärel murda. 1633 01:05:52,680 --> 01:05:55,720 Põhjuseks katkestus on, et teed C töötab on 1634 01:05:55,720 --> 01:05:59,790 Niipea kui ta leiab juhtumi, mis sobib, hakkab ta täidesaatva 1635 01:05:59,790 --> 01:06:01,610 kõik koodi all. 1636 01:06:01,610 --> 01:06:04,580 Nii et kui mul on üks rida koodi, kui mina siin rida 27, siis 1637 01:06:04,580 --> 01:06:05,360 saab teostada. 1638 01:06:05,360 --> 01:06:07,520 Kui ma lisada veel rida siin, see läheb täide. 1639 01:06:07,520 --> 01:06:09,350 Teine rida siin, see läheb täide. 1640 01:06:09,350 --> 01:06:12,460 Programm ainult peatub täidesaatva mis on allpool 1641 01:06:12,460 --> 01:06:14,680 kohaldatakse juhul avaldus, kui ma otseselt 1642 01:06:14,680 --> 01:06:17,210 öelda "murda." Nii vale. 1643 01:06:17,210 --> 01:06:19,220 Õigus, antud juhul, kui tulemus. 1644 01:06:19,220 --> 01:06:22,130 Aasta otsus kohtuasjas 4 või 5 või 6, samamoodi läheb 1645 01:06:22,130 --> 01:06:23,160 välja trükkida sõnum. 1646 01:06:23,160 --> 01:06:24,410 Sel juhul keskmise arvu. 1647 01:06:24,410 --> 01:06:25,200 Break. 1648 01:06:25,200 --> 01:06:28,160 Aasta otsus kohtuasjas 7, 8, 9, 10, see saab välja printida "Sa valisid suur 1649 01:06:28,160 --> 01:06:28,950 arvu. "Break. 1650 01:06:28,950 --> 01:06:31,290 Ja siis seal on sõna otseses mõttes märksõna nimega "default" 1651 01:06:31,290 --> 01:06:34,090 see on tegelikult nagu "veel" ehitada. 1652 01:06:34,090 --> 01:06:36,010 Nii et uus süntaks, kuid intellektuaalselt, 1653 01:06:36,010 --> 01:06:37,060 mitte midagi uut siin. 1654 01:06:37,060 --> 01:06:38,280 See on nagu nullist. 1655 01:06:38,280 --> 01:06:41,040 Kui muidu, kui muidu kui mingi plokk. 1656 01:06:41,040 --> 01:06:44,560 >> Nii et lülitada versioon sellest programmist. 1657 01:06:44,560 --> 01:06:46,280 Aga teate, et me tegime seda numbrid siin. 1658 01:06:46,280 --> 01:06:49,040 Lubage mul avada teine ​​versioon, lihtsalt näidata 1659 01:06:49,040 --> 01:06:50,670 midagi natuke konkreetsem. 1660 01:06:50,670 --> 01:06:52,840 Nii et siin on meil klassid asemel. 1661 01:06:52,840 --> 01:06:55,540 Selgub, saate kasutada lüliteid mitte ainult täisarvud, kuid 1662 01:06:55,540 --> 01:06:56,340 tähemärki. 1663 01:06:56,340 --> 01:06:58,930 Mitte kõik andmetüübid, kuid vähemalt tähemärki. 1664 01:06:58,930 --> 01:07:02,670 Nii et siin, me võiksime teha midagi kui väärtus C, et 1665 01:07:02,670 --> 01:07:06,230 kasutaja sisestatud kooskõlas 19, kasutades getchar funktsioon, 1666 01:07:06,230 --> 01:07:09,410 on kapitali või väiketähed, vaatame seda tõlgendada kui klass, 1667 01:07:09,410 --> 01:07:11,340 ja ütlevad, et nad valisid hea hinne. 1668 01:07:11,340 --> 01:07:14,690 Ja mööda lüliti avaldus, meil on muud 1669 01:07:14,690 --> 01:07:17,950 juhtudel "B" s ja "C" s, ja nii edasi. 1670 01:07:17,950 --> 01:07:19,780 Kuid olgem nüüd ringi läbi üks teine ​​asi. 1671 01:07:19,780 --> 01:07:21,130 Ja jälle, lendamine läbi 1672 01:07:21,130 --> 01:07:22,200 Mõned näited. 1673 01:07:22,200 --> 01:07:26,990 Aga see on tõesti nii, et saame rakendada neid, nüüd - 1674 01:07:26,990 --> 01:07:28,880 või tegelikult, lihtsalt tõlkida neid nüüd - 1675 01:07:28,880 --> 01:07:32,220 et C. 1676 01:07:32,220 --> 01:07:33,310 >> Nii et lubage mul minna ja seda teha. 1677 01:07:33,310 --> 01:07:34,830 Ma lähen avada uus fail. 1678 01:07:34,830 --> 01:07:39,430 Ja ma teen sisaldavad . 1679 01:07:39,430 --> 01:07:42,770 Ja siis ma teen int main (void). 1680 01:07:42,770 --> 01:07:46,390 Las ma salvestada see fail loop.c. 1681 01:07:46,390 --> 01:07:48,280 Lihtsalt näitena. 1682 01:07:48,280 --> 01:07:49,910 Ja ma lähen edasi minna ja teha järgmist. 1683 01:07:49,910 --> 01:07:54,180 Ma tahan kirjutada väga tüütu programm. 1684 01:07:54,180 --> 01:07:56,170 Nii 10. 1685 01:07:56,170 --> 01:07:58,862 Teeme seda. 1686 01:07:58,862 --> 01:07:59,320 9. 1687 01:07:59,320 --> 01:08:00,360 Hea küll. 1688 01:08:00,360 --> 01:08:02,120 Niipea kui hakkate seda teed programmeerimise, sa oled 1689 01:08:02,120 --> 01:08:03,490 Ilmselt teen midagi valesti. 1690 01:08:03,490 --> 01:08:04,950 Aga me hakkame niikuinii. 1691 01:08:04,950 --> 01:08:05,430 Oih. 1692 01:08:05,430 --> 01:08:06,950 See on tegelikult vale. 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 Midagi ei juhtu, kui me kuni 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 Kustuta. 1704 01:08:18,689 --> 01:08:19,029 >> Hea küll. 1705 01:08:19,029 --> 01:08:20,029 Nii return 0. 1706 01:08:20,029 --> 01:08:22,010 Nii et see programm on ilmselt läheb seda, mida ta väga 1707 01:08:22,010 --> 01:08:23,310 tüütult ütleb ta tegema hakkab. 1708 01:08:23,310 --> 01:08:24,060 See saab printida kõik need 1709 01:08:24,060 --> 01:08:25,290 väärtused, ülevalt alla. 1710 01:08:25,290 --> 01:08:27,140 Nii et las ma teen tegema silmus. 1711 01:08:27,140 --> 01:08:28,640 Ja siis - Ups. 1712 01:08:28,640 --> 01:08:29,700 Tee silmus. 1713 01:08:29,700 --> 01:08:31,479 Ma olin vales kataloogis. 1714 01:08:31,479 --> 01:08:33,300 Ja nüüd ma jooksma silmus. 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 Väga kena. 1718 01:08:35,270 --> 01:08:36,279 Kena, pikk programm. 1719 01:08:36,279 --> 01:08:38,109 >> Olgu, aga nüüd teeme seda parem. 1720 01:08:38,109 --> 01:08:40,810 Täpselt nagu Scratch, kui sa hakkasid kasutama silmuspõletamise 1721 01:08:40,810 --> 01:08:43,149 ehitada, selle asemel, et lihtsalt kopeerida ja kleepida kõik 1722 01:08:43,149 --> 01:08:45,580 puzzle tükki, lubage mul tutvustada seda asja. 1723 01:08:45,580 --> 01:08:48,609 Nii C, on erinevaid silmuspõletamise skeemid, 1724 01:08:48,609 --> 01:08:50,540 üks mis näeb välja selline. 1725 01:08:50,540 --> 01:08:55,069 "For" loop on kolm asja, eraldatud kahe semikoolonit. 1726 01:08:55,069 --> 01:08:57,770 Ja siis, seest keha silmus, nii rääkida - 1727 01:08:57,770 --> 01:08:59,390 kraami sees looksulg - 1728 01:08:59,390 --> 01:09:01,010 me saame teha midagi uuesti ja uuesti. 1729 01:09:01,010 --> 01:09:02,310 Mis mul siin ekraanil, see on 1730 01:09:02,310 --> 01:09:03,300 sõna otseses mõttes lihtsalt kommentaari. 1731 01:09:03,300 --> 01:09:05,380 / / Tähendab siin tuleb kommentaari. 1732 01:09:05,380 --> 01:09:06,180 See ei ole koodi. 1733 01:09:06,180 --> 01:09:08,890 See on lihtsalt ingliskeelne kirjeldus mulle inimene. 1734 01:09:08,890 --> 01:09:11,300 >> Nii initializations, tingimused ja uuendused. 1735 01:09:11,300 --> 01:09:12,770 Noh, vaatame, kuidas see töötab. 1736 01:09:12,770 --> 01:09:15,520 See võimaldab mul kirjutada selle programmi järgmiselt. 1737 01:09:15,520 --> 01:09:16,399 Sest - 1738 01:09:16,399 --> 01:09:18,029 Nii et siin on minu loop - 1739 01:09:18,029 --> 01:09:19,439 int i - 1740 01:09:19,439 --> 01:09:21,330 siin tuleb muutuja nimega "i" - 1741 01:09:21,330 --> 01:09:23,140 saab initsialiseerida 10. 1742 01:09:23,140 --> 01:09:25,260 Seega on minu ettekanne. 1743 01:09:25,260 --> 01:09:29,450 Ma tahan seda teha silmus, nii kaua kui "i" on suurem või 1744 01:09:29,450 --> 01:09:30,899 võrdne 0-ga. 1745 01:09:30,899 --> 01:09:32,880 Ja iga iteratsiooni see silmus, ma tahan 1746 01:09:32,880 --> 01:09:34,979 teha i -. 1747 01:09:34,979 --> 01:09:36,310 Nii nägime + + esmaspäeval. 1748 01:09:36,310 --> 01:09:37,660 - On vastupidine. 1749 01:09:37,660 --> 01:09:39,410 See Count väärtus 1. 1750 01:09:39,410 --> 01:09:43,319 Toas see silmus, ma tahan tegelikult midagi teha. 1751 01:09:43,319 --> 01:09:46,390 Nii et ma ütlen midagi printf. 1752 01:09:46,390 --> 01:09:48,939 Ma ei taha öelda 10 praegu, sest see ilmselt on lihtsalt 1753 01:09:48,939 --> 01:09:50,000 trükkimineku sama väärtusega. 1754 01:09:50,000 --> 01:09:52,246 Mida ma tahan printida selle asemel, ilmselt? 1755 01:09:52,246 --> 01:09:52,590 Jah. 1756 01:09:52,590 --> 01:09:55,270 Nii "i." Nii% d, i. 1757 01:09:55,270 --> 01:09:57,340 >> Ma lähen varastada üks neist ideid varem - 1758 01:09:57,340 --> 01:09:59,640 Selle asemele vormingu tähistamine - 1759 01:09:59,640 --> 01:10:01,620 ja siis siia alla, alt, ma naasen 0, lihtsalt 1760 01:10:01,620 --> 01:10:02,710 hea meede. 1761 01:10:02,710 --> 01:10:04,740 Aga nüüd, mul on sisutihe programm. 1762 01:10:04,740 --> 01:10:07,490 See on ainult paar rida, ja mitte mingi 10 või 11 rida. 1763 01:10:07,490 --> 01:10:09,440 Las ma lähen oma kiire siia alla. 1764 01:10:09,440 --> 01:10:10,630 Remake silmus. 1765 01:10:10,630 --> 01:10:12,140 Rerun silmus. 1766 01:10:12,140 --> 01:10:13,570 Ja see tundub olevat sama. 1767 01:10:13,570 --> 01:10:15,550 Nüüd programm on enam huvitav. 1768 01:10:15,550 --> 01:10:17,180 Aga nüüd ma ei kirjuta midagi sellist. 1769 01:10:17,180 --> 01:10:18,970 Ma ei muuda seda 100-le. 1770 01:10:18,970 --> 01:10:21,400 Saan siis kompileeri oma programmi. 1771 01:10:21,400 --> 01:10:23,360 Ja siis ma saan uuesti käivitada oma programmi. 1772 01:10:23,360 --> 01:10:26,390 Ja nüüd ta läheb ülikiire tänapäeva arvutid. 1773 01:10:26,390 --> 01:10:27,820 Kuid mul on - 1774 01:10:27,820 --> 01:10:29,620 ja tegelikult, minu Ajaloo puhver ei 1775 01:10:29,620 --> 01:10:30,890 isegi nii kaugele minna. 1776 01:10:30,890 --> 01:10:31,680 Nii juba läheb. 1777 01:10:31,680 --> 01:10:34,090 Nii et meil on kõik 100. 1778 01:10:34,090 --> 01:10:35,880 Aga see on lihtne teha vigu siin. 1779 01:10:35,880 --> 01:10:37,920 Mis saab olema oodatud käitumine, kui ma 1780 01:10:37,920 --> 01:10:41,150 kogemata teha? 1781 01:10:41,150 --> 01:10:42,550 Nii tundub lõputu. 1782 01:10:42,550 --> 01:10:44,670 Nii et vaatame, kui arvuti käitub. 1783 01:10:44,670 --> 01:10:47,020 >> Nii et lubage mul minna ja teha silmus. 1784 01:10:47,020 --> 01:10:48,355 Ja las ma joosta silmus. 1785 01:10:53,590 --> 01:10:55,210 Nii et olgem tagasi tulla, et üks hetk. 1786 01:10:55,210 --> 01:10:56,720 Me teavitame, et perspektiivis. 1787 01:10:56,720 --> 01:10:59,520 Sest see, mida me peaksime kokku lugema, minimaalselt? 1788 01:10:59,520 --> 01:11:02,200 Tõenäoliselt vähemalt 2 miljardit, kui meil on, et paljud bitti, ja 1789 01:11:02,200 --> 01:11:03,660 me kasutame positiivseid väärtusi. 1790 01:11:03,660 --> 01:11:04,890 Nii et olgem hüpata siia tagasi. 1791 01:11:04,890 --> 01:11:07,810 Peale selliseid silmuseid, meil on nn samas 1792 01:11:07,810 --> 01:11:09,430 silmuseid. Nii, nagu Scratch, siis tuli Forever 1793 01:11:09,430 --> 01:11:11,240 plokid, ja siis tuli Korda plokke. 1794 01:11:11,240 --> 01:11:13,270 Samamoodi C, sa lihtsalt muid võimalusi 1795 01:11:13,270 --> 01:11:14,260 väljendada ennast. 1796 01:11:14,260 --> 01:11:17,110 Nii et teil on see mõiste samas silmus, mis võimaldab teil 1797 01:11:17,110 --> 01:11:18,860 väljendada ennast natuke teistmoodi. 1798 01:11:18,860 --> 01:11:21,490 Ja siis on midagi, mida nimetatakse do-kui ahela, 1799 01:11:21,490 --> 01:11:24,200 mis tegutseb veidi erinevalt samuti. 1800 01:11:24,200 --> 01:11:25,320 Ja me tease nende peale ajas. 1801 01:11:25,320 --> 01:11:28,630 >> Aga võtame pilk see viimane siin. 1802 01:11:28,630 --> 01:11:30,160 Kui me astume - 1803 01:11:30,160 --> 01:11:31,466 ikka töötab. 1804 01:11:31,466 --> 01:11:32,770 See on päris lõpmatu. 1805 01:11:32,770 --> 01:11:36,870 Nii et lubage mul minna positiivne, ja näidata, kuidas me saame tegelikult 1806 01:11:36,870 --> 01:11:39,410 reguleerivad kasutaja sisend veidi tõhusamalt. 1807 01:11:39,410 --> 01:11:40,910 See on üsna lühike programm. 1808 01:11:40,910 --> 01:11:43,730 Ja siin on meil, on peamine, int n deklaratsiooni. 1809 01:11:43,730 --> 01:11:46,570 Nii et anna mulle muutuja nimega n. Nüüd ma sõna otseses mõttes öelda 1810 01:11:46,570 --> 01:11:48,340 "Teha." Ja siis ma sain lahti lokkis 1811 01:11:48,340 --> 01:11:49,630 traksidega, lähedal lokkis traksidega. 1812 01:11:49,630 --> 01:11:52,000 Ja siis märkate, kohe pärast seda, ta ütleb samas n 1813 01:11:52,000 --> 01:11:53,790 on väiksem kui 1. 1814 01:11:53,790 --> 01:11:55,300 Nii märkate, et need read - 1815 01:11:55,300 --> 01:11:56,740 19-24 - 1816 01:11:56,740 --> 01:11:59,450 koostada ühiselt do-kui ahela. 1817 01:11:59,450 --> 01:12:01,280 Ja jälle uus süntaks, ei ole uus idee. 1818 01:12:01,280 --> 01:12:03,740 See on lihtsalt üks viis silmuspõletamise, süntaktiliselt. 1819 01:12:03,740 --> 01:12:04,890 Mida see teeb? 1820 01:12:04,890 --> 01:12:08,000 Kas järgmine samas n on väiksem kui 1. 1821 01:12:08,000 --> 01:12:09,080 Mida ma tahan teha? 1822 01:12:09,080 --> 01:12:11,390 Ma nõuan, et sa annad mulle positiivne täisarv. 1823 01:12:11,390 --> 01:12:14,110 Siis ma tegelikult üritavad täisarv kasutaja. 1824 01:12:14,110 --> 01:12:16,740 Aga nii et toimingute siin, sest 1825 01:12:16,740 --> 01:12:21,850 samas seisukorras on siin all, ma siis lähen vaatan, on n 1826 01:12:21,850 --> 01:12:23,100 vähem kui 1? 1827 01:12:23,100 --> 01:12:24,600 Olgu, oletame, et kasutaja - 1828 01:12:24,600 --> 01:12:26,450 pärast seda nõudis sel moel - 1829 01:12:26,450 --> 01:12:29,190 liigid väärtus 0. 1830 01:12:29,190 --> 01:12:34,510 See tingimus saab olema õige või vale? 1831 01:12:34,510 --> 01:12:35,820 Noh, see tegelikult toimub, et olla tõsi. 1832 01:12:35,820 --> 01:12:38,700 Kuna n on 0, ja 0 on väiksem kui 1. 1833 01:12:38,700 --> 01:12:40,140 Mis siis, et tähenda? 1834 01:12:40,140 --> 01:12:41,160 Tee seda uuesti. 1835 01:12:41,160 --> 01:12:41,990 Tee seda uuesti. 1836 01:12:41,990 --> 01:12:42,640 Tee seda uuesti. 1837 01:12:42,640 --> 01:12:46,080 Alles siis, kui see tingimus on FALSE. 1838 01:12:46,080 --> 01:12:47,510 Kui ma tüüpi 42. 1839 01:12:47,510 --> 01:12:49,690 Hästi ei, 42 on mitte vähem kui 1. 1840 01:12:49,690 --> 01:12:52,320 Seega see silmus tehakse täidesaatva. 1841 01:12:52,320 --> 01:12:54,650 Ja nii sel hetkel, programm öelda, aitäh 1842 01:12:54,650 --> 01:12:57,530 42, sel juhul. 1843 01:12:57,530 --> 01:13:00,320 Nüüd, kui teil on see võimalus väljendada ennast - 1844 01:13:00,320 --> 01:13:02,360 Me ei peaks ootama, kuni see lõpuni. 1845 01:13:02,360 --> 01:13:03,620 See vőtab aega. 1846 01:13:03,620 --> 01:13:04,990 Et jätkata järgmine kord, ehk. 1847 01:13:04,990 --> 01:13:08,050 >> Aga nüüd, teil on võime loodetavasti aru 1848 01:13:08,050 --> 01:13:09,060 natuke geek huumorit. 1849 01:13:09,060 --> 01:13:11,560 Vabandused. 1850 01:13:11,560 --> 01:13:13,620 See ei iseloomusta huumorit arvutiteadus 1851 01:13:13,620 --> 01:13:14,870 maailmas, kuid see on armas. 1852 01:13:21,020 --> 01:13:23,890 [Naerab] Lõpetame selle teadmiseks. 1853 01:13:23,890 --> 01:13:25,750 Ja me näeme esmaspäeval. 1854 01:13:25,750 --> 01:13:31,629 [Aplaus]