1 00:00:07,830 --> 00:00:12,200 [Powered by Google Translate] DAVID MALAN: Ovo je CS50, a to je početak tjedna 1. 2 00:00:12,200 --> 00:00:15,520 Ono što smo mislili da ćemo učiniti danas je pogledati natrag na 3 00:00:15,520 --> 00:00:18,290 nešto što mnogi od vas vjerojatno su hodali prošlost za neke 4 00:00:18,290 --> 00:00:20,570 Vrijeme sada i može izgledati malo upoznati. 5 00:00:20,570 --> 00:00:23,720 To je stvar ovdje, ovo je, naravno, u - 6 00:00:23,720 --> 00:00:24,155 PUBLIKA: Znanost. 7 00:00:24,155 --> 00:00:26,030 DAVID MALAN: Znanost centar. 8 00:00:26,030 --> 00:00:28,940 Dakle, to je zapravo jedan od prvih računala 9 00:00:28,940 --> 00:00:30,220 Povratak iz 1940. 10 00:00:30,220 --> 00:00:33,790 To je bio jedan od prvih elektromehaničkih računala 11 00:00:33,790 --> 00:00:35,730 koja je bila sposobna osobito dugo, 12 00:00:35,730 --> 00:00:38,450 self-pretrpio proračuni, a ono što mi zapravo vidimo u 13 00:00:38,450 --> 00:00:41,580 znanost centar je samo mali dio ovoga. 14 00:00:41,580 --> 00:00:44,170 Ono što smo mislili da ćemo tada učiniti je pogledati unatrag na videu 15 00:00:44,170 --> 00:00:46,670 koji je napravio prije nekog vremena, uvođenjem to 16 00:00:46,670 --> 00:00:47,520 stvar na svijetu. 17 00:00:47,520 --> 00:00:50,200 A vi ćete vidjeti iz glazbe i glasa koji doista onih 18 00:00:50,200 --> 00:00:52,070 bili su vrlo sretni puta. 19 00:00:54,885 --> 00:00:59,700 >> [Video reprodukciju] 20 00:00:59,700 --> 00:01:02,490 -Trijumf matematičke i mehaničke vještine je to 21 00:01:02,490 --> 00:01:06,340 veliki novi automatski kalkulator na Sveučilištu Harvard. 22 00:01:06,340 --> 00:01:08,620 Zamršeno problemi u matematici, staviti preko 23 00:01:08,620 --> 00:01:12,420 stroj u kodiranom obliku na vrpci, točno se riješiti u 24 00:01:12,420 --> 00:01:15,200 minuta frakcija vrijeme potrebno za čovjeka 25 00:01:15,200 --> 00:01:16,450 Izračun. 26 00:01:27,050 --> 00:01:30,600 Dizajniran kako bi ubrzali sve oblike matematička i znanstvena 27 00:01:30,600 --> 00:01:34,610 Istraživanje, div mehanički mozak će raditi za United 28 00:01:34,610 --> 00:01:36,570 Države mornarice do rata kraja. 29 00:01:50,280 --> 00:01:52,980 >> DAVID MALAN: Dakle, ono što možda ne znate je da je u 30 00:01:52,980 --> 00:01:56,310 taj isti uređaj koji pojam svi mi sada uzeti prilično 31 00:01:56,310 --> 00:01:59,300 zdravo za gotovo je skovao, a to je bug. 32 00:01:59,300 --> 00:02:01,140 Dakle, jedan od inženjera koji rade u ovom računalu 33 00:02:01,140 --> 00:02:05,280 doslovno pronašao mali moljac u stroju koji je rezultirao 34 00:02:05,280 --> 00:02:07,580 u nekim pogrešnim izračunima. 35 00:02:07,580 --> 00:02:10,410 I kao što se priča da je moljac je sniman na ovom dnevniku 36 00:02:10,410 --> 00:02:14,180 Časopis ovdje, natrag od 9. rujna u 1940 i nešto, 37 00:02:14,180 --> 00:02:16,550 i tako je rođen za svijet pojam "bug". 38 00:02:16,550 --> 00:02:19,880 Dakle, ubuduće ćemo razmotriti bugovi da se bilo kakve pogreške u 39 00:02:19,880 --> 00:02:23,290 programi, hoće li čovjek napravio ili, u ovom slučaju, insekti. 40 00:02:23,290 --> 00:02:25,030 >> Dakle, nekoliko najavama, kao što smo nastavili. 41 00:02:25,030 --> 00:02:29,160 Dakle CS50 ima tradiciju nudeći ručkove od sorti na 42 00:02:29,160 --> 00:02:31,600 većina Petkom tijekom semestra, gdje smo uzeti 30 do 43 00:02:31,600 --> 00:02:34,650 40 studenata na vatru i led na trgu za povremeni 44 00:02:34,650 --> 00:02:36,390 ćaskati, razgovor o računalnoj znanosti, 45 00:02:36,390 --> 00:02:37,420 razgovarati o budućnosti. 46 00:02:37,420 --> 00:02:40,000 Pozivamo alumni i prijatelje iz industrije za razgovor gore 47 00:02:40,000 --> 00:02:40,690 studenti kao dobro. 48 00:02:40,690 --> 00:02:44,020 Stvarno prema kraju izrade što je prilično velika klasa 49 00:02:44,020 --> 00:02:46,740 sve više intimni, barem jednom u dok je za 50 00:02:46,740 --> 00:02:47,710 podskupovi studenata. 51 00:02:47,710 --> 00:02:50,940 Dakle, ako želite da nam se pridružite ovaj petak, 13:15, idite na 52 00:02:50,940 --> 00:02:53,340 CS50.net/lunch na RSVP. 53 00:02:53,340 --> 00:02:55,840 A mi ćemo to učiniti recurringly, tako da ne brinite ako niste 54 00:02:55,840 --> 00:02:57,930 među prvih 30 ili tako ovaj tjedan. 55 00:02:57,930 --> 00:02:59,070 >> Dakle, pisar bilješke. 56 00:02:59,070 --> 00:03:01,500 Riječ o sredstvima koja će sada početi biti dostupan 57 00:03:01,500 --> 00:03:03,040 učenicima u razredu. 58 00:03:03,040 --> 00:03:05,540 Tako da vaši šefovi ne moraju biti dolje tijekom predavanja 59 00:03:05,540 --> 00:03:08,560 škrabotine dolje sve kažem i tako dalje, što nam je činiti 60 00:03:08,560 --> 00:03:10,765 umjesto toga osigurati iz nastavnog osoblja 61 00:03:10,765 --> 00:03:11,920 kanonski set nota. 62 00:03:11,920 --> 00:03:14,850 Dakle, imamo jednu od naših nastavnih bližnjima, Andrew Sellergren, 63 00:03:14,850 --> 00:03:17,830 koji sjeda svaki tjedan, pregled videa, a zatim 64 00:03:17,830 --> 00:03:19,730 zapisuje ono što mi mislimo da je prilično 65 00:03:19,730 --> 00:03:21,840 mjerodavan set nota. 66 00:03:21,840 --> 00:03:24,180 A Andrije vole, također, stavljanjem snarky fusnote 67 00:03:24,180 --> 00:03:24,820 dno. 68 00:03:24,820 --> 00:03:27,300 Dakle, nadamo se da ćete uživati ​​u ove kao referentna knjiga za 69 00:03:27,300 --> 00:03:30,230 zabavno, a također, dolaze kviz vrijeme, kao prilika za pregled 70 00:03:30,230 --> 00:03:31,830 Što se dogodilo u pojedinim predavanjima. 71 00:03:31,830 --> 00:03:33,580 Dakle, oni su povezani na predavanja stranici. 72 00:03:33,580 --> 00:03:35,300 >> Problem set 0, u međuvremenu, je van. 73 00:03:35,300 --> 00:03:37,470 I u pogledu raspoloživih resursa za vas - 74 00:03:37,470 --> 00:03:38,020 prohod. 75 00:03:38,020 --> 00:03:39,730 Milo vodio prvi petak. 76 00:03:39,730 --> 00:03:41,470 To je sniman, staviti online do subote. 77 00:03:41,470 --> 00:03:44,030 I tako shvatiti, ako ste zapravo nisu sigurni gdje početi, 78 00:03:44,030 --> 00:03:47,280 za ovo ili budućnost p-seta, uvijek se najprije 79 00:03:47,280 --> 00:03:49,300 prohod ili videa istih. 80 00:03:49,300 --> 00:03:52,950 Rezova je u tijeku, a na cs50.net/section je mjesto gdje ćete 81 00:03:52,950 --> 00:03:54,540 treba dostaviti svoje preferencije, ako niste 82 00:03:54,540 --> 00:03:55,880 , već od danas. 83 00:03:55,880 --> 00:03:58,140 Zbog sekcije će početi ovaj dolazak nedjelja, ponedjeljak, 84 00:03:58,140 --> 00:03:58,760 i utorak. 85 00:03:58,760 --> 00:04:02,470 Mi radimo dijelove tih tri dana, svaki tjedan 86 00:04:02,470 --> 00:04:03,870 semestar za najveći dio. 87 00:04:03,870 --> 00:04:06,600 I mi također uvesti, opet, različite pjesme. 88 00:04:06,600 --> 00:04:08,270 Tako ćete biti pitani na ovom rezova obliku, ako 89 00:04:08,270 --> 00:04:10,350 nisu ga vidjeli već, ako ste među onima manje 90 00:04:10,350 --> 00:04:12,800 ugodno, ugodnije, ili negdje između. 91 00:04:12,800 --> 00:04:14,960 A ako ste vrsta na ogradi, uglavnom negdje u 92 00:04:14,960 --> 00:04:18,160 između je ono što većina studenata završiti provjeru. 93 00:04:18,160 --> 00:04:19,579 Radno vrijeme početi večeras. 94 00:04:19,579 --> 00:04:23,020 >> Dakle, Scratch je prilično niska ključ, iako je sasvim prirodno 95 00:04:23,020 --> 00:04:25,300 pokrenuti u raznim bugova, ili biti neizvjesno kako da 96 00:04:25,300 --> 00:04:26,550 provesti nešto. 97 00:04:26,550 --> 00:04:28,880 Dakle, shvatili da ćemo početi radno vrijeme ovaj tjedan. 98 00:04:28,880 --> 00:04:30,500 Oni će biti na Annenberg ponedjeljak, utorak, srijeda, 99 00:04:30,500 --> 00:04:34,300 Četvrtak, 20:00-23:00 tijekom pauze mozga. 100 00:04:34,300 --> 00:04:38,160 Gornja classmen mogu dobiti, a ako ste ikada imali problema dobivanje 101 00:04:38,160 --> 00:04:40,720 u vrata, jer oni će se očitavanjem, samo razgovarati svoj put 102 00:04:40,720 --> 00:04:42,560 i objasniti da ste s CS50. 103 00:04:42,560 --> 00:04:45,230 Obično 20-30 od nas na osoblje će biti tu da pomogne 104 00:04:45,230 --> 00:04:46,190 ti jedan na jedan. 105 00:04:46,190 --> 00:04:48,980 >> Po dolasku ideja je ovo: vi ćete donijeti svoj laptop, 106 00:04:48,980 --> 00:04:51,300 imat ćete svoj punjač, ​​mi ćemo imati dodatni kabele napajanja, 107 00:04:51,300 --> 00:04:53,320 posebno uz južni zid Annenberg gdje 108 00:04:53,320 --> 00:04:55,080 postoji mnogo električnih utičnica. 109 00:04:55,080 --> 00:04:59,290 A glavna polazna točka za uredski sata Q & A je da ide 110 00:04:59,290 --> 00:05:01,690 cs50.net/discuss i postavljati 111 00:05:01,690 --> 00:05:02,580 Vaše pitanje tamo. 112 00:05:02,580 --> 00:05:05,600 I da ga označiti s pset 0 ili pset 1, bez obzira na tjedan 113 00:05:05,600 --> 00:05:06,810 bi se moglo dogoditi da bude. 114 00:05:06,810 --> 00:05:09,240 A onda ono što ćemo učiniti je imati tablicu nastavnih bližnjima 115 00:05:09,240 --> 00:05:12,040 i naravno asistenti, općenito 8 ili 10 ili tako od nas, 116 00:05:12,040 --> 00:05:14,430 prolazi kroz, držanje budnim okom na brodu, a 117 00:05:14,430 --> 00:05:16,810 plucking off pitanja stvarno tako brzo kao što možemo, 118 00:05:16,810 --> 00:05:19,600 ti odnosi povezanih postova, ako niste našli one 119 00:05:19,600 --> 00:05:22,220 vi, online reference, prema potrebi. 120 00:05:22,220 --> 00:05:24,280 A onda, ako postoje problemi, kao što neminovno 121 00:05:24,280 --> 00:05:27,190 će biti, ili je to samo čini više smisla da sjednu jedan na jedan, 122 00:05:27,190 --> 00:05:28,660 raditi kroz probleme s nekim. 123 00:05:28,660 --> 00:05:30,810 >> Ili ste samo doći u uredovno vrijeme stvarno 124 00:05:30,810 --> 00:05:31,640 potrebe da razmišljanje. 125 00:05:31,640 --> 00:05:33,400 Vi ne želite ići kroz elektroničkom obliku, 126 00:05:33,400 --> 00:05:34,410 stvarno želite upoznati s nekim. 127 00:05:34,410 --> 00:05:37,240 Komunicirajte da za nas, a što će se dogoditi kada je vaše 128 00:05:37,240 --> 00:05:40,620 Pitanje je vidio član osoblja, a mi 129 00:05:40,620 --> 00:05:43,660 odrediti, Yup, to bi trebalo biti poslana na jedan od 20 ili 130 00:05:43,660 --> 00:05:47,800 30 reprezentativci ovdje lokalno, vidjet ćete na vrhu lijevo je ovo 131 00:05:47,800 --> 00:05:51,590 Malo Unesite Queue gumb počne treptati na cs50.net / 132 00:05:51,590 --> 00:05:52,165 raspravljati. 133 00:05:52,165 --> 00:05:55,260 A to vam govori da ste sada su pozvani, pa 134 00:05:55,260 --> 00:05:56,880 govoriti, ući u red. 135 00:05:56,880 --> 00:05:59,090 A ako kliknete gumb, vaše ime će se pojaviti na 136 00:05:59,090 --> 00:06:02,660 ipad da CS50 greeter, jedan od tečaja u glavama, neće 137 00:06:02,660 --> 00:06:05,250 se drži na samom ulazu u Annenberg, koji će zatim 138 00:06:05,250 --> 00:06:08,630 vidjeti kao što je prikazano ovdje, studenti koji imaju pitanja o 139 00:06:08,630 --> 00:06:11,630 lijevo, osoblje članovi koji su prisutni na desnoj strani. 140 00:06:11,630 --> 00:06:14,830 A s klikom lijevo i desno, vaš web preglednik će 141 00:06:14,830 --> 00:06:18,610 početi treptati čim, na primjer, profesor McGonnagal 142 00:06:18,610 --> 00:06:21,460 je spreman da vas vidim na određenom stolu u Annenberg. 143 00:06:21,460 --> 00:06:23,340 >> Tako smo napravili neke od ove prošle godine. 144 00:06:23,340 --> 00:06:25,430 Mi smo digne radno vrijeme i 145 00:06:25,430 --> 00:06:26,980 ponovno provoditi mnogo softvera. 146 00:06:26,980 --> 00:06:29,940 Dakle, shvatili da će to biti zagrijati ovaj tjedan. 147 00:06:29,940 --> 00:06:32,970 Ali isto tako shvatiti previše, u posljednjih godina, kao što ste možda čuli 148 00:06:32,970 --> 00:06:35,710 od prijatelja, radno vrijeme je od 50 do doista 149 00:06:35,710 --> 00:06:37,040 150 učenika odjednom. 150 00:06:37,040 --> 00:06:39,300 I to je jednostavno nije moguće za nas da obrađuju da 151 00:06:39,300 --> 00:06:42,060 učinkovito, jedan na jedan, tijekom večeri. 152 00:06:42,060 --> 00:06:44,570 I tako ono što smo stvarno idući u pokušati učiniti ove godine je 153 00:06:44,570 --> 00:06:46,590 kapitalizirati na činjenicu da je puno pitanja su 154 00:06:46,590 --> 00:06:49,050 česta i često može biti bolje odgovorio 155 00:06:49,050 --> 00:06:50,030 asinkrono. 156 00:06:50,030 --> 00:06:52,140 Tako možete sortirati think kroz osoblja odgovor, 157 00:06:52,140 --> 00:06:54,360 i možemo misliti kroz koda, bez grijani 158 00:06:54,360 --> 00:06:57,050 tlak nužno bore 159 00:06:57,050 --> 00:06:58,210 kroz to rame uz rame. 160 00:06:58,210 --> 00:07:00,980 Tako smo procijenili da je otprilike trećina ili polovica pitanja 161 00:07:00,980 --> 00:07:03,500 će biti otpremljen u osobi, a mi ćemo pokušati oteti off kao 162 00:07:03,500 --> 00:07:05,530 koliko pola ili više elektronski, 163 00:07:05,530 --> 00:07:06,710 tijekom radnog vremena. 164 00:07:06,710 --> 00:07:08,070 A mi ćemo nastaviti koristiti Raspravljajte 165 00:07:08,070 --> 00:07:09,990 tijekom tjedna, kao dobro. 166 00:07:09,990 --> 00:07:12,680 >> I na kraju, shvatili da je ovaj tečaj može uzeti pass / fail. 167 00:07:12,680 --> 00:07:16,230 Dakle, ako ste na ogradi ili samo mislite da ste stvarno 168 00:07:16,230 --> 00:07:18,650 ne siguran ako ovaj je svijet za vas, ili je to stvarno 169 00:07:18,650 --> 00:07:21,310 prilično stran vas, shvatite da je to prekrasan način 170 00:07:21,310 --> 00:07:24,840 dobivanjem neke povjerenje s kojima se korak u 171 00:07:24,840 --> 00:07:26,780 klase, kao što sam učinio iskreno, godina. 172 00:07:26,780 --> 00:07:28,630 I onda imaju pet tjedana sortirati figure out za 173 00:07:28,630 --> 00:07:30,850 sami, ako želite ostati proći / ne, prebacite na slovo 174 00:07:30,850 --> 00:07:31,800 razreda, ili slično. 175 00:07:31,800 --> 00:07:34,050 A obično ono što prođe / ne ne, mislim, za studente je 176 00:07:34,050 --> 00:07:36,700 da, ako ste stavili u tom 10 sati, 20 sati, bez obzira na to 177 00:07:36,700 --> 00:07:38,830 možda na neke probleme, a vi ste lupanje glavom 178 00:07:38,830 --> 00:07:39,690 uza zid, 179 00:07:39,690 --> 00:07:41,750 i stvarno jednostavno ne mogu loviti nešto dolje, a vi 180 00:07:41,750 --> 00:07:44,230 ima toliko drugih stvari koje trebate učiniti, iskreno, što sam 181 00:07:44,230 --> 00:07:46,070 mislim proći / ne, to traje rub off 182 00:07:46,070 --> 00:07:47,250 situacije kao što je to. 183 00:07:47,250 --> 00:07:49,350 Gdje ste uzeli stvar 90% na putu. 184 00:07:49,350 --> 00:07:50,830 Znate, to nije sasvim savršen. 185 00:07:50,830 --> 00:07:52,950 Ali imaš puno od njega, svejedno. 186 00:07:52,950 --> 00:07:55,440 Dakle, razmislite proći / ne kao što vam daje da 187 00:07:55,440 --> 00:07:57,590 mentalni model, možda. 188 00:07:57,590 --> 00:08:00,680 >> U redu, tako je prošlog tjedna smo zaronili u nule, a mi 189 00:08:00,680 --> 00:08:03,610 govorio o programiranju na prilično visokom grafičkom razini. 190 00:08:03,610 --> 00:08:05,340 I danas smo napraviti prijelaz na jeziku 191 00:08:05,340 --> 00:08:08,300 zove C, niže razine programski jezik na vrhu 192 00:08:08,300 --> 00:08:11,260 koje mnogi moderni jezici su sada izgradili, uključujući i neke 193 00:08:11,260 --> 00:08:13,010 od onih ćemo koristiti prema termina kraja. 194 00:08:13,010 --> 00:08:15,530 I sintaktički, što izgledaju 195 00:08:15,530 --> 00:08:17,330 Sve je vrlo sličan. 196 00:08:17,330 --> 00:08:19,080 Pa krenimo napraviti taj prijelaz ovdje. 197 00:08:19,080 --> 00:08:21,730 Dakle, ovo je program prošlog tjedna da je najjednostavniji 198 00:08:21,730 --> 00:08:22,910 Hello World programa. 199 00:08:22,910 --> 00:08:25,560 To jednostavno ispisati na svijetu ekrana Hello, s 200 00:08:25,560 --> 00:08:27,650 Malo govor mjehurić izlazili mačka. 201 00:08:27,650 --> 00:08:30,590 Pa, ako ćemo odmah početi prevesti ovo na drugu 202 00:08:30,590 --> 00:08:33,419 jezik, shvatiti da su ideje danas i srijedu 203 00:08:33,419 --> 00:08:36,450 su identični, ali sintaksa počinje mijenjati. 204 00:08:36,450 --> 00:08:39,370 Dakle, dok je prošlog tjedna imali smo, kada je zelena zastava kliknuli, kažu 205 00:08:39,370 --> 00:08:40,340 halo svijet. 206 00:08:40,340 --> 00:08:43,870 Danas ćemo imati int, glavni, praznina, printf, 207 00:08:43,870 --> 00:08:46,350 povratak, s nekim drugim sintakse u tu kao dobro. 208 00:08:46,350 --> 00:08:49,200 Kovrčava proteza i zagrade, i citati, i sitnica. 209 00:08:49,200 --> 00:08:54,520 No, shvatili da je osnovna ideja ovdje je tisak, 210 00:08:54,520 --> 00:08:58,470 i na kraju činjenica da glavni sada će biti 211 00:08:58,470 --> 00:09:00,770 sinonim za pokretanje programa. 212 00:09:00,770 --> 00:09:04,250 Glavni će biti tamo gdje zelena zastava slatkiš stvari off. 213 00:09:04,250 --> 00:09:06,390 >> Dakle, sada idemo zafrkavati osim neke od građevnih blokova ovdje 214 00:09:06,390 --> 00:09:08,650 prije nego što smo zaroniti u nekim konkretnim primjerima. 215 00:09:08,650 --> 00:09:11,620 Tako smo nazvali ovu izjavu prošlog tjedna, pri čemu je samo 216 00:09:11,620 --> 00:09:12,470 upute. 217 00:09:12,470 --> 00:09:15,660 Učinite to - u ovom slučaju, pozdravi svijet. 218 00:09:15,660 --> 00:09:18,400 Pa u C, ako gledamo samo toj liniji, to je, kako smo 219 00:09:18,400 --> 00:09:20,920 će početi izražavajući taj određeni dio slagalice: 220 00:09:20,920 --> 00:09:24,780 printf ("Hello World");. 221 00:09:24,780 --> 00:09:27,330 A sada ćemo zafrkavati njih, osim sve više i više vremena, 222 00:09:27,330 --> 00:09:29,330 ali shvatite da je obrazac ovdje. 223 00:09:29,330 --> 00:09:31,870 Dakle, mi smo tu stvar zvanu printf, što je 224 00:09:31,870 --> 00:09:34,310 suštini analogan riječi reći. 225 00:09:34,310 --> 00:09:35,800 To je ono što će učiniti. 226 00:09:35,800 --> 00:09:37,870 Printf, i f ovdje znači "formatiran". 227 00:09:37,870 --> 00:09:39,270 Dakle, to samo znači da možete umetnuti 228 00:09:39,270 --> 00:09:41,600 razni estetski detalj. 229 00:09:41,600 --> 00:09:43,770 Dakle, citat završiti citat je početak onoga što ćemo 230 00:09:43,770 --> 00:09:45,340 početi zovete niz. 231 00:09:45,340 --> 00:09:47,110 Riječ, fraza, rečenica. 232 00:09:47,110 --> 00:09:50,220 Niz u programskom jeziku je niz nula 233 00:09:50,220 --> 00:09:51,330 ili više znakova. 234 00:09:51,330 --> 00:09:54,390 Dakle h-e-l-l-o, zarez, i tako dalje je, 235 00:09:54,390 --> 00:09:56,290 citat završiti citat, niz. 236 00:09:56,290 --> 00:09:58,710 A sada backslash n, malo sintaktički čudno, ali mi 237 00:09:58,710 --> 00:10:01,780 već definirano da je prošli tjedan što znači što? 238 00:10:01,780 --> 00:10:02,630 To je samo novi redak. 239 00:10:02,630 --> 00:10:05,000 To je samo način prenošenja na računalo želite 240 00:10:05,000 --> 00:10:07,700 ekvivalent udarca Unesite postoji, ali ne 241 00:10:07,700 --> 00:10:10,460 želite da se zapravo pogodio Unesite i stoga zabrljati sve 242 00:10:10,460 --> 00:10:12,130 oblikovanje svog stvarnog programa. 243 00:10:12,130 --> 00:10:15,500 Sada zagrade priložiti ovaj niz, otvorena zagrada i 244 00:10:15,500 --> 00:10:18,130 blizu paren, a unutar koje je naš niz. 245 00:10:18,130 --> 00:10:22,600 Budući da je zato u C, a drugi programski 246 00:10:22,600 --> 00:10:27,510 jezici, stvari printf like uzeti argumente, ili se 247 00:10:27,510 --> 00:10:28,420 parametri. 248 00:10:28,420 --> 00:10:31,490 >> Dakle, početi razmišljati sada ove ljubičaste Say bloka kao 249 00:10:31,490 --> 00:10:34,890 funkciju, kao i metode, kao postupak. 250 00:10:34,890 --> 00:10:36,890 Vi stvarno možete ga nazvati kako god želite, za sada, ali 251 00:10:36,890 --> 00:10:39,260 to je svojevrsni minijaturni programu koji se samo čini jedan 252 00:10:39,260 --> 00:10:41,480 stvar, u jednoj liniji, ne manje. 253 00:10:41,480 --> 00:10:43,620 Dakle printf je ono što ćemo početi zovete 254 00:10:43,620 --> 00:10:46,680 funkcija, a funkcija nešto učiniti - u ovom slučaju 255 00:10:46,680 --> 00:10:49,320 ispisuje formatiran string na zaslonu - 256 00:10:49,320 --> 00:10:53,220 ali funkcionira također uzeti argumente ili parametre. 257 00:10:53,220 --> 00:10:55,880 I argumenata ili parametara, hvala ti, što znači 258 00:10:55,880 --> 00:11:01,220 da njihovo ponašanje može utjecati ono što prođe u 259 00:11:01,220 --> 00:11:03,420 unutar zagrada. 260 00:11:03,420 --> 00:11:06,460 Dakle, u ovom slučaju, printf potrebe se javi što za ispis, a mi 261 00:11:06,460 --> 00:11:09,520 samo proći, u navodnicima ovdje, niz koji smo 262 00:11:09,520 --> 00:11:11,270 zapravo želite ispisati. 263 00:11:11,270 --> 00:11:14,060 I zarez na samom kraju ove linije je samo 264 00:11:14,060 --> 00:11:18,020 povijesni neugodnost čemu na kraju većine linija koda, 265 00:11:18,020 --> 00:11:21,170 stavite zarez bi super jasno na računalo 266 00:11:21,170 --> 00:11:23,020 da je ova linija koda završava ovdje. 267 00:11:23,020 --> 00:11:25,600 Sada je to dobro, jer kao što ćemo vidjeti, kao programa dobiti više 268 00:11:25,600 --> 00:11:29,030 kompleks, zarez, učinit će super jasno da nas ljudi, 269 00:11:29,030 --> 00:11:32,280 i računalo, gdje linije koda početka i kraja. 270 00:11:32,280 --> 00:11:34,360 Shvatite da neki jezici nemaju neke 271 00:11:34,360 --> 00:11:35,045 od tih istih detalja. 272 00:11:35,045 --> 00:11:37,870 A u stvari, u JavaScriptu, ne trebate uvijek nešto 273 00:11:37,870 --> 00:11:38,670 poput zarezom. 274 00:11:38,670 --> 00:11:40,210 No, više o tome kako doći. 275 00:11:40,210 --> 00:11:41,170 >> Dakle petlje. 276 00:11:41,170 --> 00:11:43,520 Imali smo nešto ovako, vrlo intuitivno, očito, ne 277 00:11:43,520 --> 00:11:44,860 nešto opet i opet i opet. 278 00:11:44,860 --> 00:11:47,720 Sviđa mi se stavlja na čarapama ili rekavši hello, u ovom slučaju. 279 00:11:47,720 --> 00:11:51,090 Pa, počevši danas u C, mogli bismo izraziti ovu Scratch 280 00:11:51,090 --> 00:11:54,970 blokirati jer dok (istina) printf ("Hello World"). 281 00:11:54,970 --> 00:11:57,630 Dakle, primijetit ćemo počinju graditi na doslovno slagalice 282 00:11:57,630 --> 00:11:58,480 komad od prije. 283 00:11:58,480 --> 00:12:01,310 Imamo istu ljubičastu blok, ali to je unutar toga 284 00:12:01,310 --> 00:12:04,880 zagrade Beskonačno blok, a najbolji način za prevođenje koji 285 00:12:04,880 --> 00:12:06,480 na C je sljedeća. 286 00:12:06,480 --> 00:12:08,130 Nema Beskonačno ključna riječ. 287 00:12:08,130 --> 00:12:10,940 Ne samo upišite f-O-R-e-v-e-r u C. 288 00:12:10,940 --> 00:12:13,440 Dakle najbliži analogne dok. 289 00:12:13,440 --> 00:12:17,050 >> Sada, dok je (istina) čini malo glupo jer ne vrijednost 290 00:12:17,050 --> 00:12:18,700 istinske ikada promijeniti? 291 00:12:18,700 --> 00:12:19,810 Vjerojatno ne. 292 00:12:19,810 --> 00:12:22,770 To je kao da kažete, dok je jedan, dok je na, dok je istina. 293 00:12:22,770 --> 00:12:25,430 To je sve ista stvar, istina je uvijek slučaj. 294 00:12:25,430 --> 00:12:29,860 Dakle, ovo petlja zapravo izaziva Kakav petlju? 295 00:12:29,860 --> 00:12:31,210 Samo beskonačna petlja, desno. 296 00:12:31,210 --> 00:12:32,930 Zauvijek petlja ili kako smo ga nazvali prošlog tjedna, 297 00:12:32,930 --> 00:12:33,870 samo beskonačna petlja. 298 00:12:33,870 --> 00:12:35,250 Dakle, ponekad to je loše. 299 00:12:35,250 --> 00:12:37,060 Ponekad to je bug, ponekad to je razlog zašto ste dobili 300 00:12:37,060 --> 00:12:39,340 predenje lopta za plažu ili pješčani sat ili slično. 301 00:12:39,340 --> 00:12:41,260 No, u ovom slučaju, mi se namjerno, iz bilo kojeg 302 00:12:41,260 --> 00:12:43,040 Razlog, htio ispisati istu stvar opet 303 00:12:43,040 --> 00:12:43,970 i opet i opet. 304 00:12:43,970 --> 00:12:45,900 Ili, u slučaju kao sat, što želite učiniti 305 00:12:45,900 --> 00:12:47,470 nešto opet i opet i opet. 306 00:12:47,470 --> 00:12:49,070 Dakle beskonačne petlje moglo imati smisla. 307 00:12:49,070 --> 00:12:53,560 A to je, kako se u C možemo prevesti Beskonačno do koda. 308 00:12:53,560 --> 00:12:55,570 >> Tako sada ovaj je malo precizniji. 309 00:12:55,570 --> 00:12:58,880 Imali smo ponoviti 10 puta sljedeću izjavu. 310 00:12:58,880 --> 00:13:02,490 Dakle, dok je (istina) ne sasvim tamo raditi, jer istina je 311 00:13:02,490 --> 00:13:03,590 uvijek istina. 312 00:13:03,590 --> 00:13:07,060 Dakle, ako smo umjesto pogledate C verzije, sada dobiva sintaksa 313 00:13:07,060 --> 00:13:08,180 Malo više zagonetan. 314 00:13:08,180 --> 00:13:11,380 No, da budem iskren, kada počnete vidjeti to, sve to dobiva 315 00:13:11,380 --> 00:13:12,600 prilično upoznat brzo. 316 00:13:12,600 --> 00:13:14,370 Dakle, to je ono što se zove for petlje. 317 00:13:14,370 --> 00:13:17,210 For petlja će reći računalo učiniti nešto 318 00:13:17,210 --> 00:13:20,710 opet i opet i opet sve dok 319 00:13:20,710 --> 00:13:21,850 te stvari su istinite. 320 00:13:21,850 --> 00:13:23,370 Što ćemo sada reći? 321 00:13:23,370 --> 00:13:25,470 Pa, tu je tri dijelove za petlje, a mi ćemo 322 00:13:25,470 --> 00:13:28,240 vratiti na to u kontekstu stvarna 323 00:13:28,240 --> 00:13:29,100 Primjeri u ovom trenutku. 324 00:13:29,100 --> 00:13:31,650 Dakle, ne brinite ako ne sasvim potonuti u sve odjednom. 325 00:13:31,650 --> 00:13:35,400 No int i = 0, duljimo, rekavši mi dati 326 00:13:35,400 --> 00:13:38,290 varijabla koja je tipa integer, tako da će mi dati broj 327 00:13:38,290 --> 00:13:40,890 Zvao sam, i to inicijalizirati na 0. 328 00:13:40,890 --> 00:13:43,460 To je kao da mi daju algebarski varijable x i 329 00:13:43,460 --> 00:13:44,580 ga inicijalizirati na 0. 330 00:13:44,580 --> 00:13:46,250 No, u ovom slučaju smo ga zvali ja. 331 00:13:46,250 --> 00:13:49,120 Tada se u sredini, što govori i je manje od 10. 332 00:13:49,120 --> 00:13:52,150 To govori računalo ne sljedeće stvari, tako dugo 333 00:13:52,150 --> 00:13:53,770 kao što sam je manje od 10. 334 00:13:53,770 --> 00:13:55,370 A očito je da počne manje od 10 jer 335 00:13:55,370 --> 00:13:56,550 počinje na 0. 336 00:13:56,550 --> 00:13:59,150 Onda na kraju, možda možete pogoditi što sam + + sredstva. 337 00:13:59,150 --> 00:14:02,140 To je malo sintaksom to samo znači ja povećavati. 338 00:14:02,140 --> 00:14:05,270 Dakle, dodajte 1 do i, opet i opet i opet. 339 00:14:05,270 --> 00:14:09,260 >> I tako ćemo vidjeti ovu petlju, to sintaksa, a, provodi 340 00:14:09,260 --> 00:14:12,160 upravo ista stvar koja, iskreno, u Scratch je samo tako 341 00:14:12,160 --> 00:14:13,250 puno lakše izraziti. 342 00:14:13,250 --> 00:14:15,170 Ponovite 10, i gotovi ste. 343 00:14:15,170 --> 00:14:17,690 U C, te u većini programskih jezika, moramo biti 344 00:14:17,690 --> 00:14:20,190 malo više poučan za računala i zapravo 345 00:14:20,190 --> 00:14:21,630 odrediti ovako nešto. 346 00:14:21,630 --> 00:14:23,730 No, vratit ćemo se na to i druge sintakse. 347 00:14:23,730 --> 00:14:24,780 >> Što o varijabli? 348 00:14:24,780 --> 00:14:26,940 U Scratch smo imali nešto poput ovih narančastih blokova, 349 00:14:26,940 --> 00:14:28,180 gdje bih mogao proglasiti varijablu. 350 00:14:28,180 --> 00:14:30,000 Ajmo proizvoljno nazvati brojač. 351 00:14:30,000 --> 00:14:31,880 Neka je to inicijalizirati na 0, a zatim 352 00:14:31,880 --> 00:14:33,240 ajmo zauvijek učiniti nešto. 353 00:14:33,240 --> 00:14:35,760 U tom slučaju u Scratch govorim brojač, tako 354 00:14:35,760 --> 00:14:38,230 mačka će imati malo oblačića koji je govorio 355 00:14:38,230 --> 00:14:40,010 broj koji je u tom varijablom. 356 00:14:40,010 --> 00:14:42,460 I onda imamo promjenu brojač jedan. 357 00:14:42,460 --> 00:14:45,760 Dakle, sve je to upakirano unutar zauvijek bravu. 358 00:14:45,760 --> 00:14:48,960 Dakle, mi već sada imamo izgrađeni u C s 359 00:14:48,960 --> 00:14:50,040 koja prevesti ovo. 360 00:14:50,040 --> 00:14:51,650 >> Jedan način na koji smo mogli učiniti da je to. 361 00:14:51,650 --> 00:14:53,890 Daj mi integer, nazovite ga brojač. 362 00:14:53,890 --> 00:14:55,190 Ga Inicijaliziranje na 0 363 00:14:55,190 --> 00:14:56,490 u prvoj liniji tamo. 364 00:14:56,490 --> 00:14:59,390 Dok (prava), pa sam ukrao tu ideju od samo trenutak 365 00:14:59,390 --> 00:15:01,300 Prije ići naprijed i učiniti sljedeće. 366 00:15:01,300 --> 00:15:04,880 Ispiši brojač, a zatim povećajte brojač, 367 00:15:04,880 --> 00:15:06,930 opet, i opet, i opet. 368 00:15:06,930 --> 00:15:09,380 Ili opet, + + samo znači dodati jedan na nešto. 369 00:15:09,380 --> 00:15:11,030 No, tu je novi komad sintakse ovdje. 370 00:15:11,030 --> 00:15:15,730 Što iskakanja kako ne među našim prethodnim primjerima? 371 00:15:15,730 --> 00:15:17,190 Da, to% d. 372 00:15:17,190 --> 00:15:19,810 Tako da možda mogu zaključiti što to radi, iskreno, na temelju 373 00:15:19,810 --> 00:15:21,410 na ono grebanje blok radi. 374 00:15:21,410 --> 00:15:24,510 Ali opet u C, samo moramo biti malo više posebno 375 00:15:24,510 --> 00:15:25,990 kada je u pitanju sami izražavanja. 376 00:15:25,990 --> 00:15:30,560 >> Dakle printf ("% d \ n"). 377 00:15:30,560 --> 00:15:32,320 Pa većina da možemo baciti kao što je poznato. 378 00:15:32,320 --> 00:15:34,910 U citati samo znači da je niz, backslash n 379 00:15:34,910 --> 00:15:35,970 je samo nova linija. 380 00:15:35,970 --> 00:15:38,860 Dakle, jedina nova stvar ovdje je% d. 381 00:15:38,860 --> 00:15:40,390 A sve to je je rezervirano. 382 00:15:40,390 --> 00:15:43,510 % D će označavati decimalni broj. 383 00:15:43,510 --> 00:15:47,820 I% d računalo znači, staviti decimalni broj ovdje. 384 00:15:47,820 --> 00:15:49,450 Pa, što broj ne želite staviti tamo? 385 00:15:49,450 --> 00:15:52,400 Pa, kao što ste možda može zaključiti, nakon zareza kažemo 386 00:15:52,400 --> 00:15:55,480 brojač, koji je ime varijable koje smo proglasili ili 387 00:15:55,480 --> 00:15:57,260 stvorili nekoliko redaka ranije. 388 00:15:57,260 --> 00:16:02,420 Dakle, ovo je samo Kasiopejci način plugging u varijablu u 389 00:16:02,420 --> 00:16:04,480 Niz dinamički. 390 00:16:04,480 --> 00:16:07,350 Jer za razliku od, ako sam umjesto učinio nešto poput 391 00:16:07,350 --> 00:16:12,470 to, printf ("brojač"), što bi to 392 00:16:12,470 --> 00:16:15,220 Program umjesto učiniti, vjerojatno? 393 00:16:15,220 --> 00:16:17,260 To doslovno će ispisati "brojač". 394 00:16:17,260 --> 00:16:18,750 Koji nije efekt koji želim. 395 00:16:18,750 --> 00:16:20,920 Trebam zamijeniti u nekom numeričkom vrijednosti. 396 00:16:20,920 --> 00:16:24,340 Tako ćemo vidjeti da funkcija tada, kao i printf, može potrajati ne 397 00:16:24,340 --> 00:16:26,930 tek jednokrevetne argumente, poput 398 00:16:26,930 --> 00:16:28,150 "Hello World". 399 00:16:28,150 --> 00:16:32,050 Oni mogu uzeti zarez Citat završen citat, i onda neke varijable 400 00:16:32,050 --> 00:16:35,830 da će dobiti priključen u, kao što ćemo vidjeti prethodni niz 401 00:16:35,830 --> 00:16:38,280 putem tih rezerviranih% potpisati. 402 00:16:38,280 --> 00:16:39,660 >> Pa što je Boolean izraza? 403 00:16:39,660 --> 00:16:42,200 Boolean izrazi bili ove vrijednosti, pravi ili lažni. 404 00:16:42,200 --> 00:16:42,830 Da ili ne. 405 00:16:42,830 --> 00:16:44,020 1 ili 0. 406 00:16:44,020 --> 00:16:45,190 On ili off. 407 00:16:45,190 --> 00:16:47,570 Tako je u Scratch oni izgledaju ovako, i primijetiti da 408 00:16:47,570 --> 00:16:50,170 dno blok ovdje je zapravo zajedno 409 00:16:50,170 --> 00:16:51,500 dvaju manjih blokova. 410 00:16:51,500 --> 00:16:53,610 Tako nekako sam vukao i pao tri slagalice 411 00:16:53,610 --> 00:16:56,450 zajedno kako bi taj duži komad puzzle tamo, tako da sam 412 00:16:56,450 --> 00:17:00,420 mogao prenijeti ideju da želim x biti manji od y i 413 00:17:00,420 --> 00:17:02,540 y da se manje od z. 414 00:17:02,540 --> 00:17:05,790 I tako ja mogu prevesti ove dvije odvojene linije kao što slijedi. 415 00:17:05,790 --> 00:17:08,650 Vrh može biti vrlo naivno prevedena na C, 416 00:17:08,650 --> 00:17:10,069 sa samo x 00:17:11,990 Možda s nekim zagradama za dobru mjeru. 418 00:17:11,990 --> 00:17:15,520 A onda je u C, ne pisati i za označavanje 419 00:17:15,520 --> 00:17:16,819 veznik nečega. 420 00:17:16,819 --> 00:17:19,585 Možete pisati umjesto &&. 421 00:17:19,585 --> 00:17:22,849 I kao što smo na kraju ćemo vidjeti, jedan znak za struju događa 422 00:17:22,849 --> 00:17:23,880 znači nešto drugo. 423 00:17:23,880 --> 00:17:27,530 Dakle && samo označava ideju I. 424 00:17:27,530 --> 00:17:30,040 >> Pa opet, iako je ovo počinje izgledati prilično složena, 425 00:17:30,040 --> 00:17:32,560 jedan od ciljeva uvođenja Scratch, osim 426 00:17:32,560 --> 00:17:34,810 samo da neku od zabave na-rampe gdje možete učiniti 427 00:17:34,810 --> 00:17:36,590 nešto što je vrlo grafički, i animirani, a 428 00:17:36,590 --> 00:17:39,000 djeljiv i slično, također je prenijeti ideju da 429 00:17:39,000 --> 00:17:42,010 sve ideje počnemo ronjenja u danas i nadalje 430 00:17:42,010 --> 00:17:44,300 su utjelovljena u čak da jednostavno 431 00:17:44,300 --> 00:17:46,850 sučelje od jednog dana. 432 00:17:46,850 --> 00:17:47,790 Što je ovo ovdje? 433 00:17:47,790 --> 00:17:48,860 >> Dakle uvjeti. 434 00:17:48,860 --> 00:17:50,590 Dakle Scratch blok na lijevoj strani ima izgleda 435 00:17:50,590 --> 00:17:51,610 malo složeniji. 436 00:17:51,610 --> 00:17:52,650 Ali to je samo neki povlačenjem i 437 00:17:52,650 --> 00:17:54,140 ispadanje poznatih komada. 438 00:17:54,140 --> 00:17:56,690 Ako je x manje od y, tako reći. 439 00:17:56,690 --> 00:17:59,900 Inače, ako je x veći od y, tako reći. 440 00:17:59,900 --> 00:18:02,460 Inače, mi logično pretpostaviti da je zaključiti da 441 00:18:02,460 --> 00:18:03,580 oni moraju biti jednaki. 442 00:18:03,580 --> 00:18:05,220 Dakle, reći da su jednaki. 443 00:18:05,220 --> 00:18:07,690 Sada u C na desnoj, isto točno stvar. 444 00:18:07,690 --> 00:18:09,730 I primijetiti da su vitičastim zagradama će biti 445 00:18:09,730 --> 00:18:12,190 značajka C i drugim jezicima koje ne ovu vrstu 446 00:18:12,190 --> 00:18:13,210 od kućištima. 447 00:18:13,210 --> 00:18:15,470 Baš kao i ako blok je to žuta stvar koja je vrsta 448 00:18:15,470 --> 00:18:17,770 grabbing ljubičastu blok unutar nje. 449 00:18:17,770 --> 00:18:19,480 Slično su ti aparatić - 450 00:18:19,480 --> 00:18:20,870 ove kovrčave aparatić - 451 00:18:20,870 --> 00:18:24,710 značilo da dočarati tu istu ideju obuhvaćajući jedan ili više 452 00:18:24,710 --> 00:18:27,680 linija koda koje su razvedene unutar njih. 453 00:18:27,680 --> 00:18:31,270 Dakle, na desnoj strani ovdje, ako je x manje od y, printf 454 00:18:31,270 --> 00:18:32,270 ("X je manji od y"). 455 00:18:32,270 --> 00:18:34,980 Drugo ako je x veći od y, ispisati isti. 456 00:18:34,980 --> 00:18:38,360 Inače isprintati da su jednaki. 457 00:18:38,360 --> 00:18:41,750 >> Dakle, u kratko, tu je prilično izravan mapiranje ili prijevod 458 00:18:41,750 --> 00:18:44,720 jezika što smo vidjeli dosad, uključujući i za neke 459 00:18:44,720 --> 00:18:45,940 od više sofisticirane značajke. 460 00:18:45,940 --> 00:18:48,680 Dakle, ne može se koristiti to za svoj projekt, ili možda ne 461 00:18:48,680 --> 00:18:51,150 biti koristeći ovaj za svoj projekt ovaj tjedan. 462 00:18:51,150 --> 00:18:54,650 No, mi smo te stvari naziva polja u C. U Scratch, 463 00:18:54,650 --> 00:18:55,680 oni nazivaju popisi. 464 00:18:55,680 --> 00:18:59,370 A vidjeli smo ih s Fruitcraft RPG prošlog tjedna. 465 00:18:59,370 --> 00:19:01,320 Mali plavi čovjek koji je hodao okolo, branje gore 466 00:19:01,320 --> 00:19:03,010 višnje i naranče i slično. 467 00:19:03,010 --> 00:19:05,110 Pa u nule, koji je proveden uz ovu naranče 468 00:19:05,110 --> 00:19:09,000 blokirati koji sadrži riječi, u ovom slučaju, mi smo doslovno 469 00:19:09,000 --> 00:19:10,800 dodavanjem "naranča" na 470 00:19:10,800 --> 00:19:12,460 varijabla zove inventar. 471 00:19:12,460 --> 00:19:14,910 Dakle, u C, to sintaksa će dobiti malo više zagonetan. 472 00:19:14,910 --> 00:19:17,250 A mi ćemo se vratiti na ovaj sljedeći tjedan i učiniti više 473 00:19:17,250 --> 00:19:21,060 zanimljive stvari u svijetu kriptografije s njim. 474 00:19:21,060 --> 00:19:23,990 No, pri dnu ovdje, ove dvije linije bitno 475 00:19:23,990 --> 00:19:27,550 prevesti na ono što radimo u jednoj Scratch blokirati tamo gore. 476 00:19:27,550 --> 00:19:30,120 No, više o tome kako doći. 477 00:19:30,120 --> 00:19:34,120 >> Dakle, stavljajući ga zajedno, ovdje je program u C. Dakle, neka je 478 00:19:34,120 --> 00:19:36,590 brzo zafrkavati, osim nekih komada sintaksi ovdje, ali 479 00:19:36,590 --> 00:19:40,300 onda ajmo zapravo početi pisati neki kod, upoznati 480 00:19:40,300 --> 00:19:42,440 ste s nekim od alata ćemo se koriste, i vidjeti ako mi 481 00:19:42,440 --> 00:19:45,400 mogu graditi na sada neke od tih osnovnih građevnih blokova od 482 00:19:45,400 --> 00:19:49,150 prošlog tjedna, sada sintaktički u C. Dakle, na vrhu ovdje, to 483 00:19:49,150 --> 00:19:51,380 je možda jedan od najvažnijih dosadnih programa koje bi moglo 484 00:19:51,380 --> 00:19:53,130 pisati u većini bilo kojem programskom jeziku. 485 00:19:53,130 --> 00:19:55,010 No, to je neka vrsta ima posebno značenje jer je 486 00:19:55,010 --> 00:19:58,120 kanonski program koji svaki računalni znanstvenik piše kada 487 00:19:58,120 --> 00:19:59,620 podučavanje nekoga programski jezik - 488 00:19:59,620 --> 00:20:01,230 Hello World programa. 489 00:20:01,230 --> 00:20:05,120 >> Tako je na samom vrhu, vidimo taj pojam # include 490 00:20:05,120 --> 00:20:08,180 , a zatim u zagradama ukošene, stdio.h. 491 00:20:08,180 --> 00:20:10,580 Mi ćemo se vratiti na to, ali stvarno što je 492 00:20:10,580 --> 00:20:13,770 znači da je datoteka u ovom svijetu zove standardni 493 00:20:13,770 --> 00:20:17,670 I / O, stdio točka h, a to je samo tekstualna datoteka koja 494 00:20:17,670 --> 00:20:19,240 netko je napisao godina. 495 00:20:19,240 --> 00:20:22,550 A unutar tog teksta datoteke su cijela hrpa 496 00:20:22,550 --> 00:20:25,840 funkcije, ili metode ili postupke, da netko drugi 497 00:20:25,840 --> 00:20:28,970 napisao da smo korisnici, jer smo 498 00:20:28,970 --> 00:20:31,420 sada mogu koristiti te osobe kod. 499 00:20:31,420 --> 00:20:33,070 Funkcije on ili ona napisala. 500 00:20:33,070 --> 00:20:36,320 U ovom slučaju, printf nije nešto što sam napisao, to je 501 00:20:36,320 --> 00:20:37,500 nije nešto što CS50 napisao. 502 00:20:37,500 --> 00:20:40,290 To je nešto što je netko napisao godina i staviti u 503 00:20:40,290 --> 00:20:43,450 file zove stdio.h i tada, kao i na stranu, stavi 504 00:20:43,450 --> 00:20:45,830 drugi dio funkcije u drugu datoteku. 505 00:20:45,830 --> 00:20:46,940 No, mi ćemo doći. 506 00:20:46,940 --> 00:20:50,070 >> Dakle # include je samo naš način da se kaže, u 507 00:20:50,070 --> 00:20:53,110 C, daj mi pristup funkcijama koje je netko drugi napisao. 508 00:20:53,110 --> 00:20:55,490 I u ovom slučaju mi ​​je stalo jer želim printf. 509 00:20:55,490 --> 00:20:57,530 Sada smo dobili int main (void). 510 00:20:57,530 --> 00:21:00,160 Dakle, ovo je jedna od tih stvari, iskreno, da je na dan 0, 511 00:21:00,160 --> 00:21:02,400 prilično Ja sam za takve zone van, jer to je samo 512 00:21:02,400 --> 00:21:03,260 nije zanimljivo 513 00:21:03,260 --> 00:21:04,780 intelektualno, neki od sintakse. 514 00:21:04,780 --> 00:21:07,940 No, za sada znamo da funkcije, inače poznat kao 515 00:21:07,940 --> 00:21:11,660 postupci ili metode, uglavnom proizvesti neku vrijednost. 516 00:21:11,660 --> 00:21:12,520 Oni nešto učiniti. 517 00:21:12,520 --> 00:21:13,810 Oni dolaze do odgovora. 518 00:21:13,810 --> 00:21:15,020 Oni proizvode izlaz. 519 00:21:15,020 --> 00:21:18,780 Dakle int uz glavni je samo naša stenogram način da se kaže 520 00:21:18,780 --> 00:21:21,380 da ova funkcija, ovaj postupak, na kraju će 521 00:21:21,380 --> 00:21:22,650 da vam vratiti broj. 522 00:21:22,650 --> 00:21:24,370 I zašto je, vratit ćemo se na. 523 00:21:24,370 --> 00:21:27,810 Glavni je samo standardni zadani svijet za defaultu 524 00:21:27,810 --> 00:21:30,990 funkcija koja će se izvršiti u C programu kada 525 00:21:30,990 --> 00:21:31,860 ćete ga pokrenuti. 526 00:21:31,860 --> 00:21:34,160 Void samo znači ovo, glavni, ne traje 527 00:21:34,160 --> 00:21:35,270 argumenti, u ovom slučaju. 528 00:21:35,270 --> 00:21:36,400 Dakle, ja sam se super eksplicitno. 529 00:21:36,400 --> 00:21:38,160 Nema žice u, tamo je nema zarezi. 530 00:21:38,160 --> 00:21:40,690 Void znači da nema glavni argumenti. 531 00:21:40,690 --> 00:21:44,350 >> Sada, na kraju, srećom, u posljednje dvije linije su upoznati. 532 00:21:44,350 --> 00:21:46,160 Unutar vitičastih zagrada imamo printf 533 00:21:46,160 --> 00:21:47,620 i imamo povratak. 534 00:21:47,620 --> 00:21:50,450 A povratak je vrsta nesretni da moramo 535 00:21:50,450 --> 00:21:53,510 staviti ga tamo, jer u tom slučaju to ne čini sve da 536 00:21:53,510 --> 00:21:54,600 mnogo interesa. 537 00:21:54,600 --> 00:21:58,790 No, u računalnog programa, kada funkcija vraća 0, 538 00:21:58,790 --> 00:22:00,610 to znači da je sve dobro. 539 00:22:00,610 --> 00:22:01,820 Ništa je pošlo po zlu. 540 00:22:01,820 --> 00:22:06,170 Nasuprot tome, ako je funkcija vraća jedan ili negativan 1, ili 541 00:22:06,170 --> 00:22:11,670 negativna 1337, ili neki slučajni brojevi kao što je to, da je 542 00:22:11,670 --> 00:22:14,020 općenito znači da pogreška zapravo došlo. 543 00:22:14,020 --> 00:22:16,150 Dakle, ako ste na vašem Mac ili PC računala, ako ste ikad vidjeli 544 00:22:16,150 --> 00:22:18,590 neke dosadne poruke, jer je vaše računalo srušio ili 545 00:22:18,590 --> 00:22:20,660 zamrznuta, a tu je zagonetna poruka, 546 00:22:20,660 --> 00:22:23,320 i onda neki broj, kao što su sustav kod 547 00:22:23,320 --> 00:22:25,110 1,2,3,4, neki broj, 548 00:22:25,110 --> 00:22:29,270 da je općenito nepotreban detalj reći 549 00:22:29,270 --> 00:22:32,110 Većina od nas ljudi, ali to je ono što neke funkcije ili neki 550 00:22:32,110 --> 00:22:34,890 Program je zapravo vratio, non-nula vrijednost. 551 00:22:34,890 --> 00:22:38,540 A prednost je to da 0 označava sve što je dobro, a 552 00:22:38,540 --> 00:22:40,470 onda bitno imati beskonačan broj stvari koje 553 00:22:40,470 --> 00:22:41,130 možete pogriješiti. 554 00:22:41,130 --> 00:22:44,700 Koji je razlog zašto su izabrali 0 za dobar i ne-nula vrijednost za 555 00:22:44,700 --> 00:22:46,450 loše, kao što ćemo uskoro ćemo vidjeti. 556 00:22:46,450 --> 00:22:47,870 >> Dakle, idemo naprijed i napisati ovo. 557 00:22:47,870 --> 00:22:51,610 Tako se prisjetiti da je neki dan sam koristio moj Mac otvoriti 558 00:22:51,610 --> 00:22:53,970 terminal prozor, a onda sam otvorio teksta programa, kao i 559 00:22:53,970 --> 00:22:55,900 TextEdit, a ja sam počeo pisati neki kod. 560 00:22:55,900 --> 00:22:56,580 Pa to je u redu. 561 00:22:56,580 --> 00:22:58,636 No, vaše iskustvo će biti drugačiji na Mac, ili 562 00:22:58,636 --> 00:23:01,220 na Solaris računala, Linux računala, bez obzira na operativni 563 00:23:01,220 --> 00:23:02,810 Sustav vam se dogoditi da se koristi. 564 00:23:02,810 --> 00:23:04,970 I tako je u tijeku, što mi, umjesto da koriste nešto 565 00:23:04,970 --> 00:23:07,010 zove CS50 aparati. 566 00:23:07,010 --> 00:23:10,420 Dakle CS50 Appliance je preuzeti dio softvera 567 00:23:10,420 --> 00:23:13,640 koji vam omogućuje da pokrenete operativni sustav pod nazivom Linux, 568 00:23:13,640 --> 00:23:16,810 posebno Fedora Linux, na svoj Mac ili PC. 569 00:23:16,810 --> 00:23:20,810 A ti to preuzimanjem nešto što se zove hypervisor. 570 00:23:20,810 --> 00:23:23,100 Dakle, sve to će biti dokumentirana u problematiku setu 1. 571 00:23:23,100 --> 00:23:25,240 I vi ćete biti vođeni prema onome što vam je potrebno za preuzimanje. 572 00:23:25,240 --> 00:23:27,510 No, krajnji rezultat, bez obzira imate li Mac ili PC, je li 573 00:23:27,510 --> 00:23:29,080 preuzeti neki besplatni softver. 574 00:23:29,080 --> 00:23:32,340 Vi onda preuzeti CS50 Appliance, a vi recite da 575 00:23:32,340 --> 00:23:33,960 slobodni softver - hypervisor - 576 00:23:33,960 --> 00:23:38,080 pokrenuti CS50 aparati u prozoru na vašem računalu. 577 00:23:38,080 --> 00:23:39,490 A ono što se događa je to. 578 00:23:39,490 --> 00:23:43,660 >> I sada su, primijetit ovdje, ono što se čini desktop 579 00:23:43,660 --> 00:23:44,130 okoliš. 580 00:23:44,130 --> 00:23:46,150 I neka mi zapravo smanjiti taj jedan prozor. 581 00:23:46,150 --> 00:23:49,640 Dakle, ovo je sada moj Mac, s malo prozor ovdje, a unutar 582 00:23:49,640 --> 00:23:51,300 ovog prozora se dogodi da se potpuno 583 00:23:51,300 --> 00:23:52,380 drugačiji operativni sustav. 584 00:23:52,380 --> 00:23:55,250 Doista postoji ovo početak izbornik ovdje dolje, podsjeća 585 00:23:55,250 --> 00:23:57,990 Windows, koji ima hrpu podizbornika, uključujući 586 00:23:57,990 --> 00:24:00,720 link na CS50 priručniku, Dropbox, i slično. 587 00:24:00,720 --> 00:24:03,480 A što je ovo okruženje sada je standardni okoliš 588 00:24:03,480 --> 00:24:06,280 da svatko od nas sada može koristiti, tako da bez obzira što je vaš 589 00:24:06,280 --> 00:24:08,960 Računalo je, ono što ste instalirali na njega, što je verzija 590 00:24:08,960 --> 00:24:11,430 Mac OS ili Windows koju koristite, svi mi sada imamo 591 00:24:11,430 --> 00:24:12,800 Isto okoliš. 592 00:24:12,800 --> 00:24:15,850 I sada, u ovom okruženju možemo početi pisati neki kod. 593 00:24:15,850 --> 00:24:18,480 >> Tako ću ići naprijed i otvoriti program pod nazivom gedit. 594 00:24:18,480 --> 00:24:21,500 To je usporedivo s notepad.exe, ili 595 00:24:21,500 --> 00:24:22,790 TextEdit na Mac. 596 00:24:22,790 --> 00:24:25,390 A to je samo super jednostavna program za uređivanje teksta 597 00:24:25,390 --> 00:24:27,500 da izgleda ovako na prvi pogled. 598 00:24:27,500 --> 00:24:30,640 Sada, na samom vrhu, imam bijelu paletu, na dnu sam 599 00:24:30,640 --> 00:24:33,860 imati ovu crnu prozor koji kaže jharvard @ aparata. 600 00:24:33,860 --> 00:24:36,440 A to je zato korisnički račun da smo unaprijed stvorili 601 00:24:36,440 --> 00:24:38,430 za svakoga se zove John Harvard. 602 00:24:38,430 --> 00:24:41,490 On ima mapu gdje se sve njegove datoteke koje ćete ići, i 603 00:24:41,490 --> 00:24:43,500 evo gdje možemo početi pisati neki kod. 604 00:24:43,500 --> 00:24:45,810 Pa neka mi ići naprijed i ovdje povećavanje samo malo, i ja sam 605 00:24:45,810 --> 00:24:51,550 će učiniti # include , int main (void), a 606 00:24:51,550 --> 00:24:57,470 onda ću to učiniti printf ("Hello World") 607 00:24:57,470 --> 00:24:59,490 ; Povratak 0. 608 00:24:59,490 --> 00:25:01,400 Sada je to sve prilično crno-bijelo. 609 00:25:01,400 --> 00:25:03,830 >> Dopustite mi ići naprijed i učiniti jednu stvar naučiti gedit što sam 610 00:25:03,830 --> 00:25:04,510 zapravo radi. 611 00:25:04,510 --> 00:25:06,140 Pusti me na Spremi kao. 612 00:25:06,140 --> 00:25:08,560 Idem odabrati na lijevoj strani ovdje jharvard. 613 00:25:08,560 --> 00:25:11,010 Pa opet, čak i ako ste nikada koristili Linux prije, iskreno 614 00:25:11,010 --> 00:25:13,680 ovih dana, sve od njih su u suštini devolving 615 00:25:13,680 --> 00:25:14,590 isti tip sučelja - 616 00:25:14,590 --> 00:25:16,030 Mac OS, Windows i Linux. 617 00:25:16,030 --> 00:25:18,680 Tako sam izabrao jharvard početnu mapu ovdje. 618 00:25:18,680 --> 00:25:21,120 I ja ću spasiti ovu sliku kao hello.c. 619 00:25:21,120 --> 00:25:24,260 Tako je na samom vrhu, ja upisali hello.c; imenovanja C 620 00:25:24,260 --> 00:25:26,520 Program s nastavkom. C je 621 00:25:26,520 --> 00:25:27,570 što je uobičajena praksa. 622 00:25:27,570 --> 00:25:28,650 I ja sam pogodio Spremi. 623 00:25:28,650 --> 00:25:32,510 A sad ono što je lijepo je da sam zapravo sam učio gedit, 624 00:25:32,510 --> 00:25:33,690 da je to C program. 625 00:25:33,690 --> 00:25:36,470 Obavijest da je moj crno-bijeli tekst sada je boja kodiran, ili 626 00:25:36,470 --> 00:25:39,330 sintaksa istaknuo, koja je upravo privlači moju pažnju 627 00:25:39,330 --> 00:25:41,540 različite semantičke dijelovi programa. 628 00:25:41,540 --> 00:25:44,260 Na vrhu lijevo tamo, kao moji programi dobili složeniji, ja sam 629 00:25:44,260 --> 00:25:47,060 će imati sažetak svih stvari koje sam napisao. 630 00:25:47,060 --> 00:25:48,050 Tako da je to tamo gore. 631 00:25:48,050 --> 00:25:52,350 Pa neka mi sada smanjivanje i ići dolje na ovom terminalu prozora. 632 00:25:52,350 --> 00:25:54,570 >> Dakle, ovo je možda novi za mnoge ljude. 633 00:25:54,570 --> 00:25:57,260 Ako ste nikada koristili okruženje naredbenog retka, ste nikada 634 00:25:57,260 --> 00:26:00,020 koristiti DOS-a, ili ste nikada koristili Linux, ili ste nikada nije otvorio 635 00:26:00,020 --> 00:26:02,550 Mac OS terminala prozor, postoji puno stvari koje 636 00:26:02,550 --> 00:26:04,820 mogao učiniti s GUI, kao što pokazuje i klikom, a 637 00:26:04,820 --> 00:26:07,080 povuci i pusti, i slično, ali općenito - 638 00:26:07,080 --> 00:26:09,360 sigurno u svijetu računalnih znanosti - 639 00:26:09,360 --> 00:26:11,580 pomoću naredbenog retka, gdje nemate miša 640 00:26:11,580 --> 00:26:14,220 uglavnom, imate samo tipkovnicu, je zapravo puno 641 00:26:14,220 --> 00:26:17,260 moćniji od sučelje, jednom kada se udomaćile 642 00:26:17,260 --> 00:26:18,580 razne naredbe. 643 00:26:18,580 --> 00:26:20,940 A ti vrsta slobodnog sebe od potrebe za točku i kliknite 644 00:26:20,940 --> 00:26:21,690 u svemu. 645 00:26:21,690 --> 00:26:23,890 Tako je u gedit ćemo sortirati od imati najbolje od oba svijeta. 646 00:26:23,890 --> 00:26:25,600 Možemo povući i ispustiti tekst, možemo ga vidjeti 647 00:26:25,600 --> 00:26:26,840 lijepo i po boji. 648 00:26:26,840 --> 00:26:29,630 No, kada dođe vrijeme za pokretanje naš program, mi ćemo ponekad 649 00:26:29,630 --> 00:26:31,750 samo koristiti ovaj mali prozor ovdje. 650 00:26:31,750 --> 00:26:33,460 >> Tako ću ići naprijed i učiniti. 651 00:26:33,460 --> 00:26:36,420 U donjem crne i bijele prozor, ja ću ići naprijed 652 00:26:36,420 --> 00:26:37,890 i pisati zveka. 653 00:26:37,890 --> 00:26:40,130 I jeka je ime prevodilac. 654 00:26:40,130 --> 00:26:43,310 To je program koji pretvara moj izvorni kod 655 00:26:43,310 --> 00:26:48,770 u, tako, objektni kod. 656 00:26:48,770 --> 00:26:51,270 0s i 1s, da smo vidjeli nakratko prošli tjedan. 657 00:26:51,270 --> 00:26:53,700 Podsjetimo od prošlog tjedna, što smo obećali da ćemo se 658 00:26:53,700 --> 00:26:55,920 ići od nešto ovako - mi smo trebali biti 659 00:26:55,920 --> 00:26:57,010 nešto ovako - 660 00:26:57,010 --> 00:26:58,700 a to sigurno nije nešto što čovjek ide 661 00:26:58,700 --> 00:26:59,690 učiniti ručno. 662 00:26:59,690 --> 00:27:01,980 Dakle, umjesto da ćemo koristiti program, a da je program u 663 00:27:01,980 --> 00:27:03,430 U tom slučaju se zove zveka. 664 00:27:03,430 --> 00:27:06,020 I ime mog programa je hello.c. 665 00:27:06,020 --> 00:27:09,670 Dakle, kako bi se sastaviti hello.c iz izvornog koda u 666 00:27:09,670 --> 00:27:12,930 objektni kod, ili 0s i 1s, to bi trebalo biti dostatno za samo napraviti 667 00:27:12,930 --> 00:27:14,820 ovo i udarite Enter. 668 00:27:14,820 --> 00:27:16,850 >> Ok, ništa ne čini da se to dogodilo. 669 00:27:16,850 --> 00:27:20,450 Ali znam sada, odnosno od prošlog tjedna, da zadani naziv 670 00:27:20,450 --> 00:27:24,920 Program, kada je napisan u C, budalasto se zove a.out. 671 00:27:24,920 --> 00:27:26,610 Većina nezanimljiv ime koje bi moglo doći do. 672 00:27:26,610 --> 00:27:28,790 Je prvo slovo abecede, out je ono što je 673 00:27:28,790 --> 00:27:29,960 outputted, ali tako se to. 674 00:27:29,960 --> 00:27:33,570 Ovo je moj program, a sada dot udarac, kao što ćemo vidjeti, 675 00:27:33,570 --> 00:27:36,170 zapravo samo vrsta sigurnosne značajke, jer 676 00:27:36,170 --> 00:27:38,250 a.out je program sam napisao. 677 00:27:38,250 --> 00:27:39,650 To nije došao sa mojim računalo, to je 678 00:27:39,650 --> 00:27:40,790 ne u Program Files. 679 00:27:40,790 --> 00:27:42,910 To nije u Mac OS-a mapi Applications. 680 00:27:42,910 --> 00:27:45,740 Moram biti super eksplicitno s računalom, i reći 681 00:27:45,740 --> 00:27:49,030 ovaj program, a.out, je u trenutnoj mapi, 682 00:27:49,030 --> 00:27:50,260 trenutni katalog. 683 00:27:50,260 --> 00:27:53,160 I način na koji predstavljaju to u okruženju kao što je ovaj 684 00:27:53,160 --> 00:27:57,070 je točka predstavlja ono što mapu u kojoj se trenutno u. 685 00:27:57,070 --> 00:27:59,420 I tako. / Samo znači pokretanje a.out 686 00:27:59,420 --> 00:28:00,530 u trenutnoj mapi. 687 00:28:00,530 --> 00:28:04,830 I ja sam pokrenuti ovu Enter, i voila, moj prvi program. 688 00:28:04,830 --> 00:28:05,990 >> Sada neka mi se korak natrag. 689 00:28:05,990 --> 00:28:08,280 Ovaj prozor je malo mali, i shvatiti da je dno 690 00:28:08,280 --> 00:28:10,340 lijevo od aparata ovdje je još jedan simbol. 691 00:28:10,340 --> 00:28:12,660 Jedan od njih je Chrome, koji bi trebao biti prilično upoznat, samo web 692 00:28:12,660 --> 00:28:14,350 preglednik unutar uređaja. 693 00:28:14,350 --> 00:28:16,340 I to crna i bijela ikona je samo 694 00:28:16,340 --> 00:28:17,720 veći terminal prozor. 695 00:28:17,720 --> 00:28:19,830 Dakle, ako to dobiva malo neugodno da vrsta ima samo 696 00:28:19,830 --> 00:28:22,270 ovaj maleni malo kriška kroz prozor s kojima komunicirati 697 00:28:22,270 --> 00:28:24,370 s programima, umjesto toga može učiniti. 698 00:28:24,370 --> 00:28:26,640 I sada neka mi početi tipkati malo prije 699 00:28:26,640 --> 00:28:27,980 biti poznate naredbe. 700 00:28:27,980 --> 00:28:28,900 Jel. 701 00:28:28,900 --> 00:28:31,410 Tako li je naredba za uvrštenje. 702 00:28:31,410 --> 00:28:33,900 Dakle, u Mac OS ili Windows, što bi općenito dvokliknete 703 00:28:33,900 --> 00:28:36,510 mapu, a zatim, voila, vidjet ćete sve od raznih datoteka 704 00:28:36,510 --> 00:28:37,210 i mape. 705 00:28:37,210 --> 00:28:39,650 U okruženju naredbenog retka, gdje možete samo upisati 706 00:28:39,650 --> 00:28:42,390 naredbe ili tekst, ls je ekvivalent. 707 00:28:42,390 --> 00:28:44,380 Dakle, mi pokazati što je u ovom direktoriju. 708 00:28:44,380 --> 00:28:46,540 >> Sada postoji hrpa stvari ovdje da je i malo 709 00:28:46,540 --> 00:28:48,190 upoznati i malo upoznati. 710 00:28:48,190 --> 00:28:50,740 Ali primijetite da baš kao i Windows i Mac OS, jharvard 711 00:28:50,740 --> 00:28:52,190 ima desktop mapu. 712 00:28:52,190 --> 00:28:54,520 Dakle, sve ikone koje su na mom desktopu dogoditi 713 00:28:54,520 --> 00:28:55,650 da se u toj mapi. 714 00:28:55,650 --> 00:28:57,250 Postoji preuzimanja mape, stvari koje 715 00:28:57,250 --> 00:28:58,890 Chrome mogao staviti tamo. 716 00:28:58,890 --> 00:28:59,250 Dropbox. 717 00:28:59,250 --> 00:29:01,820 Dakle, aparat dolazi s ugrađenim u podršku za ispuštanje 718 00:29:01,820 --> 00:29:04,500 tako da je tijekom semestra, možete sinkronizirati s Dropbox 719 00:29:04,500 --> 00:29:06,420 račun, tako da sve svoje programe su podupirač gore. 720 00:29:06,420 --> 00:29:08,050 Oni su dostupni na drugom računalu. 721 00:29:08,050 --> 00:29:09,780 Ako je išta ikada pođe krivo s aparatom, možete 722 00:29:09,780 --> 00:29:11,340 vrlo lako oporaviti od Dropbox. 723 00:29:11,340 --> 00:29:12,940 Tako da mapa je tamo za to. 724 00:29:12,940 --> 00:29:14,660 Postoje dvije datoteke koje sam napravio - hello.c 725 00:29:14,660 --> 00:29:16,540 i a.out. 726 00:29:16,540 --> 00:29:18,530 A onda na desnoj postoji neki drugi mape koje ćemo 727 00:29:18,530 --> 00:29:20,710 doći do krajem semestra, s web 728 00:29:20,710 --> 00:29:21,540 programiranje. 729 00:29:21,540 --> 00:29:26,160 Dakle, kada radim. /, A.out, Enter, koji govori ide 730 00:29:26,160 --> 00:29:29,460 u imeniku sam u, trenutnom direktoriju, i pokrenuti 731 00:29:29,460 --> 00:29:32,465 Program se zove a.out tamo. 732 00:29:32,465 --> 00:29:35,810 >> U redu, tako da je lijepo i dobro, ali to nije sve što je 733 00:29:35,810 --> 00:29:38,550 uvjerljiv napisati program pod nazivom pomoći a.out. 734 00:29:38,550 --> 00:29:40,790 Dakle, mi zapravo možemo učiniti to malo drugačije. 735 00:29:40,790 --> 00:29:43,980 Dakle, umjesto samo trčanje zveka, hello.c, dodajmo 736 00:29:43,980 --> 00:29:46,850 ono što se zove argument naredbenog retka. 737 00:29:46,850 --> 00:29:50,730 Dakle, argument naredbenog retka, ili prebaciti u ovom slučaju, samo je 738 00:29:50,730 --> 00:29:54,930 druga riječ ili izraz koji upišete u redak nakon 739 00:29:54,930 --> 00:29:56,290 Program želite pokrenuti. 740 00:29:56,290 --> 00:29:59,970 Dakle, u ovom slučaju, zveka je Program želim pokrenuti,-o 741 00:29:59,970 --> 00:30:03,480 znači izlaz datoteka koja se više ne zove a.out. 742 00:30:03,480 --> 00:30:07,510 Izlazna datoteka zove hello, i to prikupljanjem 743 00:30:07,510 --> 00:30:10,200 posljednja riječ na liniji, hello.c. 744 00:30:10,200 --> 00:30:13,200 Dakle, u kratko, to je vrlo marginalna poboljšanja, pri čemu 745 00:30:13,200 --> 00:30:15,850 umjesto da ovo glupo nazivom datoteke a.out, 746 00:30:15,850 --> 00:30:21,430 Ja sada mogu učiniti zveka-o bok, a zatim hello.c, a 747 00:30:21,430 --> 00:30:22,530 zatim pritisnite Enter. 748 00:30:22,530 --> 00:30:25,510 Ništa se čini da se dogodi, ali opet volio s 0 - kada 749 00:30:25,510 --> 00:30:28,510 ništa ne čini kako bi se dogoditi da ne znači ništa loše dogodilo - 750 00:30:28,510 --> 00:30:31,460 pa ajmo napraviti ls sada, Enter, i doista sam sada 751 00:30:31,460 --> 00:30:32,780 imati Hello program. 752 00:30:32,780 --> 00:30:38,510 Dakle, ako sam upisati bok sada, naredba nije pronađen. 753 00:30:38,510 --> 00:30:39,440 OK,. /. 754 00:30:39,440 --> 00:30:40,220 Dakle, točno. 755 00:30:40,220 --> 00:30:43,170 Dakle, jer ovaj program sam napisao, a to nije došao s 756 00:30:43,170 --> 00:30:45,810 računalo,. / halo, Enter, znači 757 00:30:45,810 --> 00:30:47,350 Ja sam sada prikazivati ​​bok. 758 00:30:47,350 --> 00:30:48,440 >> Tako da je to tamo. 759 00:30:48,440 --> 00:30:51,070 Sada ono što smo na kraju ćete doći do više i više naredbenog retka 760 00:30:51,070 --> 00:30:54,110 argumenti koji nam omogućuju učiniti više, ali samo za one za 761 00:30:54,110 --> 00:30:57,760 koga bi to moglo biti stari šešir, dopustite mi zapravo ide u 762 00:30:57,760 --> 00:31:01,910 katalog ovdje i samo vam dati teaser kako drugo mi 763 00:31:01,910 --> 00:31:05,770 mogao ići o provedbi Hello World. 764 00:31:05,770 --> 00:31:10,730 Pusti me u ovdje, a ja ću ga otvoriti. 765 00:31:10,730 --> 00:31:13,090 Pa zapravo, ja ću objasniti što radim, tako 766 00:31:13,090 --> 00:31:15,610 to je korisno. 767 00:31:15,610 --> 00:31:17,410 Pusti me natrag gore. 768 00:31:17,410 --> 00:31:19,620 >> Tako sam to dugo vremena. 769 00:31:19,620 --> 00:31:23,030 Dakle primijetiti tijekom dana tamo su par 770 00:31:23,030 --> 00:31:26,940 direktoriji koji začudo su imenovani source1m i source1w. 771 00:31:26,940 --> 00:31:28,830 Ovo je samo glup konvencija ćemo koristiti. 772 00:31:28,830 --> 00:31:31,825 Izvor samo znači izvornog koda, 1 znači ovaj je tjedan jedan, a 773 00:31:31,825 --> 00:31:34,000 m znači da je u ponedjeljak, a w znači da je srijeda. 774 00:31:34,000 --> 00:31:34,900 Dakle, ništa grobni tamo. 775 00:31:34,900 --> 00:31:37,830 To je samo skraćeni zapis. 776 00:31:37,830 --> 00:31:39,860 Ove plave stvari su mape, inače poznat kao 777 00:31:39,860 --> 00:31:40,630 imenika. 778 00:31:40,630 --> 00:31:43,870 Želim ići u tu mapu sada, i na normalnom računalu 779 00:31:43,870 --> 00:31:45,710 Upravo sam mogao dvaput kliknite na ikonu mape i 780 00:31:45,710 --> 00:31:46,810 tu je sve moje datoteke. 781 00:31:46,810 --> 00:31:49,270 No, u okruženju naredbenog retka, ja ne mogu sasvim učiniti 782 00:31:49,270 --> 00:31:52,640 da, pa umjesto toga, moram promijeniti direktorije ručno. 783 00:31:52,640 --> 00:31:57,900 Dakle, ako sam upisati CD, a zatim source1m, Enter, primijetiti da 784 00:31:57,900 --> 00:32:01,180 moj brz, stvar je u bijelom na lijevoj strani, samo promijenio. 785 00:32:01,180 --> 00:32:03,690 I tako je doista, kada je samo rekao zagrade, a zatim 786 00:32:03,690 --> 00:32:06,450 malo migoljiti, tilda simbol, da samo značilo da sam bio 787 00:32:06,450 --> 00:32:08,800 u Johna Harvarda kuće imenik, njegovi Moji dokumenti, 788 00:32:08,800 --> 00:32:10,390 njegove osobne datoteke. 789 00:32:10,390 --> 00:32:14,000 Ali sada u zagradi piše ~ / source1m. 790 00:32:14,000 --> 00:32:17,090 To samo znači da sam u mapu pod nazivom source1m 791 00:32:17,090 --> 00:32:19,160 da je u Johna Harvarda kuće direktorij. 792 00:32:19,160 --> 00:32:22,030 Dakle, ako sam sada želite popis datoteka u toj mapi, lako 793 00:32:22,030 --> 00:32:25,300 pitanje, ja upišite samo ls. 794 00:32:25,300 --> 00:32:28,860 I sada vidim sve datoteke koje sam unaprijed stvoren za danas 795 00:32:28,860 --> 00:32:31,020 predavanje, od kojih svi, ili od kojih je većina, dogoditi 796 00:32:31,020 --> 00:32:32,740 završiti u. C. 797 00:32:32,740 --> 00:32:36,210 >> Pa neka mi sada ići naprijed i pokrenuti gedit o programu nazvanom 798 00:32:36,210 --> 00:32:39,140 holloway.c, koji je napisao neki slučajan hakera 799 00:32:39,140 --> 00:32:42,920 na Internetu, koja izgleda malo kao što je ovaj. 800 00:32:42,920 --> 00:32:44,880 A mi se ne ide na proći kroz ovaj jedan u bilo 801 00:32:44,880 --> 00:32:48,530 detalj, ali za one ugodnije, posebice ako 802 00:32:48,530 --> 00:32:50,935 želite da se nagađati o tome što ovaj program radi ovdje. 803 00:32:57,950 --> 00:32:59,990 Budite uvjereni, da li ste manje ili više ugodno, 804 00:32:59,990 --> 00:33:01,655 nismo ni doći do takve vrste stvari do kraja 805 00:33:01,655 --> 00:33:02,160 ovaj semestar. 806 00:33:02,160 --> 00:33:05,390 To je ono što je primjer natjecanja obfuscated C, što 807 00:33:05,390 --> 00:33:08,390 znači pisati najviše grobni potrazi program koji eventualno 808 00:33:08,390 --> 00:33:10,820 može nadmašiti druge pametne ljude, koji su na sličan način 809 00:33:10,820 --> 00:33:13,010 pokušavaju pisati stvari i pokaže da može pisati 810 00:33:13,010 --> 00:33:14,280 više grobni stvari od tebe. 811 00:33:14,280 --> 00:33:17,290 Dakle, ovo nije primjer dobro pisanom programu iz 812 00:33:17,290 --> 00:33:21,260 perspektiva stilu, ovo je primjer programa te 813 00:33:21,260 --> 00:33:22,860 pobijedi na natječaju, za ljude pokušava 814 00:33:22,860 --> 00:33:24,090 biti nejasna i apstraktna. 815 00:33:24,090 --> 00:33:27,670 >> Dakle, ako smo pokrenuti ovu stvar, pusti me u mom terminal prozoru, 816 00:33:27,670 --> 00:33:28,110 da se tako izrazim. 817 00:33:28,110 --> 00:33:29,650 Dakle, ovo crna i bijela okolina se zove 818 00:33:29,650 --> 00:33:31,160 terminal prozor općenito. 819 00:33:31,160 --> 00:33:32,600 Pusti me naprijed i prevesti ga. 820 00:33:32,600 --> 00:33:34,440 Neću koristiti zveka, jer ovaj program je 821 00:33:34,440 --> 00:33:36,340 malo zagonetan i to treba drugačije 822 00:33:36,340 --> 00:33:38,190 prevodilac, jedan se zove GCC. 823 00:33:38,190 --> 00:33:39,200 No, to čini istu stvar. 824 00:33:39,200 --> 00:33:41,130 Potrebno je izvorni kod objektnom kodu. 825 00:33:41,130 --> 00:33:43,940 A sada, ako sam pokrenuti a.out, taj program ti 826 00:33:43,940 --> 00:33:46,065 Vidjela sam to. 827 00:33:49,220 --> 00:33:51,170 Dakle, taj kolega te godine osvojio taj natječaj. 828 00:33:51,170 --> 00:33:54,020 U svakom slučaju, ne idemo u tom smjeru, po sebi. 829 00:33:54,020 --> 00:33:57,400 >> Dakle, neka je zapravo pokušati sada zafrkavati, osim što možemo učiniti 830 00:33:57,400 --> 00:33:59,540 s tim temeljnim građevnih blokova kako bi sve više i više 831 00:33:59,540 --> 00:34:00,590 zanimljivi programi. 832 00:34:00,590 --> 00:34:02,800 Tako smo napisali program, mi smo pokrenuti program. 833 00:34:02,800 --> 00:34:05,780 Sada smo zapravo može pojednostaviti i više ne moraju pisati 834 00:34:05,780 --> 00:34:07,210 Riječ zveka na upit. 835 00:34:07,210 --> 00:34:10,710 Ispada kao naši programi dobili više zagonetan, možemo, ili 836 00:34:10,710 --> 00:34:14,699 složeniji nego, zapravo možemo pokrenuti ovu naredbu. 837 00:34:14,699 --> 00:34:17,610 Pa neka mi vratiti moj dom imenik, da se tako izrazim, neka mi 838 00:34:17,610 --> 00:34:20,750 ukloniti - rm je remove naredba - Idem ukloniti 839 00:34:20,750 --> 00:34:23,060 datoteka zove a.out i bok. 840 00:34:23,060 --> 00:34:25,489 I sada primjetiti u okruženju naredbenog retka, kao u 841 00:34:25,489 --> 00:34:27,800 GUI, možete dobiti zatraži. Ja ne mogu kliknuti gumb iako, ja 842 00:34:27,800 --> 00:34:31,040 morati upisati y za da, y za da. 843 00:34:31,040 --> 00:34:33,460 A sada, ako sam upisati ls opet, obavijest da oni zeleni 844 00:34:33,460 --> 00:34:35,469 programi - a.out i hello - 845 00:34:35,469 --> 00:34:35,734 su nestali. 846 00:34:35,734 --> 00:34:37,340 Čuvajte rm. 847 00:34:37,340 --> 00:34:39,739 To se može činiti loše stvari, baš kao što možete povlačenjem 848 00:34:39,739 --> 00:34:40,810 stvari na svoje smeće. 849 00:34:40,810 --> 00:34:43,989 >> Dakle, sada idemo naprijed - i sam mogao to učiniti - zveka-o 850 00:34:43,989 --> 00:34:45,139 halo, halo - 851 00:34:45,139 --> 00:34:46,884 Ja sam već dosadno da upišete naredbu. 852 00:34:46,884 --> 00:34:48,080 Iako sam upisali to malo brže. 853 00:34:48,080 --> 00:34:51,870 Tako smo umjesto toga može učiniti da zdravo. 854 00:34:51,870 --> 00:34:53,880 Tako bi se ne prevodilac. 855 00:34:53,880 --> 00:34:57,720 To je samo prijateljski program koji dolazi s Linuxom, u ovom 856 00:34:57,720 --> 00:34:59,070 slučaj - operativni sustav - 857 00:34:59,070 --> 00:35:02,480 koji automatizira proces sastavljanja programa. 858 00:35:02,480 --> 00:35:05,555 Dakle, umjesto da se sjećam zveka-o datoteke i 859 00:35:05,555 --> 00:35:08,190 onda tako dalje, pogotovo nakon one linije dobiti više i 860 00:35:08,190 --> 00:35:10,110 više, ja mogu samo napisati napraviti. 861 00:35:10,110 --> 00:35:12,030 I to će se ispljune hrpu stvari tu 862 00:35:12,030 --> 00:35:13,940 smo na kraju ćete vidjeti ovaj semestar. 863 00:35:13,940 --> 00:35:17,500 Ali primijetite sada, ako ja tipkam LS, halo je natrag u mom imeniku. 864 00:35:17,500 --> 00:35:19,850 I doista sam ga pokrenuti sa. / Bok. 865 00:35:19,850 --> 00:35:23,330 Tako bi samo automatizira proces pokrenut što je, 866 00:35:23,330 --> 00:35:26,910 u ovom slučaju, mnogo dulje, složenije naredbe. 867 00:35:26,910 --> 00:35:29,060 Tako ćemo početi koristiti marku, samo zato što je puno 868 00:35:29,060 --> 00:35:30,530 više user friendly. 869 00:35:30,530 --> 00:35:32,770 >> No, sada idemo napraviti više zanimljiv program 870 00:35:32,770 --> 00:35:34,650 nego samo pozdraviti. 871 00:35:34,650 --> 00:35:38,680 Dakle, u programima koje smo dosad napisano tamo je glavni. 872 00:35:38,680 --> 00:35:40,890 To je samo zadana stvar koja započinje sve off. 873 00:35:40,890 --> 00:35:43,340 No, tu su i druge funkcije vani, kao i 874 00:35:43,340 --> 00:35:45,890 stdio.h je stvar da smo vidjeli na vrhu naše 875 00:35:45,890 --> 00:35:48,480 datoteku prije, i to je ono što je poznato kao standardni knjižnici. 876 00:35:48,480 --> 00:35:51,300 Unutar standardne biblioteke je cijela hrpa funkcija 877 00:35:51,300 --> 00:35:53,850 da je netko napisao, i možemo početi koristiti njih 878 00:35:53,850 --> 00:35:55,050 Funkcije više pisati 879 00:35:55,050 --> 00:35:56,760 zanimljivi programi sami. 880 00:35:56,760 --> 00:35:58,370 >> Dakle, neka mi se vratiti na aparatu. 881 00:35:58,370 --> 00:35:59,820 Ja ću zatvoriti ovaj prozor terminala. 882 00:35:59,820 --> 00:36:02,630 Ja ću zatvoriti ono što smo pisali ranije, i samo ići 883 00:36:02,630 --> 00:36:07,350 u hello.c, i primjetiti da sada mogu učiniti sljedeće. 884 00:36:07,350 --> 00:36:09,730 Pozdrav svijet nije sve što je zanimljivo, ja bih 885 00:36:09,730 --> 00:36:11,770 personalizirati ovaj program za sebe. 886 00:36:11,770 --> 00:36:13,440 Dakle, umjesto da se kaže svijet, idem 887 00:36:13,440 --> 00:36:14,830 ići naprijed i reći - 888 00:36:14,830 --> 00:36:16,880 Mogao sam upisati Davida - ali ovo je stvarno vrsta 889 00:36:16,880 --> 00:36:18,050 temelja isti. 890 00:36:18,050 --> 00:36:19,970 Ali ajmo isprobati ovu rezerviranog ideju. 891 00:36:19,970 --> 00:36:24,460 Podsjetimo da je u C, a u printf, imali smo ove 892 00:36:24,460 --> 00:36:28,110 Rezervirana mjesta, a tu su i više nego samo% d. 893 00:36:28,110 --> 00:36:31,150 Dakle,% d je, brzo razum ček. 894 00:36:31,150 --> 00:36:32,310 Ok, decimalni broj, to je to. 895 00:36:32,310 --> 00:36:33,860 Decimalnih znamenki, to je sve. 896 00:36:33,860 --> 00:36:37,755 Dakle% c, kao što ćemo se susresti, što će biti znak. 897 00:36:37,755 --> 00:36:40,530 Stavite lik ovdje, pismo kroz z, 898 00:36:40,530 --> 00:36:41,600 ili interpunkcija simbol. 899 00:36:41,600 --> 00:36:45,590 Jedan lik,% f, tko zna iz drugih jezika? 900 00:36:45,590 --> 00:36:47,020 Dakle Krajnja vrijednost. 901 00:36:47,020 --> 00:36:47,880 Realni broj. 902 00:36:47,880 --> 00:36:51,550 Dakle, ne decimalni broj - to je zapravo realni broj s 903 00:36:51,550 --> 00:36:54,130 decimalna točka, a neki broj znamenki lijevo 904 00:36:54,130 --> 00:36:55,520 i desno od njega. 905 00:36:55,520 --> 00:36:58,060 % S, string. 906 00:36:58,060 --> 00:36:59,530 Onaj ćemo vidjeti vrlo često. 907 00:36:59,530 --> 00:37:02,140 String, opet, je samo riječ, fraza, sekvenca 908 00:37:02,140 --> 00:37:03,330 pojedini likovi. 909 00:37:03,330 --> 00:37:06,730 I na kraju, LLD? 910 00:37:06,730 --> 00:37:08,210 Dakle, to je više od kutnom slučaju. 911 00:37:08,210 --> 00:37:09,850 Dugo, dugo decimalno. 912 00:37:09,850 --> 00:37:12,035 Dakle, ako želite ne samo broj koji je to veliki, 913 00:37:12,035 --> 00:37:14,160 žele veći broj, ti si idući u morati specificirati 914 00:37:14,160 --> 00:37:16,400 računalo koje je od određene veličine. 915 00:37:16,400 --> 00:37:17,610 >> Dakle, neka je štipanje ovu malo. 916 00:37:17,610 --> 00:37:20,610 Umjesto samo tvrdi koda u Davidu, neka mi malo 917 00:37:20,610 --> 00:37:22,460 dinamički reći% s. 918 00:37:22,460 --> 00:37:25,790 Dakle, stavio% s, što je rezervirano za niz. 919 00:37:25,790 --> 00:37:30,500 Onda neka mi napraviti zarez, a zatim "David" ovamo. 920 00:37:30,500 --> 00:37:32,770 Sada to nije sve što je intelektualno zanimljiv, 921 00:37:32,770 --> 00:37:35,060 jer sve što sam učinio sada stvarno je stvoriti više posla za 922 00:37:35,060 --> 00:37:35,790 računalo. 923 00:37:35,790 --> 00:37:39,660 Umjesto reći računalo ne to sve odjednom, ja sam sada 924 00:37:39,660 --> 00:37:43,760 rekavši to i ubaci niz ovdje na kraju, zarez, 925 00:37:43,760 --> 00:37:44,950 ovdje je da niz. 926 00:37:44,950 --> 00:37:47,220 Dakle, to nije bolje poboljšanje, ali je barem 927 00:37:47,220 --> 00:37:49,010 korak prema više zanimljivih programa. 928 00:37:49,010 --> 00:37:51,240 Jer sada, dopustite mi ići naprijed i učiniti ovaj prozor malo 929 00:37:51,240 --> 00:37:56,850 veći, pusti me naprijed i pokrenuti napraviti bok. 930 00:37:56,850 --> 00:38:01,340 I sada,. / A.out ne radi, zašto? 931 00:38:03,880 --> 00:38:05,570 U redu, sada se zove zdravo. 932 00:38:05,570 --> 00:38:09,400 Pa opet napraviti, a također jeka sa-o, preimenovane 933 00:38:09,400 --> 00:38:11,120 Program se nešto više zanimljiv. 934 00:38:11,120 --> 00:38:13,060 I voila: sada je, kaže bok Davide. 935 00:38:13,060 --> 00:38:14,590 >> U redu, još uvijek glupi program. 936 00:38:14,590 --> 00:38:18,070 Dakle, sada idemo zapravo vratiti ovdje i uvesti pojam 937 00:38:18,070 --> 00:38:18,810 varijable. 938 00:38:18,810 --> 00:38:21,600 Ne bi li bilo lijepo kad bih mogao proglasiti varijablu 939 00:38:21,600 --> 00:38:23,150 čiji je tip string? 940 00:38:23,150 --> 00:38:26,720 A varijabla je vrijednost zapravo dolazi od korisnika 941 00:38:26,720 --> 00:38:27,810 ga ili sama. 942 00:38:27,810 --> 00:38:30,240 Dakle, samovoljno, ja ću nazvati svoju varijablu s, što je 943 00:38:30,240 --> 00:38:32,410 samo zajednička konvencija kada imate jednu varijablu naziva 944 00:38:32,410 --> 00:38:33,250 niz. 945 00:38:33,250 --> 00:38:35,670 Ja ću učiniti znak jednakosti, a onda ću pozvati 946 00:38:35,670 --> 00:38:38,030 funkcija zove GetString. 947 00:38:38,030 --> 00:38:40,830 Dakle GetString nije nešto što dolazi ugrađen u C. To je 948 00:38:40,830 --> 00:38:43,330 funkcija koja CS50 osoblje napisao, stvarno samo za 949 00:38:43,330 --> 00:38:45,670 ovi prvi par tjedana, kako bi se pojednostavio proces 950 00:38:45,670 --> 00:38:49,450 dobivanje korisničkog unosa i dobivanjem korisničkog unosa u obliku 951 00:38:49,450 --> 00:38:51,960 nizova, odnosno brojeva, i takvih. 952 00:38:51,960 --> 00:38:55,520 Dakle GetString je kao printf, ali očito umjesto 953 00:38:55,520 --> 00:38:58,700 ispisati to će učiniti ono što mu ime kaže, dobili niz. 954 00:38:58,700 --> 00:39:00,970 Ali za korištenje GetString, mi smo idući u morati napraviti promjenu 955 00:39:00,970 --> 00:39:03,180 ovdje, izvan toga. 956 00:39:03,180 --> 00:39:07,170 Dakle intuitivno, ovaj program, nadamo se, ide nekako 957 00:39:07,170 --> 00:39:09,700 dobili su niz od korisnika, a što onda će to učiniti 958 00:39:09,700 --> 00:39:11,460 s tom nizu, pozvao je? 959 00:39:15,060 --> 00:39:16,470 To samo će ga ispisati, zar ne? 960 00:39:16,470 --> 00:39:18,870 Još uvijek nije stimulirajuće programa, jer sve što se događa 961 00:39:18,870 --> 00:39:22,160 učiniti je priključiti u toj vrijednosti u gdje je% s 962 00:39:22,160 --> 00:39:23,750 kaže da bi trebao ići. 963 00:39:23,750 --> 00:39:25,290 >> Pa neka se barem vidjeti u akciji. 964 00:39:25,290 --> 00:39:27,040 Dopustite mi da spasi i smanjivanje. 965 00:39:27,040 --> 00:39:30,280 Sada u mom terminal prozoru ovdje dolje, mala kriška jednom, 966 00:39:30,280 --> 00:39:32,760 neka mi opet ne bi pozdraviti. 967 00:39:32,760 --> 00:39:35,160 Ok, i ah, prokleti, dobio sam hrpu pogrešaka. 968 00:39:35,160 --> 00:39:38,020 Dopustite mi da pomicanje gore, a vidimo naš prvi - 969 00:39:38,020 --> 00:39:40,430 pa neka je zapravo to u još većem prozoru, tako da 970 00:39:40,430 --> 00:39:42,110 Možete vidjeti kako loše sam zeznuo - 971 00:39:42,110 --> 00:39:44,460 tako da bi pozdravio. 972 00:39:44,460 --> 00:39:46,540 Ok, to je katastrofa, zar ne? 973 00:39:46,540 --> 00:39:48,740 Ja sam napisao tri linije koda, a 974 00:39:48,740 --> 00:39:50,070 to mi dao 12 pogrešaka. 975 00:39:50,070 --> 00:39:51,980 Pa zašto je to? 976 00:39:51,980 --> 00:39:55,720 Dakle, na sreću, često kada vidite mnogo, mnogo pogrešaka 977 00:39:55,720 --> 00:39:57,730 pljuvanje se odjednom, to je stvarno samo zato što ste 978 00:39:57,730 --> 00:39:59,760 zbunjeni računalo ovdje. 979 00:39:59,760 --> 00:40:02,330 I to ostaje zbunjen vrijeme dobiva ovdje dolje. 980 00:40:02,330 --> 00:40:04,400 I tako je to samo počinje okidanje, i tetura, a 981 00:40:04,400 --> 00:40:07,310 pljuvanje iz više zastrašujuće stvari nego što zapravo vrijedi. 982 00:40:07,310 --> 00:40:10,120 Dakle, u cjelini, uvijek započnite s vrha jedne. 983 00:40:10,120 --> 00:40:13,320 >> Dakle, vrlo vrhu najviše instanca crveno, na 984 00:40:13,320 --> 00:40:14,740 poruka je to. 985 00:40:14,740 --> 00:40:17,750 Koristite neprijavljenog identifikator niza, nisam 986 00:40:17,750 --> 00:40:19,160 znači standard u? 987 00:40:19,160 --> 00:40:19,900 Nisam. 988 00:40:19,900 --> 00:40:24,180 Mislio sam niz, ali to je zato što je, također, riječ niz 989 00:40:24,180 --> 00:40:26,020 da sam zadržati koristeći verbalno zapravo 990 00:40:26,020 --> 00:40:27,240 ne postoji u C bilo. 991 00:40:27,240 --> 00:40:29,470 To je nešto što ćemo koristiti samo za prvi tjedan ili dva 992 00:40:29,470 --> 00:40:34,500 ovdje, ali to postoji u datoteci pod nazivom cs50.h. 993 00:40:34,500 --> 00:40:37,110 Dakle, za sada, znamo da postoji taj drugi knjižnica koja 994 00:40:37,110 --> 00:40:39,330 Osoblje je napisao, tako da je bio napisan u novije vrijeme od 995 00:40:39,330 --> 00:40:40,510 stdio.h. 996 00:40:40,510 --> 00:40:45,020 No, unutar cs50.h je definicija, sinonim 997 00:40:45,020 --> 00:40:48,310 vrste, koji stvara tu riječ string. 998 00:40:48,310 --> 00:40:50,890 >> Dakle, sada me pustiti natrag u moj prozor terminala. 999 00:40:50,890 --> 00:40:53,200 Ja ću očistiti cijelu ovu zbrku prema Ctrl-L. Mi ćemo samo 1000 00:40:53,200 --> 00:40:55,700 obrišite sve čisto, a ja ću ići naprijed i učiniti 1001 00:40:55,700 --> 00:40:57,860 Pozdrav opet, Enter. 1002 00:40:57,860 --> 00:40:59,440 Dakle, što se dogodilo sada? 1003 00:40:59,440 --> 00:41:01,150 Sada sve od tih pogrešaka ode. 1004 00:41:01,150 --> 00:41:02,230 Dakle, ono što sam stvarno učinio? 1005 00:41:02,230 --> 00:41:05,920 Upravo sam učio računalo da postoji niz, a to je 1006 00:41:05,920 --> 00:41:07,890 u toj datoteci pod nazivom cs50.h. 1007 00:41:07,890 --> 00:41:10,930 Dakle prestati žaliti, jer sada znate gdje se mogu naći 1008 00:41:10,930 --> 00:41:13,220 tu funkciju izjava da se tako izrazim. 1009 00:41:13,220 --> 00:41:15,200 Gdje to postoji u svijetu. 1010 00:41:15,200 --> 00:41:18,820 >> Dakle, sada ću ići naprijed i pokrenuti bok. 1011 00:41:18,820 --> 00:41:22,300 Čini mi se da imaju beskonačnu petlju, ništa se događa. 1012 00:41:25,530 --> 00:41:26,870 Dakle, moram upisati nešto ovdje, upravo. 1013 00:41:26,870 --> 00:41:29,650 Prva linija koda u mom programu je GetString. 1014 00:41:29,650 --> 00:41:31,750 Dakle, to je doslovno čeka za mene da biste dobili niz. 1015 00:41:31,750 --> 00:41:33,680 Dakle, u tom smislu da, to je beskonačna petlja. 1016 00:41:33,680 --> 00:41:36,520 Očito u GetString je zadano ponašanje koje smo 1017 00:41:36,520 --> 00:41:37,510 napisao - osoblje - 1018 00:41:37,510 --> 00:41:39,550 da samo kaže čekati i čekati i čekati i čekati i čekati, 1019 00:41:39,550 --> 00:41:42,550 dok korisnik daje vam niz upišete nešto u. 1020 00:41:42,550 --> 00:41:46,000 Pa neka mi ići naprijed i putovanja u D-a-v - ja-d, Enter. 1021 00:41:46,000 --> 00:41:47,420 I to je to, bok Davide. 1022 00:41:47,420 --> 00:41:50,430 >> Sada se to čini kao da je to samo čin? 1023 00:41:50,430 --> 00:41:52,810 Pusti me naprijed i upišite u Tommyja. 1024 00:41:52,810 --> 00:41:54,740 Unesite, ok, čini se da se radi. 1025 00:41:54,740 --> 00:41:59,130 Radovi za Rob, radi za Zamyla, radi za - ok. 1026 00:41:59,130 --> 00:42:01,000 Tako to ide na posao, najvjerojatnije. 1027 00:42:01,000 --> 00:42:05,030 Dakle, to bi trebalo ispisati sve što smo zapravo ga dati, 1028 00:42:05,030 --> 00:42:07,830 i možemo biti malo teško ovdje. 1029 00:42:07,830 --> 00:42:12,130 Idemo vidjeti ako mi nešto poput halo. 1030 00:42:12,130 --> 00:42:18,000 Može ići ovamo, neka se vidi, copy, paste. 1031 00:42:18,000 --> 00:42:19,950 Neću biti u mogućnosti da biste zalijepili da mnogo puta ovdje. 1032 00:42:19,950 --> 00:42:24,410 Paste, ok, Shift + Ctrl + V. Dakle, ono što bi 1033 00:42:24,410 --> 00:42:26,970 dogoditi da je loše ovdje? 1034 00:42:26,970 --> 00:42:27,770 >> Ok, tako, segfaults. 1035 00:42:27,770 --> 00:42:29,710 Dakle, neki od vas s prethodnim pozadina će znati da 1036 00:42:29,710 --> 00:42:32,710 općenito, dajući računalima puno ulaza kad si 1037 00:42:32,710 --> 00:42:36,140 Vjerojatno nije značilo za primanje duge nazive kao što je ovaj - Bad 1038 00:42:36,140 --> 00:42:36,740 stvari događaju. 1039 00:42:36,740 --> 00:42:39,230 Doista, u svijetu interneta, previše, to se događa vrlo malo, 1040 00:42:39,230 --> 00:42:41,000 kojom prilikom ste projektiranje web stranica, kada ste 1041 00:42:41,000 --> 00:42:43,850 projektiranje Facebook, morate donositi arbitrarne odluke do 1042 00:42:43,850 --> 00:42:45,370 Prednji, poput koliko dugo će netko 1043 00:42:45,370 --> 00:42:46,360 Facebook korisničko ime biti? 1044 00:42:46,360 --> 00:42:48,050 Ili koliko dugo će nečija prvo ime biti? 1045 00:42:48,050 --> 00:42:50,110 Koliko dugo će nečiji telefonski broj biti i slično. 1046 00:42:50,110 --> 00:42:53,580 A ako programeri bi loše pretpostavke, programi razbiti 1047 00:42:53,580 --> 00:42:56,640 zato što pokušavaju dati im više izlaz, više ulaza 1048 00:42:56,640 --> 00:42:58,330 a, nego da imaju memoriju. 1049 00:42:58,330 --> 00:43:01,860 Ili RAM dodijeljeno za njega, pa ako sada sam pogodio Enter, 1050 00:43:01,860 --> 00:43:04,640 taj program je zapravo radio, jer smo bili u knjižnici 1051 00:43:04,640 --> 00:43:06,790 i mi zapravo očekuje ovom konkretnom slučaju. 1052 00:43:06,790 --> 00:43:10,900 No nema sumnje da je ovo semestar, što će napisati barem jedan 1053 00:43:10,900 --> 00:43:13,280 Program koji će reći ove riječi. 1054 00:43:13,280 --> 00:43:16,520 Zapamtite ovu tjedna od sada, možda dva dana od danas. 1055 00:43:16,520 --> 00:43:18,760 Segmentacija kriv je loša stvar. 1056 00:43:18,760 --> 00:43:21,920 To će se odnositi na vaše radiš nešto što računala 1057 00:43:21,920 --> 00:43:23,310 nije predvidjeti. 1058 00:43:23,310 --> 00:43:25,810 I u tom slučaju, vi, programer, nije predvidio. 1059 00:43:25,810 --> 00:43:27,720 Baš kao što je to hrpa čarapa, bilo je raznih 1060 00:43:27,720 --> 00:43:29,520 kutak slučajevi mogli smo naišli. 1061 00:43:29,520 --> 00:43:32,340 Slično tome, u programima ako ne predviđaju koliko dugo je 1062 00:43:32,340 --> 00:43:33,310 nečija ime će biti. 1063 00:43:33,310 --> 00:43:35,890 Ili što ako imam zlonamjerni korisnik, a njegov naziv je 1064 00:43:35,890 --> 00:43:37,230 zapravo prilično kratka, ali oni samo pokušavaju 1065 00:43:37,230 --> 00:43:37,960 nered sa mnom? 1066 00:43:37,960 --> 00:43:40,490 Što će biti ponašanje mog programa? 1067 00:43:40,490 --> 00:43:43,930 Pa, u tom slučaju, nešto se zapravo može srušiti. 1068 00:43:43,930 --> 00:43:44,750 >> Tako ćemo to učiniti. 1069 00:43:44,750 --> 00:43:46,860 U 90 minuta, to je strašno dugo vremena 1070 00:43:46,860 --> 00:43:47,780 učiniti informatike. 1071 00:43:47,780 --> 00:43:49,550 Zašto ne bismo dobili u naviku uzimanja pet minuta 1072 00:43:49,550 --> 00:43:51,520 razbiti ovdje, a kad se vratimo, bit ćemo zaroniti u neke 1073 00:43:51,520 --> 00:43:53,430 složeniji i zanimljiviji programi? 1074 00:43:53,430 --> 00:43:54,680 Pet minuta. 1075 00:43:56,910 --> 00:43:58,160 >> U redu. 1076 00:44:01,138 --> 00:44:02,780 Dakle, jedan brzi komentar. 1077 00:44:02,780 --> 00:44:05,590 Ja sam rekao da, iako je to na zaslonu prije, što 1078 00:44:05,590 --> 00:44:08,880 došao iz mojih usta je cs50.net/rsvp. 1079 00:44:08,880 --> 00:44:11,670 To je točno. cs50.net/lunch. 1080 00:44:11,670 --> 00:44:16,030 Dakle, sada možete pokušati RSVPing za to na / ručak. 1081 00:44:16,030 --> 00:44:16,980 No, hajdemo to učiniti sada. 1082 00:44:16,980 --> 00:44:20,150 Dakle, ovo je super brzo, super nova za puno ljudi. 1083 00:44:20,150 --> 00:44:21,560 Stari šešir za neke ljudi. 1084 00:44:21,560 --> 00:44:24,930 Dakle, ajmo premotati samo na trenutak, i vidjeti kako smo došli do 1085 00:44:24,930 --> 00:44:29,350 ovaj halo svijet izlaz samo trenutak prije. 1086 00:44:29,350 --> 00:44:31,780 >> Tako je prvi, tu je ovo CS50 aparati. 1087 00:44:31,780 --> 00:44:34,270 Opet, komad softvera, problema postaviti jedan će reći 1088 00:44:34,270 --> 00:44:36,610 kako da ga preuzeli, gdje ga skinuti, što je kliknuti 1089 00:44:36,610 --> 00:44:37,430 i tako dalje. 1090 00:44:37,430 --> 00:44:39,670 I onda kada slijediti te upute, moći ćete 1091 00:44:39,670 --> 00:44:42,840 kako bi se povećala svoj prozor, i vaše Mac ili PC će izgledati 1092 00:44:42,840 --> 00:44:43,910 malo nešto ovako. 1093 00:44:43,910 --> 00:44:47,170 Crna pozadina, mape dom na vrhu gdje je sve 1094 00:44:47,170 --> 00:44:49,850 datoteke ići, kanta za smeće u gornjem lijevom kutu, 1095 00:44:49,850 --> 00:44:51,130 izbornik na dnu. 1096 00:44:51,130 --> 00:44:54,010 Pa opet, prilično slično u duhu na Mac OS ili Windows, 1097 00:44:54,010 --> 00:44:56,040 iako se dogodi da se Linux. 1098 00:44:56,040 --> 00:44:58,120 Dakle, ono što smo pored učiniti? 1099 00:44:58,120 --> 00:44:59,580 Pa, mi smo počeli pisati programe. 1100 00:44:59,580 --> 00:45:02,260 I sjećam od prošlog tjedna da je sve što je potrebno za pisanje 1101 00:45:02,260 --> 00:45:04,970 Program je jednostavan tekst editor, 1102 00:45:04,970 --> 00:45:06,550 kao Notepad ili TextEdit. 1103 00:45:06,550 --> 00:45:08,360 Iskreno, čak možete koristiti Microsoft Word. 1104 00:45:08,360 --> 00:45:11,170 No, loše stvari s vremenom će se to dogoditi, jer to je vrlo 1105 00:45:11,170 --> 00:45:13,930 trapav rješenje za pisanje programa, plus to ćete 1106 00:45:13,930 --> 00:45:15,400 spremiti u pogrešnom formatu. 1107 00:45:15,400 --> 00:45:18,150 Ali to je samo tekst editor, program za obradu teksta, sve je to 1108 00:45:18,150 --> 00:45:19,390 potrebno napisati program. 1109 00:45:19,390 --> 00:45:23,420 >> Dakle, u CS50 Appliance, možemo to učiniti u jednom jednostavan način. 1110 00:45:23,420 --> 00:45:25,580 Možemo samo kliknite na ovu ikonu na dnu lijevo. 1111 00:45:25,580 --> 00:45:28,790 I opet, problem postaviti jedan će vas obavijestiti o tome, i voila - 1112 00:45:28,790 --> 00:45:31,210 ti ovaj crni i bijeli sučelje gdje možemo početi 1113 00:45:31,210 --> 00:45:32,160 pisanja koda. 1114 00:45:32,160 --> 00:45:34,960 Pa krenimo pisati super jednostavan program ponovno. 1115 00:45:34,960 --> 00:45:38,890 Ja idem gore na File, Save, a ja ću nazvati 1116 00:45:38,890 --> 00:45:42,870 to, recimo, hello2.c. 1117 00:45:42,870 --> 00:45:45,410 I ja sam samo to reći klikom na jharvard, stavite ga 1118 00:45:45,410 --> 00:45:46,750 u svojoj kući imeniku, ja stvarno ne briga 1119 00:45:46,750 --> 00:45:47,980 gdje to ide. 1120 00:45:47,980 --> 00:45:49,090 A onda Save. 1121 00:45:49,090 --> 00:45:50,880 I sada mogu početi pisati svoj program. 1122 00:45:50,880 --> 00:45:53,560 I sjećam se od ranije da moram pisati int 1123 00:45:53,560 --> 00:45:55,400 Glavni (void). 1124 00:45:55,400 --> 00:45:57,000 Zoom na gornjem lijevom kutu. 1125 00:45:57,000 --> 00:46:02,670 A onda želim reći printf, uzmi dvije. 1126 00:46:02,670 --> 00:46:05,690 A sada newline, blizu citat, zatvorite 1127 00:46:05,690 --> 00:46:07,820 zagrade, točka. 1128 00:46:07,820 --> 00:46:10,560 A onda idem dolje na moj prozor terminala koji je 1129 00:46:10,560 --> 00:46:12,840 ugrađen u gedit, samo za praktičnost. 1130 00:46:12,840 --> 00:46:15,200 I ja ću ići naprijed i napisati napraviti hello, ali ne 1131 00:46:15,200 --> 00:46:17,500 Pozdrav sama, hello2. 1132 00:46:17,500 --> 00:46:20,490 >> Dakle, moj file se zove hello2.c. Moj datoteka stoga 1133 00:46:20,490 --> 00:46:23,510 bi trebao biti pozvan hello2, u ovom slučaju. 1134 00:46:23,510 --> 00:46:26,490 Dovraga, što sam učinio krivo? 1135 00:46:26,490 --> 00:46:29,490 U redu, tako da sam jasno izostavi liniju, ako se prisjetiti onoga što 1136 00:46:29,490 --> 00:46:31,020 prethodna programi izgledati. 1137 00:46:31,020 --> 00:46:32,480 No, vidjet ćemo, ako ne možemo zafrkavati ovo odvojeno. 1138 00:46:32,480 --> 00:46:35,310 Nažalost, većina ljudi koji pišu programe s kojima 1139 00:46:35,310 --> 00:46:38,820 pišemo programi ne pojednostavljuju stvari sve to dobro. 1140 00:46:38,820 --> 00:46:41,520 Dakle, moramo vrsta listati što ne sasvim bi 1141 00:46:41,520 --> 00:46:44,050 osjetiti ovdje i vidjeti da li možemo shvatiti što je krivo. 1142 00:46:44,050 --> 00:46:46,700 Vrlo prva linija postoji, kaže implicitno proglašenja C 1143 00:46:46,700 --> 00:46:49,310 Knjižnica funkcija printf s tipa int. 1144 00:46:49,310 --> 00:46:51,210 OK, shvatio sam dio toga. 1145 00:46:51,210 --> 00:46:54,570 No, čini se da je aludirajući na činjenicu da sam koristio printf 1146 00:46:54,570 --> 00:46:55,700 krivo, nekako. 1147 00:46:55,700 --> 00:46:56,930 I ono što je smisao to krivo? 1148 00:46:56,930 --> 00:46:59,970 Samo nisam uče računalo da je to u datoteku 1149 00:46:59,970 --> 00:47:01,420 zove stdio.h. 1150 00:47:01,420 --> 00:47:04,120 Sada imam samo samo zapamtiti da sada printf je 1151 00:47:04,120 --> 00:47:06,540 u stdio.h, i doista tu će biti drugi 1152 00:47:06,540 --> 00:47:08,900 funkcije u toj istoj datoteci da ćemo naviknuti. 1153 00:47:08,900 --> 00:47:12,490 >> Pa sada neka mi ići naprijed i udario Ctrl-L samo jasno da 1154 00:47:12,490 --> 00:47:16,050 daleko, repriza bi hello2, i voila. 1155 00:47:16,050 --> 00:47:19,490 I ovu zapovijed opet, složeniji nego ćemo objasniti 1156 00:47:19,490 --> 00:47:20,520 današnji svrhe. 1157 00:47:20,520 --> 00:47:23,570 Ali to nije trčanje zveka, i jeka traje izvornog koda i 1158 00:47:23,570 --> 00:47:24,870 ispljune 0s i 1s. 1159 00:47:24,870 --> 00:47:28,610 A oni 0s i 1s, u ovom slučaju se zove ono? 1160 00:47:28,610 --> 00:47:29,470 Ok, objektnog koda. 1161 00:47:29,470 --> 00:47:32,210 I sliku da su oni u se zove, tako, 1162 00:47:32,210 --> 00:47:33,820 hello2, u ovom slučaju. 1163 00:47:33,820 --> 00:47:37,040 Jer moj tekst datoteka je hello2.c, Enter. 1164 00:47:37,040 --> 00:47:39,820 I sada sam uzeti dva uskličnika, exclamation 1165 00:47:39,820 --> 00:47:41,880 točka, uskličnik. 1166 00:47:41,880 --> 00:47:45,430 U redu, tako da sada imamo mogućnost da se žice, 1167 00:47:45,430 --> 00:47:46,280 očito. 1168 00:47:46,280 --> 00:47:48,190 Pa, što drugo možemo dobiti od korisnika? 1169 00:47:48,190 --> 00:47:51,010 >> Pa u CS50 knjižnici, postoji druge funkcije koje 1170 00:47:51,010 --> 00:47:53,300 će pojednostaviti svoje živote u tih prvih nekoliko dana. 1171 00:47:53,300 --> 00:47:56,350 Getchar, GetDouble, GetFloat, GetInt, 1172 00:47:56,350 --> 00:47:57,290 GetLongLong, GetString. 1173 00:47:57,290 --> 00:47:59,550 Pa, neka je iščupati s najlakši od njih prvi. 1174 00:47:59,550 --> 00:48:01,430 GetString doslovno ne da. 1175 00:48:01,430 --> 00:48:04,210 To samo sjedi tamo, čekajući korisnika upisati nešto u, 1176 00:48:04,210 --> 00:48:07,170 i čim sam upisati nešto i pogodio Enter, to 1177 00:48:07,170 --> 00:48:08,860 učini nešto s tom vrijednošću. 1178 00:48:08,860 --> 00:48:11,700 Dakle, vratimo se na tom primjeru se vidi točno ono što 1179 00:48:11,700 --> 00:48:12,950 GetString radi. 1180 00:48:12,950 --> 00:48:17,445 Pusti me naprijed i otvoriti u gedit, hello.c, i podsjetiti 1181 00:48:17,445 --> 00:48:20,590 to pravo prije pauze, to je tamo gdje smo stali. 1182 00:48:20,590 --> 00:48:23,240 >> Dakle, ajmo sad zafrkavati to osim u malo više detalja. 1183 00:48:23,240 --> 00:48:27,190 Dakle, na liniji 6, postoje dvije stvari 1184 00:48:27,190 --> 00:48:28,450 događa u ovom trenutku. 1185 00:48:28,450 --> 00:48:32,630 Znak jednakosti je odvajanje prvu polovicu i drugi pol. 1186 00:48:32,630 --> 00:48:34,670 Dakle, na lijevoj strani znaka jednakosti, mi smo 1187 00:48:34,670 --> 00:48:35,580 govoreći niz s. 1188 00:48:35,580 --> 00:48:37,580 A onda, samo laik uvjete, što je niz s 1189 00:48:37,580 --> 00:48:41,040 radi, ne mislite? 1190 00:48:41,040 --> 00:48:42,990 To je stvaranje što? 1191 00:48:42,990 --> 00:48:44,930 Dakle, to je stvaranje string zove a. 1192 00:48:44,930 --> 00:48:46,370 Sada, što to zapravo znači? 1193 00:48:46,370 --> 00:48:51,540 Pa, to je rezervirati prostor za niz zove a. 1194 00:48:51,540 --> 00:48:52,490 To nije sasvim točno. 1195 00:48:52,490 --> 00:48:53,120 Što se to radi? 1196 00:48:53,120 --> 00:48:55,400 Pa računala, kao što znate, imaju hard diskove, to je mjesto gdje 1197 00:48:55,400 --> 00:48:56,300 Vaši su pohranjene datoteke. 1198 00:48:56,300 --> 00:48:59,100 Računala imaju RAM-a, a to je mjesto gdje se programi učitava 1199 00:48:59,100 --> 00:49:00,240 dok su trčanje. 1200 00:49:00,240 --> 00:49:02,470 Dakle, kada dvaput kliknete na ikonu i Microsoft Word otvara 1201 00:49:02,470 --> 00:49:06,380 gore, Microsoft Word radi, da se tako izrazim, RAM-u, koji je 1202 00:49:06,380 --> 00:49:08,160 elektronički dio računala. 1203 00:49:08,160 --> 00:49:10,660 Ne fizički, mehanički dio koji se vrti, gdje 1204 00:49:10,660 --> 00:49:12,640 podaci obično je pohranjena dugoročno. 1205 00:49:12,640 --> 00:49:15,810 Dakle, niz je je prilično puno govori računalo mi dati 1206 00:49:15,810 --> 00:49:18,150 dovoljno RAM-a da stane niz. 1207 00:49:18,150 --> 00:49:20,450 A da je malo od pojednostavljivanje, jer 1208 00:49:20,450 --> 00:49:22,300 koliki je string će biti? 1209 00:49:22,300 --> 00:49:24,410 Pa mi zapravo još ne znamo, tako da u narednim tjednima 1210 00:49:24,410 --> 00:49:27,290 mi zapravo ću povući sloj koji je niz i 1211 00:49:27,290 --> 00:49:28,510 mi ćemo vam reći ono što stvarno jest. 1212 00:49:28,510 --> 00:49:31,050 Gudački, za sada, je samo lijepo pojednostavljenje našeg svijeta. 1213 00:49:31,050 --> 00:49:35,700 No, niz je niz izjavljuje pod nazivom e, za sada. 1214 00:49:35,700 --> 00:49:36,520 Proglašava niz. 1215 00:49:36,520 --> 00:49:39,310 To zadržava neki prostor u RAM-a za string korisnik je 1216 00:49:39,310 --> 00:49:40,150 o tipu. 1217 00:49:40,150 --> 00:49:41,840 >> Sada pogledajmo u desno od znaka jednakosti. 1218 00:49:41,840 --> 00:49:44,110 Dakle, ona kaže GetString (). 1219 00:49:44,110 --> 00:49:45,070 I malo razum ček. 1220 00:49:45,070 --> 00:49:47,940 Činjenica da ne postoji ništa unutar zagrada 1221 00:49:47,940 --> 00:49:50,810 podrazumijeva što o GetString? 1222 00:49:50,810 --> 00:49:52,180 Potrebno nema argumente. 1223 00:49:52,180 --> 00:49:55,290 To jest, ne možete utjecati na svoje ponašanje na bilo koji način. 1224 00:49:55,290 --> 00:49:58,940 Svaki put kada ga koristiti, to će dobiti niz i to je to. 1225 00:49:58,940 --> 00:50:02,210 Nasuprot tome, printf, nadamo se njegovo ponašanje ne 1226 00:50:02,210 --> 00:50:03,010 promijeniti svaki put. 1227 00:50:03,010 --> 00:50:05,230 Inače, to je prilično beskoristan ispis funkcija ako 1228 00:50:05,230 --> 00:50:06,480 čini istu stvar. 1229 00:50:06,480 --> 00:50:07,970 Ako je to uvijek ispisuje Davida ili nešto 1230 00:50:07,970 --> 00:50:09,500 proizvoljna sve vrijeme. 1231 00:50:09,500 --> 00:50:11,540 Dakle printf smisla imati argument. 1232 00:50:11,540 --> 00:50:14,240 GetString ne treba argument, jer sam htjela 1233 00:50:14,240 --> 00:50:16,700 dobiti niz od korisnika, a to je korisnik koji se događa 1234 00:50:16,700 --> 00:50:19,580 dostaviti dinamičnost upišete u različitim slovima 1235 00:50:19,580 --> 00:50:20,850 svaki put na tipkovnici. 1236 00:50:20,850 --> 00:50:23,140 >> Dakle, što u konačnici GetString ne? 1237 00:50:23,140 --> 00:50:25,080 Razmislite o tome kako ovaj mali crnoj kutiji. 1238 00:50:25,080 --> 00:50:29,340 I to crna kutija preuzima nikakvu ulaz, ali kad udariš 1239 00:50:29,340 --> 00:50:33,240 to, to ispljune niz koji je korisnik upisali u. 1240 00:50:33,240 --> 00:50:36,660 A činjenica da postoji znak jednakosti tamo znači uzeti 1241 00:50:36,660 --> 00:50:39,890 što se ispljune na desnoj strani i pohraniti unutar 1242 00:50:39,890 --> 00:50:41,390 što je na lijevoj strani. 1243 00:50:41,390 --> 00:50:43,470 Dakle, znak jednakosti ovdje, to zapravo ne znači 1244 00:50:43,470 --> 00:50:46,490 jednakost, to već znači tehnički zadatak. 1245 00:50:46,490 --> 00:50:49,330 Uzmi vrijednost na desnoj strani, i staviti ga u 1246 00:50:49,330 --> 00:50:51,050 varijabla na lijevoj strani. 1247 00:50:51,050 --> 00:50:52,820 Dakle, to je sve što se događa tamo. 1248 00:50:52,820 --> 00:50:55,640 >> Sada u skladu 7, mi smo nazivajući printf. 1249 00:50:55,640 --> 00:50:58,170 Dakle printf nadamo se uzimajući malo dosadno do sada. 1250 00:50:58,170 --> 00:50:59,530 Dakle ispisati formatiran string. 1251 00:50:59,530 --> 00:51:00,440 Što string? 1252 00:51:00,440 --> 00:51:05,460 Ispis, "h-e-l-l-o,% s 1253 00:51:05,460 --> 00:51:07,840 ! \ N ". 1254 00:51:07,840 --> 00:51:10,470 U redu, pa što ne želim plug-in za% s? 1255 00:51:10,470 --> 00:51:12,960 Doslovno, sve što je pohranjena u s.. 1256 00:51:12,960 --> 00:51:15,570 Dakle, u ovom slučaju, malo razum ček, koliko argumenti ne 1257 00:51:15,570 --> 00:51:16,820 printf uzeti? 1258 00:51:19,860 --> 00:51:21,110 Ok, čuo sam jedan. 1259 00:51:23,840 --> 00:51:26,330 Čuo sam jednom opet. 1260 00:51:26,330 --> 00:51:27,730 Dva, čuo sam dvije. 1261 00:51:27,730 --> 00:51:29,920 A o tome kako tri? 1262 00:51:29,920 --> 00:51:30,450 Ok, tri? 1263 00:51:30,450 --> 00:51:30,930 Izvrsno. 1264 00:51:30,930 --> 00:51:33,170 Tri moguća odgovora, samo jedan od njih je ispravan. 1265 00:51:33,170 --> 00:51:36,390 Dakle argumenti opet utjecati na ponašanje funkciji. 1266 00:51:36,390 --> 00:51:39,380 U prošlosti, printf samo uzeli jedan argument. 1267 00:51:39,380 --> 00:51:42,260 "Hello World" bio je jedan argument. 1268 00:51:42,260 --> 00:51:45,190 Međutim, sada, primijetit gdje je to zarez je. 1269 00:51:45,190 --> 00:51:49,600 Ovo je zarez izvan citat / Citat završen, što znači 1270 00:51:49,600 --> 00:51:52,170 hej printf, ovdje dolazi drugi argument. 1271 00:51:52,170 --> 00:51:54,240 >> Dakle, zarezi u većini programskih jezika 1272 00:51:54,240 --> 00:51:57,300 odvojene više argumenata. 1273 00:51:57,300 --> 00:51:59,600 Dakle, odgovor je ovdje definitivno nije jedan, jer 1274 00:51:59,600 --> 00:52:00,390 tu je ovaj zarez. 1275 00:52:00,390 --> 00:52:03,680 Dakle, minimalno, printf očito je uzimanje dva 1276 00:52:03,680 --> 00:52:04,940 argumenti ovaj put. 1277 00:52:04,940 --> 00:52:07,050 No, priliku za trik pitanje ovdje je ono 1278 00:52:07,050 --> 00:52:07,990 o ovom zarezom? 1279 00:52:07,990 --> 00:52:11,260 Da li to znači da postoji zapravo tri argumenti? 1280 00:52:11,260 --> 00:52:13,820 To, to, i to. 1281 00:52:13,820 --> 00:52:18,820 Dakle, ne, jer to je zarez unutar navodnika, koji 1282 00:52:18,820 --> 00:52:20,890 znači to je zapravo samo estetski engleskom jeziku. 1283 00:52:20,890 --> 00:52:23,180 To nema nikakve veze s brojem 1284 00:52:23,180 --> 00:52:24,890 argumenti u ovom programu. 1285 00:52:24,890 --> 00:52:27,670 Dakle, ovo je zarez izvan navodnicima. 1286 00:52:27,670 --> 00:52:28,850 I onda se vratiti 0. 1287 00:52:28,850 --> 00:52:30,980 Za sada neka je samo vrsta iskoristiti ovu jedne na vjeri 1288 00:52:30,980 --> 00:52:34,460 danas, i samo znam da kad funkcije su učinili izvršenja 1289 00:52:34,460 --> 00:52:37,950 linija koda, općenito treba vratiti neku vrijednost. 1290 00:52:37,950 --> 00:52:42,010 U ovom slučaju, samo zato glavna moraju vratiti int, 1291 00:52:42,010 --> 00:52:44,320 to je samo način na jezik C radi. 1292 00:52:44,320 --> 00:52:47,040 >> Dakle, jer ništa pošlo po zlu, osjeća kao ovaj program je 1293 00:52:47,040 --> 00:52:49,960 fino, samo sam teško kodirane u zamjenu 0. 1294 00:52:49,960 --> 00:52:52,980 No, za razliku, a ja ću napisati ovo u pseudo kodu 1295 00:52:52,980 --> 00:52:55,020 sada, baš kao i Josipu učinio kada smo radili čarapu 1296 00:52:55,020 --> 00:52:56,220 Primjer prošlog tjedna. 1297 00:52:56,220 --> 00:53:00,440 Ako je nešto pošlo po zlu - to nije stvarni broj - otišao 1298 00:53:00,440 --> 00:53:06,570 krivo, a zatim se vratiti, recimo, jedan. 1299 00:53:06,570 --> 00:53:08,770 Inače vratiti 0. 1300 00:53:08,770 --> 00:53:10,070 Dakle, ovo je mjesto gdje ćemo s tim. 1301 00:53:10,070 --> 00:53:12,090 To nije stvarna C koda, samo pseudocode. 1302 00:53:12,090 --> 00:53:14,010 Ali to je, kako se može vratiti 1303 00:53:14,010 --> 00:53:15,580 različite moguće vrijednosti. 1304 00:53:15,580 --> 00:53:19,520 No, za sada sam samo ići naprijed i vratiti 0. 1305 00:53:19,520 --> 00:53:24,410 U redu, bilo kakva pitanja dosad na sintaksu, funkcionalnosti, 1306 00:53:24,410 --> 00:53:25,000 ili sviđa? 1307 00:53:25,000 --> 00:53:26,280 Da, u leđa. 1308 00:53:26,280 --> 00:53:27,530 >> PUBLIKA: [nečujan] 1309 00:53:30,510 --> 00:53:32,210 DAVID MALAN: Možete li govoriti malo glasnije? 1310 00:53:32,210 --> 00:53:34,325 Zašto je to učinio 0 programa povratka i? 1311 00:53:34,325 --> 00:53:35,575 PUBLIKA: [nečujan] 1312 00:53:39,910 --> 00:53:43,450 DAVID MALAN: Oh, to je zato što sam dobio lijen, žao mi je. 1313 00:53:43,450 --> 00:53:48,290 Bez dobre akademske odgovor, povratak 0. 1314 00:53:48,290 --> 00:53:52,690 Mogu vrsta spasilo to, rekavši tehnički C, ako je glavni 1315 00:53:52,690 --> 00:53:55,900 ne izričito vratiti vrijednost, 0 će biti vraćen 1316 00:53:55,900 --> 00:53:57,730 automatski za vas. 1317 00:53:57,730 --> 00:54:00,290 Koji je to istina, nisam samo prikrivanje. 1318 00:54:00,290 --> 00:54:03,270 No, trebala sam to učinio ovaj put. 1319 00:54:03,270 --> 00:54:05,250 Ne Zanimljivo takeaway nego da osim moje pogreške. 1320 00:54:05,250 --> 00:54:06,170 Da? 1321 00:54:06,170 --> 00:54:08,470 >> PUBLIKA: Obično kada upišete u prazninu, koja vam znači 1322 00:54:08,470 --> 00:54:10,770 ne vrati nešto. 1323 00:54:10,770 --> 00:54:11,420 DAVID MALAN: Točno. 1324 00:54:11,420 --> 00:54:15,800 Ako umjesto toga, možete odrediti prije imena funkcije, za 1325 00:54:15,800 --> 00:54:18,590 primjer ovdje, praznina, onda funkcija 1326 00:54:18,590 --> 00:54:20,480 ne vrati ništa. 1327 00:54:20,480 --> 00:54:25,210 I zato bih samo reći, povrat ili ništa at svi, 1328 00:54:25,210 --> 00:54:26,730 i da će biti dosljedan. 1329 00:54:26,730 --> 00:54:27,750 A mi ćemo se vratiti na to. 1330 00:54:27,750 --> 00:54:31,030 I samo za Vašu informaciju, jedan od ulova s ​​učenjem 1331 00:54:31,030 --> 00:54:33,450 programiranje u svijetu koja ima stotine knjiga i 1332 00:54:33,450 --> 00:54:36,180 stotine web stranice vani je da će uvijek 1333 00:54:36,180 --> 00:54:38,220 vidjeti različite sintakse u različitim knjigama 1334 00:54:38,220 --> 00:54:40,220 od strane različitih ljudi. 1335 00:54:40,220 --> 00:54:42,100 Shvatite ćemo se potruditi u dijelovima i predavanja biti 1336 00:54:42,100 --> 00:54:42,960 dosljedni. 1337 00:54:42,960 --> 00:54:46,660 Ali ponekad ćete vidjeti sukobljene sintaksu. 1338 00:54:46,660 --> 00:54:48,540 Dakle, kad god ste u nedoumici, samo pitajte. 1339 00:54:48,540 --> 00:54:51,100 I općenito, mi ćemo se pobrinuti za predavanja i sekcije za 1340 00:54:51,100 --> 00:54:53,710 gotovo uvijek ga predstaviti na pravi način. 1341 00:54:53,710 --> 00:54:56,070 A ja kažem gotovo uvijek, jer slučaj u točki. 1342 00:54:56,070 --> 00:54:56,860 Ostala pitanja? 1343 00:54:56,860 --> 00:55:01,590 >> PUBLIKA: Da li postoji izvan% s aparata? 1344 00:55:01,590 --> 00:55:03,710 DAVID MALAN: Da li% s postoji izvan uređaja? 1345 00:55:03,710 --> 00:55:04,180 Da. 1346 00:55:04,180 --> 00:55:07,760 Dakle% s ima veze s C. činjenicu da smo ga koristili u 1347 00:55:07,760 --> 00:55:10,290 Uređaj fundamentalno nema nikakve veze s 1348 00:55:10,290 --> 00:55:12,080 obilježja jezika kojeg koristimo. 1349 00:55:12,080 --> 00:55:15,990 Doista, prošli tjedan kad smo se moj Mac, napisao sam 1350 00:55:15,990 --> 00:55:17,160 C koda na mom Macu. 1351 00:55:17,160 --> 00:55:20,020 Mogao sam koristiti% s na mom Macu, a možete ga koristiti na 1352 00:55:20,020 --> 00:55:22,400 vaš Windows računalo, ako ste instalirali prevodilac, kao što je 1353 00:55:22,400 --> 00:55:24,070 Visual Studio od Microsofta. 1354 00:55:24,070 --> 00:55:24,990 Dakle% s. 1355 00:55:24,990 --> 00:55:27,860 Sve što radimo unutar ovog prozora danas ima 1356 00:55:27,860 --> 00:55:31,140 učiniti sa C. I bitno ništa učiniti s 1357 00:55:31,140 --> 00:55:33,450 operativni sustav u pitanju. 1358 00:55:33,450 --> 00:55:35,900 Nasuprot tome, crna i bijela terminala prozor - kada 1359 00:55:35,900 --> 00:55:40,160 Ja sam tipkati stvari poput ls, i RM, a cd - 1360 00:55:40,160 --> 00:55:42,020 da ima veze s operativnim sustavom i 1361 00:55:42,020 --> 00:55:43,562 navigacije oko. 1362 00:55:43,562 --> 00:55:44,546 Da. 1363 00:55:44,546 --> 00:55:46,520 PUBLIKA: Mislio sam u knjižnicu, na CS50 knjižnicu. 1364 00:55:46,520 --> 00:55:49,960 DAVID MALAN: Ok, pa ako misliš ključne riječi niz, koji 1365 00:55:49,960 --> 00:55:52,460 postoji samo u CS50 knjižnici, točno. 1366 00:55:52,460 --> 00:55:55,350 To ne postoji u C sama, i doista u paru 1367 00:55:55,350 --> 00:55:58,220 tjedana ćemo baciti CS50 knjižnicu i početi 1368 00:55:58,220 --> 00:56:02,290 radi stvari od nule sebe, da se tako izrazim. 1369 00:56:02,290 --> 00:56:02,940 Ostala pitanja? 1370 00:56:02,940 --> 00:56:04,577 Da. 1371 00:56:04,577 --> 00:56:05,827 >> PUBLIKA: [nečujan] 1372 00:56:09,470 --> 00:56:10,160 DAVID MALAN: Dobro pitanje. 1373 00:56:10,160 --> 00:56:11,720 Jesu li naredbe slova? 1374 00:56:11,720 --> 00:56:13,710 I neka mi napraviti razliku ovdje. 1375 00:56:13,710 --> 00:56:15,840 Dakle, naredbe su općenito stvari ćemo pisati u 1376 00:56:15,840 --> 00:56:17,940 dno prozora, u terminal prozoru. 1377 00:56:17,940 --> 00:56:21,770 Sve do ovdje bi se izjave ili C kod. 1378 00:56:21,770 --> 00:56:24,490 No, u oba slučaja, odgovor je isti, da. 1379 00:56:24,490 --> 00:56:27,800 Obje od tih okruženjima, C koda na vrhu i 1380 00:56:27,800 --> 00:56:29,910 operativni sustav naredbenog retka u 1381 00:56:29,910 --> 00:56:31,440 Dno, su velika i mala slova. 1382 00:56:31,440 --> 00:56:33,830 Dakle, morate iskoristiti GetString s glavnog G, 1383 00:56:33,830 --> 00:56:37,050 kapital S. Morate napisati printf u svim malim slovima. 1384 00:56:37,050 --> 00:56:39,520 Morate upisati ls u svim malim slovima. 1385 00:56:39,520 --> 00:56:43,260 Dakle, u gotovo svakoj situaciji ovog semestra, slučaj će se, u 1386 00:56:43,260 --> 00:56:44,820 Činjenica, stvar. 1387 00:56:44,820 --> 00:56:46,148 Da. 1388 00:56:46,148 --> 00:56:47,398 >> PUBLIKA: [nečujan] 1389 00:56:54,770 --> 00:56:56,480 DAVID MALAN: Ah, pa dobro, što ako smo imali datoteku 1390 00:56:56,480 --> 00:56:57,840 zove hello.d. 1391 00:56:57,840 --> 00:57:00,090 Tako ispada D programski jezik. 1392 00:57:00,090 --> 00:57:02,790 I tako, u nekim slučajevima, mi zapravo mogli napisati program u 1393 00:57:02,790 --> 00:57:06,190 tu datoteku i to su sastavljeni u toj modi. 1394 00:57:06,190 --> 00:57:09,090 Možemo, i zapravo, kratak odgovor je, ne znam. 1395 00:57:09,090 --> 00:57:10,440 Tako da ćemo to učiniti. 1396 00:57:10,440 --> 00:57:13,040 Pusti me naprijed i stvoriti novu datoteku. 1397 00:57:13,040 --> 00:57:15,580 I centrifuge ovdje, iskreno u cjelini, kad god bilo sumnje 1398 00:57:15,580 --> 00:57:18,130 ovaj semestar, a vi imate svoj uređaj ili računalo 1399 00:57:18,130 --> 00:57:20,030 otvoriti, ići naprijed i pokušajte nešto. 1400 00:57:20,030 --> 00:57:23,740 Dakle, ja ću spremiti datoteku pod nazivom hello.d. 1401 00:57:23,740 --> 00:57:25,010 Spremi. 1402 00:57:25,010 --> 00:57:29,070 I ja ću pokrenuti napraviti halo Enter. 1403 00:57:29,070 --> 00:57:31,660 Činilo se da zaključiti da je c je više vjerojatno 1404 00:57:31,660 --> 00:57:35,920 od d, u ovom slučaju. 1405 00:57:35,920 --> 00:57:38,046 Ostala pitanja. 1406 00:57:38,046 --> 00:57:40,456 Da. 1407 00:57:40,456 --> 00:57:41,706 >> PUBLIKA: [nečujan] 1408 00:57:48,170 --> 00:57:49,837 DAVID MALAN: Ok, recimo da je još jednom. 1409 00:57:49,837 --> 00:57:51,087 PUBLIKA: [nečujan] 1410 00:58:04,250 --> 00:58:05,780 DAVID MALAN: Kako bi idete o dijagnozi da ili 1411 00:58:05,780 --> 00:58:06,380 rješavanje problema koji? 1412 00:58:06,380 --> 00:58:08,800 Dakle, najvjerojatnije, jer oni su različiti jezici, 1413 00:58:08,800 --> 00:58:10,280 najvjerojatnije će dobiti potpuno 1414 00:58:10,280 --> 00:58:11,580 drugačije Program outputted. 1415 00:58:11,580 --> 00:58:14,140 Ti bi dobiti potpuno različite poruke o pogrešci. 1416 00:58:14,140 --> 00:58:16,750 A također samo u smislu dizajna, nedvojbeno će biti 1417 00:58:16,750 --> 00:58:19,140 siromašni dizajn odluka da se pisanje dva različita 1418 00:58:19,140 --> 00:58:21,510 jezika s gotovo identično imenovanih datoteka, u 1419 00:58:21,510 --> 00:58:23,000 Isti katalog, koristeći 1420 00:58:23,000 --> 00:58:24,550 automatski alat kao što čine. 1421 00:58:24,550 --> 00:58:27,750 Dakle, ja također mogu gurnuti unatrag i reći u 15 godina to, 1422 00:58:27,750 --> 00:58:29,190 Nikad nisam napravio tu pogrešku. 1423 00:58:29,190 --> 00:58:30,030 Može se dogoditi. 1424 00:58:30,030 --> 00:58:31,190 No, tu je samo različite, mislim, 1425 00:58:31,190 --> 00:58:33,180 logistički obranu u mjestu. 1426 00:58:33,180 --> 00:58:35,440 Plus poruke o pogreškama koje bi proizašli, da bi 1427 00:58:35,440 --> 00:58:37,260 konačno otkriti u čemu je problem. 1428 00:58:37,260 --> 00:58:39,120 No, moguće kutak slučaj. 1429 00:58:39,120 --> 00:58:41,730 >> U redu, tako da ćemo uvesti samo nekoliko drugih 1430 00:58:41,730 --> 00:58:45,600 značajke sada ovdje, tako da možemo započeti s izgradnjom u više 1431 00:58:45,600 --> 00:58:47,140 i složeniji program. 1432 00:58:47,140 --> 00:58:49,000 Dakle, prije svega, iz matematike. 1433 00:58:49,000 --> 00:58:51,520 Dakle, matematika primjeri su samo vrsta lako u prvom tjednu. 1434 00:58:51,520 --> 00:58:53,560 To ne znači da su svi programiranje je o 1435 00:58:53,560 --> 00:58:54,390 matematika. 1436 00:58:54,390 --> 00:58:57,890 Dakako, razumijevanje različitih obilježja 1437 00:58:57,890 --> 00:58:59,610 matematike, algebre osobito je 1438 00:58:59,610 --> 00:59:00,330 vrlo relevantan ovdje. 1439 00:59:00,330 --> 00:59:03,010 U višim razinama CS klase, linearna algebra, 1440 00:59:03,010 --> 00:59:03,920 račun, i slično. 1441 00:59:03,920 --> 00:59:06,500 Ali realizirati većinu onoga što ćemo raditi ovaj semestar smanjuje ne 1442 00:59:06,500 --> 00:59:09,230 za matematiku, a svakako ne aritmetike, po sebi, ali stvarno 1443 00:59:09,230 --> 00:59:11,570 na samo logike i pažljivog razmišljanja. 1444 00:59:11,570 --> 00:59:14,310 I tako ovu vezu da informatika dugo je imao, 1445 00:59:14,310 --> 00:59:16,570 posebno na visokoj razini škole, s matematike, je 1446 00:59:16,570 --> 00:59:17,370 malo zabludu. 1447 00:59:17,370 --> 00:59:20,090 Budući da je većina programa koji ćemo pisati, stvarno su 1448 00:59:20,090 --> 00:59:23,290 vrsta višoj razini i usredotočiti na rješavanje problema koji, 1449 00:59:23,290 --> 00:59:26,410 sigurni, možda koristite neki zbrajanje, oduzimanje, i raznih 1450 00:59:26,410 --> 00:59:28,650 matematičke formule ili slično, 1451 00:59:28,650 --> 00:59:30,860 ali na kraju dana, to je oko razmišljati a ne 1452 00:59:30,860 --> 00:59:33,240 samo provodi ono što bi učinio na kao TI 1453 00:59:33,240 --> 00:59:35,050 kalkulator u srednjoj školi. 1454 00:59:35,050 --> 00:59:38,410 >> Dakle, s koje je rekao, hajdemo sada nešto učiniti s tim 1455 00:59:38,410 --> 00:59:40,980 matematički operatori koji ne postoje, tako da možemo izlet 1456 00:59:40,980 --> 00:59:43,950 preko neke od temeljnih aspekata programiranja, ili u 1457 00:59:43,950 --> 00:59:48,930 ovaj slučaj C. Dakle, postoje, kao CS50 knjižnica predložio, 1458 00:59:48,930 --> 00:59:51,520 , a danas smo samo pomoću GetString - iu trenutku 1459 00:59:51,520 --> 00:59:52,940 možda jedna druga funkcija - 1460 00:59:52,940 --> 00:59:55,380 ali postoje različite vrste podataka u računalu. 1461 00:59:55,380 --> 00:59:58,550 Na kraju dana, računala samo znam 0s i 1s. 1462 00:59:58,550 --> 01:00:01,880 No, podsjetimo da je prošlog tjedna razgovarali smo o binarnom sustavu 1463 01:00:01,880 --> 01:00:05,000 u predstavlja brojeve, kao broj 0 i 1, i 2, 1464 01:00:05,000 --> 01:00:07,480 sve način na do 8, kao iu Nate je video. 1465 01:00:07,480 --> 01:00:08,840 A onda možemo računati mnogo veći kao i mi 1466 01:00:08,840 --> 01:00:10,000 učinio na pozornici ovdje. 1467 01:00:10,000 --> 01:00:15,660 No, ako želite da predstavljaju ne samo brojeve, ali slova, 1468 01:00:15,660 --> 01:00:18,240 smo mi, ljudi, moram smisliti neke arbitrarne 1469 01:00:18,240 --> 01:00:21,180 konvencije, pri čemu ako se na kraju dana sve moje računalo 1470 01:00:21,180 --> 01:00:24,260 je je sposobnost da izraze 0s i 1s, dobro mi bismo bolje 1471 01:00:24,260 --> 01:00:27,990 početak standardizacije obrasce 0S i 1S koje predstavljaju 1472 01:00:27,990 --> 01:00:28,800 različite stvari. 1473 01:00:28,800 --> 01:00:32,370 Uzorak 0S i 1S koja predstavlja pismo je. 1474 01:00:32,370 --> 01:00:34,840 Obrasci 0S i 1S koje predstavljaju slovo z. 1475 01:00:34,840 --> 01:00:37,600 Obrasci 0S i 1S koje predstavljaju plava boja, ili 1476 01:00:37,600 --> 01:00:38,600 crveno, ili slično. 1477 01:00:38,600 --> 01:00:42,360 Moramo koristiti sve ove 0s i 1s da se izražavaju u 1478 01:00:42,360 --> 01:00:45,140 različitim kontekstima, na različite načine koji nisu 1479 01:00:45,140 --> 01:00:46,470 nužno numerički. 1480 01:00:46,470 --> 01:00:51,150 >> Dakle, u smislu zastupljenosti, C ima različite vrste podataka, 1481 01:00:51,150 --> 01:00:52,550 i vidjeli smo jedan od njih do sada. 1482 01:00:52,550 --> 01:00:54,940 Vidjeli smo int, a obavijest što nije na zaslonu 1483 01:00:54,940 --> 01:00:56,140 Trenutno je niz. 1484 01:00:56,140 --> 01:00:58,550 Gudački ne, u stvari, postoje u C. Opet, to je 1485 01:00:58,550 --> 01:01:00,610 pojednostavljenje smo predstavljanja za prvi 1486 01:01:00,610 --> 01:01:01,570 par tjedana. 1487 01:01:01,570 --> 01:01:03,770 Char je pojedinac lik. 1488 01:01:03,770 --> 01:01:07,050 Float je realna brojka, s decimalnom točkom i brojeva 1489 01:01:07,050 --> 01:01:09,066 lijevo i desno od njega. 1490 01:01:09,066 --> 01:01:16,040 Dvostruko je ono, za one s leđa prethodne pozadini? 1491 01:01:16,040 --> 01:01:19,720 Dakle, dvostruko je dva puta nešto. 1492 01:01:19,720 --> 01:01:21,240 Dodaje dvostruko više preciznosti. 1493 01:01:21,240 --> 01:01:22,440 Dakle, što to znači? 1494 01:01:22,440 --> 01:01:26,090 Dakle, u svakom od tih slučajeva, svijet ima kakve standardizirane 1495 01:01:26,090 --> 01:01:27,960 koliko bitova se koristi za predstavljanje 1496 01:01:27,960 --> 01:01:29,160 svaki od tih stvari. 1497 01:01:29,160 --> 01:01:31,590 Dakle, ako ste gledali Nate je ASCII videa već dio 1498 01:01:31,590 --> 01:01:36,170 od pset 0, ili kasnije ovaj tjedan što će, vjerojatno ćete znati 1499 01:01:36,170 --> 01:01:37,450 da ASCII - 1500 01:01:37,450 --> 01:01:38,610 karakter reprezentacije - 1501 01:01:38,610 --> 01:01:40,670 koristiti koliko bita? 1502 01:01:40,670 --> 01:01:43,410 A možda čak i zapamtiti iz našeg prosvjeda prošlog tjedna kako 1503 01:01:43,410 --> 01:01:45,500 mnogi ljudi su bili na pozornici. 1504 01:01:45,500 --> 01:01:46,840 Dakle 7 ili 8, u pravilu. 1505 01:01:46,840 --> 01:01:49,230 Dakle, općenito osam, a tu je nešto što se zove kao proširena 1506 01:01:49,230 --> 01:01:51,240 ASCII koji koristi svih 8 bitova, umjesto sedam. 1507 01:01:51,240 --> 01:01:54,710 No, u cjelini, govorimo u ovlasti 2, tako da u ovom slučaju, osam. 1508 01:01:54,710 --> 01:01:58,900 Dakle char u programskom jeziku je obično 8 bita. 1509 01:01:58,900 --> 01:02:02,550 Dakle, int je općenito 32 bita. 1510 01:02:02,550 --> 01:02:04,810 Plovak je općenito 32 bita. 1511 01:02:04,810 --> 01:02:08,060 Dvostruko je općenito 64 bita. 1512 01:02:08,060 --> 01:02:08,870 A što to znači? 1513 01:02:08,870 --> 01:02:11,500 To znači da može predstavljati veće brojeve, ili u slučaju 1514 01:02:11,500 --> 01:02:15,490 realnih brojeva, možete imati puno više brojeva nakon 1515 01:02:15,490 --> 01:02:16,240 decimalno mjesto. 1516 01:02:16,240 --> 01:02:18,980 Puno više preciznosti, u tom slučaju. 1517 01:02:18,980 --> 01:02:21,780 Sada dugo dugo nažalost se zove. 1518 01:02:21,780 --> 01:02:24,340 Dakle, tu je int, što je 32 bita. 1519 01:02:24,340 --> 01:02:29,800 Tu je dugo što je, nope, 32 bita. 1520 01:02:29,800 --> 01:02:32,610 I dugo dugo koji je 64 bita. 1521 01:02:32,610 --> 01:02:34,830 Međutim, neke od njih su osjetljiva na kontekst, to ovisi 1522 01:02:34,830 --> 01:02:36,190 kakav računalu imate. 1523 01:02:36,190 --> 01:02:40,510 Dakle, u cjelini, mi ćemo odrediti u zadaću ili u kvizu kada 1524 01:02:40,510 --> 01:02:41,180 to je zapravo važno. 1525 01:02:41,180 --> 01:02:43,080 No, stvar je tu je sve to drugačije 1526 01:02:43,080 --> 01:02:44,250 reprezentacije ovdje. 1527 01:02:44,250 --> 01:02:45,950 >> Dakle, neka je zapravo zaroniti u programu. 1528 01:02:45,950 --> 01:02:48,300 Umjesto napisati ovaj jedan od nule, pusti me naprijed 1529 01:02:48,300 --> 01:02:50,940 i otvoriti iz današnje izvornog koda - što je sve 1530 01:02:50,940 --> 01:02:54,980 online - ako želite da prtljati oko online, ili povratak na 1531 01:02:54,980 --> 01:02:57,120 Srijeda s aparatom na računalu, upute 1532 01:02:57,120 --> 01:02:59,160 za koje će se povezati na stazi početnoj stranici. 1533 01:02:59,160 --> 01:03:00,830 Evo super jednostavan program. 1534 01:03:00,830 --> 01:03:02,520 Ali to je dobio malo nešto novo na vrhu koji 1535 01:03:02,520 --> 01:03:03,650 nismo imali prije. 1536 01:03:03,650 --> 01:03:05,800 Puno plavih redaka teksta. 1537 01:03:05,800 --> 01:03:08,410 Dakle, ove plave linije predstavljaju komentare. 1538 01:03:08,410 --> 01:03:10,620 Dakle, to je vrlo korisno u programu da bi mogli pisati 1539 01:03:10,620 --> 01:03:13,160 neki komentari na sebe, ili s kolegama ili prijateljima, ili 1540 01:03:13,160 --> 01:03:15,700 nastavne momci, da vrsta opisati ono što se događa u 1541 01:03:15,700 --> 01:03:18,500 ovu sliku, ali imaju veze s C kod sebe. 1542 01:03:18,500 --> 01:03:20,860 Ništa učiniti s programom funkcionalno, to je samo 1543 01:03:20,860 --> 01:03:21,760 estetika. 1544 01:03:21,760 --> 01:03:24,580 Dakle, način na koji to učiniti u C je obično ćete početi svoje 1545 01:03:24,580 --> 01:03:29,860 komentari sa / * i svrši svoje komentare sa 1546 01:03:29,860 --> 01:03:31,270 * /. 1547 01:03:31,270 --> 01:03:34,140 A ako ste stvarno analni i kao izvući kakve slike, 1548 01:03:34,140 --> 01:03:35,870 onda bih stavio puno zvijezda, što bih napraviti 1549 01:03:35,870 --> 01:03:36,970 kutijica ovako. 1550 01:03:36,970 --> 01:03:37,990 No, ništa od toga pitanja. 1551 01:03:37,990 --> 01:03:40,230 Jedina stvar koja je bitna je prvi 1552 01:03:40,230 --> 01:03:41,620 i posljednji. 1553 01:03:41,620 --> 01:03:43,820 To je ono što se zove multi-line komentar. 1554 01:03:43,820 --> 01:03:46,610 I to je samo ljudska konvencija da često zvijezde i kutija 1555 01:03:46,610 --> 01:03:48,420 stvari u ovako, ako imate puno slobodnog vremena. 1556 01:03:48,420 --> 01:03:51,550 >> Dakle, nakon što ste napisali u nekim komentarima, općenito, dolaze 1557 01:03:51,550 --> 01:03:53,160 stvarne hrabrosti programa. 1558 01:03:53,160 --> 01:03:55,630 Evo naša poznata # include . 1559 01:03:55,630 --> 01:04:00,410 I baš brzo, to je potrebno ili nije potrebno? 1560 01:04:00,410 --> 01:04:02,860 PUBLIKA: Neophodna. 1561 01:04:02,860 --> 01:04:04,390 DAVID MALAN: Pa to je zapravo nije potrebno. 1562 01:04:04,390 --> 01:04:07,070 Pa zašto je, međutim, to nije potrebno? 1563 01:04:07,070 --> 01:04:08,170 Dakle, nema printf. 1564 01:04:08,170 --> 01:04:08,510 Doista. 1565 01:04:08,510 --> 01:04:10,470 Sve što radimo u ovom programu je matematika. 1566 01:04:10,470 --> 01:04:11,640 Dakle, ja zapravo mogu izbrisati to. 1567 01:04:11,640 --> 01:04:14,330 Dakle, ne moraju uvijek uključivati ​​ništa 1568 01:04:14,330 --> 01:04:15,420 vrhu programa. 1569 01:04:15,420 --> 01:04:17,020 >> Tako ćemo pojednostaviti ovaj malo. 1570 01:04:17,020 --> 01:04:18,650 I sada primjetiti ono što ovaj program radi. 1571 01:04:18,650 --> 01:04:19,920 Nije puno interesa. 1572 01:04:19,920 --> 01:04:21,410 int x = 1. 1573 01:04:21,410 --> 01:04:22,550 Pa, što je to radiš? 1574 01:04:22,550 --> 01:04:25,130 Pa, mislim natrag na mentalnom modelu od prije. 1575 01:04:25,130 --> 01:04:27,500 Na lijevoj strani ovog izraza što radi? 1576 01:04:31,440 --> 01:04:32,830 Napravite prostora za cijeli broj. 1577 01:04:32,830 --> 01:04:33,930 Dakle, koliko prostora? 1578 01:04:33,930 --> 01:04:36,980 Pa, mi se dogoditi da sada znamo da je 32 bita. 1579 01:04:36,980 --> 01:04:40,070 Prije toga, niz je tehnički 32 bita, ali više 1580 01:04:40,070 --> 01:04:40,950 na to u budućnosti. 1581 01:04:40,950 --> 01:04:42,240 No int je 32 bita. 1582 01:04:42,240 --> 01:04:45,590 Dakle, ovaj izraz na lijevoj ovdje, int x samo kaže hej 1583 01:04:45,590 --> 01:04:48,490 operativni sustav, daj mi 32 bita RAM - 1584 01:04:48,490 --> 01:04:50,450 inače poznat kao 4 bajta RAM - 1585 01:04:50,450 --> 01:04:53,930 tako da ja mogu staviti cijeli u tom prostoru. 1586 01:04:53,930 --> 01:04:55,330 Što cijeli si htio staviti? 1587 01:04:55,330 --> 01:04:56,640 Pa, samo broj 1. 1588 01:04:56,640 --> 01:04:59,530 int y dobiva dvije, radi točno istu stvar, iako 1589 01:04:59,530 --> 01:05:02,160 broj je veći, u smislu njegove veličine. 1590 01:05:02,160 --> 01:05:04,790 Sama brojka je još samo 32 bita. 1591 01:05:04,790 --> 01:05:06,520 To je samo uzorak bitova se razlikuje 1592 01:05:06,520 --> 01:05:08,260 predstavljaju jedan nasuprot dva. 1593 01:05:08,260 --> 01:05:11,980 int z sada kaže mi dati još 32 bita, nazovite ga z, i staviti 1594 01:05:11,980 --> 01:05:14,210 zbir 1 i 2 u tamo. 1595 01:05:14,210 --> 01:05:18,050 Tako da sada z vjerojatno je spremanje vrijednost 3, 1596 01:05:18,050 --> 01:05:19,360 a zatim se vratiti 0. 1597 01:05:19,360 --> 01:05:23,020 >> Sada je ovaj program, to ništa interesa? 1598 01:05:23,020 --> 01:05:26,170 Tako da zapravo ne učiniti ništa zanimljivo, u bilo 1599 01:05:26,170 --> 01:05:28,450 smislu, jer zašto? To je događaj neki math. 1600 01:05:28,450 --> 01:05:30,590 No, to nije povratak odgovor, zar ne. 1601 01:05:30,590 --> 01:05:31,790 To je povratak 0. 1602 01:05:31,790 --> 01:05:33,440 To ne znači tiskanje odgovor. 1603 01:05:33,440 --> 01:05:35,760 Dakle, ovaj program je u osnovi isprazna, kao što je 1604 01:05:35,760 --> 01:05:36,350 stoji sada. 1605 01:05:36,350 --> 01:05:37,220 To radi neki posao. 1606 01:05:37,220 --> 01:05:39,530 To će potrajati neko broj sekundi, ili mikrosekundi, na 1607 01:05:39,530 --> 01:05:41,510 pokrenuti, ali to nije zapravo radi ništa 1608 01:05:41,510 --> 01:05:42,770 korisno za čovjeka. 1609 01:05:42,770 --> 01:05:46,810 >> Dakle, neka je zapravo sada otvoriti math2, gdje sada sam zapravo 1610 01:05:46,810 --> 01:05:48,250 ispis rezultata. 1611 01:05:48,250 --> 01:05:51,260 Dakle, to također može zaključiti iz naših prethodnih primjera. 1612 01:05:51,260 --> 01:05:54,320 Ako želim napraviti neke jednostavne matematike, int x = 1, y 1613 01:05:54,320 --> 01:05:56,820 = 2. z je 1 plus 2 sada. 1614 01:05:56,820 --> 01:05:59,240 Što se to događa s isprintati očito? 1615 01:05:59,240 --> 01:06:00,120 Samo tri. 1616 01:06:00,120 --> 01:06:01,590 Tako brzo razum ček. 1617 01:06:01,590 --> 01:06:03,830 Dopustite mi da se presele u ovaj direktorij. 1618 01:06:03,830 --> 01:06:06,480 Dakle, cd source1m. 1619 01:06:06,480 --> 01:06:09,370 Pusti me naprijed i upišite napraviti math2. 1620 01:06:09,370 --> 01:06:11,510 Nema pogreškama izašao, pa neka mi pokrenuti - 1621 01:06:11,510 --> 01:06:14,800 Ne a.out--neka mi pokrenuti math2. Upišite. 1622 01:06:14,800 --> 01:06:16,750 I doista, to ispisati tri. 1623 01:06:16,750 --> 01:06:18,460 Pa hajdemo pogledati varijanta to. 1624 01:06:18,460 --> 01:06:23,870 U math3.c, sada imamo ovaj primjer ovdje. 1625 01:06:23,870 --> 01:06:26,540 >> Dakle, ovo je jedna vrsta zanimljiva. 1626 01:06:26,540 --> 01:06:32,000 Dakle, u tom jednom ovdje, odgovor će dobiti jedan podijeljena 10, 1627 01:06:32,000 --> 01:06:33,910 i primijetiti sam proglasio kao float. 1628 01:06:33,910 --> 01:06:35,200 Zašto želim da bude plovak? 1629 01:06:35,200 --> 01:06:36,110 Pa, to je dio. 1630 01:06:36,110 --> 01:06:37,140 To će biti pravi broj. 1631 01:06:37,140 --> 01:06:40,970 Dakle, to će biti 0,1, nadamo se - 10%, u ovom slučaju. 1632 01:06:40,970 --> 01:06:42,610 A što ja onda želim isprintati? 1633 01:06:42,610 --> 01:06:43,440 Pa, ovaj odgovor. 1634 01:06:43,440 --> 01:06:44,760 Pa, neka je zadirkivao to osim prvi. 1635 01:06:44,760 --> 01:06:47,020 Dakle, na lijevoj strani, izjavljujem 1636 01:06:47,020 --> 01:06:49,410 plutaju, nazovite to odgovoriti. 1637 01:06:49,410 --> 01:06:52,280 Na desnoj strani, ne jednom podijeljena 10 i staviti da 1638 01:06:52,280 --> 01:06:54,370 odgovoriti na unutrašnjost varijable. 1639 01:06:54,370 --> 01:06:56,410 Sada, ova linija izgleda malo više zagonetan. 1640 01:06:56,410 --> 01:06:59,440 Ali primijetite neke poznate značajke. % Znači ovdje dolazi 1641 01:06:59,440 --> 01:07:00,490 rezervirano. 1642 01:07:00,490 --> 01:07:03,230 f znači evo Krajnja vrijednost, samo pravi 1643 01:07:03,230 --> 01:07:05,490 broj, nešto s decimalnom točkom. 1644 01:07:05,490 --> 01:07:07,330 0,2 znači što? 1645 01:07:07,330 --> 01:07:10,740 Svatko zna iz prethodnog iskustva? 1646 01:07:10,740 --> 01:07:12,010 Dvije decimale. 1647 01:07:12,010 --> 01:07:14,050 Dakle, mi ne vidio ovo prije, ali to je samo način 1648 01:07:14,050 --> 01:07:16,360 vježbanje malo više kontrole nad printf i 1649 01:07:16,360 --> 01:07:20,840 izreka ne daj mi 30 bodova nakon decimalne točke, 1650 01:07:20,840 --> 01:07:22,490 umjesto daj mi samo dvije. 1651 01:07:22,490 --> 01:07:23,960 >> A onda idemo naprijed i pokrenuti ovo. 1652 01:07:23,960 --> 01:07:30,160 Tako bi matematiku 3, a sada neka mi pokrenuti matematike 3, Enter. 1653 01:07:30,160 --> 01:07:34,630 A to nije u redu. 1654 01:07:34,630 --> 01:07:37,390 Izgleda da smo naišli naš prvi pravi grešku. 1655 01:07:37,390 --> 01:07:39,400 Pa, možda sam samo ne gleda dovoljno blizu. 1656 01:07:39,400 --> 01:07:41,960 Dakle, pusti me ovdje, i neka mi stavi 20 decimale 1657 01:07:41,960 --> 01:07:43,300 point mjestima. 1658 01:07:43,300 --> 01:07:47,950 I neka mi sastaviti to učinili, math3, pokrenuti. 1659 01:07:47,950 --> 01:07:50,960 Prilično siguran 1 podijeljeno 10 nije 0. 1660 01:07:50,960 --> 01:07:54,270 Dakle, što se događa? 1661 01:07:54,270 --> 01:07:56,740 Pa dobro, tako da zapravo ne morate učiniti s tim. 1662 01:07:56,740 --> 01:07:57,600 To je dobra misao. 1663 01:07:57,600 --> 01:07:59,140 To je zapravo samo slučajnost 1664 01:07:59,140 --> 01:08:00,220 da smo to. 1665 01:08:00,220 --> 01:08:02,010 Ali samo dokazati da to nije to, ja ću 1666 01:08:02,010 --> 01:08:03,160 vratiti nešto slučajan. 1667 01:08:03,160 --> 01:08:05,160 Nemojte to učiniti kod kuće, jer to je samo krivo. 1668 01:08:05,160 --> 01:08:08,000 Ali bi math3, dopustite mi da ga pokrenuti. 1669 01:08:08,000 --> 01:08:10,690 Dakle, nema nikakve veze s onim što sam povratka, samo treba napraviti 1670 01:08:10,690 --> 01:08:11,940 s tim što sam ispis. 1671 01:08:11,940 --> 01:08:14,150 Ali sam ga čuo ovdje dolje. 1672 01:08:14,150 --> 01:08:15,270 Što? 1673 01:08:15,270 --> 01:08:17,524 PUBLIKA: Dakle, trebamo pisati brojeve u 1674 01:08:17,524 --> 01:08:19,680 Podjela kao - 1675 01:08:19,680 --> 01:08:20,319 >> DAVID MALAN: Ok dobro. 1676 01:08:20,319 --> 01:08:22,810 Dakle, moramo napisati brojeve koji sudjeluju u 1677 01:08:22,810 --> 01:08:25,979 Podjela ovdje kao plutajuće točke se cijeni. 1678 01:08:25,979 --> 01:08:29,359 Dakle, problem je kao i prije: C, kao i sa puno 1679 01:08:29,359 --> 01:08:31,819 jezici, ima različite vrste podataka. 1680 01:08:31,819 --> 01:08:34,600 A ti tipovi podataka, na primjer, da su ovi ovdje. 1681 01:08:34,600 --> 01:08:37,430 A tipovi podataka u pitanju ovdje, kad sam upisati 1, a onda sam 1682 01:08:37,430 --> 01:08:40,870 Tip 10, su vjerojatno ono što vrste podataka? 1683 01:08:40,870 --> 01:08:42,170 Dakle, to je vjerojatno int, zar ne? 1684 01:08:42,170 --> 01:08:44,149 To definitivno nije float jer nema decimala 1685 01:08:44,149 --> 01:08:45,460 točka ili bilo što slično. 1686 01:08:45,460 --> 01:08:48,270 Pa stvarno, imam int podijeljene int. 1687 01:08:48,270 --> 01:08:52,160 >> Dakle zanimljiva stvar o matematici i računala je da 1688 01:08:52,160 --> 01:08:54,840 ako radite podjele koristeći prirodna broja - 1689 01:08:54,840 --> 01:08:57,310 1 podijeljeno 10, da je 0.1. 1690 01:08:57,310 --> 01:09:01,420 Međutim, kada ste dijeljenjem integer po cijeli broj, 1691 01:09:01,420 --> 01:09:06,859 Odgovor mora biti i cijeli samo zato, za sada. 1692 01:09:06,859 --> 01:09:08,630 A što je implikacija onda? 1693 01:09:08,630 --> 01:09:13,640 Pa, ako je odgovor jedna je podijeljeno 10 jednak 0,1, što 1694 01:09:13,640 --> 01:09:15,680 Računalo će učiniti je nemam pojma kako 1695 01:09:15,680 --> 01:09:19,270 predstavljaju 0,1, jer je to Krajnja vrijednost, ne 1696 01:09:19,270 --> 01:09:21,910 integer; to će odsjeći sve nakon 1697 01:09:21,910 --> 01:09:27,470 decimalna točka i samo vam pokazati 0 na početku. 1698 01:09:27,470 --> 01:09:29,540 A činjenica da je tiskanje kao plutajući točke 1699 01:09:29,540 --> 01:09:31,200 vrijednost, to je samo estetski stvar. 1700 01:09:31,200 --> 01:09:34,279 To je zato što sam prisiljavajući računalo za ispis ovo kao 1701 01:09:34,279 --> 01:09:35,229 Krajnja vrijednost. 1702 01:09:35,229 --> 01:09:37,720 I doista sam ga proglasio kao float, ali matematika 1703 01:09:37,720 --> 01:09:39,010 događa ovdje. 1704 01:09:39,010 --> 01:09:41,859 >> Pa neka mi zapravo popraviti u jednoj prilično jednostavan način. 1705 01:09:41,859 --> 01:09:45,250 Zašto ne samo napraviti 10,0 i 1,0, iako 1706 01:09:45,250 --> 01:09:47,609 tehnički sam mogao izvući samo radi jedne od njih. 1707 01:09:47,609 --> 01:09:50,630 Sada neka mi ići naprijed i učiniti math3. 1708 01:09:50,630 --> 01:09:56,350 Pusti me naprijed i sada pokrenuti math3, Enter. 1709 01:09:56,350 --> 01:09:57,500 I sada, oh boy. 1710 01:09:57,500 --> 01:10:00,050 Sada imamo novi problem uopce. 1711 01:10:00,050 --> 01:10:05,600 Dakle, bolje, zar ne, mi smo bliže 0,1, ali ono što je jasno je 1712 01:10:05,600 --> 01:10:06,240 krivo ovdje? 1713 01:10:06,240 --> 01:10:08,260 Ako smo je lagao za godine, zar ne? 1714 01:10:08,260 --> 01:10:13,660 1 podijeljeno s 10 je zapravo nije sasvim 0.1, tako što je 1715 01:10:13,660 --> 01:10:14,700 Stvarno se ovdje događa? 1716 01:10:14,700 --> 01:10:16,420 Pa možete vrsta razloga kroz to logično. 1717 01:10:16,420 --> 01:10:19,200 Ako računalo ima samo ograničenu količinu RAM-a za početak 1718 01:10:19,200 --> 01:10:23,530 sa, i doista računalo samo koristi 32 bita za 1719 01:10:23,530 --> 01:10:26,200 Krajnja vrijednost, logično je da s 1720 01:10:26,200 --> 01:10:29,870 konačan broj bitova, 32 u ovom slučaju, da, možete 1721 01:10:29,870 --> 01:10:31,050 predstavljaju puno stvari. 1722 01:10:31,050 --> 01:10:33,220 To je zapravo četiri milijarde različite vrijednosti mogu biti 1723 01:10:33,220 --> 01:10:38,040 zastupljena s 32 bita, 2 do 32, ali to je još uvijek konačna. 1724 01:10:38,040 --> 01:10:40,730 Dakle, problem je tu beskonačan broj stvarnom 1725 01:10:40,730 --> 01:10:41,370 brojevi, desno. 1726 01:10:41,370 --> 01:10:43,560 Ako mi dati pravi broj, ja uvijek mogu naći jednoga 1727 01:10:43,560 --> 01:10:46,080 nešto veći, nešto manje, a samo ugađati 1728 01:10:46,080 --> 01:10:47,970 brojevi koji su nakon decimalne točke. 1729 01:10:47,970 --> 01:10:50,870 Dakle, ako nemate neograničen broj bitova, što 1730 01:10:50,870 --> 01:10:52,940 nikako ne može predstavljati beskonačan 1731 01:10:52,940 --> 01:10:54,800 broj realnih brojeva. 1732 01:10:54,800 --> 01:10:58,090 >> Dakle, tu je ovo svojstveno nepreciznost u računalima, a 1733 01:10:58,090 --> 01:11:00,930 to dobiva spotaknuo svih vremena čak i najjednostavniji 1734 01:11:00,930 --> 01:11:02,260 Programi kao što je ovaj. 1735 01:11:02,260 --> 01:11:05,640 No, također u nekim vrlo stvarnim problemima, kao dobro. 1736 01:11:05,640 --> 01:11:07,790 U stvari, uzmimo na trenutak samo pogledati 1737 01:11:07,790 --> 01:11:09,530 nešto što se zapravo dogodilo u stvarnosti. 1738 01:11:09,530 --> 01:11:11,620 Mi ćemo gledati samo prvih par minuta, a zatim 1739 01:11:11,620 --> 01:11:13,270 ćemo objaviti online vezu. 1740 01:11:13,270 --> 01:11:16,700 No, to je dokaz da se samo ono što može poći krivo, sasvim 1741 01:11:16,700 --> 01:11:19,680 iskreno, u vrlo tragičan način, kada te stvari nisu 1742 01:11:19,680 --> 01:11:23,870 poštovati ili samo mi ljudi griješe kada je u pitanju 1743 01:11:23,870 --> 01:11:26,792 ove vrste provedbenih detalja modernih računala. 1744 01:11:26,792 --> 01:11:27,284 >> [Video igranje] 1745 01:11:27,284 --> 01:11:30,730 -Mi smo sada vratiti inženjering katastrofa na modernim čudima. 1746 01:11:30,730 --> 01:11:32,200 Računala. 1747 01:11:32,200 --> 01:11:34,920 Svi smo došli da prihvati često frustrirajuće problema 1748 01:11:34,920 --> 01:11:36,750 da ide s njima. 1749 01:11:36,750 --> 01:11:40,690 Nedostaci, virusa i softver glitches su male cijene na 1750 01:11:40,690 --> 01:11:42,550 platiti za praktičnost. 1751 01:11:42,550 --> 01:11:45,170 No, u high-tech i visoke brzine vojske i prostora 1752 01:11:45,170 --> 01:11:48,450 programskih aplikacija, najmanji problem može biti 1753 01:11:48,450 --> 01:11:52,220 uvećana u propast. 1754 01:11:52,220 --> 01:11:56,780 Na 4. lipanj 1996, znanstvenici spremni lansirati bespilotnih 1755 01:11:56,780 --> 01:11:58,430 Ariane 5 raketa. 1756 01:11:58,430 --> 01:12:00,750 To je prevozio znanstvenih satelita namijenjene 1757 01:12:00,750 --> 01:12:03,580 utvrditi točno kako je Zemljina magnetskog polja 1758 01:12:03,580 --> 01:12:06,900 komunicira sa solarnim vjetrovima. 1759 01:12:06,900 --> 01:12:10,330 Raketa je izgrađen za Europske svemirske agencije i 1760 01:12:10,330 --> 01:12:13,450 uzletio iz objekta na obali Francuske Gvajane. 1761 01:12:13,450 --> 01:12:16,970 >> -Na oko oko 37 sekundi u letu, oni prvi 1762 01:12:16,970 --> 01:12:19,700 Primijetio je nešto pošlo krivo, da su mlaznice bile 1763 01:12:19,700 --> 01:12:21,590 zakretanje na način da stvarno ne treba. 1764 01:12:21,590 --> 01:12:25,020 Oko 40 sekundi u letu, jasno vozila 1765 01:12:25,020 --> 01:12:27,340 bio u nevolji, a to je kada je donio odluku da 1766 01:12:27,340 --> 01:12:28,136 ga uništiti. 1767 01:12:28,136 --> 01:12:31,450 Časnik Raspon sigurnost s ogromnim pritiskom crijeva 1768 01:12:31,450 --> 01:12:34,160 gumb, raznio raketu prije nego što je mogao postati 1769 01:12:34,160 --> 01:12:37,470 Opasnost za javnu sigurnost. 1770 01:12:37,470 --> 01:12:40,750 >> -To je bilo prvo putovanje od Ariane 5, a njegova 1771 01:12:40,750 --> 01:12:43,990 uništavanje dogodio zbog mana ugrađen u 1772 01:12:43,990 --> 01:12:45,480 Rocket je softver. 1773 01:12:45,480 --> 01:12:47,660 >> -Problem na Ariane je da je broj koji 1774 01:12:47,660 --> 01:12:51,245 zahtijeva 64 bitova izraziti i htjeli su ga pretvorili 1775 01:12:51,245 --> 01:12:53,010 na 16 bitni broj. 1776 01:12:53,010 --> 01:12:54,900 Oni Pretpostavlja se da broj nikad nije bio 1777 01:12:54,900 --> 01:12:56,280 će biti vrlo velika, 1778 01:12:56,280 --> 01:12:59,920 da je većina od tih znamenki u 64 bitnom broju bili 0s. 1779 01:12:59,920 --> 01:13:01,860 Oni su bili u krivu. 1780 01:13:01,860 --> 01:13:04,550 >> -Nesposobnost jedne programu prihvatiti 1781 01:13:04,550 --> 01:13:07,730 vrsta broja generirani od strane drugog je u korijenu 1782 01:13:07,730 --> 01:13:08,930 neuspjeh. 1783 01:13:08,930 --> 01:13:11,490 Softver razvoj je postala vrlo skupo dio 1784 01:13:11,490 --> 01:13:13,280 Nova tehnologija. 1785 01:13:13,280 --> 01:13:16,530 The Ariane 4 Raketa je bio vrlo uspješan. 1786 01:13:16,530 --> 01:13:19,100 Toliko od softvera stvorena za njega je također bio korišten 1787 01:13:19,100 --> 01:13:21,050 u Ariane 5. 1788 01:13:21,050 --> 01:13:25,530 >> -Osnovni problem je da Ariane 5 je bio brži, 1789 01:13:25,530 --> 01:13:27,280 ubrzan brže. 1790 01:13:27,280 --> 01:13:30,590 A softver nije činio za to. 1791 01:13:30,590 --> 01:13:33,060 >> -Zabranjeno je uništavanje raketa bio veliki financijski 1792 01:13:33,060 --> 01:13:37,670 katastrofa, sve zbog minuta softvera pogreške. 1793 01:13:37,670 --> 01:13:40,750 No, to nije bio prvi put da podaci o pretvorbi problemi imala 1794 01:13:40,750 --> 01:13:43,680 udario moderne raketne tehnologije. 1795 01:13:43,680 --> 01:13:44,390 >> DAVID MALAN: Mi ćemo ostati na tome. 1796 01:13:44,390 --> 01:13:46,870 No, to je dokaz da se samo kako je primjenjivo čak i neke od 1797 01:13:46,870 --> 01:13:48,750 ove najnižu razinu pojedinosti koje smo počele 1798 01:13:48,750 --> 01:13:50,040 istraživati ​​danas su. 1799 01:13:50,040 --> 01:13:52,510 Dakle, čak i kao što ste dobili malo rastresen možda neki od 1800 01:13:52,510 --> 01:13:55,240 sintaksa i arcaneness ovdje, shvatite da nad 1801 01:13:55,240 --> 01:13:57,690 Pojam ćemo se fokusirati samo na to kako je primjenjivo to je 1802 01:13:57,690 --> 01:13:59,530 svjetovi daleko izvan CS. 1803 01:13:59,530 --> 01:14:00,780 Mi ćemo vas vidjeti u srijedu.