1 00:00:07,830 --> 00:00:12,200 [Powered by Google Translate] DAVID Malan: See on CS50, ja see on alguse nädal 1. 2 00:00:12,200 --> 00:00:15,520 Mida me arvasime me tahaks teha täna on võtta tagasi vaadata 3 00:00:15,520 --> 00:00:18,290 midagi paljud teist on ilmselt kõndis varem mõnda 4 00:00:18,290 --> 00:00:20,570 Kell on praegu ja võib tunduda natuke tuttav. 5 00:00:20,570 --> 00:00:23,720 See asi siin, see muidugi on - 6 00:00:23,720 --> 00:00:24,155 Sihtrühm: Science. 7 00:00:24,155 --> 00:00:26,030 DAVID Malan: teaduskeskus. 8 00:00:26,030 --> 00:00:28,940 Nii et see on tegelikult üks esimesi arvuteid 9 00:00:28,940 --> 00:00:30,220 tagasi 1940. 10 00:00:30,220 --> 00:00:33,790 See oli üks esimesi elektromehaanilised arvutid 11 00:00:33,790 --> 00:00:35,730 et oli võimeline eriti pikk, 12 00:00:35,730 --> 00:00:38,450 füüsilisest isikust püsivat arvutused, ja mida me tegelikult näeme 13 00:00:38,450 --> 00:00:41,580 Ahhaas on ainult tükike sellest asjast. 14 00:00:41,580 --> 00:00:44,170 Mida me arvasime me tahaks teha, siis on võtta tagasi vaadata video 15 00:00:44,170 --> 00:00:46,670 mis tehti mõni aeg tagasi, kehtestades selle 16 00:00:46,670 --> 00:00:47,520 asi maailmas. 17 00:00:47,520 --> 00:00:50,200 Ja te näete, alates muusika ja hääl, et tõepoolest need 18 00:00:50,200 --> 00:00:52,070 olime väga õnnelikud ajad. 19 00:00:54,885 --> 00:00:59,700 >> [VIDEO PLAYBACK] 20 00:00:59,700 --> 00:01:02,490 -Triumf matemaatiliste ja mehaaniliste oskus on see 21 00:01:02,490 --> 00:01:06,340 suur uus automaatne kalkulaator Harvardi ülikoolis. 22 00:01:06,340 --> 00:01:08,620 Keerukad probleemid matemaatikas, läbib 23 00:01:08,620 --> 00:01:12,420 masin kodeeritult lindile, on täpselt lahendatud 24 00:01:12,420 --> 00:01:15,200 minut murdosa aega, mis kulub inimeste 25 00:01:15,200 --> 00:01:16,450 arvutamisel. 26 00:01:27,050 --> 00:01:30,600 Mõeldud kiirendada igasuguse matemaatilised ja teaduslikud 27 00:01:30,600 --> 00:01:34,610 teadusuuringute, hiiglane mehaaniline aju töötab Ameerika 28 00:01:34,610 --> 00:01:36,570 Ühendriikide mereväe kuni sõja lõppu. 29 00:01:50,280 --> 00:01:52,980 >> DAVID Malan: Mida sa ei pruugi teada, et see oli 30 00:01:52,980 --> 00:01:56,310 see sama seade, mis perspektiivis me kõik nüüd võtta päris palju 31 00:01:56,310 --> 00:01:59,300 enesestmõistetavaks võeti kasutusele, et on bug. 32 00:01:59,300 --> 00:02:01,140 Nii et üks insenerid töötavad selles arvutis 33 00:02:01,140 --> 00:02:05,280 sõna otseses mõttes leiti väike koiliblikas masin, mille tulemusena 34 00:02:05,280 --> 00:02:07,580 mõnel vigased arvutused. 35 00:02:07,580 --> 00:02:10,410 Ja kui räägitakse, et koi oli teibitud see samamoodi 36 00:02:10,410 --> 00:02:14,180 Ajakirja siin, tagasi 9. september 1940-midagi, 37 00:02:14,180 --> 00:02:16,550 ja seega sündis maailma mõiste "bug". 38 00:02:16,550 --> 00:02:19,880 Nii et nüüdsest me peame vigu olla mingit vigu 39 00:02:19,880 --> 00:02:23,290 programme, kas inimtegevuse või, käesoleval juhul, putukad. 40 00:02:23,290 --> 00:02:25,030 >> Nii vähe teateid, kui astume. 41 00:02:25,030 --> 00:02:29,160 Nii CS50 on traditsioon pakkuda lõunaks kehvasti kohta 42 00:02:29,160 --> 00:02:31,600 kõige reedeti poolaastal, kus me võtame 30 43 00:02:31,600 --> 00:02:34,650 40 õpilast kuni Tule ja Jää in the Square'i igapäevaseks 44 00:02:34,650 --> 00:02:36,390 lobast, räägime infotehnoloogia, 45 00:02:36,390 --> 00:02:37,420 rääkida tulevikust. 46 00:02:37,420 --> 00:02:40,000 Kutsume vilistlased ja sõbrad tööstuse vestelda üles 47 00:02:40,000 --> 00:02:40,690 õpilased samuti. 48 00:02:40,690 --> 00:02:44,020 Tõesti suunas lõpuni teha mis on üsna suur klass 49 00:02:44,020 --> 00:02:46,740 kõik intiimsem, vähemalt üks kord samal ajal 50 00:02:46,740 --> 00:02:47,710 alamhulgad õpilased. 51 00:02:47,710 --> 00:02:50,940 Nii et kui soovite meiega liituda sellel reedel, 01:15, minge 52 00:02:50,940 --> 00:02:53,340 CS50.net/lunch et RSVP. 53 00:02:53,340 --> 00:02:55,840 Ja me teeme seda kordumatult, et ärge muretsege, kui te ei ole 54 00:02:55,840 --> 00:02:57,930 esimeste seas 30 või nii sel nädalal. 55 00:02:57,930 --> 00:02:59,070 >> Nii kirjutaja märkmed. 56 00:02:59,070 --> 00:03:01,500 Sõna vahendid, mis nüüd alustada on saadaval 57 00:03:01,500 --> 00:03:03,040 et õpilased klassis. 58 00:03:03,040 --> 00:03:05,540 Nii et teie juhid ei pea olema alla ajal loenguid 59 00:03:05,540 --> 00:03:08,560 Kirjoittelu alla kõik, mida ma öelda ja nii edasi, mida me teeme 60 00:03:08,560 --> 00:03:10,765 asemel on pakkuda alates õppejõudude 61 00:03:10,765 --> 00:03:11,920 kanooniline hulk märkmeid. 62 00:03:11,920 --> 00:03:14,850 Nii et meil on üks meie õpetamise stipendiaatide Andrew Sellergren, 63 00:03:14,850 --> 00:03:17,830 kes istub igal nädalal ülevaate videod ja seejärel 64 00:03:17,830 --> 00:03:19,730 kirjutab ette, mida me arvame on üsna 65 00:03:19,730 --> 00:03:21,840 autoriteetne komplekt märkmeid. 66 00:03:21,840 --> 00:03:24,180 Ja Andrew kiindunud, ka, pannes snarky joonealustes märkustes 67 00:03:24,180 --> 00:03:24,820 põhja. 68 00:03:24,820 --> 00:03:27,300 Nii et sa loodetavasti nautida neid nagu teatmeteos 69 00:03:27,300 --> 00:03:30,230 lõbus, ja ka, tule Viktoriin aega, kui võimalust vaadata 70 00:03:30,230 --> 00:03:31,830 mis juhtus üksikute loenguid. 71 00:03:31,830 --> 00:03:33,580 Nii et need on seotud loengutel lehel. 72 00:03:33,580 --> 00:03:35,300 >> Ülesanded 0, vahepeal on läbi. 73 00:03:35,300 --> 00:03:37,470 Ja nii vahendeid te - 74 00:03:37,470 --> 00:03:38,020 läbikäiguks. 75 00:03:38,020 --> 00:03:39,730 Milo juhtis esimest reedel. 76 00:03:39,730 --> 00:03:41,470 See oli filmitud, pane Internetis laupäeval. 77 00:03:41,470 --> 00:03:44,030 Ja nii aru, kui sa ei ole päris kindel, kust alustada, 78 00:03:44,030 --> 00:03:47,280 selle või tulevikus p-komplektid, alati pöörduda esmalt 79 00:03:47,280 --> 00:03:49,300 läbikäiguks või video sätestatut. 80 00:03:49,300 --> 00:03:52,950 Liigendamine on pooleli; kell cs50.net/section on koht, kus te 81 00:03:52,950 --> 00:03:54,540 peaks esitama oma eelistused, kui te pole 82 00:03:54,540 --> 00:03:55,880 juba tänaseks. 83 00:03:55,880 --> 00:03:58,140 Kuna lõigud algab sel pühapäeval, esmaspäeval, 84 00:03:58,140 --> 00:03:58,760 ja teisipäeval. 85 00:03:58,760 --> 00:04:02,470 Teeme lõigud need kolm päeva, iga nädal 86 00:04:02,470 --> 00:04:03,870 semestri enamasti. 87 00:04:03,870 --> 00:04:06,600 Ja meil on ka tutvustada jällegi eri lugusid. 88 00:04:06,600 --> 00:04:08,270 Nii küsitakse teilt selle osadeks vorm, kui te 89 00:04:08,270 --> 00:04:10,350 ei ole näinud seda juba, kui sa oled nende hulgas vähem 90 00:04:10,350 --> 00:04:12,800 mugav, mugavam, või kusagil vahepeal. 91 00:04:12,800 --> 00:04:14,960 Ja kui sa oled omamoodi tara, tavaliselt kusagil 92 00:04:14,960 --> 00:04:18,160 vahel on see, mida enamik õpilasi lõpuks kontrollida. 93 00:04:18,160 --> 00:04:19,579 Tööaeg algab täna. 94 00:04:19,579 --> 00:04:23,020 >> Nii Scratch on suhteliselt väike võti, kuigi see on täiesti loomulik 95 00:04:23,020 --> 00:04:25,300 joosta erinevaid putukaid või olla kindel, kuidas 96 00:04:25,300 --> 00:04:26,550 rakendada midagi. 97 00:04:26,550 --> 00:04:28,880 Nii mõistame, et hakkame tööaega sel nädalal. 98 00:04:28,880 --> 00:04:30,500 Nad olla Annenberg Esmaspäev, teisipäev, kolmapäev, 99 00:04:30,500 --> 00:04:34,300 Neljapäev, 20:00-23:00 ajal aju pausi. 100 00:04:34,300 --> 00:04:38,160 Ülemine classmen võite, ja kui sa kunagi tekib probleeme, 101 00:04:38,160 --> 00:04:40,720 uksest sisse, kuna nad saate swiping, lihtsalt rääkida oma tee 102 00:04:40,720 --> 00:04:42,560 aastal ning selgitab oled koos CS50. 103 00:04:42,560 --> 00:04:45,230 Tavaliselt 20 kuni 30 meid töötajad on seal, et aidata 104 00:04:45,230 --> 00:04:46,190 sa üks ühele. 105 00:04:46,190 --> 00:04:48,980 >> Saabumisel idee on selline: saate tuua oma sülearvuti, 106 00:04:48,980 --> 00:04:51,300 sa pead oma laadija, me peame ekstra juhtmed, 107 00:04:51,300 --> 00:04:53,320 eriti mööda lõunamüüri Annenberg kus 108 00:04:53,320 --> 00:04:55,080 seal on palju elektrikontakte. 109 00:04:55,080 --> 00:04:59,290 Ja peamine lähtepunkt, et tööaega Q & A on minna 110 00:04:59,290 --> 00:05:01,690 cs50.net/discuss ja postitada 111 00:05:01,690 --> 00:05:02,580 oma küsimusele. 112 00:05:02,580 --> 00:05:05,600 Ja märgistada see pset 0 või pset 1, olenemata nädal 113 00:05:05,600 --> 00:05:06,810 Võib juhtuda, et olla. 114 00:05:06,810 --> 00:05:09,240 Ja siis me teeme on olnud tabelis õpetamise stipendiaatide 115 00:05:09,240 --> 00:05:12,040 ja muidugi assistendid, tavaliselt 8 või 10 või nii meist, 116 00:05:12,040 --> 00:05:14,430 läbimas, hoides tähelepanelikult laual, ja 117 00:05:14,430 --> 00:05:16,810 kitkumise maha küsimused tõesti nii kiiresti kui saame, 118 00:05:16,810 --> 00:05:19,600 viidates teil seotud ametikohta, kui te ei leidnud neid 119 00:05:19,600 --> 00:05:22,220 endid, online viited vastavalt vajadusele. 120 00:05:22,220 --> 00:05:24,280 Ja siis kui on probleeme, sest paratamatult 121 00:05:24,280 --> 00:05:27,190 on, või ta lihtsalt mõttekam istuda üks ühele, 122 00:05:27,190 --> 00:05:28,660 töö kaudu probleeme kellegagi. 123 00:05:28,660 --> 00:05:30,810 >> Või sa lihtsalt sattuda tööaega tõesti 124 00:05:30,810 --> 00:05:31,640 vajavad, et mõtteviisi. 125 00:05:31,640 --> 00:05:33,400 Sa ei taha minna läbi elektroonilisel kujul, siis 126 00:05:33,400 --> 00:05:34,410 tõesti tahan kohtuda kellegagi. 127 00:05:34,410 --> 00:05:37,240 Suhelda, et meile, ja mis juhtub, kui teie 128 00:05:37,240 --> 00:05:40,620 küsimus on nähtud töötaja ning me 129 00:05:40,620 --> 00:05:43,660 kindlaks, yup, see tuleb saata üks 20 või 130 00:05:43,660 --> 00:05:47,800 30 meeskonna liikmed siin kohapeal, näed ülemises vasakus see 131 00:05:47,800 --> 00:05:51,590 vähe Sisesta järjekorda nupp hakkab vilkuma cs50.net / 132 00:05:51,590 --> 00:05:52,165 arutada. 133 00:05:52,165 --> 00:05:55,260 Ja see ütleb teile, et teil nüüd on kutsutud, nii 134 00:05:55,260 --> 00:05:56,880 rääkida, et siseneda järjekorda. 135 00:05:56,880 --> 00:05:59,090 Ja kui klõpsate seda nuppu, oma nimi siis ilmuvad 136 00:05:59,090 --> 00:06:02,660 iPad et CS50 tervitaja, üks kursus peadesse, tahe 137 00:06:02,660 --> 00:06:05,250 korralda sissepääsu lähedal Annenberg, kes siis 138 00:06:05,250 --> 00:06:08,630 vaata, mida on kujutatud siin, üliõpilased, kes on küsimustele 139 00:06:08,630 --> 00:06:11,630 Vasakul töötajad, kes viibivad õigus. 140 00:06:11,630 --> 00:06:14,830 Ja klõps vasakule ja paremale, oma veebibrauser 141 00:06:14,830 --> 00:06:18,610 hakkavad vilkuma kohe, kui näiteks professor McGonnagal 142 00:06:18,610 --> 00:06:21,460 on valmis näinud sind eriti tabeli Annenberg. 143 00:06:21,460 --> 00:06:23,340 >> Nii tegime natuke seda eelmisel aastal. 144 00:06:23,340 --> 00:06:25,430 Oleme rebooted tööaega ja 145 00:06:25,430 --> 00:06:26,980 uuesti ellu palju tarkvara. 146 00:06:26,980 --> 00:06:29,940 Nii mõistavad, et see on soojendada sel nädalal. 147 00:06:29,940 --> 00:06:32,970 Aga ka aru ka varasematel aastatel, nagu te olete kuulnud 148 00:06:32,970 --> 00:06:35,710 sõpradelt, tööajal oli tõepoolest 50 149 00:06:35,710 --> 00:06:37,040 150 õpilast korraga. 150 00:06:37,040 --> 00:06:39,300 Ja see lihtsalt ei ole meil võimalik hakkama 151 00:06:39,300 --> 00:06:42,060 tõhusalt, üks ühele, kogu õhtu. 152 00:06:42,060 --> 00:06:44,570 Ja mis me tõesti püüame teha see aasta on 153 00:06:44,570 --> 00:06:46,590 ära asjaolu, et palju küsimusi on 154 00:06:46,590 --> 00:06:49,050 korduma kippuvad ja võib sageli paremini vastata 155 00:06:49,050 --> 00:06:50,030 asünkroonselt. 156 00:06:50,030 --> 00:06:52,140 Nii saab omamoodi mõelda läbi personali vastus, 157 00:06:52,140 --> 00:06:54,360 ja me ei mõtle läbi oma kood, ilma soojendusega 158 00:06:54,360 --> 00:06:57,050 rõhu tingimata hädas 159 00:06:57,050 --> 00:06:58,210 läbi kõrvuti. 160 00:06:58,210 --> 00:07:00,980 Nii et meie hinnangul umbes kolmandiku või poole küsimused 161 00:07:00,980 --> 00:07:03,500 siis saadetakse inimene, ja me proovime ära kiskuda maha nii 162 00:07:03,500 --> 00:07:05,530 palju kui pool või enam elektrooniliselt, 163 00:07:05,530 --> 00:07:06,710 tööajal. 164 00:07:06,710 --> 00:07:08,070 Ja me jätkuvalt kasutada Arutage 165 00:07:08,070 --> 00:07:09,990 kogu nädala samuti. 166 00:07:09,990 --> 00:07:12,680 >> Ja lõpuks, aru, et see muidugi võib võtta katse läbimise / mitteläbimise. 167 00:07:12,680 --> 00:07:16,230 Nii et kui te olete tara või lihtsalt arvan, et sa oled tõesti 168 00:07:16,230 --> 00:07:18,650 ei tea kas see on maailma teid, või see on tõesti 169 00:07:18,650 --> 00:07:21,310 üsna võõras sa, aru, et see on suurepärane võimalus 170 00:07:21,310 --> 00:07:24,840 omandada mõned usaldust, kellega astuda 171 00:07:24,840 --> 00:07:26,780 klass, nagu ma tegin ausalt öeldes aastat tagasi. 172 00:07:26,780 --> 00:07:28,630 Ja siis on viis nädalat omamoodi näitaja läbi 173 00:07:28,630 --> 00:07:30,850 ise, kui soovite jääda katse läbimise / mitteläbimise, minna kirja 174 00:07:30,850 --> 00:07:31,800 klass, või nagu. 175 00:07:31,800 --> 00:07:34,050 Ja tavaliselt see, mis katse läbimise / mitteläbimise ei, ma arvan, õpilastele on 176 00:07:34,050 --> 00:07:36,700 et kui paned, et 10 tundi, 20 tundi, mis iganes see 177 00:07:36,700 --> 00:07:38,830 võivad olla mõned probleemid, ja sa peksma oma pead 178 00:07:38,830 --> 00:07:39,690 vastu seina, 179 00:07:39,690 --> 00:07:41,750 ja sa tõesti lihtsalt ei saa jälitama midagi maha, ja te 180 00:07:41,750 --> 00:07:44,230 on nii palju muid asju, mida pead tegema, ausalt, mida ma 181 00:07:44,230 --> 00:07:46,070 arvan, katse läbimise / mitteläbimise on, see võtab pinged maha ja 182 00:07:46,070 --> 00:07:47,250 olukordi niimoodi. 183 00:07:47,250 --> 00:07:49,350 Kui olete võtnud asi 90% teed. 184 00:07:49,350 --> 00:07:50,830 Tead, see pole päris täiuslik. 185 00:07:50,830 --> 00:07:52,950 Aga sul on palju sellest välja, siiski. 186 00:07:52,950 --> 00:07:55,440 Nii leiavad katse läbimise / mitteläbimise annab sulle, et 187 00:07:55,440 --> 00:07:57,590 vaimne mudel, võibolla. 188 00:07:57,590 --> 00:08:00,680 >> Olgu, nii eelmisel nädalal me tuvi arvesse Scratch, ja me 189 00:08:00,680 --> 00:08:03,610 rääkis saateid üsna kõrge graafilise tasandil. 190 00:08:03,610 --> 00:08:05,340 Ja täna me teeme ülemineku keel 191 00:08:05,340 --> 00:08:08,300 nimetatakse C madalam programmeerimiskeelt peal 192 00:08:08,300 --> 00:08:11,260 mis paljude kaasaegsete keelte nüüd ehitatud, sh mõned 193 00:08:11,260 --> 00:08:13,010 neid, siis me kasutame poole semestri lõpus. 194 00:08:13,010 --> 00:08:15,530 Ja süntaktiliselt, millised nad välja näevad 195 00:08:15,530 --> 00:08:17,330 on kõik üsna sarnased. 196 00:08:17,330 --> 00:08:19,080 Nii alustame et muuta see üleminek siin. 197 00:08:19,080 --> 00:08:21,730 Nii et see oli programm eelmisel nädalal, et oli lihtsam 198 00:08:21,730 --> 00:08:22,910 tere programmid. 199 00:08:22,910 --> 00:08:25,560 See lihtsalt trükkida ekraanil tere maailmas, 200 00:08:25,560 --> 00:08:27,650 väike kõne mull tulevad välja kass. 201 00:08:27,650 --> 00:08:30,590 Noh, kui me hakkame nüüd tõlkida see teisele 202 00:08:30,590 --> 00:08:33,419 keel, aru, et ideede täna ja kolmapäeval 203 00:08:33,419 --> 00:08:36,450 on identsed, kuid süntaks hakkab muutuma. 204 00:08:36,450 --> 00:08:39,370 Nii et arvestades, et eelmisel nädalal oli meil, kui roheline lipp klõpsatud, ütleme 205 00:08:39,370 --> 00:08:40,340 tere. 206 00:08:40,340 --> 00:08:43,870 Täna me ei kavatse on int, peamine, tühine printf, 207 00:08:43,870 --> 00:08:46,350 Vastutasuks mõne muu süntaksi seal hästi. 208 00:08:46,350 --> 00:08:49,200 Looksulg ja sulud ja jutumärgid, ja tühi-tähi. 209 00:08:49,200 --> 00:08:54,520 Aga mõistan, et tuum idee siin on trükkimine, 210 00:08:54,520 --> 00:08:58,470 ja lõpuks, et peamine on nüüd olla 211 00:08:58,470 --> 00:09:00,770 sünonüüm algab programmi. 212 00:09:00,770 --> 00:09:04,250 Peamised saab olema kus roheline lipp peksab asjad ära. 213 00:09:04,250 --> 00:09:06,390 >> Nii et nüüd lähme tease peale mõned ehitusplokkide siin 214 00:09:06,390 --> 00:09:08,650 Enne kui me sukelduda mõned konkreetsed näited. 215 00:09:08,650 --> 00:09:11,620 Nii me kutsusime seda avaldust eelmisel nädalal, milles ta on lihtsalt 216 00:09:11,620 --> 00:09:12,470 juhendamine. 217 00:09:12,470 --> 00:09:15,660 Kas see - sel juhul öelda tere. 218 00:09:15,660 --> 00:09:18,400 Noh C, kui me vaatame lihtsalt, et liin on see, kuidas me oleme 219 00:09:18,400 --> 00:09:20,920 hakkan väljendades, et eelkõige pusletükk: 220 00:09:20,920 --> 00:09:24,780 printf ("Hello World");. 221 00:09:24,780 --> 00:09:27,330 Ja nüüd me tease nende peale rohkem ja rohkem aja jooksul, 222 00:09:27,330 --> 00:09:29,330 aga aru, et seal on muster siin. 223 00:09:29,330 --> 00:09:31,870 Nii et üks, meil on see asi, mida nimetatakse printf, mis on 224 00:09:31,870 --> 00:09:34,310 sisuliselt analoogne sõna öelda. 225 00:09:34,310 --> 00:09:35,800 Just see tegema hakkab. 226 00:09:35,800 --> 00:09:37,870 Printf ja f tähendab siin "vormindatud". 227 00:09:37,870 --> 00:09:39,270 Nii see lihtsalt tähendab, et saate sisestada 228 00:09:39,270 --> 00:09:41,600 erinevate esteetiliste detailide. 229 00:09:41,600 --> 00:09:43,770 Nii viitega Tsitaat lõppeb on algus, mida me ei kavatse 230 00:09:43,770 --> 00:09:45,340 kutsuma hakata string. 231 00:09:45,340 --> 00:09:47,110 Sõna, fraas, lause. 232 00:09:47,110 --> 00:09:50,220 Stringi programmeerimiskeelt on jada nullist 233 00:09:50,220 --> 00:09:51,330 või enam märki. 234 00:09:51,330 --> 00:09:54,390 Nii et h-e-l-l-o, koma jne on 235 00:09:54,390 --> 00:09:56,290 Tsiteeri Tsitaat lõppeb, on string. 236 00:09:56,290 --> 00:09:58,710 Ja nüüd längkriips n, vähe süntaktiliselt veider, kuid me 237 00:09:58,710 --> 00:10:01,780 juba määratletud, et eelmisel nädalal nii mis? 238 00:10:01,780 --> 00:10:02,630 See on lihtsalt uus liin. 239 00:10:02,630 --> 00:10:05,000 See on lihtsalt viis edasitoimetamiseks arvuti soovite 240 00:10:05,000 --> 00:10:07,700 samaväärne lööb Sisesta olemas, kuid sa ei 241 00:10:07,700 --> 00:10:10,460 taha tegelikult Enter ja seega segi ajama kõik 242 00:10:10,460 --> 00:10:12,130 vormingu oma tegelikku programmi. 243 00:10:12,130 --> 00:10:15,500 Nüüd sulgudes lisama selle stringi, avatud paren ja 244 00:10:15,500 --> 00:10:18,130 Sulge paren, ja sees, mis on meie string. 245 00:10:18,130 --> 00:10:22,600 Sest see on, sest C ja muude programmitöö 246 00:10:22,600 --> 00:10:27,510 keeles, asjad printf võtta argumendid, või võtta 247 00:10:27,510 --> 00:10:28,420 parameetrid. 248 00:10:28,420 --> 00:10:31,490 >> Nii et mõelda nüüd selle lilla Ütle blokeerida 249 00:10:31,490 --> 00:10:34,890 funktsioon, kui meetodit, kui menetlus. 250 00:10:34,890 --> 00:10:36,890 Te võite tõesti kutsuvad seda, mida tahad nüüd, aga 251 00:10:36,890 --> 00:10:39,260 See on omamoodi miniatuurne programm, mis ainult ei üks 252 00:10:39,260 --> 00:10:41,480 asi, mis ühele reale, mitte vähem. 253 00:10:41,480 --> 00:10:43,620 Nii printf on ka see, mida me kavatseme alustada kutsudes 254 00:10:43,620 --> 00:10:46,680 funktsioon ja funktsioonid midagi teha - antud juhul 255 00:10:46,680 --> 00:10:49,320 prindib vormindatud stringi ekraan - 256 00:10:49,320 --> 00:10:53,220 kuid funktsioonid võtta ka argumente või parameetrid. 257 00:10:53,220 --> 00:10:55,880 Ja argumente või parameetreid, tänan teid, mean 258 00:10:55,880 --> 00:11:01,220 et nende käitumine võib mõjutada mida sa läbima 259 00:11:01,220 --> 00:11:03,420 sees sulgudes. 260 00:11:03,420 --> 00:11:06,460 Nii et sel juhul printf vajadustele tuleks öelda, et printida, ja me 261 00:11:06,460 --> 00:11:09,520 lihtsalt läbida, jutumärgid siin, string, mis me 262 00:11:09,520 --> 00:11:11,270 tegelikult soovite printida. 263 00:11:11,270 --> 00:11:14,060 Ja semikooloniga päris lõpus see liin on lihtsalt 264 00:11:14,060 --> 00:11:18,020 ajalooline ebameeldivalt mille lõpus kõige rida koodi, 265 00:11:18,020 --> 00:11:21,170 paned semikooloniga teha super selge, et arvuti 266 00:11:21,170 --> 00:11:23,020 et see koodirida lõpeb siin. 267 00:11:23,020 --> 00:11:25,600 Nüüd on see hea, sest nagu me näeme nagu programmid rohkem 268 00:11:25,600 --> 00:11:29,030 keeruline, semikoolon teeb super selge, et meie inimesed, 269 00:11:29,030 --> 00:11:32,280 ja ka arvuti, kus rida koodi algus ja lõpp. 270 00:11:32,280 --> 00:11:34,360 Mõistame, et mõned keeled ei ole mõned 271 00:11:34,360 --> 00:11:35,045 Nende samade täpsustusi. 272 00:11:35,045 --> 00:11:37,870 Ja tegelikult, JavaScript, sa ei vaja alati midagi 273 00:11:37,870 --> 00:11:38,670 nagu semikooloniga. 274 00:11:38,670 --> 00:11:40,210 Aga rohkem sellest tulla. 275 00:11:40,210 --> 00:11:41,170 >> Nii et silmad. 276 00:11:41,170 --> 00:11:43,520 Meil oli midagi sellist, väga intuitiivselt, selge, kas 277 00:11:43,520 --> 00:11:44,860 midagi uuesti ja uuesti ja uuesti. 278 00:11:44,860 --> 00:11:47,720 Nagu hakanud sokid, või öelda tere, antud juhul. 279 00:11:47,720 --> 00:11:51,090 Noh, alates tänasest C, võiksime väljendada seda Scratch 280 00:11:51,090 --> 00:11:54,970 blokeerida kui while (true) printf ("Hello World"). 281 00:11:54,970 --> 00:11:57,630 Nii märkate me hakkame ehitama sõna otseses mõttes puzzle 282 00:11:57,630 --> 00:11:58,480 tüki enne. 283 00:11:58,480 --> 00:12:01,310 Meil on sama lilla blokaad, aga see on sees see 284 00:12:01,310 --> 00:12:04,880 sulgudes Forever blokaad, ja parim viis tõlkida, et 285 00:12:04,880 --> 00:12:06,480 kuni C on järgmine. 286 00:12:06,480 --> 00:12:08,130 Pole Forever märksõna. 287 00:12:08,130 --> 00:12:10,940 Sa ei saa lihtsalt kirjutada f-o-r-e-vs-e-r C. 288 00:12:10,940 --> 00:12:13,440 Nii lähim analoog on samas. 289 00:12:13,440 --> 00:12:17,050 >> Nüüd, while (true) tundub veidi rumal, sest ei väärtus 290 00:12:17,050 --> 00:12:18,700 Tõelise kunagi muuta? 291 00:12:18,700 --> 00:12:19,810 Arvatavasti mitte. 292 00:12:19,810 --> 00:12:22,770 See on nagu öelda, samas kui üks, samas, kui tõsi. 293 00:12:22,770 --> 00:12:25,430 See kõik on sama asi, tõsi on see alati nii. 294 00:12:25,430 --> 00:12:29,860 Nii et see silmus tegelikult sundida millist ahela? 295 00:12:29,860 --> 00:12:31,210 Lihtsalt lõputu silmuse, eks. 296 00:12:31,210 --> 00:12:32,930 Forever kliendiliinile või kui me kutsusime eelmisel nädalal, 297 00:12:32,930 --> 00:12:33,870 lihtsalt lõputu silmuse. 298 00:12:33,870 --> 00:12:35,250 Nii et mõnikord see on halb. 299 00:12:35,250 --> 00:12:37,060 Mõnikord see viga, mõnikord sellepärast saad 300 00:12:37,060 --> 00:12:39,340 ketrus rannas palli või liivakell vms. 301 00:12:39,340 --> 00:12:41,260 Aga sel juhul, me teadlikult mingil 302 00:12:41,260 --> 00:12:43,040 Seepärast tahtsin printida sama asja uuesti 303 00:12:43,040 --> 00:12:43,970 ja uuesti ja uuesti. 304 00:12:43,970 --> 00:12:45,900 Või puhul meeldib vaadata, mida sa teha tahad 305 00:12:45,900 --> 00:12:47,470 midagi uuesti ja uuesti ja uuesti. 306 00:12:47,470 --> 00:12:49,070 Nii lõputu ring võiks mõtet. 307 00:12:49,070 --> 00:12:53,560 Ja see, kuidas C võiksime tõlkida igavesti kood. 308 00:12:53,560 --> 00:12:55,570 >> Nii et nüüd see üks on natuke konkreetsem. 309 00:12:55,570 --> 00:12:58,880 Meil oli korrata 10 korda järgmise avalduse. 310 00:12:58,880 --> 00:13:02,490 Nii while (true) ei ole päris tööd seal, sest tõsi on 311 00:13:02,490 --> 00:13:03,590 alati tõsi. 312 00:13:03,590 --> 00:13:07,060 Nii et kui me selle asemel vaatate C versioon, nüüd süntaks muutub 313 00:13:07,060 --> 00:13:08,180 veidi segasena. 314 00:13:08,180 --> 00:13:11,380 Aga olgem ausad, kui hakkate seda näha, see kõik muutub 315 00:13:11,380 --> 00:13:12,600 päris tuttav kiiresti. 316 00:13:12,600 --> 00:13:14,370 Nii et see on, mida nimetatakse jaoks silmus. 317 00:13:14,370 --> 00:13:17,210 Jaoks silmus ei ütle arvuti midagi teha 318 00:13:17,210 --> 00:13:20,710 uuesti ja uuesti ja uuesti niikaua 319 00:13:20,710 --> 00:13:21,850 need asjad on õiged. 320 00:13:21,850 --> 00:13:23,370 Nüüd, mida me mõtleme, et? 321 00:13:23,370 --> 00:13:25,470 Noh, seal on kolm osa jaoks silmus, ja me ei kavatse 322 00:13:25,470 --> 00:13:28,240 tulla tagasi selle konteksti tegeliku 323 00:13:28,240 --> 00:13:29,100 näited hetkel. 324 00:13:29,100 --> 00:13:31,650 Nii et ärge muretsege, kui see ei ole päris imbuma kõik korraga. 325 00:13:31,650 --> 00:13:35,400 Aga int i = 0 on pikk lugu lühike, öeldes mulle 326 00:13:35,400 --> 00:13:38,290 muutuja, mis on tüüpi täisarv, nii et anna mulle number 327 00:13:38,290 --> 00:13:40,890 nimega i ja initsialiseerida see 0-ks. 328 00:13:40,890 --> 00:13:43,460 See on mulle nagu algebraline muutuja x ja 329 00:13:43,460 --> 00:13:44,580 initsialiseerida see 0-ks. 330 00:13:44,580 --> 00:13:46,250 Aga sel juhul me kutsusime seda i. 331 00:13:46,250 --> 00:13:49,120 Siis keskel, see ütleb, et ma alla 10. 332 00:13:49,120 --> 00:13:52,150 See räägib arvuti teha järgmist kraami nii kaua 333 00:13:52,150 --> 00:13:53,770 kui i on väiksem kui 10. 334 00:13:53,770 --> 00:13:55,370 Ja ilmselt hakkab ta vähem kui 10, sest 335 00:13:55,370 --> 00:13:56,550 see algab 0-ga. 336 00:13:56,550 --> 00:13:59,150 Siis lõpuks, saate võib-olla arvan, mida ma + + vahenditega. 337 00:13:59,150 --> 00:14:02,140 See on natuke süntaks see tähendab lihtsalt juurdekasvu i. 338 00:14:02,140 --> 00:14:05,270 Nii et lisada 1 i, uuesti ja uuesti ja uuesti. 339 00:14:05,270 --> 00:14:09,260 >> Ja nii nagu me näeme seda silmus, see süntaks, pigem rakendab 340 00:14:09,260 --> 00:14:12,160 täpselt sama asi, mis ausalt öeldes Scratch oli lihtsalt nii 341 00:14:12,160 --> 00:14:13,250 palju lihtsam väljendada. 342 00:14:13,250 --> 00:14:15,170 Korrake 10, ja sa oled teinud. 343 00:14:15,170 --> 00:14:17,690 C ja kõige programmeerimiskeeltest, peame olema 344 00:14:17,690 --> 00:14:20,190 veidi rohkem õpetlik arvuti ja tegelikult 345 00:14:20,190 --> 00:14:21,630 määrata midagi sellist. 346 00:14:21,630 --> 00:14:23,730 Aga me tuleme tagasi selle ja teiste süntaks. 347 00:14:23,730 --> 00:14:24,780 >> Aga muutujad? 348 00:14:24,780 --> 00:14:26,940 Scratch meil oli midagi nagu need oranž plokid, 349 00:14:26,940 --> 00:14:28,180 kus ma võiksin kuulutada muutuja. 350 00:14:28,180 --> 00:14:30,000 Olgem meelevaldselt nimetame seda counter. 351 00:14:30,000 --> 00:14:31,880 Olgem initsialiseerida see 0 ja seejärel 352 00:14:31,880 --> 00:14:33,240 olgem igavesti midagi. 353 00:14:33,240 --> 00:14:35,760 Sel juhul Scratch ma räägin counter, nii 354 00:14:35,760 --> 00:14:38,230 kass läheb on vähe kõnemulli et räägib 355 00:14:38,230 --> 00:14:40,010 number, mis on antud muutuja. 356 00:14:40,010 --> 00:14:42,460 Ja siis on meil muutus counter 1. 357 00:14:42,460 --> 00:14:45,760 Nii et see kõik on pakitud sees Forever lukk. 358 00:14:45,760 --> 00:14:48,960 Nii et me juba praegu on ehitusplokkide C 359 00:14:48,960 --> 00:14:50,040 mis tõlkida seda. 360 00:14:50,040 --> 00:14:51,650 >> Üks viis, kuidas me võiks teha on see. 361 00:14:51,650 --> 00:14:53,890 Anna täisarv, nimetame seda counter. 362 00:14:53,890 --> 00:14:55,190 Vorminda see 0 363 00:14:55,190 --> 00:14:56,490 esimeses reas seal. 364 00:14:56,490 --> 00:14:59,390 While (true), nii et ma varastamine et idee üks hetk 365 00:14:59,390 --> 00:15:01,300 tagasi minna ja teha järgmist. 366 00:15:01,300 --> 00:15:04,880 Prindi välja võidelda, ja siis juurdekasvu counter, 367 00:15:04,880 --> 00:15:06,930 uuesti ja uuesti ja uuesti. 368 00:15:06,930 --> 00:15:09,380 Või jälle, + + tähendab lihtsalt lisada 1 midagi. 369 00:15:09,380 --> 00:15:11,030 Aga seal on uus tükk süntaks siin. 370 00:15:11,030 --> 00:15:15,730 Mis hüpped välja ei hulgas meie eelmise näite? 371 00:15:15,730 --> 00:15:17,190 Jah, see% d. 372 00:15:17,190 --> 00:15:19,810 Nii saab ehk järeldada mida see teeb ausalt öeldes põhineb 373 00:15:19,810 --> 00:15:21,410 mida Scratch plokk teeb. 374 00:15:21,410 --> 00:15:24,510 Aga jälle C, me lihtsalt peame olema natuke rohkem konkreetse 375 00:15:24,510 --> 00:15:25,990 kui tegemist on eneseväljendamisel. 376 00:15:25,990 --> 00:15:30,560 >> Nii printf ("% d \ n"). 377 00:15:30,560 --> 00:15:32,320 Noh enamus, et saame visata nagu tuttav. 378 00:15:32,320 --> 00:15:34,910 Hinnapakkumisi tähendab lihtsalt, et see on string, längkriips n 379 00:15:34,910 --> 00:15:35,970 on lihtsalt uus liin. 380 00:15:35,970 --> 00:15:38,860 Nii et ainus uus asi siin on% d. 381 00:15:38,860 --> 00:15:40,390 Ja kõik, mis on on kohatäide. 382 00:15:40,390 --> 00:15:43,510 % D läheb tähistavad kümnendmurruna. 383 00:15:43,510 --> 00:15:47,820 Ja% d abil arvutiga, pane kümnendmurruna siin. 384 00:15:47,820 --> 00:15:49,450 Noh, mis numbrit sa tahad panna sinna? 385 00:15:49,450 --> 00:15:52,400 Noh, kui saad ehk järeldada, pärast koma ütleme 386 00:15:52,400 --> 00:15:55,480 counter, see on nimi muutuja, mida me välja kuulutatud või 387 00:15:55,480 --> 00:15:57,260 loodud paar rida varem. 388 00:15:57,260 --> 00:16:02,420 Nii et see on lihtsalt C on viis ühendades muutuja ümber 389 00:16:02,420 --> 00:16:04,480 string dünaamiliselt. 390 00:16:04,480 --> 00:16:07,350 Sest kui aga olin selle asemel teha midagi 391 00:16:07,350 --> 00:16:12,470 Selle printf ("counter"), milline oleks see 392 00:16:12,470 --> 00:16:15,220 programmi asemel teha, arvatavasti? 393 00:16:15,220 --> 00:16:17,260 Seda saad sõna otseses mõttes print "counter". 394 00:16:17,260 --> 00:16:18,750 Mis ei ole selle kohta, et ma tahan. 395 00:16:18,750 --> 00:16:20,920 Mul on vaja asendada mõnel numbrilist väärtust. 396 00:16:20,920 --> 00:16:24,340 Nii näeme, mis toimib siis, nagu printf, võite võtta ei 397 00:16:24,340 --> 00:16:26,930 alles ühe argumente, nagu 398 00:16:26,930 --> 00:16:28,150 "Hello World". 399 00:16:28,150 --> 00:16:32,050 Nad võivad võtta Tsiteeri Tsitaat lõppeb koma, ja siis mõned muutujad 400 00:16:32,050 --> 00:16:35,830 mis saab ühendatud, nagu me näha eelmise string 401 00:16:35,830 --> 00:16:38,280 kaudu neid% märk kohatäited. 402 00:16:38,280 --> 00:16:39,660 >> Noh kuidas Boole'i ​​väljendeid? 403 00:16:39,660 --> 00:16:42,200 Boole'i ​​väljendeid olid need väärtused, õige või vale. 404 00:16:42,200 --> 00:16:42,830 Jah või ei. 405 00:16:42,830 --> 00:16:44,020 1 või 0. 406 00:16:44,020 --> 00:16:45,190 Sisse või välja. 407 00:16:45,190 --> 00:16:47,570 Nii Scratch nad näevad välja nagu see, ja märgata, et 408 00:16:47,570 --> 00:16:50,170 alumine plokk on siin tegelikult koos 409 00:16:50,170 --> 00:16:51,500 kahe väiksema plokke. 410 00:16:51,500 --> 00:16:53,610 Nii et ma selline venitas ja kukkus kolme puzzle tükki 411 00:16:53,610 --> 00:16:56,450 koos teha, et enam puzzle tükk seal, nii et ma 412 00:16:56,450 --> 00:17:00,420 võiks edasi mõtet, mida ma tahan x peab olema väiksem kui y ja 413 00:17:00,420 --> 00:17:02,540 y on väiksem kui z. 414 00:17:02,540 --> 00:17:05,790 Ja et ma saaks muuta nimetatud kaks eraldi read järgmiselt. 415 00:17:05,790 --> 00:17:08,650 Top üks saab väga triviaalselt tõlkida C, 416 00:17:08,650 --> 00:17:10,069 vaid x 00:17:11,990 Võibolla mõned sulud hea meede. 418 00:17:11,990 --> 00:17:15,520 Ja siis C, siis ärge kirjutage ja tähistamiseks 419 00:17:15,520 --> 00:17:16,819 koosmõjul midagi. 420 00:17:16,819 --> 00:17:19,585 Sa asemel kirjutada &&. 421 00:17:19,585 --> 00:17:22,849 Ja kui me lõpuks näha, ühe ampersand juhtub 422 00:17:22,849 --> 00:17:23,880 tähendab midagi muud. 423 00:17:23,880 --> 00:17:27,530 Nii && lihtsalt tähistab idee JA. 424 00:17:27,530 --> 00:17:30,040 >> Nii et taas, kuigi see hakkab välja nägema üsna keerukas, 425 00:17:30,040 --> 00:17:32,560 üheks eesmärgiks kehtestada Scratch lisaks 426 00:17:32,560 --> 00:17:34,810 lihtsalt võttes omamoodi lõbus-ramp, kus saab teha 427 00:17:34,810 --> 00:17:36,590 midagi, mis on väga graafiline ja animeeritud, ja 428 00:17:36,590 --> 00:17:39,000 jagatavad jms, on ka anda edasi ideed, et 429 00:17:39,000 --> 00:17:42,010 kõik ideed hakkame sukeldudes täna ja edasi 430 00:17:42,010 --> 00:17:44,300 on kehastab isegi nii lihtne 431 00:17:44,300 --> 00:17:46,850 liides alates esimesest päevast. 432 00:17:46,850 --> 00:17:47,790 Aga see siin? 433 00:17:47,790 --> 00:17:48,860 >> Nii tingimustel. 434 00:17:48,860 --> 00:17:50,590 Nii Scratch ploki vasakul seal näeb 435 00:17:50,590 --> 00:17:51,610 veidi keerulisem. 436 00:17:51,610 --> 00:17:52,650 Aga see on vaid mõned lohistamist 437 00:17:52,650 --> 00:17:54,140 täpseks tuttav tükki. 438 00:17:54,140 --> 00:17:56,690 Kui x on väiksem kui y, ütleme nii. 439 00:17:56,690 --> 00:17:59,900 Else if x on suurem kui y, ütleme nii. 440 00:17:59,900 --> 00:18:02,460 Else, saame loogiliselt eeldada, see on järeldada, et 441 00:18:02,460 --> 00:18:03,580 nad peavad olema võrdsed. 442 00:18:03,580 --> 00:18:05,220 Nii et öelda, et nad on võrdsed. 443 00:18:05,220 --> 00:18:07,690 Nüüd C paremal, sama täpne asi. 444 00:18:07,690 --> 00:18:09,730 Ja märkate, et looksulg ei kavatse olla 445 00:18:09,730 --> 00:18:12,190 funktsioon C ja teistesse keeltesse, et teha selline 446 00:18:12,190 --> 00:18:13,210 kapseldus. 447 00:18:13,210 --> 00:18:15,470 Just nagu siis, kui plokk on see kollane asi, mis on omamoodi 448 00:18:15,470 --> 00:18:17,770 haarates lilla ploki sees on. 449 00:18:17,770 --> 00:18:19,480 Samuti on need traksid - 450 00:18:19,480 --> 00:18:20,870 Nende looksulg - 451 00:18:20,870 --> 00:18:24,710 mõeldud võluda, et sama idee omaks ühe või mitme 452 00:18:24,710 --> 00:18:27,680 rida koodi, mis on liigestatud sees neist. 453 00:18:27,680 --> 00:18:31,270 Nii paremal servas siin, kui x vähem kui y, printf 454 00:18:31,270 --> 00:18:32,270 ("X on väiksem kui y"). 455 00:18:32,270 --> 00:18:34,980 Else if x on suurem kui y, välja printida sama. 456 00:18:34,980 --> 00:18:38,360 Else välja printida, et nad on võrdsed. 457 00:18:38,360 --> 00:18:41,750 >> Nii lühike, seal on üsna otsene kaardistamise või tõlge 458 00:18:41,750 --> 00:18:44,720 keele oleme näinud siiani, sh mõned 459 00:18:44,720 --> 00:18:45,940 keerulisemad funktsioonid. 460 00:18:45,940 --> 00:18:48,680 Nii ei pruugi te kasutate seda oma projekti, või ei pruugi 461 00:18:48,680 --> 00:18:51,150 kasutate seda oma projekti sel nädalal. 462 00:18:51,150 --> 00:18:54,650 Aga me oleme neid asju nimetatakse massiivid C. Scratch, 463 00:18:54,650 --> 00:18:55,680 neid nimetatakse nimekirju. 464 00:18:55,680 --> 00:18:59,370 Ja me nägime neid koos Fruitcraft RPG eelmisel nädalal. 465 00:18:59,370 --> 00:19:01,320 Väike sinine poiss, et kõndisin ringi, pealevõtmine 466 00:19:01,320 --> 00:19:03,010 kirsid ja apelsinid jms. 467 00:19:03,010 --> 00:19:05,110 Noh Scratch, mis viidi ellu koos selle oranži 468 00:19:05,110 --> 00:19:09,000 blokk, mis sõnadega; sel juhul me sõna otseses mõttes 469 00:19:09,000 --> 00:19:10,800 lisades "oranž", et 470 00:19:10,800 --> 00:19:12,460 muutuja nimega inventuuri. 471 00:19:12,460 --> 00:19:14,910 Nii C, see süntaks läheb natuke rohkem segasena. 472 00:19:14,910 --> 00:19:17,250 Ja me tuleme selle juurde tagasi järgmisel nädalal ja rohkem 473 00:19:17,250 --> 00:19:21,060 huvitavaid asju maailmas krüptograafia sellega. 474 00:19:21,060 --> 00:19:23,990 Aga allosas siin, need kaks rida sisuliselt 475 00:19:23,990 --> 00:19:27,550 tõlkida, mida teeme ühes Scratch ummistada seal. 476 00:19:27,550 --> 00:19:30,120 Aga rohkem sellest tulla. 477 00:19:30,120 --> 00:19:34,120 >> Nii paneb ta kokku, siin on programmi C. niiet 478 00:19:34,120 --> 00:19:36,590 kiiresti tease peale mõned tükid süntaks siin, kuid 479 00:19:36,590 --> 00:19:40,300 siis olgem tegelikult hakake kirjutama mõned kood, tutvustada 480 00:19:40,300 --> 00:19:42,440 Teile mõned tööriistad me kasutame, ja vaata, kas me 481 00:19:42,440 --> 00:19:45,400 võib põhineda nüüd mõned neist põhiplokke alates 482 00:19:45,400 --> 00:19:49,150 Eelmisel nädalal nüüd süntaktiliselt aastal C. Nii ülaosas siin, see 483 00:19:49,150 --> 00:19:51,380 on ilmselt üks kõige igav programme võid 484 00:19:51,380 --> 00:19:53,130 kirjutada kõige tahes programmeerimiskeeles. 485 00:19:53,130 --> 00:19:55,010 Aga see on omamoodi eriline tähendus, sest see on 486 00:19:55,010 --> 00:19:58,120 kanooniline programmi, mis tahes arvuti teadlane kirjutab kui 487 00:19:58,120 --> 00:19:59,620 õpetamise keegi programmeerimiskeelt - 488 00:19:59,620 --> 00:20:01,230 Tere maailm programm. 489 00:20:01,230 --> 00:20:05,120 >> Nii tipus, me näeme seda mõistet # include 490 00:20:05,120 --> 00:20:08,180 ja siis, angled sulgudes stdio.h. 491 00:20:08,180 --> 00:20:10,580 Me läheme tagasi tulla, aga tõesti, mida see 492 00:20:10,580 --> 00:20:13,770 tähendab, et seal on fail selles maailmas nimetatakse standard 493 00:20:13,770 --> 00:20:17,670 I / O, stdio dot h, ja see on lihtsalt tekstifaili 494 00:20:17,670 --> 00:20:19,240 keegi kirjutas aastat tagasi. 495 00:20:19,240 --> 00:20:22,550 Ja sees, et tekstifail on terve hunnik 496 00:20:22,550 --> 00:20:25,840 funktsioone või meetodeid, või kord, et keegi teine 497 00:20:25,840 --> 00:20:28,970 kirjutas, et oleme saajad, sest me 498 00:20:28,970 --> 00:20:31,420 saab nüüd kasutada selle isiku kood. 499 00:20:31,420 --> 00:20:33,070 Funktsioone ta kirjutas. 500 00:20:33,070 --> 00:20:36,320 Sel juhul printf ei ole midagi, et ma kirjutasin, et see on 501 00:20:36,320 --> 00:20:37,500 ei midagi, mida CS50 kirjutas. 502 00:20:37,500 --> 00:20:40,290 See on midagi, mida keegi kirjutas aastat tagasi ja kasutusele 503 00:20:40,290 --> 00:20:43,450 fail nimega stdio.h ja siis, kui kõrvale panna 504 00:20:43,450 --> 00:20:45,830 teise osa funktsioon teise faili. 505 00:20:45,830 --> 00:20:46,940 Aga me jõuame sinna. 506 00:20:46,940 --> 00:20:50,070 >> Nii # include on lihtsalt meie viis öelda, et 507 00:20:50,070 --> 00:20:53,110 C, anna mulle juurdepääs funktsioone, et keegi teine ​​kirjutas. 508 00:20:53,110 --> 00:20:55,490 Ja sel juhul ma hoolin, sest ma tahan printf. 509 00:20:55,490 --> 00:20:57,530 Nüüd saame int main (void). 510 00:20:57,530 --> 00:21:00,160 Nii et see on üks neid asju, ausalt öeldes, et päeval 0, 511 00:21:00,160 --> 00:21:02,400 päris palju Mul on selline tsoon välja, sest see on lihtsalt 512 00:21:02,400 --> 00:21:03,260 ei ole huvitav 513 00:21:03,260 --> 00:21:04,780 intellektuaalselt, mõned süntaks. 514 00:21:04,780 --> 00:21:07,940 Aga nüüd teame, et funktsioone, mida nimetatakse 515 00:21:07,940 --> 00:21:11,660 menetluste või meetoditega, tavaliselt toodavad veidi raha. 516 00:21:11,660 --> 00:21:12,520 Nad teevad midagi. 517 00:21:12,520 --> 00:21:13,810 Nad tulla vastus. 518 00:21:13,810 --> 00:21:15,020 Nad toodavad toodangut. 519 00:21:15,020 --> 00:21:18,780 Nii int kõrval peamine on lihtsalt meie stenografisti viis öelda 520 00:21:18,780 --> 00:21:21,380 et see funktsioon on see menetlus, on lõpuks läheb 521 00:21:21,380 --> 00:21:22,650 Teile tagasi number. 522 00:21:22,650 --> 00:21:24,370 Ja miks see nii on, me tuleme tagasi. 523 00:21:24,370 --> 00:21:27,810 Peamine on lihtsalt default maailma standard vaikimisi 524 00:21:27,810 --> 00:21:30,990 funktsioon, mis on hakka hukati C programmi kui 525 00:21:30,990 --> 00:21:31,860 käivitamisel. 526 00:21:31,860 --> 00:21:34,160 Tühjus tähendab lihtsalt see asi, peamine, ei võta 527 00:21:34,160 --> 00:21:35,270 argumente, antud juhul. 528 00:21:35,270 --> 00:21:36,400 Nii et ma oleks super selge. 529 00:21:36,400 --> 00:21:38,160 Pole stringid seal, ei ole komasid. 530 00:21:38,160 --> 00:21:40,690 Tühjus tähendab, ühtegi argumenti peamine. 531 00:21:40,690 --> 00:21:44,350 >> Nüüd lõpuks, õnneks kaks viimast rida on tuttav. 532 00:21:44,350 --> 00:21:46,160 Toas looksulg meil printf 533 00:21:46,160 --> 00:21:47,620 ja meil tulu. 534 00:21:47,620 --> 00:21:50,450 Ja tagasipöördumine on omamoodi kahju, et me peame 535 00:21:50,450 --> 00:21:53,510 panin selle siia, sest sel juhul ei tee kõik, et 536 00:21:53,510 --> 00:21:54,600 palju huvi. 537 00:21:54,600 --> 00:21:58,790 Aga arvutiprogramm, kui funktsioon tagastab 0, 538 00:21:58,790 --> 00:22:00,610 see tähendab, et kõik on hästi. 539 00:22:00,610 --> 00:22:01,820 Midagi läks valesti. 540 00:22:01,820 --> 00:22:06,170 Seevastu kui funktsioon tagastab 1, või negatiivne 1, või 541 00:22:06,170 --> 00:22:11,670 negatiivne 1337, või mõned juhuslikud numbrid niimoodi, et 542 00:22:11,670 --> 00:22:14,020 üldjuhul tähendab, et viga tegelikult on toimunud. 543 00:22:14,020 --> 00:22:16,150 Nii et kui sa oled oma Mac või arvutisse, kui olete kunagi näinud 544 00:22:16,150 --> 00:22:18,590 mõned tüütu sõnum, sest arvuti jooksis kokku või 545 00:22:18,590 --> 00:22:20,660 külmutatud, ja seal on segasena veateate, 546 00:22:20,660 --> 00:22:23,320 ja siis mingi kood, nagu süsteemi kood 547 00:22:23,320 --> 00:22:25,110 1,2,3,4, mõned number, 548 00:22:25,110 --> 00:22:29,270 et üldiselt on tarbetu detail öelda 549 00:22:29,270 --> 00:22:32,110 enamik meist inimesi, kuid see, mida mõned funktsioon või mõni 550 00:22:32,110 --> 00:22:34,890 Programm on tegelikult tagastatud, ei ole null. 551 00:22:34,890 --> 00:22:38,540 Ja kasu sellest on, et 0 tähendab kõik nii hästi ja 552 00:22:38,540 --> 00:22:40,470 siis sisuliselt on lõpmatu arv asju, mis 553 00:22:40,470 --> 00:22:41,130 võib minna valesti. 554 00:22:41,130 --> 00:22:44,700 Kumb on, miks nad valisid 0 hea ja nullist väärtust 555 00:22:44,700 --> 00:22:46,450 halb, kui me näeme peagi. 556 00:22:46,450 --> 00:22:47,870 >> Nii lähme edasi ja kirjutan seda. 557 00:22:47,870 --> 00:22:51,610 Nii et meelde tuletada, et ühel päeval ma kasutasin oma Mac avada 558 00:22:51,610 --> 00:22:53,970 terminaliakent, ja siis ma avanud tekst programmi nagu 559 00:22:53,970 --> 00:22:55,900 TextEdit, ja ma hakkasin kirjalikult mingi kood. 560 00:22:55,900 --> 00:22:56,580 Noh see on hea. 561 00:22:56,580 --> 00:22:58,636 Aga oma kogemus saab olema erinev Mac või 562 00:22:58,636 --> 00:23:01,220 edasi Solaris arvuti, Linux arvuti, mida iganes operatsioonisüsteemi 563 00:23:01,220 --> 00:23:02,810 süsteem teil juhtub olema kasutades. 564 00:23:02,810 --> 00:23:04,970 Ja seda muidugi, mida me selle asemel kasutada midagi 565 00:23:04,970 --> 00:23:07,010 nimetatakse CS50 Appliance. 566 00:23:07,010 --> 00:23:10,420 Nii CS50 Appliance on allalaaditav tarkvara 567 00:23:10,420 --> 00:23:13,640 mis võimaldab teil käivitada operatsioonisüsteemi nimega Linux, 568 00:23:13,640 --> 00:23:16,810 spetsiaalselt Fedora Linux, ise Mac või PC. 569 00:23:16,810 --> 00:23:20,810 Ja teete seda allalaadimine midagi, mida nimetatakse hypervisor. 570 00:23:20,810 --> 00:23:23,100 Nii et kõik see tuleb dokumenteerida probleem set 1. 571 00:23:23,100 --> 00:23:25,240 Ja sa juhinduma suunas, mida sa pead alla laadima. 572 00:23:25,240 --> 00:23:27,510 Aga lõpptulemus, kas teil on Mac või PC, on teil 573 00:23:27,510 --> 00:23:29,080 laadida mõned tasuta tarkvara. 574 00:23:29,080 --> 00:23:32,340 Seejärel lae CS50 Appliance, ja sa ütled, et 575 00:23:32,340 --> 00:23:33,960 vaba tarkvara - hypervisor - 576 00:23:33,960 --> 00:23:38,080 joosta CS50 Appliance aken arvutis. 577 00:23:38,080 --> 00:23:39,490 Ja mis juhtub on see. 578 00:23:39,490 --> 00:23:43,660 >> Olen nüüd, märkate siin, mis tundub olevat töölaual 579 00:23:43,660 --> 00:23:44,130 keskkond. 580 00:23:44,130 --> 00:23:46,150 Ja las ma tegelikult kahaneb see ühes aknas. 581 00:23:46,150 --> 00:23:49,640 Nii et see on praegu minu Mac, millel on väike aken siin, ja sees 582 00:23:49,640 --> 00:23:51,300 Selle akna juhtub olema täiesti 583 00:23:51,300 --> 00:23:52,380 erinevate operatsioonisüsteemi. 584 00:23:52,380 --> 00:23:55,250 Tõepoolest seal on see algus menüü siia, meenutab 585 00:23:55,250 --> 00:23:57,990 Windows, mis on terve hunnik alammenüüd, sealhulgas 586 00:23:57,990 --> 00:24:00,720 link CS50 manuaal, Dropbox, jms. 587 00:24:00,720 --> 00:24:03,480 Ja mis selles keskkonnas nüüd on standardne keskkond 588 00:24:03,480 --> 00:24:06,280 et me kõik saab nüüd kasutada nii, et ükskõik, mida teie 589 00:24:06,280 --> 00:24:08,960 arvuti on, mida te olete installitud, milline versioon 590 00:24:08,960 --> 00:24:11,430 Mac OS või Windows näed, me kõik nüüd 591 00:24:11,430 --> 00:24:12,800 samas keskkonnas. 592 00:24:12,800 --> 00:24:15,850 Ja nüüd selles keskkonnas saame alustada kirjalikult mõned koodi. 593 00:24:15,850 --> 00:24:18,480 >> Nii et ma lähen edasi minna ja avada programmi nimega gedit. 594 00:24:18,480 --> 00:24:21,500 See on võrreldav notepad.exe või 595 00:24:21,500 --> 00:24:22,790 TextEdit Mac. 596 00:24:22,790 --> 00:24:25,390 Ja see on lihtsalt super lihtsa teksti redigeerimise programm 597 00:24:25,390 --> 00:24:27,500 mis näeb välja selline esmapilgul. 598 00:24:27,500 --> 00:24:30,640 Nüüd tipus, mul on valge palett, alt ma 599 00:24:30,640 --> 00:24:33,860 on see must aken, mis ütleb jharvard @ aparaat. 600 00:24:33,860 --> 00:24:36,440 Ja ongi, sest kasutaja konto, et me eelnevalt loodud 601 00:24:36,440 --> 00:24:38,430 kõigile nimetatakse John Harvard. 602 00:24:38,430 --> 00:24:41,490 Ta on kaust, kuhu kõik oma failid lähevad, ja 603 00:24:41,490 --> 00:24:43,500 siin on koht, kus saame alustada kirjalikult mõned koodi. 604 00:24:43,500 --> 00:24:45,810 Nii et lubage mul minna siin ja suumida ainult natuke, ja ma olen 605 00:24:45,810 --> 00:24:51,550 teeme # include , int main (void), ja 606 00:24:51,550 --> 00:24:57,470 siis ma teen printf ("Hello World") 607 00:24:57,470 --> 00:24:59,490 ; Return 0. 608 00:24:59,490 --> 00:25:01,400 Nüüd on see kõik üsna must ja valge. 609 00:25:01,400 --> 00:25:03,830 >> Lubage mul minna ja teha üks asi õpetada gedit mida ma 610 00:25:03,830 --> 00:25:04,510 tegelikult teevad. 611 00:25:04,510 --> 00:25:06,140 Lubage mul minna Save As. 612 00:25:06,140 --> 00:25:08,560 Ma lähen valima vasakul pool siin jharvard. 613 00:25:08,560 --> 00:25:11,010 Nii et taas, isegi kui sa ei ole kunagi kasutanud Linuxi enne, ausalt 614 00:25:11,010 --> 00:25:13,680 Nendel päevadel, need kõik on tema valdusse läinud arvesse sisuliselt 615 00:25:13,680 --> 00:25:14,590 sama tüüpi liides - 616 00:25:14,590 --> 00:25:16,030 Mac OS, Windows ja Linux. 617 00:25:16,030 --> 00:25:18,680 Nii valisin jharvard kodukataloogi siin. 618 00:25:18,680 --> 00:25:21,120 Ja ma lähen salvestada see fail hello.c. 619 00:25:21,120 --> 00:25:24,260 Nii ülaservas, ma kirjutada hello.c; nimetades C 620 00:25:24,260 --> 00:25:26,520 programmi. c pikendamine on 621 00:25:26,520 --> 00:25:27,570 Mis on ühist tava. 622 00:25:27,570 --> 00:25:28,650 Ja ma vajuta Save. 623 00:25:28,650 --> 00:25:32,510 Ja nüüd, mida on tore, et ma olen tegelikult õpetatakse gedit, 624 00:25:32,510 --> 00:25:33,690 et see on C programm. 625 00:25:33,690 --> 00:25:36,470 Pange tähele, et mu must ja valge tekst on nüüd värv kodeeritud, või 626 00:25:36,470 --> 00:25:39,330 süntaksi esile tõstetud, mis lihtsalt tõmbab mu tähelepanu 627 00:25:39,330 --> 00:25:41,540 semantiline programmi osi. 628 00:25:41,540 --> 00:25:44,260 Ülaosas vasakul seal, kui minu programmid saada keerulisem, ma olen 629 00:25:44,260 --> 00:25:47,060 läheb on kokkuvõttes kõik asjad, mida ma olen kirjutanud. 630 00:25:47,060 --> 00:25:48,050 Nii et see seal üleval. 631 00:25:48,050 --> 00:25:52,350 Nii et lubage mul nüüd välja suumida ja minna seda terminaliakent. 632 00:25:52,350 --> 00:25:54,570 >> Nii et see on võib-olla uue paljudele inimestele. 633 00:25:54,570 --> 00:25:57,260 Kui olete kunagi kasutanud käsurea keskkond, olete kunagi 634 00:25:57,260 --> 00:26:00,020 kasutatakse DOS, või olete kunagi kasutanud Linuxi või olete kunagi avada 635 00:26:00,020 --> 00:26:02,550 Mac OS terminaliakent, seal on palju asju, mida 636 00:26:02,550 --> 00:26:04,820 võiks teha GUI, nagu osutab, ja klõpsates, ja 637 00:26:04,820 --> 00:26:07,080 lohistades ja kukutades, jms, kuid üldiselt - 638 00:26:07,080 --> 00:26:09,360 kindlasti maailma infotehnoloogia - 639 00:26:09,360 --> 00:26:11,580 kasutades käsurida, kus sa ei pea hiirt 640 00:26:11,580 --> 00:26:14,220 üldiselt, sul on ainult klaviatuuri, on tegelikult palju 641 00:26:14,220 --> 00:26:17,260 võimsam kui liides, et saad harjutada 642 00:26:17,260 --> 00:26:18,580 erinevaid käske. 643 00:26:18,580 --> 00:26:20,940 Ja sa omamoodi tasuta ennast oleks vaja punkti ja klõpsa 644 00:26:20,940 --> 00:26:21,690 kõike. 645 00:26:21,690 --> 00:26:23,890 Nii gedit me omamoodi on parim nii maailmad. 646 00:26:23,890 --> 00:26:25,600 Me ei saa lohistada teksti, me näeme seda 647 00:26:25,600 --> 00:26:26,840 kena ja värv kodeeritud. 648 00:26:26,840 --> 00:26:29,630 Aga kui on aeg näidata meie programmi, siis me mõnikord 649 00:26:29,630 --> 00:26:31,750 lihtsalt kasutada seda väikest akent siin. 650 00:26:31,750 --> 00:26:33,460 >> Nii et ma lähen edasi minna ja seda teha. 651 00:26:33,460 --> 00:26:36,420 Põhjas must ja valge aken, ma lähen edasi minna 652 00:26:36,420 --> 00:26:37,890 ja kirjutada rõkkama. 653 00:26:37,890 --> 00:26:40,130 Ja rõkkama on nimi kompilaator. 654 00:26:40,130 --> 00:26:43,310 See on programm, mis teisendab minu lähtekoodi 655 00:26:43,310 --> 00:26:48,770 arvesse, nii, objekti kood. 656 00:26:48,770 --> 00:26:51,270 0. ja 1s, et me nägime lühidalt eelmisel nädalal. 657 00:26:51,270 --> 00:26:53,700 Meenuta eelmisel nädalal, me lubasime, et me ei kavatse 658 00:26:53,700 --> 00:26:55,920 minna midagi sellist - meil oli vaja olla 659 00:26:55,920 --> 00:26:57,010 midagi sellist - 660 00:26:57,010 --> 00:26:58,700 ja see ei ole kindlasti midagi, et inimene läheb 661 00:26:58,700 --> 00:26:59,690 teha käsitsi. 662 00:26:59,690 --> 00:27:01,980 Nii et selle asemel me ei kavatse kasutada programmi, ja et programmi 663 00:27:01,980 --> 00:27:03,430 Sel juhul nimetatakse rõkkama. 664 00:27:03,430 --> 00:27:06,020 Ja nimi minu programm on hello.c. 665 00:27:06,020 --> 00:27:09,670 Nii et koostada hello.c alates lähtekoodi 666 00:27:09,670 --> 00:27:12,930 objekti kood, või 0. ja 1s, siis peaks piisama lihtsalt teha 667 00:27:12,930 --> 00:27:14,820 see ja vajuta Enter. 668 00:27:14,820 --> 00:27:16,850 >> Okei, midagi näib olevat juhtunud. 669 00:27:16,850 --> 00:27:20,450 Aga ma tean nüüd, või eelmisel nädalal, et vaikenimi 670 00:27:20,450 --> 00:27:24,920 programm, kui kirjutatud C, on rumalalt nimega a.out. 671 00:27:24,920 --> 00:27:26,610 Enamik ebahuvitav nimi siis võiks tulla. 672 00:27:26,610 --> 00:27:28,790 On esimene täht, välja on see, mis oli 673 00:27:28,790 --> 00:27:29,960 väljastada, aga olgu. 674 00:27:29,960 --> 00:27:33,570 See on minu programm, ja nüüd dot kaldkriips, nagu me näha, on 675 00:27:33,570 --> 00:27:36,170 tegelikult lihtsalt omamoodi turvaelement, sest 676 00:27:36,170 --> 00:27:38,250 a.out on programm, ma kirjutasin. 677 00:27:38,250 --> 00:27:39,650 See ei tulnud minu arvutis, see on 678 00:27:39,650 --> 00:27:40,790 mitte Program Files. 679 00:27:40,790 --> 00:27:42,910 See ei ole Mac OS on kausta Rakendused. 680 00:27:42,910 --> 00:27:45,740 Ma pean olema super selgesõnalise koos arvuti ja öelda 681 00:27:45,740 --> 00:27:49,030 Selle programmi a.out, on praeguses kaustas 682 00:27:49,030 --> 00:27:50,260 jooksev kataloog. 683 00:27:50,260 --> 00:27:53,160 Ja kuidas te esindate seda keskkonda niimoodi 684 00:27:53,160 --> 00:27:57,070 on dot esindab iganes kausta, kus kasutaja parajasti sisse 685 00:27:57,070 --> 00:27:59,420 Ja nii. / Tähendab lihtsalt joosta a.out 686 00:27:59,420 --> 00:28:00,530 Aktiivses kaustas. 687 00:28:00,530 --> 00:28:04,830 Ja ma saan seda Sisesta ja voila, minu kõige esimene programm. 688 00:28:04,830 --> 00:28:05,990 >> Nüüd lubage mul astuda samm tagasi. 689 00:28:05,990 --> 00:28:08,280 See aken on natuke väike, ja mõistma, et alumine 690 00:28:08,280 --> 00:28:10,340 vasakul aparaat siin on teine ​​ikoon. 691 00:28:10,340 --> 00:28:12,660 Üks on Chrome, mis peaks olema üsna tuttav, lihtsalt veebis 692 00:28:12,660 --> 00:28:14,350 brauseri seadme sisemust. 693 00:28:14,350 --> 00:28:16,340 Ja see must ja valge ikoon on lihtsalt 694 00:28:16,340 --> 00:28:17,720 suurem terminaliakent. 695 00:28:17,720 --> 00:28:19,830 Nii et kui see muutub natuke tüütu omamoodi on lihtsalt 696 00:28:19,830 --> 00:28:22,270 see tilluke tükk aken, kellega tuleb suhelda 697 00:28:22,270 --> 00:28:24,370 programmidega, saame selle asemel teha. 698 00:28:24,370 --> 00:28:26,640 Ja nüüd lubage mul alustada kirjutades paar varsti 699 00:28:26,640 --> 00:28:27,980 tuleb tuttav käske. 700 00:28:27,980 --> 00:28:28,900 ls. 701 00:28:28,900 --> 00:28:31,410 Nii et LS on käsk noteerimiseks. 702 00:28:31,410 --> 00:28:33,900 Nii Mac OS või Windows, siis oleks üldiselt topeltklõpsake 703 00:28:33,900 --> 00:28:36,510 kausta ja siis voila, näed kõik erinevad failid 704 00:28:36,510 --> 00:28:37,210 ja kaustu. 705 00:28:37,210 --> 00:28:39,650 In käsurea keskkond, kus saab ainult kirjutada 706 00:28:39,650 --> 00:28:42,390 käske või tekst, ls on samaväärne. 707 00:28:42,390 --> 00:28:44,380 Nii et näita mulle, mida kuradit see kataloog. 708 00:28:44,380 --> 00:28:46,540 >> Nüüd on hunnik asju siin, mis on nii vähe 709 00:28:46,540 --> 00:28:48,190 tuttav ja veidi harjumatu. 710 00:28:48,190 --> 00:28:50,740 Aga teate, et just nagu Windows ja Mac OS, jharvard 711 00:28:50,740 --> 00:28:52,190 on töölaua kausta. 712 00:28:52,190 --> 00:28:54,520 Nii et kõik ikoonid, mis on minu töölaual juhtuda 713 00:28:54,520 --> 00:28:55,650 olla selles kaustas. 714 00:28:55,650 --> 00:28:57,250 Seal downloads kausta, stuff, et 715 00:28:57,250 --> 00:28:58,890 Chrome võib panna sinna. 716 00:28:58,890 --> 00:28:59,250 Dropbox. 717 00:28:59,250 --> 00:29:01,820 Nii Seade on varustatud sisseehitatud toetus Dropbox 718 00:29:01,820 --> 00:29:04,500 nii et üle semester, saate sünkroonida oma Dropbox 719 00:29:04,500 --> 00:29:06,420 arvesse, et kõik teie programmid on varundada. 720 00:29:06,420 --> 00:29:08,050 Nad on kättesaadavad oma teise arvuti. 721 00:29:08,050 --> 00:29:09,780 Kui midagi kunagi läheb valesti seade, saate 722 00:29:09,780 --> 00:29:11,340 väga kerge toibuda Dropbox. 723 00:29:11,340 --> 00:29:12,940 Nii et kausta seal selle eest. 724 00:29:12,940 --> 00:29:14,660 Seal on kaks faili, et ma tegin - hello.c 725 00:29:14,660 --> 00:29:16,540 ja a.out. 726 00:29:16,540 --> 00:29:18,530 Ja siis seal on mõned muud kaustad, et me 727 00:29:18,530 --> 00:29:20,710 saada poole semestri lõpuks, web 728 00:29:20,710 --> 00:29:21,540 programmeerimine. 729 00:29:21,540 --> 00:29:26,160 Nii et kui ma teen. /, A.out, Enter, et ütleb minna 730 00:29:26,160 --> 00:29:29,460 kataloogi ma olen, jooksva kataloogi ja käivitage 731 00:29:29,460 --> 00:29:32,465 programmi nimega a.out seal. 732 00:29:32,465 --> 00:29:35,810 >> Olgu, see on tore ja hea, kuid see pole veel kõik, et 733 00:29:35,810 --> 00:29:38,550 kaalukaid Kirjutada programm nimega aitab a.out. 734 00:29:38,550 --> 00:29:40,790 Nii saame tegelikult teha seda natuke teistmoodi. 735 00:29:40,790 --> 00:29:43,980 Nii et selle asemel lihtsalt töötab rõkkama, hello.c, lisame 736 00:29:43,980 --> 00:29:46,850 mida nimetatakse käsurea argument. 737 00:29:46,850 --> 00:29:50,730 Nii käsurea argument, või lüliti sel juhul on lihtsalt 738 00:29:50,730 --> 00:29:54,930 teise sõna või fraas, et kirjutad on kiire pärast 739 00:29:54,930 --> 00:29:56,290 programm, mida soovite käivitada. 740 00:29:56,290 --> 00:29:59,970 Nii et sel juhul rõkkama on programmi ma tahan joosta,-o 741 00:29:59,970 --> 00:30:03,480 vahenditega väljund faili, mis on enam nn a.out. 742 00:30:03,480 --> 00:30:07,510 Väljund faili nimega tere, ja seda koostades 743 00:30:07,510 --> 00:30:10,200 viimane sõna rida, hello.c. 744 00:30:10,200 --> 00:30:13,200 Nii lühike, see on väga marginaalne paranemine, mille 745 00:30:13,200 --> 00:30:15,850 selle asemel, seda rumalalt nimega faili a.out, 746 00:30:15,850 --> 00:30:21,430 Nüüd saan teha rõkkama-o hello, siis hello.c ja 747 00:30:21,430 --> 00:30:22,530 siis Enter. 748 00:30:22,530 --> 00:30:25,510 Miski tundub juhtuda, kuid taas meelega koos 0 - kui 749 00:30:25,510 --> 00:30:28,510 midagi tundub juhtuda, et tähenda midagi valesti juhtunud - 750 00:30:28,510 --> 00:30:31,460 nii teeme LS nüüd, Enter, ja tõesti ma nüüd 751 00:30:31,460 --> 00:30:32,780 on tere programm. 752 00:30:32,780 --> 00:30:38,510 Nii et kui ma tüüpi tere nüüd, command not found. 753 00:30:38,510 --> 00:30:39,440 OK,. /. 754 00:30:39,440 --> 00:30:40,220 Nii et täpselt õige. 755 00:30:40,220 --> 00:30:43,170 Nii, kuna selle programmi ma kirjutasin, ja see ei tulnud 756 00:30:43,170 --> 00:30:45,810 arvuti,. / hello, Enter, tähendab 757 00:30:45,810 --> 00:30:47,350 Ma olen nüüd töötab tere. 758 00:30:47,350 --> 00:30:48,440 >> Nii ongi seal. 759 00:30:48,440 --> 00:30:51,070 Nüüd, mida me lõpuks saada rohkem ja rohkem käsurea 760 00:30:51,070 --> 00:30:54,110 argumente, mis võimaldavad meil teha rohkem, kuid just need, 761 00:30:54,110 --> 00:30:57,760 kellele see võiks olla vana müts, las ma tegelikult minna 762 00:30:57,760 --> 00:31:01,910 Kataloog siin ja just sulle teaser kuidas muidu me 763 00:31:01,910 --> 00:31:05,770 võiks minna rakendamisel tere. 764 00:31:05,770 --> 00:31:10,730 Lubage mul minna siin, ja ma lähen, et seda avada. 765 00:31:10,730 --> 00:31:13,090 Nii et tegelikult, ma lähen selgitada, mida ma teen, nii 766 00:31:13,090 --> 00:31:15,610 see on kasulik. 767 00:31:15,610 --> 00:31:17,410 Lubage mul varundada. 768 00:31:17,410 --> 00:31:19,620 >> Nii et ma olen seda juba pikka aega. 769 00:31:19,620 --> 00:31:23,030 Nii märkate üle paremal on paar 770 00:31:23,030 --> 00:31:26,940 kataloogides, mida veidralt nimega source1m ja source1w. 771 00:31:26,940 --> 00:31:28,830 See on lihtsalt rumal konventsiooni, mida me kasutame. 772 00:31:28,830 --> 00:31:31,825 Allikas lihtsalt tähendab lähtekoodi, 1 tähendab see nädal üks ja 773 00:31:31,825 --> 00:31:34,000 m tähendab see esmaspäev ja w tähendab see kolmapäeval. 774 00:31:34,000 --> 00:31:34,900 Nii et midagi segasena seal. 775 00:31:34,900 --> 00:31:37,830 See on lihtsalt stenografisti märke. 776 00:31:37,830 --> 00:31:39,860 Need sinised asjad on kaustad, mida nimetatakse 777 00:31:39,860 --> 00:31:40,630 katalooge. 778 00:31:40,630 --> 00:31:43,870 Ma tahan minna samasse kausta nüüd, ja tavaline arvuti 779 00:31:43,870 --> 00:31:45,710 Ma võiks lihtsalt topeltklõps kausta ikoon ja 780 00:31:45,710 --> 00:31:46,810 seal on kõik minu faile. 781 00:31:46,810 --> 00:31:49,270 Aga käsurea keskkond, ma ei saa päris teha 782 00:31:49,270 --> 00:31:52,640 et, nii et selle asemel, ma pean muutma kataloogid käsitsi. 783 00:31:52,640 --> 00:31:57,900 Nii et kui ma tüüp CD ja seejärel source1m, Enter, märkate, et 784 00:31:57,900 --> 00:32:01,180 minu kiire, asi valge vasakul, lihtsalt muutunud. 785 00:32:01,180 --> 00:32:03,690 Ja nii tõesti, kui ta just ütles sulgudes ning seejärel 786 00:32:03,690 --> 00:32:06,450 vähe kriipseldus, tilde sümbol, et lihtsalt tähendas olin 787 00:32:06,450 --> 00:32:08,800 John Harvard kodukataloogi, tema My Documents 788 00:32:08,800 --> 00:32:10,390 tema isiklikud failid. 789 00:32:10,390 --> 00:32:14,000 Aga nüüd sulgudes öeldakse ~ / source1m. 790 00:32:14,000 --> 00:32:17,090 See tähendab lihtsalt, et ma olen kausta nimega source1m 791 00:32:17,090 --> 00:32:19,160 see on Johannese Harvardi kodukataloogi. 792 00:32:19,160 --> 00:32:22,030 Nii et kui ma nüüd taha loetleda failid selles kaustas, lihtne 793 00:32:22,030 --> 00:32:25,300 küsimus, writing lihtsalt ls. 794 00:32:25,300 --> 00:32:28,860 Ja nüüd ma näen, kõik failid, mida ma eelnevalt loodud tänapäeva 795 00:32:28,860 --> 00:32:31,020 loeng, mis kõik või enamik neist, juhtub 796 00:32:31,020 --> 00:32:32,740 lõppema. c. 797 00:32:32,740 --> 00:32:36,210 >> Nii et lubage mul minna nüüd ja kestab gedit programm nimega 798 00:32:36,210 --> 00:32:39,140 holloway.c, mis on kirjutatud mõne juhusliku häkker 799 00:32:39,140 --> 00:32:42,920 Internet, mis näeb välja natuke nagu see. 800 00:32:42,920 --> 00:32:44,880 Ja me ei lähe läbi see mingil 801 00:32:44,880 --> 00:32:48,530 detail, kuid neile mugavam, eriti kui 802 00:32:48,530 --> 00:32:50,935 Kui soovite võtta oletada, milline see programm teeb siin. 803 00:32:57,950 --> 00:32:59,990 Võite kindel olla, kas sa oled vähem või rohkem rahul, 804 00:32:59,990 --> 00:33:01,655 me isegi ei saada selline asi lõpuks 805 00:33:01,655 --> 00:33:02,160 see semester. 806 00:33:02,160 --> 00:33:05,390 See on see, mida on näide obfuscated C võistlus, mis 807 00:33:05,390 --> 00:33:08,390 vahenditega kirjutada kõige segasena otsin programmi, mida võib-olla 808 00:33:08,390 --> 00:33:10,820 saab üle trumbata teisi tarku inimesi, kes on sarnaselt 809 00:33:10,820 --> 00:33:13,010 üritan kirjutada asju ja uhkeldama, et nad võivad kirjutada 810 00:33:13,010 --> 00:33:14,280 rohkem segasena asjad kui sulle. 811 00:33:14,280 --> 00:33:17,290 Nii et see ei ole näide hästi kirjutatud programmi 812 00:33:17,290 --> 00:33:21,260 perspektiivi stiil, see on näide programmist, mis 813 00:33:21,260 --> 00:33:22,860 võidab võistluse, inimesed üritavad 814 00:33:22,860 --> 00:33:24,090 olla ebamäärane ja abstraktne. 815 00:33:24,090 --> 00:33:27,670 >> Nii et kui me teeme selle asja, lase mul minna minu terminaliakent, 816 00:33:27,670 --> 00:33:28,110 nii rääkida. 817 00:33:28,110 --> 00:33:29,650 Nii et see must ja valge keskkond nimetatakse 818 00:33:29,650 --> 00:33:31,160 terminaliakent üldiselt. 819 00:33:31,160 --> 00:33:32,600 Lubage mul minna ja kompileerida. 820 00:33:32,600 --> 00:33:34,440 Ma ei kavatse kasutada rõkkama, sest see programm on 821 00:33:34,440 --> 00:33:36,340 vähe segasena ja ta vajab erinevat 822 00:33:36,340 --> 00:33:38,190 tõlkija, üks nn GCC. 823 00:33:38,190 --> 00:33:39,200 Aga see teeb sama asja. 824 00:33:39,200 --> 00:33:41,130 See võtab lähtekoodi objekti kood. 825 00:33:41,130 --> 00:33:43,940 Ja nüüd, kui ma saan a.out, et programm, mida 826 00:33:43,940 --> 00:33:46,065 just nägin seda teeb. 827 00:33:49,220 --> 00:33:51,170 Nii et mehe sel aastal võitis selle võistluse. 828 00:33:51,170 --> 00:33:54,020 Igatahes, me ei kavatse selles suunas iseenesest. 829 00:33:54,020 --> 00:33:57,400 >> Nii et olgem tegelikult proovida nüüd tease peale mida me saame teha 830 00:33:57,400 --> 00:33:59,540 Nende põhiplokke teha rohkem ja rohkem 831 00:33:59,540 --> 00:34:00,590 huvitavaid programme. 832 00:34:00,590 --> 00:34:02,800 Nii oleme kirjutanud programmi, oleme käivitada programmi. 833 00:34:02,800 --> 00:34:05,780 Nüüd saame tegelikult lihtsustada ja ei pea enam kirjutama 834 00:34:05,780 --> 00:34:07,210 sõna rõkkama käsureale. 835 00:34:07,210 --> 00:34:10,710 Tuleb välja, sest meie programmid rohkem segasena, saame, või 836 00:34:10,710 --> 00:34:14,699 keerulisem pigem saame tegelikult selle käsu. 837 00:34:14,699 --> 00:34:17,610 Nii et lubage mul minna tagasi oma kodukataloogi, nii et rääkida, las ma 838 00:34:17,610 --> 00:34:20,750 eemaldada - rm Eemalda käsk - Ma lähen eemaldada 839 00:34:20,750 --> 00:34:23,060 fail nimega a.out ja tere. 840 00:34:23,060 --> 00:34:25,489 Ja nüüd märgata käsurea keskkonda nii nagu see oli 841 00:34:25,489 --> 00:34:27,800 GUI, saad seda teha palutakse. Ma ei saa klõpsata nuppu küll, ma 842 00:34:27,800 --> 00:34:31,040 pead kirjutama y jah, y jah. 843 00:34:31,040 --> 00:34:33,460 Ja nüüd, kui ma tüüpi LS uuesti, teate, et need rohelised 844 00:34:33,460 --> 00:34:35,469 programmid - a.out ja tere - 845 00:34:35,469 --> 00:34:35,734 on läinud. 846 00:34:35,734 --> 00:34:37,340 Hoiduge rm. 847 00:34:37,340 --> 00:34:39,739 Seda saab teha halbu asju, just nagu saate lohistada 848 00:34:39,739 --> 00:34:40,810 asjad prügikasti. 849 00:34:40,810 --> 00:34:43,989 >> Nüüd lähme edasi - ja ma võiks seda teha - rõkkama-o 850 00:34:43,989 --> 00:34:45,139 tere, tere - 851 00:34:45,139 --> 00:34:46,884 Olen juba igav kirjutades, et käsk. 852 00:34:46,884 --> 00:34:48,080 Kuigi ma kirjutada seda veidi kiiremini. 853 00:34:48,080 --> 00:34:51,870 Nii saame selle asemel peavad tegema tere. 854 00:34:51,870 --> 00:34:53,880 Nii et ei ole kompilaatorit. 855 00:34:53,880 --> 00:34:57,720 See on lihtsalt sõbralik programm, mis pakub Linux, selles 856 00:34:57,720 --> 00:34:59,070 puhul - operatsioonisüsteemi - 857 00:34:59,070 --> 00:35:02,480 et automatiseerib protsessi koostamise programmid. 858 00:35:02,480 --> 00:35:05,555 Nii et selle asemel meeles rõkkama-o failinimi ja 859 00:35:05,555 --> 00:35:08,190 siis nii edasi, eriti kui need read saada enam ja 860 00:35:08,190 --> 00:35:10,110 enam, ma lihtsalt kirjutan teha. 861 00:35:10,110 --> 00:35:12,030 Ja see saab sülitama terve hunnik asju, mis 862 00:35:12,030 --> 00:35:13,940 me lõpuks näeme seda poolaastal. 863 00:35:13,940 --> 00:35:17,500 Aga märkate nüüd, kui ma tüüpi LS, tere on tagasi minu kataloogis. 864 00:35:17,500 --> 00:35:19,850 Ja tõepoolest ma saan käivitada seda. / Hello. 865 00:35:19,850 --> 00:35:23,330 Nii et lihtsalt automatiseerib protsessi töötab, mis oli, 866 00:35:23,330 --> 00:35:26,910 sel juhul palju kauem, keerukamad käsk. 867 00:35:26,910 --> 00:35:29,060 Nii et me ei kavatse hakata kasutama mark, lihtsalt sellepärast, et see on palju 868 00:35:29,060 --> 00:35:30,530 kasutajasõbralikumaks. 869 00:35:30,530 --> 00:35:32,770 >> Aga nüüd teeme rohkem huvitav programm 870 00:35:32,770 --> 00:35:34,650 kui lihtsalt tere öelda. 871 00:35:34,650 --> 00:35:38,680 Nii programmides oleme kirjutanud siiani seal peamine. 872 00:35:38,680 --> 00:35:40,890 See on lihtsalt default asi, mis lööb kõik maha. 873 00:35:40,890 --> 00:35:43,340 Kuid on ka teisi funktsioone seal samuti, ja 874 00:35:43,340 --> 00:35:45,890 stdio.h on asi, mida me nägime ülaosas meie 875 00:35:45,890 --> 00:35:48,480 faili enne, ja see on, mida on tuntud kui standard raamatukogu. 876 00:35:48,480 --> 00:35:51,300 Toas standard raamatukogu on terve hunnik funktsioone 877 00:35:51,300 --> 00:35:53,850 et keegi teine ​​kirjutas, ja me saame hakata kasutama neid 878 00:35:53,850 --> 00:35:55,050 funktsioonid kirjutada rohkem 879 00:35:55,050 --> 00:35:56,760 huvitavaid programme ise. 880 00:35:56,760 --> 00:35:58,370 >> Nii et lubage mul minna tagasi seadme. 881 00:35:58,370 --> 00:35:59,820 Ma lähen sulgeda see terminal akna. 882 00:35:59,820 --> 00:36:02,630 Ma lähen sulgeda asju, mida me varem kirjutasin, ja minge 883 00:36:02,630 --> 00:36:07,350 arvesse hello.c ja märkate nüüd võin teha järgmist. 884 00:36:07,350 --> 00:36:09,730 Tere maailm ei ole nii huvitav, ma tahaks 885 00:36:09,730 --> 00:36:11,770 isikupärastada seda programmi ennast. 886 00:36:11,770 --> 00:36:13,440 Nii et selle asemel, et öelda maailmale, et ma lähen 887 00:36:13,440 --> 00:36:14,830 minna ja öelda - 888 00:36:14,830 --> 00:36:16,880 Ma ei kirjuta David - kuid see on tõesti omamoodi 889 00:36:16,880 --> 00:36:18,050 põhimõtteliselt sama. 890 00:36:18,050 --> 00:36:19,970 Kuid olgem proovida seda kohatäide idee. 891 00:36:19,970 --> 00:36:24,460 Tuletame meelde, et C, pigem printf, meil oli neid 892 00:36:24,460 --> 00:36:28,110 kohatäited, ja seal on rohkem kui ainult% d. 893 00:36:28,110 --> 00:36:31,150 Nii% d oli kiire meelerahu kontrolli. 894 00:36:31,150 --> 00:36:32,310 Okei, kümnendmurruna, see on kõik. 895 00:36:32,310 --> 00:36:33,860 Murdarvud, see on kõik. 896 00:36:33,860 --> 00:36:37,755 Nii% c, kui kohtame, saab olema iseloomu. 897 00:36:37,755 --> 00:36:40,530 Pane märk siin kirja teel z, 898 00:36:40,530 --> 00:36:41,600 või kirjavahemärke sümbol. 899 00:36:41,600 --> 00:36:45,590 Ühe märgi,% f, keegi teab teistest keeltest? 900 00:36:45,590 --> 00:36:47,020 Nii ujukoma väärtus. 901 00:36:47,020 --> 00:36:47,880 Reaalne arv. 902 00:36:47,880 --> 00:36:51,550 Nii ei kümnendmurruna - see on tegelikult reaalne number 903 00:36:51,550 --> 00:36:54,130 koma, ja mõned numbritele vasakule 904 00:36:54,130 --> 00:36:55,520 ja paremal see. 905 00:36:55,520 --> 00:36:58,060 % S, nöörid. 906 00:36:58,060 --> 00:36:59,530 See üks me näeme üsna sageli. 907 00:36:59,530 --> 00:37:02,140 String, jälle on lihtsalt üks sõna, fraas, jada 908 00:37:02,140 --> 00:37:03,330 individuaalne tähemärki. 909 00:37:03,330 --> 00:37:06,730 Ja lõpuks, LLD? 910 00:37:06,730 --> 00:37:08,210 Nii et see on pigem nurgas puhul. 911 00:37:08,210 --> 00:37:09,850 Pikk, pikk kohaga. 912 00:37:09,850 --> 00:37:12,035 Nii et kui soovite mitte ainult number, et see on suur, siis 913 00:37:12,035 --> 00:37:14,160 tahan suurem number, siis lähed on täpsustada, 914 00:37:14,160 --> 00:37:16,400 arvuti, et see on teatud suurusest. 915 00:37:16,400 --> 00:37:17,610 >> Nii et olgem näpistama see natuke. 916 00:37:17,610 --> 00:37:20,610 Selle asemel, et lihtsalt raske koodi David, andke mulle veidi 917 00:37:20,610 --> 00:37:22,460 dünaamiliselt öelda% s. 918 00:37:22,460 --> 00:37:25,790 Nii pannakse% s siin, mis on kohatäide string. 919 00:37:25,790 --> 00:37:30,500 Siis las mina koma ja seejärel "David" siin. 920 00:37:30,500 --> 00:37:32,770 Nüüd ei ole see kõik, et intellektuaalselt huvitavad, 921 00:37:32,770 --> 00:37:35,060 sest kõik, mida ma olen teinud nüüd on tõesti luua rohkem tööd 922 00:37:35,060 --> 00:37:35,790 arvuti. 923 00:37:35,790 --> 00:37:39,660 Selle asemel, et öelda, et arvuti ei see kõik korraga, ma olen nüüd 924 00:37:39,660 --> 00:37:43,760 öeldes seda teha ja sisestada stringi siin lõpuks, koma 925 00:37:43,760 --> 00:37:44,950 siin on see, et string. 926 00:37:44,950 --> 00:37:47,220 Nii et see ei ole paranemist, kuid see on vähemalt 927 00:37:47,220 --> 00:37:49,010 samm veel huvitav programm. 928 00:37:49,010 --> 00:37:51,240 Sest nüüd, lubage mul minna ja teha see aken natuke 929 00:37:51,240 --> 00:37:56,850 suurem, lubage mul minna ja joosta tegema tere. 930 00:37:56,850 --> 00:38:01,340 Ja nüüd,. / A.out ei tööta, miks? 931 00:38:03,880 --> 00:38:05,570 Olgu, nüüd nimetatakse seda tere. 932 00:38:05,570 --> 00:38:09,400 Nii et jälle teha, ning ka rõkkama koos-o, ümber 933 00:38:09,400 --> 00:38:11,120 programm oleks midagi huvitavat. 934 00:38:11,120 --> 00:38:13,060 Ja voila: nüüd ta ütleb tere David. 935 00:38:13,060 --> 00:38:14,590 >> Olgu, ikka loll programm. 936 00:38:14,590 --> 00:38:18,070 Nii et nüüd teeme tegelikult minna tagasi siia ja tutvustada mõistet 937 00:38:18,070 --> 00:38:18,810 Muutuva. 938 00:38:18,810 --> 00:38:21,600 Kas poleks tore, kui ma saaks kuulutada muutuja 939 00:38:21,600 --> 00:38:23,150 mille tüüp on string? 940 00:38:23,150 --> 00:38:26,720 Ja muutuja väärtus tegelikult pärineb kasutaja 941 00:38:26,720 --> 00:38:27,810 ennast. 942 00:38:27,810 --> 00:38:30,240 Nii suvaliselt, ma lähen helistada minu muutuja s, mis on 943 00:38:30,240 --> 00:38:32,410 lihtsalt Tavaks kui teil on üks muutuja nimega 944 00:38:32,410 --> 00:38:33,250 string. 945 00:38:33,250 --> 00:38:35,670 Ma teen võrdusmärk, ja siis ma lähen helistada 946 00:38:35,670 --> 00:38:38,030 funktsioon nimega getString. 947 00:38:38,030 --> 00:38:40,830 Nii getString ei ole midagi, mis tuleb sisse ehitatud C. See 948 00:38:40,830 --> 00:38:43,330 funktsioon, mis CS50 töötajad kirjutas, tõesti lihtsalt 949 00:38:43,330 --> 00:38:45,670 need esimesed paar nädalat, et lihtsustada protsessi 950 00:38:45,670 --> 00:38:49,450 saada kasutaja sisend ja saada kasutaja sisend kujul 951 00:38:49,450 --> 00:38:51,960 stringe või numbrid, ja selline. 952 00:38:51,960 --> 00:38:55,520 Nii getString on nagu printf, kuid ilmselt mitte 953 00:38:55,520 --> 00:38:58,700 prindi see saab teha seda, mida nimigi ütleb, saada stringi. 954 00:38:58,700 --> 00:39:00,970 Aga kasutada getString, me lähed on teha muutusi 955 00:39:00,970 --> 00:39:03,180 siin kaugemale. 956 00:39:03,180 --> 00:39:07,170 Nii intuitiivselt, see programm loodetavasti läheb kuidagi 957 00:39:07,170 --> 00:39:09,700 saada stringi kasutaja ja siis mida läheb tegema 958 00:39:09,700 --> 00:39:11,460 selle stringi, mida nimetatakse s? 959 00:39:15,060 --> 00:39:16,470 See on lihtsalt trükkimise, eks? 960 00:39:16,470 --> 00:39:18,870 Ikka ei stimuleeriva programmina, sest kõik see läheb 961 00:39:18,870 --> 00:39:22,160 teha, on pistik, mis väärtuse kus% s 962 00:39:22,160 --> 00:39:23,750 ütleb, et see peaks minema. 963 00:39:23,750 --> 00:39:25,290 >> Nii et olgem vähemalt näeme seda tegevust. 964 00:39:25,290 --> 00:39:27,040 Lubage mul salvestada ja välja suumida. 965 00:39:27,040 --> 00:39:30,280 Nüüd on minu terminaliakent siia, väike tükk üks, 966 00:39:30,280 --> 00:39:32,760 andke mulle jälle ei tee tere. 967 00:39:32,760 --> 00:39:35,160 Okei, ja ah, neetud, ma sain terve hunnik vigu. 968 00:39:35,160 --> 00:39:38,020 Lubage mul liikuge üles, ja me näeme meie esimene - 969 00:39:38,020 --> 00:39:40,430 niiet tegelikult seda teha isegi suurem aken siis 970 00:39:40,430 --> 00:39:42,110 saab näha, kuidas halvasti ma silmamunad - 971 00:39:42,110 --> 00:39:44,460 nii et tere. 972 00:39:44,460 --> 00:39:46,540 Okei, see on katastroof, eks? 973 00:39:46,540 --> 00:39:48,740 Olen kirjutanud kolm rida koodi, ja 974 00:39:48,740 --> 00:39:50,070 see on andnud mulle 12 viga. 975 00:39:50,070 --> 00:39:51,980 Miks see nii on? 976 00:39:51,980 --> 00:39:55,720 Nii et õnneks Sageli, kui sa näed palju, palju vigu 977 00:39:55,720 --> 00:39:57,730 sülitada välja korraga, see on tõesti lihtsalt, sest sa oled 978 00:39:57,730 --> 00:39:59,760 segaduses arvuti siin. 979 00:39:59,760 --> 00:40:02,330 Ja see jääb segi ajaks ta saab näha siin. 980 00:40:02,330 --> 00:40:04,400 Ja nii see lihtsalt hakkab komistamist ja komistamine, ja 981 00:40:04,400 --> 00:40:07,310 sülitamine rohkem hirmutav kraam kui tegelikult kehtib. 982 00:40:07,310 --> 00:40:10,120 Nii et üldiselt alati alustada top üks. 983 00:40:10,120 --> 00:40:13,320 >> Nii et väga top kõige astme punane, 984 00:40:13,320 --> 00:40:14,740 veateade on see. 985 00:40:14,740 --> 00:40:17,750 Kasutage deklareerimata tunnus string, ma 986 00:40:17,750 --> 00:40:19,160 tähendab standard? 987 00:40:19,160 --> 00:40:19,900 Ma ei teinud seda. 988 00:40:19,900 --> 00:40:24,180 Ma mõtlesin string, kuid see on, sest ka sõna string 989 00:40:24,180 --> 00:40:26,020 et ma saan kasutada verbaalselt tegelikult 990 00:40:26,020 --> 00:40:27,240 ei eksisteeri C kas. 991 00:40:27,240 --> 00:40:29,470 See on midagi, me kasutame ainult esimesel nädalal või kaks 992 00:40:29,470 --> 00:40:34,500 siin, aga see on olemas fail nimega cs50.h. 993 00:40:34,500 --> 00:40:37,110 Nii et nüüd tean, et seal on see teine ​​raamatukogu, mis 994 00:40:37,110 --> 00:40:39,330 personali kirjutas, nii et see on kirjutatud rohkem hiljuti kui 995 00:40:39,330 --> 00:40:40,510 stdio.h. 996 00:40:40,510 --> 00:40:45,020 Aga sees cs50.h on mõiste, sünonüüm 997 00:40:45,020 --> 00:40:48,310 kehvasti, et loob selle sõna string. 998 00:40:48,310 --> 00:40:50,890 >> Nüüd lubage mul minna tagasi oma terminali aknas. 999 00:40:50,890 --> 00:40:53,200 Ma lähen selge kogu see jama poolt Ctrl-L. Me lihtsalt 1000 00:40:53,200 --> 00:40:55,700 pühkida kõik puhas ja ma lähen edasi minna ja teha 1001 00:40:55,700 --> 00:40:57,860 tere jälle, Enter. 1002 00:40:57,860 --> 00:40:59,440 Mis on siis juhtunud nüüd? 1003 00:40:59,440 --> 00:41:01,150 Nüüd on kõik need vead ära läks. 1004 00:41:01,150 --> 00:41:02,230 Nii et mida ma tegelikult teha? 1005 00:41:02,230 --> 00:41:05,920 Ma olen lihtsalt õpetanud arvuti, et string on olemas, ja see on 1006 00:41:05,920 --> 00:41:07,890 selles failis nimega cs50.h. 1007 00:41:07,890 --> 00:41:10,930 Nii et lõpetage kaevates, sest nüüd sa tead, kust leida 1008 00:41:10,930 --> 00:41:13,220 et funktsiooni deklaratsioon nii rääkida. 1009 00:41:13,220 --> 00:41:15,200 Kui on olemas kogu maailmas. 1010 00:41:15,200 --> 00:41:18,820 >> Nii et nüüd ma lähen edasi minna ja käivitada tere. 1011 00:41:18,820 --> 00:41:22,300 Mulle tundub, et on lõputu silmuse, midagi on toimumas. 1012 00:41:25,530 --> 00:41:26,870 Nii et ma pean kirjutama siia midagi, eks. 1013 00:41:26,870 --> 00:41:29,650 Esimene rida koodi oma programmi getString. 1014 00:41:29,650 --> 00:41:31,750 Nii et see on sõna otseses mõttes ootavad, et ma saan stringi. 1015 00:41:31,750 --> 00:41:33,680 Nii et selles mõttes jah, see on lõputu silmuse. 1016 00:41:33,680 --> 00:41:36,520 Ilmselt getString on vaikimisi, et me 1017 00:41:36,520 --> 00:41:37,510 kirjutas - personal - 1018 00:41:37,510 --> 00:41:39,550 et lihtsalt ütleb oodata ja oodata ja oodata ja oodata ja oodata, 1019 00:41:39,550 --> 00:41:42,550 kuni kasutaja annab teile string kirjutades midagi sisse 1020 00:41:42,550 --> 00:41:46,000 Nii et lubage mul minna ja tüüp D-A-v - i-d, Enter. 1021 00:41:46,000 --> 00:41:47,420 Ja siin see on, tere David. 1022 00:41:47,420 --> 00:41:50,430 >> Nüüd ei see tunduda see lihtsalt tegu? 1023 00:41:50,430 --> 00:41:52,810 Lubage mul minna ja kirjuta Tommy. 1024 00:41:52,810 --> 00:41:54,740 Sisesta, okei, näib toimivat. 1025 00:41:54,740 --> 00:41:59,130 Tööd Rob rajatised Zamyla, töötab - okei. 1026 00:41:59,130 --> 00:42:01,000 Nii see läheb tööle, kõige tõenäolisem. 1027 00:42:01,000 --> 00:42:05,030 Nii et see peaks välja printida ükskõik mida me tegelikult annab see, 1028 00:42:05,030 --> 00:42:07,830 ja me saame olla natuke raske siin. 1029 00:42:07,830 --> 00:42:12,130 Vaatame, kas me teeme midagi tere. 1030 00:42:12,130 --> 00:42:18,000 Kas minna üle siin, vaatame, kopeerida, kleepida. 1031 00:42:18,000 --> 00:42:19,950 Ma ei saaks kleepida, et mitu korda siin. 1032 00:42:19,950 --> 00:42:24,410 Kleebi, okei, Shift + Ctrl + V. Mis võiks 1033 00:42:24,410 --> 00:42:26,970 juhtuda, et halb on? 1034 00:42:26,970 --> 00:42:27,770 >> Okei, nii, segfaults. 1035 00:42:27,770 --> 00:42:29,710 Nii et mõned teist eelneva taustaga teavad, et 1036 00:42:29,710 --> 00:42:32,710 üldiselt, andes arvutid palju sisendeid kui nad 1037 00:42:32,710 --> 00:42:36,140 ilmselt ei tule saavad pikad nimed nagu see - halb 1038 00:42:36,140 --> 00:42:36,740 asjad juhtuvad. 1039 00:42:36,740 --> 00:42:39,230 Tõepoolest, maailma veebis, liiga, see juhtub üsna vähe, 1040 00:42:39,230 --> 00:42:41,000 kusjuures kui olete projekteerimisel veebilehel, kui olete 1041 00:42:41,000 --> 00:42:43,850 projekteerimine Facebook, sa pead tegema meelevaldseid otsuseid üles 1042 00:42:43,850 --> 00:42:45,370 ees, nagu kui kaua kellegi 1043 00:42:45,370 --> 00:42:46,360 Facebook kasutajanimi on? 1044 00:42:46,360 --> 00:42:48,050 Või kui kaua kellegi eesnimi olla? 1045 00:42:48,050 --> 00:42:50,110 Kui kaua keegi telefoninumber olla jms. 1046 00:42:50,110 --> 00:42:53,580 Ja kui programmeerijad teevad halba eeldused, programmide murda 1047 00:42:53,580 --> 00:42:56,640 sest sa püüad neile rohkem toodangut, suurem panus 1048 00:42:56,640 --> 00:42:58,330 pigem, kui neil on mälu. 1049 00:42:58,330 --> 00:43:01,860 Või RAM eraldatud, ja nii kui nüüd ma Enter, 1050 00:43:01,860 --> 00:43:04,640 et programm tegelikult töötatud, sest olime raamatukogus 1051 00:43:04,640 --> 00:43:06,790 ja me tegelikult seda ette näinud konkreetse juhtumi puhul. 1052 00:43:06,790 --> 00:43:10,900 Aga kahtlemata see semester, siis kirjutage vähemalt üks 1053 00:43:10,900 --> 00:43:13,280 programm, mis ütleb neid sõnu. 1054 00:43:13,280 --> 00:43:16,520 Pea meeles, see nädala pärast, võib-olla kaks päeva nüüd. 1055 00:43:16,520 --> 00:43:18,760 Segmentimise viga on halb. 1056 00:43:18,760 --> 00:43:21,920 See viitab, et teie teete midagi, et arvuti 1057 00:43:21,920 --> 00:43:23,310 ei osatud ette näha. 1058 00:43:23,310 --> 00:43:25,810 Ja sel juhul on sul, programmeerija, ei osatud ette näha. 1059 00:43:25,810 --> 00:43:27,720 Palju meeldib, mida see hunnik sokke, seal olid erinevad 1060 00:43:27,720 --> 00:43:29,520 nurgas juhtudel saame kokku puutunud. 1061 00:43:29,520 --> 00:43:32,340 Samamoodi programme, kui sa ei usu, kui kaua on 1062 00:43:32,340 --> 00:43:33,310 kellegi nime saab olema. 1063 00:43:33,310 --> 00:43:35,890 Või mis siis, kui mul on pahatahtlik kasutaja, ja tema nimi on 1064 00:43:35,890 --> 00:43:37,230 tegelikult päris lühike, aga nad lihtsalt üritan 1065 00:43:37,230 --> 00:43:37,960 minuga jamada? 1066 00:43:37,960 --> 00:43:40,490 Mis saab olema käitumine minu programm? 1067 00:43:40,490 --> 00:43:43,930 Noh, sel juhul midagi võiks tegelikult põrgata. 1068 00:43:43,930 --> 00:43:44,750 >> Nii et teeme seda. 1069 00:43:44,750 --> 00:43:46,860 90 minutiga, see on meeletult kaua aega 1070 00:43:46,860 --> 00:43:47,780 teha arvutiteadus. 1071 00:43:47,780 --> 00:43:49,550 Miks me ei tekiks harjumus võtta viieminutiline 1072 00:43:49,550 --> 00:43:51,520 murda siin, ja kui me tagasi tuleme, siis me sukelduda mõned 1073 00:43:51,520 --> 00:43:53,430 keerulisem ja kaalukad programme? 1074 00:43:53,430 --> 00:43:54,680 Viis minutit. 1075 00:43:56,910 --> 00:43:58,160 >> Hea küll. 1076 00:44:01,138 --> 00:44:02,780 Nii et üks kiire kommentaari. 1077 00:44:02,780 --> 00:44:05,590 Mulle öeldi, et kuigi see oli ekraanil enne, mida 1078 00:44:05,590 --> 00:44:08,880 tuli mu suust oli cs50.net/rsvp. 1079 00:44:08,880 --> 00:44:11,670 See on õige. cs50.net/lunch. 1080 00:44:11,670 --> 00:44:16,030 Nüüd võite proovida RSVPing selle juures / lunch. 1081 00:44:16,030 --> 00:44:16,980 Aga teeme seda nüüd. 1082 00:44:16,980 --> 00:44:20,150 Nii et see on super kiire, super uus, palju toredaid inimesi. 1083 00:44:20,150 --> 00:44:21,560 Vana müts mõned inimesed. 1084 00:44:21,560 --> 00:44:24,930 Nii et olgem tagasikerimiseks hetkeks, ja vaata, kuidas me saime 1085 00:44:24,930 --> 00:44:29,350 Selle tere väljund hetk tagasi. 1086 00:44:29,350 --> 00:44:31,780 >> Nii et esimene, seal on see CS50 Appliance. 1087 00:44:31,780 --> 00:44:34,270 Jällegi tükk tarkvara, probleem set 1 inimest ütlen 1088 00:44:34,270 --> 00:44:36,610 kuidas seda alla laadida, kus seda alla laadida, mida klikkida 1089 00:44:36,610 --> 00:44:37,430 ja nii edasi. 1090 00:44:37,430 --> 00:44:39,670 Ja siis kui te järgite neid juhiseid, saate 1091 00:44:39,670 --> 00:44:42,840 maksimeerida oma aknas ja Mac või PC näeb välja 1092 00:44:42,840 --> 00:44:43,910 natuke midagi sellist. 1093 00:44:43,910 --> 00:44:47,170 Mustal taustal, kodukataloogi ülaosas, kuhu kõik 1094 00:44:47,170 --> 00:44:49,850 Failide minna, prügikast ülaosas vasakul, 1095 00:44:49,850 --> 00:44:51,130 menüü allosas. 1096 00:44:51,130 --> 00:44:54,010 Nii et taas, päris sarnase sisuga Mac OS või Windows, 1097 00:44:54,010 --> 00:44:56,040 kuigi ta juhtub olema Linux. 1098 00:44:56,040 --> 00:44:58,120 Nii et mis me siis järgmisel teha? 1099 00:44:58,120 --> 00:44:59,580 Noh, hakkasime kirjalikult programmid. 1100 00:44:59,580 --> 00:45:02,260 Ja mäletate eelmisel nädalal, et kõik see võtab kirjutada 1101 00:45:02,260 --> 00:45:04,970 Programm on lihtne tekstiredaktor, 1102 00:45:04,970 --> 00:45:06,550 nagu Notepad või TextEdit. 1103 00:45:06,550 --> 00:45:08,360 Ausalt, saate isegi kasutada Microsoft Word. 1104 00:45:08,360 --> 00:45:11,170 Aga halvad asjad lõpuks juhtub, sest see on väga 1105 00:45:11,170 --> 00:45:13,930 raskepärast lahendus kirjalikult programmi, pluss see tulen 1106 00:45:13,930 --> 00:45:15,400 salvestage see vales vormingus. 1107 00:45:15,400 --> 00:45:18,150 Aga see on lihtsalt tekstiredaktoriga, sõna protsessor, on kõik, mis on 1108 00:45:18,150 --> 00:45:19,390 vaja kirjutada programm. 1109 00:45:19,390 --> 00:45:23,420 >> Nii CS50 Appliance, saame seda teha üks lihtne viis. 1110 00:45:23,420 --> 00:45:25,580 Me ei saa lihtsalt klõpsa seda ikooni all vasakul. 1111 00:45:25,580 --> 00:45:28,790 Ja jälle probleem set 1 ütleb teile seda ja voila - 1112 00:45:28,790 --> 00:45:31,210 sa selle musta ja valge liides, kus saame alustada 1113 00:45:31,210 --> 00:45:32,160 kirjalikult koodi. 1114 00:45:32,160 --> 00:45:34,960 Nii alustame kirjalikult super lihtne programm uuesti. 1115 00:45:34,960 --> 00:45:38,890 Ma lähen kuni File, Save, ja ma lähen helistada 1116 00:45:38,890 --> 00:45:42,870 see, ütleme, hello2.c. 1117 00:45:42,870 --> 00:45:45,410 Ja ma lihtsalt ütlen seda, klikkides jharvard, pane see 1118 00:45:45,410 --> 00:45:46,750 oma kodukataloogi, ma tõesti ei hooli 1119 00:45:46,750 --> 00:45:47,980 kus see läheb. 1120 00:45:47,980 --> 00:45:49,090 Ja siis Salvesta. 1121 00:45:49,090 --> 00:45:50,880 Ja nüüd ma ei hakake minu programm. 1122 00:45:50,880 --> 00:45:53,560 Ja ma mäletan varasematest et ma pean kirjutama int 1123 00:45:53,560 --> 00:45:55,400 main (void). 1124 00:45:55,400 --> 00:45:57,000 Suurenda peal vasakule. 1125 00:45:57,000 --> 00:46:02,670 Ja siis ma tahan öelda printf, võtan kaks. 1126 00:46:02,670 --> 00:46:05,690 Ja nüüd reavahetus lähedal tsiteerin sulgeda 1127 00:46:05,690 --> 00:46:07,820 sulgudes semikooloniga. 1128 00:46:07,820 --> 00:46:10,560 Ja siis ma lähen siia, et minu terminaliakent see on 1129 00:46:10,560 --> 00:46:12,840 varjatud gedit, lihtsalt mugavamaks. 1130 00:46:12,840 --> 00:46:15,200 Ja ma lähen edasi minna ja kirjutada tegema tere, kuid mitte 1131 00:46:15,200 --> 00:46:17,500 Tema üksi, hello2. 1132 00:46:17,500 --> 00:46:20,490 >> Nii et minu faili nimi on hello2.c. Minu toimiku seetõttu 1133 00:46:20,490 --> 00:46:23,510 tuleks kutsuda hello2, käesoleval juhul. 1134 00:46:23,510 --> 00:46:26,490 Kurat, mida ma valesti tegin? 1135 00:46:26,490 --> 00:46:29,490 Olgu, ma selgelt välja jäetud rida, kui te mäletate, mida 1136 00:46:29,490 --> 00:46:31,020 varasemate programmide nägema. 1137 00:46:31,020 --> 00:46:32,480 Aga vaatame, kas me ei tease see peale. 1138 00:46:32,480 --> 00:46:35,310 Kahjuks enamik inimesi, kes kirjutavad programme, mis 1139 00:46:35,310 --> 00:46:38,820 me kirjutame programmid ei lihtsustada asjad kõik hästi. 1140 00:46:38,820 --> 00:46:41,520 Nii et me peame sellist koorima üle, mida ei ole päris teha 1141 00:46:41,520 --> 00:46:44,050 tunnetan siin ja vaata, kas suudame aru saada, mis on valesti. 1142 00:46:44,050 --> 00:46:46,700 Kõige esimene rida seal ütleb kaudselt kuulutatakse C 1143 00:46:46,700 --> 00:46:49,310 raamatukogu funktsiooni printf tüüpi int. 1144 00:46:49,310 --> 00:46:51,210 OK, sain aru osa sellest. 1145 00:46:51,210 --> 00:46:54,570 Aga see tundub olevat vihjates sellele, et ma kasutasin printf 1146 00:46:54,570 --> 00:46:55,700 vale, kuidagi. 1147 00:46:55,700 --> 00:46:56,930 Ja mis mõttes on see vale? 1148 00:46:56,930 --> 00:46:59,970 Ma lihtsalt ei õpeta arvuti, et see on faili 1149 00:46:59,970 --> 00:47:01,420 nimetatakse stdio.h. 1150 00:47:01,420 --> 00:47:04,120 Nüüd mul on ainult veidi meelde nüüd, et printf on 1151 00:47:04,120 --> 00:47:06,540 aastal stdio.h, ja tõepoolest seal saad teiste 1152 00:47:06,540 --> 00:47:08,900 funktsioone, et sama faili, et me harjuda. 1153 00:47:08,900 --> 00:47:12,490 >> Nüüd lubage mul minna ja vajuta Ctrl-L lihtsalt selgeks, et 1154 00:47:12,490 --> 00:47:16,050 ära uuesti, teha hello2 ja voila. 1155 00:47:16,050 --> 00:47:19,490 Ja see käsk uuesti, keerulisem kui me selgitame jaoks 1156 00:47:19,490 --> 00:47:20,520 Tänapäeva eesmärkidel. 1157 00:47:20,520 --> 00:47:23,570 Aga see ei jookse rõkkama ja rõkkama võtab lähtekoodi ja 1158 00:47:23,570 --> 00:47:24,870 sülitab välja 0. ja 1s. 1159 00:47:24,870 --> 00:47:28,610 Ja need 0. ja 1s sel juhul nimetatakse mida? 1160 00:47:28,610 --> 00:47:29,470 Okei, objekti kood. 1161 00:47:29,470 --> 00:47:32,210 Ja fail, mis nad on, nimetatakse nii, 1162 00:47:32,210 --> 00:47:33,820 hello2, käesoleval juhul. 1163 00:47:33,820 --> 00:47:37,040 Kuna mu tekstifaili oli hello2.c, Enter. 1164 00:47:37,040 --> 00:47:39,820 Ja nüüd Ma olen võtavad kaks hüüumärki, hüüatus 1165 00:47:39,820 --> 00:47:41,880 punkt, hüüumärk. 1166 00:47:41,880 --> 00:47:45,430 Olgu, nii et meil on nüüd võimalus saada stringid, 1167 00:47:45,430 --> 00:47:46,280 ilmselt. 1168 00:47:46,280 --> 00:47:48,190 Noh, mida muud me saame kasutajatelt? 1169 00:47:48,190 --> 00:47:51,010 >> Noh CS50 raamatukogu, seal on muid funktsioone, mis 1170 00:47:51,010 --> 00:47:53,300 ei kavatse lihtsustada meie elu nendel esimestel päevadel. 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 Noh, kisu maha lihtsaim neist esimene. 1174 00:47:59,550 --> 00:48:01,430 GetString sõna otseses mõttes ei tee seda. 1175 00:48:01,430 --> 00:48:04,210 See lihtsalt istub seal, oodates kasutaja tippida midagi, 1176 00:48:04,210 --> 00:48:07,170 ja niipea, kui ma kirjuta midagi ja vajuta Enter, see 1177 00:48:07,170 --> 00:48:08,860 teeb midagi selle väärtus. 1178 00:48:08,860 --> 00:48:11,700 Nii et lähme tagasi, et näiteks täpselt näha, mida 1179 00:48:11,700 --> 00:48:12,950 GetString tegin. 1180 00:48:12,950 --> 00:48:17,445 Lubage mul minna ja avanevad gedit, hello.c ja meenutada 1181 00:48:17,445 --> 00:48:20,590 et vahetult enne vaheaega, see on koht, kus me pooleli jäime. 1182 00:48:20,590 --> 00:48:23,240 >> Nii et olgem nüüd tease seda üksteisest veidi täpsemalt. 1183 00:48:23,240 --> 00:48:27,190 Nii on line 6, seal on kaks asja 1184 00:48:27,190 --> 00:48:28,450 praegu toimub. 1185 00:48:28,450 --> 00:48:32,630 Võrdusmärk on eraldav esimesel poolel ja teine ​​pool. 1186 00:48:32,630 --> 00:48:34,670 Nii vasakul pool võrdusmärki, me oleme 1187 00:48:34,670 --> 00:48:35,580 öeldes string s. 1188 00:48:35,580 --> 00:48:37,580 Ja siis, üldarusaadavat mõttes, mis on string s 1189 00:48:37,580 --> 00:48:41,040 teed, mis sa arvad? 1190 00:48:41,040 --> 00:48:42,990 See loob mida? 1191 00:48:42,990 --> 00:48:44,930 Nii et see loob string nimega s. 1192 00:48:44,930 --> 00:48:46,370 Nüüd, mida see tegelikult tähendab? 1193 00:48:46,370 --> 00:48:51,540 Noh, see reserveeritakse ruumi string nimega s. 1194 00:48:51,540 --> 00:48:52,490 See ei ole päris õige. 1195 00:48:52,490 --> 00:48:53,120 Mis on selle teed? 1196 00:48:53,120 --> 00:48:55,400 Noh arvutid, nagu te teate, on kõvakettad; et seal 1197 00:48:55,400 --> 00:48:56,300 teie failid salvestatakse. 1198 00:48:56,300 --> 00:48:59,100 Arvutid on RAM, ja see on kui programmid on koormatud 1199 00:48:59,100 --> 00:49:00,240 kui nad töötavad. 1200 00:49:00,240 --> 00:49:02,470 Nii et kui te topeltklõpsake ikooni ja Microsoft Word avab 1201 00:49:02,470 --> 00:49:06,380 kuni Microsoft Word töötab, nii et rääkida, RAM, mis on 1202 00:49:06,380 --> 00:49:08,160 elektrooniline osa arvuti. 1203 00:49:08,160 --> 00:49:10,660 Ei füüsilisi, mehaanilisi osa, mis käib ringi, kus 1204 00:49:10,660 --> 00:49:12,640 andmeid on salvestatud pikemas perspektiivis. 1205 00:49:12,640 --> 00:49:15,810 Nii et string s on päris palju ütleb arvuti mulle 1206 00:49:15,810 --> 00:49:18,150 piisavalt RAM sobib stringi. 1207 00:49:18,150 --> 00:49:20,450 Nüüd ongi natuke järeleandmisi, sest 1208 00:49:20,450 --> 00:49:22,300 kui suur on string saab olema? 1209 00:49:22,300 --> 00:49:24,410 Noh me tegelikult ei tea veel, nii et lähinädalatel 1210 00:49:24,410 --> 00:49:27,290 me tegelikult tõmmake kiht, mis on string ja 1211 00:49:27,290 --> 00:49:28,510 me ütlen teile, mis see tegelikult on. 1212 00:49:28,510 --> 00:49:31,050 String, nüüd, on lihtsalt tore lihtsustamine meie maailma. 1213 00:49:31,050 --> 00:49:35,700 Aga string s deklareerib string nimega s, nüüd. 1214 00:49:35,700 --> 00:49:36,520 Tunnistab string. 1215 00:49:36,520 --> 00:49:39,310 See jätab ruumi ka RAM string kasutaja on 1216 00:49:39,310 --> 00:49:40,150 umbes trükkida. 1217 00:49:40,150 --> 00:49:41,840 >> Nüüd vaatame õiges võrdusmärki. 1218 00:49:41,840 --> 00:49:44,110 Nii ta ütleb getString (). 1219 00:49:44,110 --> 00:49:45,070 Ja vähe meelerahu vaadata. 1220 00:49:45,070 --> 00:49:47,940 Asjaolu, et seal on midagi sees sulgudes 1221 00:49:47,940 --> 00:49:50,810 tähendab kuidas getString? 1222 00:49:50,810 --> 00:49:52,180 See ei võta argumente. 1223 00:49:52,180 --> 00:49:55,290 See tähendab, et te ei saa mõjutada oma käitumist kuidagi. 1224 00:49:55,290 --> 00:49:58,940 Iga kord, kui seda kasutada, siis saad nööri ja ongi kõik. 1225 00:49:58,940 --> 00:50:02,210 Seevastu printf loodetavasti oma käitumist ei 1226 00:50:02,210 --> 00:50:03,010 muuta iga kord. 1227 00:50:03,010 --> 00:50:05,230 Muidu on üsna kasutu printimise funktsioon, kui 1228 00:50:05,230 --> 00:50:06,480 see teeb sama asja. 1229 00:50:06,480 --> 00:50:07,970 Kui see alati prindib David või midagi 1230 00:50:07,970 --> 00:50:09,500 meelevaldne kogu aeg. 1231 00:50:09,500 --> 00:50:11,540 Nii printf mõttekas olla argument. 1232 00:50:11,540 --> 00:50:14,240 GetString ei ole tegelikult vaja argument, sest ma tahtsin 1233 00:50:14,240 --> 00:50:16,700 saada stringi kasutaja ja see on kasutaja, kes läheb 1234 00:50:16,700 --> 00:50:19,580 pakkumise dünaamikat kirjutades erinevaid tähti 1235 00:50:19,580 --> 00:50:20,850 iga kord klaviatuuri. 1236 00:50:20,850 --> 00:50:23,140 >> Mis siis getString ei lõpuks? 1237 00:50:23,140 --> 00:50:25,080 Mõtle seda nagu see väike must kast. 1238 00:50:25,080 --> 00:50:29,340 Ja see must kast ei võta sisend, aga kui sa paugu 1239 00:50:29,340 --> 00:50:33,240 , see sülitab välja stringi et kasutaja on kirjutatud sisse 1240 00:50:33,240 --> 00:50:36,660 Ja asjaolu, et seal on võrdusmärk seal tähendab võtta 1241 00:50:36,660 --> 00:50:39,890 Mis on sülitama paremale ja hoidke seda sees 1242 00:50:39,890 --> 00:50:41,390 Mis on vasakul. 1243 00:50:41,390 --> 00:50:43,470 Nii võrdusmärk siin, siis tegelikult ei tähenda 1244 00:50:43,470 --> 00:50:46,490 võrdsuse, see pigem tehniliselt tähendab loovutamisega. 1245 00:50:46,490 --> 00:50:49,330 Võtke väärtus paremal, ja pane see 1246 00:50:49,330 --> 00:50:51,050 muutuja vasakul. 1247 00:50:51,050 --> 00:50:52,820 Nii ongi kõik, mis seal toimub. 1248 00:50:52,820 --> 00:50:55,640 >> Nüüd joon 7, me nõuame printf. 1249 00:50:55,640 --> 00:50:58,170 Nii printf loodetavasti muutub vähe igav nüüd. 1250 00:50:58,170 --> 00:50:59,530 Nii et printida vormindatud stringi. 1251 00:50:59,530 --> 00:51:00,440 Mis nöör? 1252 00:51:00,440 --> 00:51:05,460 Prindi välja, "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 Olgu, nii et mida ma tahan plug-in for% s? 1255 00:51:10,470 --> 00:51:12,960 Sõna otseses mõttes, olenemata salvestatakse s. 1256 00:51:12,960 --> 00:51:15,570 Nii et sel juhul vähe meelerahu vaadata, kui palju argumente ei 1257 00:51:15,570 --> 00:51:16,820 printf võtta? 1258 00:51:19,860 --> 00:51:21,110 Okei, ma kuulsin, et üks. 1259 00:51:23,840 --> 00:51:26,330 Ma kuulsin jälle. 1260 00:51:26,330 --> 00:51:27,730 Kaks, ma kuulsin kaks. 1261 00:51:27,730 --> 00:51:29,920 Ja kuidas umbes kolm? 1262 00:51:29,920 --> 00:51:30,450 Okei, kolm? 1263 00:51:30,450 --> 00:51:30,930 Suurepärane. 1264 00:51:30,930 --> 00:51:33,170 Kolm võimalikku vastust, vaid üks neist on õige. 1265 00:51:33,170 --> 00:51:36,390 Nii et argumendid uuesti mõjutamiseks funktsioon. 1266 00:51:36,390 --> 00:51:39,380 Varem printf ei võtta ainult üks argument. 1267 00:51:39,380 --> 00:51:42,260 "Hello World" oli üks argument. 1268 00:51:42,260 --> 00:51:45,190 Kuid nüüd, märkate, kui see koma on. 1269 00:51:45,190 --> 00:51:49,600 See koma on väljaspool quote / Tsitaat lõppeb, mis tähendab, 1270 00:51:49,600 --> 00:51:52,170 hei printf, siit tuleb teine ​​argument. 1271 00:51:52,170 --> 00:51:54,240 >> Nii komaga kõige programmeerimiskeeled 1272 00:51:54,240 --> 00:51:57,300 Eraldage argumendid. 1273 00:51:57,300 --> 00:51:59,600 Nii et vastus on siin kindlasti ei ole üks, sest 1274 00:51:59,600 --> 00:52:00,390 on see koma. 1275 00:52:00,390 --> 00:52:03,680 Nii minimaalselt printf ilmselt võtta kaks 1276 00:52:03,680 --> 00:52:04,940 argumendid seekord. 1277 00:52:04,940 --> 00:52:07,050 Aga võimaluse trikiga küsimus siin on, mida 1278 00:52:07,050 --> 00:52:07,990 selle koma? 1279 00:52:07,990 --> 00:52:11,260 Kas see tähendab, et seal on tegelikult kolm argumenti? 1280 00:52:11,260 --> 00:52:13,820 See, see ja see. 1281 00:52:13,820 --> 00:52:18,820 Nii et ei, sest see koma on sees hinnapakkumisi, mis 1282 00:52:18,820 --> 00:52:20,890 tähendab see on tõesti ainult esteetiline inglise keelt. 1283 00:52:20,890 --> 00:52:23,180 See on midagi pistmist arvu 1284 00:52:23,180 --> 00:52:24,890 argumendid selles programmis. 1285 00:52:24,890 --> 00:52:27,670 Nii et see koma on väljaspool jutumärgid. 1286 00:52:27,670 --> 00:52:28,850 Ja siis tagastab 0. 1287 00:52:28,850 --> 00:52:30,980 Praegu teeme lihtsalt omamoodi võtta see üks usu 1288 00:52:30,980 --> 00:52:34,460 täna, ja lihtsalt tean, et kui funktsioonid on teinud täidesaatva 1289 00:52:34,460 --> 00:52:37,950 rida koodi, üldiselt peaksid tagasi mingi väärtus. 1290 00:52:37,950 --> 00:52:42,010 Sellisel juhul lihtsalt sellepärast peamised peab tagastama int, 1291 00:52:42,010 --> 00:52:44,320 see on lihtsalt viis keele C töötab. 1292 00:52:44,320 --> 00:52:47,040 >> Nii et kuna midagi läks valesti, tundub selle programmi 1293 00:52:47,040 --> 00:52:49,960 hea küll, ma lihtsalt kõva kodeeritud return 0. 1294 00:52:49,960 --> 00:52:52,980 Aga vastupidi, ja ma lähen kirjutan seda pseudo kood 1295 00:52:52,980 --> 00:52:55,020 nüüd palju nagu Joosep tegid, kui me tegime sokk 1296 00:52:55,020 --> 00:52:56,220 Näiteks eelmisel nädalal. 1297 00:52:56,220 --> 00:53:00,440 Kui midagi läks valesti - see ei ole tegelik kood - läks 1298 00:53:00,440 --> 00:53:06,570 vale, siis tagasi, ütleme, 1. 1299 00:53:06,570 --> 00:53:08,770 Teine tagasi 0. 1300 00:53:08,770 --> 00:53:10,070 Nii et see on, kuhu me läheme sellega. 1301 00:53:10,070 --> 00:53:12,090 See ei ole tegelik C kood, lihtsalt pseudokoodi. 1302 00:53:12,090 --> 00:53:14,010 Aga see, kuidas sa võiksid tagasi 1303 00:53:14,010 --> 00:53:15,580 erinevaid võimalikke väärtusi. 1304 00:53:15,580 --> 00:53:19,520 Aga nüüd Ma lähen edasi minna ja tagastab 0. 1305 00:53:19,520 --> 00:53:24,410 Olgu, mingeid küsimusi senised süntaks, funktsioonid 1306 00:53:24,410 --> 00:53:25,000 vms? 1307 00:53:25,000 --> 00:53:26,280 Jah, tagasi. 1308 00:53:26,280 --> 00:53:27,530 >> Sihtrühm: [kuuldamatu] 1309 00:53:30,510 --> 00:53:32,210 DAVID Malan: Kas te räägite veidi valjem? 1310 00:53:32,210 --> 00:53:34,325 Miks see programm return 0, ja? 1311 00:53:34,325 --> 00:53:35,575 Sihtrühm: [kuuldamatu] 1312 00:53:39,910 --> 00:53:43,450 DAVID Malan: Oh, see on sellepärast, et ma sain laisk, vabandust. 1313 00:53:43,450 --> 00:53:48,290 No hea akadeemiline vastus, return 0. 1314 00:53:48,290 --> 00:53:52,690 Võin liiki päästa seda, öeldes tehniliselt C, kui peamine 1315 00:53:52,690 --> 00:53:55,900 selgesõnaliselt ei tagasta väärtus, 0 tagastatakse 1316 00:53:55,900 --> 00:53:57,730 automaatselt teile. 1317 00:53:57,730 --> 00:54:00,290 Kumb on tõsi, ma ei ole lihtsalt peitis. 1318 00:54:00,290 --> 00:54:03,270 Aga ma oleks pidanud tegema seda nii. 1319 00:54:03,270 --> 00:54:05,250 No huvitav Buffee kui peale minu viga. 1320 00:54:05,250 --> 00:54:06,170 Jah? 1321 00:54:06,170 --> 00:54:08,470 >> Sihtrühm: Tavaliselt, kui sa kirjutad tühine, mis tähendab, et sa 1322 00:54:08,470 --> 00:54:10,770 ei tule midagi. 1323 00:54:10,770 --> 00:54:11,420 DAVID Malan: Õige. 1324 00:54:11,420 --> 00:54:15,800 Kui selle asemel, saab määrata nime ees funktsioon, 1325 00:54:15,800 --> 00:54:18,590 Näiteks siin, tühine, siis funktsioon 1326 00:54:18,590 --> 00:54:20,480 ei tagasta midagi. 1327 00:54:20,480 --> 00:54:25,210 Ja seetõttu tahaksin öelda, tagastamist või üldse mitte midagi, 1328 00:54:25,210 --> 00:54:26,730 ja mis oleks kooskõlas. 1329 00:54:26,730 --> 00:54:27,750 Ja me tuleme tagasi selle. 1330 00:54:27,750 --> 00:54:31,030 Ja lihtsalt FYI, üks saak õpiraskustega 1331 00:54:31,030 --> 00:54:33,450 programmeerimise maailmas, mis on sadu raamatuid ja 1332 00:54:33,450 --> 00:54:36,180 sadu veebilehed seal on siis alati 1333 00:54:36,180 --> 00:54:38,220 vaata teistsugune süntaks erinevates raamatud 1334 00:54:38,220 --> 00:54:40,220 erinevad inimesed. 1335 00:54:40,220 --> 00:54:42,100 Aru me teeme oma parima, lõigete ja loengud olema 1336 00:54:42,100 --> 00:54:42,960 järjepidev. 1337 00:54:42,960 --> 00:54:46,660 Aga mõnikord näed vastuoluliste süntaks. 1338 00:54:46,660 --> 00:54:48,540 Nii et kui kahtled, siis küsi. 1339 00:54:48,540 --> 00:54:51,100 Ja üldiselt, me hoolitseme loengute ja sektsioonideks 1340 00:54:51,100 --> 00:54:53,710 peaaegu alati esitab selle õigel viisil. 1341 00:54:53,710 --> 00:54:56,070 Ja ma ütlen peaaegu alati, sest näide. 1342 00:54:56,070 --> 00:54:56,860 Muud küsimused? 1343 00:54:56,860 --> 00:55:01,590 >> Sihtrühm: Kas% s eksisteerida väljaspool seadet? 1344 00:55:01,590 --> 00:55:03,710 DAVID Malan: Kas% s olemas seadme välispinda? 1345 00:55:03,710 --> 00:55:04,180 Jah. 1346 00:55:04,180 --> 00:55:07,760 Nii et% s on pistmist C. asjaolu, et me kasutame seda 1347 00:55:07,760 --> 00:55:10,290 Seadme põhimõtteliselt ei ole midagi pistmist 1348 00:55:10,290 --> 00:55:12,080 tunnuseid keel me kasutame. 1349 00:55:12,080 --> 00:55:15,990 Tõepoolest, eelmisel nädalal, kui me kasutasime mu Mac, ma kirjutasin 1350 00:55:15,990 --> 00:55:17,160 C koodi oma Mac. 1351 00:55:17,160 --> 00:55:20,020 Ma oleks võinud kasutada% s oma Mac, ja sa võid seda kasutada 1352 00:55:20,020 --> 00:55:22,400 Windowsi arvuti kui installite kompilaator, nagu 1353 00:55:22,400 --> 00:55:24,070 Visual Studio Microsoft. 1354 00:55:24,070 --> 00:55:24,990 Nii et% s. 1355 00:55:24,990 --> 00:55:27,860 Kõik, mida me teeme sees see aken täna peab 1356 00:55:27,860 --> 00:55:31,140 pistmist C. Ja põhimõtteliselt midagi pistmist 1357 00:55:31,140 --> 00:55:33,450 operatsioonisüsteemi küsimus. 1358 00:55:33,450 --> 00:55:35,900 Seevastu must ja valge terminaliakent - kui 1359 00:55:35,900 --> 00:55:40,160 Ma olen masinakirja asjad nagu ls, ja rm, ja cd - 1360 00:55:40,160 --> 00:55:42,020 et on pistmist operatsioonisüsteem ja 1361 00:55:42,020 --> 00:55:43,562 navigeerimise ümber. 1362 00:55:43,562 --> 00:55:44,546 Jah. 1363 00:55:44,546 --> 00:55:46,520 Sihtrühm: Ma mõtlesin raamatukogu CS50 raamatukogu. 1364 00:55:46,520 --> 00:55:49,960 DAVID Malan: Okei, nii et kui sa mõtled märksõna string, mis 1365 00:55:49,960 --> 00:55:52,460 eksisteerib üksnes CS50 raamatukogu õige. 1366 00:55:52,460 --> 00:55:55,350 See ei eksisteeri C ise, ja tõepoolest paari 1367 00:55:55,350 --> 00:55:58,220 Nädalate me visata CS50 raamatukogu ja alustada 1368 00:55:58,220 --> 00:56:02,290 asju nullist ise, kui nii võib öelda. 1369 00:56:02,290 --> 00:56:02,940 Muud küsimused? 1370 00:56:02,940 --> 00:56:04,577 Jah. 1371 00:56:04,577 --> 00:56:05,827 >> Sihtrühm: [kuuldamatu] 1372 00:56:09,470 --> 00:56:10,160 DAVID Malan: Hea küsimus. 1373 00:56:10,160 --> 00:56:11,720 Kas käsud tõstutundlik? 1374 00:56:11,720 --> 00:56:13,710 Ja las ma teen vahet siin. 1375 00:56:13,710 --> 00:56:15,840 Nii et käsud on üldiselt asjad me kirjutame kell 1376 00:56:15,840 --> 00:56:17,940 akna allosas, terminali aknas. 1377 00:56:17,940 --> 00:56:21,770 Midagi siin üleval oleks avaldusi või C-koodi. 1378 00:56:21,770 --> 00:56:24,490 Aga mõlemal juhul vastus on sama, jah. 1379 00:56:24,490 --> 00:56:27,800 Mõlemad keskkonnad, C-koodi ülaosas ja 1380 00:56:27,800 --> 00:56:29,910 operatsioonisüsteemi käsureal kell 1381 00:56:29,910 --> 00:56:31,440 alt, on tõstutundlik. 1382 00:56:31,440 --> 00:56:33,830 Nii et peate ära getString kapitaliga G 1383 00:56:33,830 --> 00:56:37,050 kapitali S. Peate kirjutama printf kõik väiketähed. 1384 00:56:37,050 --> 00:56:39,520 Peate tippima ls kõik väiketähed. 1385 00:56:39,520 --> 00:56:43,260 Nii et peaaegu igas olukorras see semester, juhul tuleb aga 1386 00:56:43,260 --> 00:56:44,820 Tegelikult asi. 1387 00:56:44,820 --> 00:56:46,148 Jah. 1388 00:56:46,148 --> 00:56:47,398 >> Sihtrühm: [kuuldamatu] 1389 00:56:54,770 --> 00:56:56,480 DAVID Malan: Ah, et okei, aga kui me pidime fail 1390 00:56:56,480 --> 00:56:57,840 nimetatakse hello.d. 1391 00:56:57,840 --> 00:57:00,090 Nii selgub D programmeerimiskeelt. 1392 00:57:00,090 --> 00:57:02,790 Ja nii mõningatel juhtudel me võiks tegelikult kirjutada programmi 1393 00:57:02,790 --> 00:57:06,190 et faili ja on see koostatud, et mood. 1394 00:57:06,190 --> 00:57:09,090 Me saame ja tegelikult, Lühike vastus on, ma ei tea. 1395 00:57:09,090 --> 00:57:10,440 Nii et me ei kavatse seda teha. 1396 00:57:10,440 --> 00:57:13,040 Lubage mul minna ja luua uus fail. 1397 00:57:13,040 --> 00:57:15,580 Ja spin siin, ausalt üldiselt on alati kahtlus 1398 00:57:15,580 --> 00:57:18,130 see semester, ja teil on oma seadme või arvuti 1399 00:57:18,130 --> 00:57:20,030 avada, minna ja proovida midagi. 1400 00:57:20,030 --> 00:57:23,740 Nii et ma lähen salvestada faili nimega hello.d. 1401 00:57:23,740 --> 00:57:25,010 Salvesta see. 1402 00:57:25,010 --> 00:57:29,070 Ja ma lähen jooksma teha tere Enter. 1403 00:57:29,070 --> 00:57:31,660 Tundus, et järeldada, et C oli tõenäoliselt 1404 00:57:31,660 --> 00:57:35,920 kui d sel juhul. 1405 00:57:35,920 --> 00:57:38,046 Muud küsimused. 1406 00:57:38,046 --> 00:57:40,456 Jah. 1407 00:57:40,456 --> 00:57:41,706 >> Sihtrühm: [kuuldamatu] 1408 00:57:48,170 --> 00:57:49,837 DAVID Malan: Okei, ütleme, et veel kord. 1409 00:57:49,837 --> 00:57:51,087 Sihtrühm: [kuuldamatu] 1410 00:58:04,250 --> 00:58:05,780 DAVID Malan: Kuidas minna umbes diagnoosimiseks et või 1411 00:58:05,780 --> 00:58:06,380 vigade et? 1412 00:58:06,380 --> 00:58:08,800 Nii et kõige tõenäolisem, sest nad on erinevates keeltes, 1413 00:58:08,800 --> 00:58:10,280 tõenäoliselt sa saaksid täielikult 1414 00:58:10,280 --> 00:58:11,580 erinevat programmi väljastada. 1415 00:58:11,580 --> 00:58:14,140 Sa saaksid täiesti erinevaid veateateid. 1416 00:58:14,140 --> 00:58:16,750 Ja ka lihtsalt poolest disaini, oleks ilmselt oleks 1417 00:58:16,750 --> 00:58:19,140 kehv kujundus otsus olema kirjalikult kahe erineva 1418 00:58:19,140 --> 00:58:21,510 keelte peaaegu identselt nimega faile, 1419 00:58:21,510 --> 00:58:23,000 täpselt sama kataloog, kasutades 1420 00:58:23,000 --> 00:58:24,550 automaatne vahend nagu teha. 1421 00:58:24,550 --> 00:58:27,750 Ma võin ka tagurdamise ja ütleme 15 aastat seda teed, 1422 00:58:27,750 --> 00:58:29,190 kunagi teinud seda viga. 1423 00:58:29,190 --> 00:58:30,030 Võiks juhtuda. 1424 00:58:30,030 --> 00:58:31,190 Aga seal on lihtsalt erinevad, ma arvan, 1425 00:58:31,190 --> 00:58:33,180 logistilise kaitsemehhanismid paigas. 1426 00:58:33,180 --> 00:58:35,440 Plus veateated, mis võivad tekkida, et oleks 1427 00:58:35,440 --> 00:58:37,260 lõpuks paljastada, mis probleem on. 1428 00:58:37,260 --> 00:58:39,120 Aga võimalik nurgas puhul. 1429 00:58:39,120 --> 00:58:41,730 >> Olgu, olgem tutvustada vaid paar muud 1430 00:58:41,730 --> 00:58:45,600 funktsioonid siin nüüd, et saaksime alustada hoone üles võetud rohkem 1431 00:58:45,600 --> 00:58:47,140 ja keerulisem programm. 1432 00:58:47,140 --> 00:58:49,000 Nii et kõigepealt matemaatikat. 1433 00:58:49,000 --> 00:58:51,520 Nii matemaatika näited on lihtsalt selline lihtne esimesel nädalal. 1434 00:58:51,520 --> 00:58:53,560 See ei tähenda, et kõik programmid on umbes 1435 00:58:53,560 --> 00:58:54,390 matemaatika. 1436 00:58:54,390 --> 00:58:57,890 Kindlasti mõista erinevaid funktsioone 1437 00:58:57,890 --> 00:58:59,610 matemaatika, algebra eelkõige on 1438 00:58:59,610 --> 00:59:00,330 üsna tähtsusetud. 1439 00:59:00,330 --> 00:59:03,010 Aastal kõrgem CS klassid, Lineaaralgebra, 1440 00:59:03,010 --> 00:59:03,920 calculus, jms. 1441 00:59:03,920 --> 00:59:06,500 Aga siis leiad kõige kohta, mida me teeme sel semestril vähendab ole 1442 00:59:06,500 --> 00:59:09,230 et matemaatika, ja kindlasti mitte aritmeetika, iseenesest, kuid tegelikult 1443 00:59:09,230 --> 00:59:11,570 lihtsalt loogika ja hoolikat mõtlemist. 1444 00:59:11,570 --> 00:59:14,310 Ja nii see seos, et arvutiteadus on pikka aega olnud, 1445 00:59:14,310 --> 00:59:16,570 eriti keskkooli tasemel, matemaatika, on 1446 00:59:16,570 --> 00:59:17,370 veidi eksitav. 1447 00:59:17,370 --> 00:59:20,090 Kuna enamik programme, mis me kirjutame, tõesti, on 1448 00:59:20,090 --> 00:59:23,290 omamoodi kõrgema ja keskenduda probleemide lahendamisele, et 1449 00:59:23,290 --> 00:59:26,410 Kindlasti võiks kasutada mõningaid liitmine, lahutamine ja erinevate 1450 00:59:26,410 --> 00:59:28,650 matemaatilisi valemeid vms, 1451 00:59:28,650 --> 00:59:30,860 kuid lõpus päeval, see on umbes mõelda ja mitte 1452 00:59:30,860 --> 00:59:33,240 lihtsalt rakendada, mida sa oleks võinud teha nagu TI 1453 00:59:33,240 --> 00:59:35,050 kalkulaator keskkoolis. 1454 00:59:35,050 --> 00:59:38,410 >> Nii, et ütles, lähme nüüd midagi nende 1455 00:59:38,410 --> 00:59:40,980 matemaatilisi tehteid on küll olemas, et saaksime reisi 1456 00:59:40,980 --> 00:59:43,950 üle mõned aluseks olevad aspektid programmeerimine, või 1457 00:59:43,950 --> 00:59:48,930 Sel juhul C. Seega on, nagu CS50 raamatukogu soovitas, 1458 00:59:48,930 --> 00:59:51,520 ja täna me kasutame ainult getString - ja hetke pärast 1459 00:59:51,520 --> 00:59:52,940 ilmselt üks teine ​​funktsioon - 1460 00:59:52,940 --> 00:59:55,380 kuid on olemas eri tüüpi andmeid arvuti. 1461 00:59:55,380 --> 00:59:58,550 Aasta lõpus päeval, arvutid tean vaid 0. ja 1s. 1462 00:59:58,550 --> 01:00:01,880 Aga mäletate, et eelmisel nädalal rääkisime binaarne süsteem 1463 01:00:01,880 --> 01:00:05,000 esindavad numbrid, nagu number 0 ja 1 ja 2, 1464 01:00:05,000 --> 01:00:07,480 kõik teed edasi kuni 8, nagu Nate video. 1465 01:00:07,480 --> 01:00:08,840 Ja siis me saame loota palju suurem kui me 1466 01:00:08,840 --> 01:00:10,000 tegid laval siin. 1467 01:00:10,000 --> 01:00:15,660 Aga kui sa tahad esindada mitte ainult numbrid, vaid tähed, 1468 01:00:15,660 --> 01:00:18,240 meil, inimestel, on tulnud välja mõned suvalise 1469 01:00:18,240 --> 01:00:21,180 konventsioonid, mille kohaselt juhul, kui lõpus päeval kõik minu arvutis 1470 01:00:21,180 --> 01:00:24,260 on on suutlikkus väljendada 0. ja 1s, hästi Parem 1471 01:00:24,260 --> 01:00:27,990 alustada standardiseerimiseks mustrid 0. ja 1s, mis esindavad 1472 01:00:27,990 --> 01:00:28,800 erinevaid asju. 1473 01:00:28,800 --> 01:00:32,370 Muster 0. ja 1s, mis tähistab täht. 1474 01:00:32,370 --> 01:00:34,840 Mustrid 0. ja 1s, mis esindavad kirja z. 1475 01:00:34,840 --> 01:00:37,600 Mustrid 0. ja 1s, mis esindavad värv sinine, või 1476 01:00:37,600 --> 01:00:38,600 punane, vms. 1477 01:00:38,600 --> 01:00:42,360 Me peame kasutama kõiki neid 0. ja 1s väljendada end 1478 01:00:42,360 --> 01:00:45,140 erinevates kontekstides, erinevalt, mis ei ole 1479 01:00:45,140 --> 01:00:46,470 tingimata numbreid. 1480 01:00:46,470 --> 01:00:51,150 >> Nii nii esindus-, C on eri tüüpi andmeid, 1481 01:00:51,150 --> 01:00:52,550 ja me oleme näinud ühte neist siiani. 1482 01:00:52,550 --> 01:00:54,940 Nägime int, ja teate mis mitte ekraanil 1483 01:00:54,940 --> 01:00:56,140 praegu on string. 1484 01:00:56,140 --> 01:00:58,550 String ei, tegelikult olemas C. Jällegi, see on 1485 01:00:58,550 --> 01:01:00,610 lihtsustamine Me esineme esimest 1486 01:01:00,610 --> 01:01:01,570 Paar nädalat. 1487 01:01:01,570 --> 01:01:03,770 Char on eristatav. 1488 01:01:03,770 --> 01:01:07,050 Ujuk on reaalne number, koma ja numbrid 1489 01:01:07,050 --> 01:01:09,066 vasakul ja paremal pool. 1490 01:01:09,066 --> 01:01:16,040 Topelt ongi, neile selja enne tausta? 1491 01:01:16,040 --> 01:01:19,720 Nii et topelt on kaks korda midagi. 1492 01:01:19,720 --> 01:01:21,240 Lisab kaks korda nii palju täpsust. 1493 01:01:21,240 --> 01:01:22,440 Mida see tähendab? 1494 01:01:22,440 --> 01:01:26,090 Nii et kõik need juhtumid, maailm on omamoodi standardiseeritud 1495 01:01:26,090 --> 01:01:27,960 mitu bitti kasutatakse esindama 1496 01:01:27,960 --> 01:01:29,160 kõik need asjad. 1497 01:01:29,160 --> 01:01:31,590 Nii et kui olete jälginud Nate'i ASCII video juba osa 1498 01:01:31,590 --> 01:01:36,170 kohta pset 0, või hiljem sel nädalal siis on teil ilmselt teavad 1499 01:01:36,170 --> 01:01:37,450 et ASCII - 1500 01:01:37,450 --> 01:01:38,610 iseloomu esindused - 1501 01:01:38,610 --> 01:01:40,670 kasutada mitu bitti? 1502 01:01:40,670 --> 01:01:43,410 Ja võite isegi mäletan meie demo eelmisel nädalal sellest, kuidas 1503 01:01:43,410 --> 01:01:45,500 paljud inimesed olid laval. 1504 01:01:45,500 --> 01:01:46,840 Nii et 7 või 8, tavaliselt. 1505 01:01:46,840 --> 01:01:49,230 Nii et üldiselt 8, ja seal on midagi, mida nimetatakse laiendatud 1506 01:01:49,230 --> 01:01:51,240 ASCII, mis kasutab kõik 8 bitti, asemel 7. 1507 01:01:51,240 --> 01:01:54,710 Aga üldiselt me ​​räägime volitusi 2, seega sel juhul, 8. 1508 01:01:54,710 --> 01:01:58,900 Nii char programmeerimiskeeles on tavaliselt 8 bitti. 1509 01:01:58,900 --> 01:02:02,550 Nii int on tavaliselt 32 bitti. 1510 01:02:02,550 --> 01:02:04,810 Ujuk on tavaliselt 32 bitti. 1511 01:02:04,810 --> 01:02:08,060 Topelt tavaliselt 64 bitti. 1512 01:02:08,060 --> 01:02:08,870 Ja mida see tähendab? 1513 01:02:08,870 --> 01:02:11,500 See tähendab, et saate esindavad suuremaid numbrid, või juhul, 1514 01:02:11,500 --> 01:02:15,490 tegelik arv, sul võib olla palju rohkem numbreid pärast 1515 01:02:15,490 --> 01:02:16,240 kümnendkohani. 1516 01:02:16,240 --> 01:02:18,980 Palju rohkem täpsust, et sellisel juhul. 1517 01:02:18,980 --> 01:02:21,780 Nüüd pikk pikk on kahjuks nime. 1518 01:02:21,780 --> 01:02:24,340 Nii et seal on int, mis on 32 bitti. 1519 01:02:24,340 --> 01:02:29,800 Seal on pikk, mis on nope, 32 bitti. 1520 01:02:29,800 --> 01:02:32,610 Ja pikka, mis on 64 bitti. 1521 01:02:32,610 --> 01:02:34,830 Kuid mõned neist on kontekstitundlikud, see sõltub 1522 01:02:34,830 --> 01:02:36,190 milliseid arvuti sul on. 1523 01:02:36,190 --> 01:02:40,510 Nii et üldiselt me ​​täpsustada, kodutöö või viktoriini kui 1524 01:02:40,510 --> 01:02:41,180 see tegelikult oluline on. 1525 01:02:41,180 --> 01:02:43,080 Aga point on seal kõik need erinevad 1526 01:02:43,080 --> 01:02:44,250 esindused siin. 1527 01:02:44,250 --> 01:02:45,950 >> Nii et olgem tegelikult sukelduda programm. 1528 01:02:45,950 --> 01:02:48,300 Selle asemel, et kirjutada see üks nullist, lase mul minna 1529 01:02:48,300 --> 01:02:50,940 ja avada alates tänasest lähtekoodi - kõik, mis on 1530 01:02:50,940 --> 01:02:54,980 internetis - kui soovite käpard umbes online või tulu 1531 01:02:54,980 --> 01:02:57,120 Kolmapäeval seadme arvuti juhiseid 1532 01:02:57,120 --> 01:02:59,160 jaoks, mis ühendaksid käigus kodulehte. 1533 01:02:59,160 --> 01:03:00,830 Siin on super lihtne programm. 1534 01:03:00,830 --> 01:03:02,520 Aga see sai natuke midagi uut ülaosas et 1535 01:03:02,520 --> 01:03:03,650 meil ei olnud enne. 1536 01:03:03,650 --> 01:03:05,800 Palju sinine rida teksti. 1537 01:03:05,800 --> 01:03:08,410 Nii et need sinised jooned kujutavad kommentaare. 1538 01:03:08,410 --> 01:03:10,620 Nii et see on üsna kasulik programm suutma kirjutada 1539 01:03:10,620 --> 01:03:13,160 mõned märkused ise või kolleegide või sõpradega, või 1540 01:03:13,160 --> 01:03:15,700 õpetamise stipendiaatide et mingisugune kirjeldada, mis siin toimub 1541 01:03:15,700 --> 01:03:18,500 seda faili, kuid ei ole midagi pistmist C koodi ise. 1542 01:03:18,500 --> 01:03:20,860 Midagi pistmist programm funktsionaalselt, see on lihtsalt 1543 01:03:20,860 --> 01:03:21,760 esteetika. 1544 01:03:21,760 --> 01:03:24,580 Niisiis, kuidas sa seda teha C on teil üldiselt alustada oma 1545 01:03:24,580 --> 01:03:29,860 märkusi / * ja sa lõpuks oma märkusi 1546 01:03:29,860 --> 01:03:31,270 * /. 1547 01:03:31,270 --> 01:03:34,140 Ja kui sa oled tõesti anal ja juhtida omamoodi pilte, 1548 01:03:34,140 --> 01:03:35,870 siis paneksin kogu palju tähti, sinust saaks 1549 01:03:35,870 --> 01:03:36,970 väikest kasti niimoodi. 1550 01:03:36,970 --> 01:03:37,990 Kuid ükski, et küsimusi. 1551 01:03:37,990 --> 01:03:40,230 Ainuke asi mis loeb, on kõige esimene 1552 01:03:40,230 --> 01:03:41,620 ja kõige viimane. 1553 01:03:41,620 --> 01:03:43,820 See on see, mida nimetatakse mitmeliiniline kommentaari. 1554 01:03:43,820 --> 01:03:46,610 Ja see on lihtsalt inimeste konventsiooni tihti tähed ja kast 1555 01:03:46,610 --> 01:03:48,420 asjad niimoodi, kui sul on palju vaba aega. 1556 01:03:48,420 --> 01:03:51,550 >> Nii et pärast olete kirjutanud mõned kommentaarid, üldiselt, tule 1557 01:03:51,550 --> 01:03:53,160 tegelik julgust programmi. 1558 01:03:53,160 --> 01:03:55,630 Siin on meie tuttav # include . 1559 01:03:55,630 --> 01:04:00,410 Ja just kiire, see on vajalik või ei ole vaja? 1560 01:04:00,410 --> 01:04:02,860 Sihtrühm: Vajalikud. 1561 01:04:02,860 --> 01:04:04,390 DAVID Malan: Nii see tegelikult ei ole vaja. 1562 01:04:04,390 --> 01:04:07,070 Miks on aga see ei ole vajalik? 1563 01:04:07,070 --> 01:04:08,170 Seega puudub printf. 1564 01:04:08,170 --> 01:04:08,510 Tõepoolest. 1565 01:04:08,510 --> 01:04:10,470 Kõik me teeme on see programm on matemaatika. 1566 01:04:10,470 --> 01:04:11,640 Nii et ma ei saa tegelikult kustutada. 1567 01:04:11,640 --> 01:04:14,330 Nii et sa ei pea alati sisaldama midagi 1568 01:04:14,330 --> 01:04:15,420 ülaosas programmi. 1569 01:04:15,420 --> 01:04:17,020 >> Nii et olgem lihtsustada seda natuke. 1570 01:04:17,020 --> 01:04:18,650 Ja nüüd teate, mis see programm teeb. 1571 01:04:18,650 --> 01:04:19,920 Mitte palju huvi. 1572 01:04:19,920 --> 01:04:21,410 int x = 1. 1573 01:04:21,410 --> 01:04:22,550 Noh, mida see teeb? 1574 01:04:22,550 --> 01:04:25,130 Noh, arvan, et tagasi vaimse mudeli enne. 1575 01:04:25,130 --> 01:04:27,500 Vasakul pool seda väljendit mida teeb? 1576 01:04:31,440 --> 01:04:32,830 Loo ruumi täisarv. 1577 01:04:32,830 --> 01:04:33,930 Nii palju ruumi? 1578 01:04:33,930 --> 01:04:36,980 Noh, me juhtumisi tean nüüd, et see on 32 bitti. 1579 01:04:36,980 --> 01:04:40,070 Varem string oli tehniliselt 32 bitti, kuid rohkem 1580 01:04:40,070 --> 01:04:40,950 kohta, et tulevikus. 1581 01:04:40,950 --> 01:04:42,240 Aga int on 32 bitti. 1582 01:04:42,240 --> 01:04:45,590 Nii et see väljend vasakul siin, int x lihtsalt ütleb hei 1583 01:04:45,590 --> 01:04:48,490 operatsioonisüsteemi, anna mulle 32 bitti RAM - 1584 01:04:48,490 --> 01:04:50,450 muidu tuntud 4 baiti RAM - 1585 01:04:50,450 --> 01:04:53,930 nii et ma ei pane täisarv, et ruumi. 1586 01:04:53,930 --> 01:04:55,330 Mis täisarv sa tahad panna? 1587 01:04:55,330 --> 01:04:56,640 Noh, lihtsalt number 1. 1588 01:04:56,640 --> 01:04:59,530 int y saab 2, teeb täpselt sama asja, kuigi 1589 01:04:59,530 --> 01:05:02,160 arv on suurem, seoses selle ulatuse. 1590 01:05:02,160 --> 01:05:04,790 Number ise on ikka lihtsalt 32 bitti. 1591 01:05:04,790 --> 01:05:06,520 See on lihtsalt muster bitti on erinevad 1592 01:05:06,520 --> 01:05:08,260 esindada 1 vs 2. 1593 01:05:08,260 --> 01:05:11,980 int z nüüd ütleb anna mulle veel 32 bitti, nimetame seda z, ja panna 1594 01:05:11,980 --> 01:05:14,210 liitmise 1 ja 2 sinna. 1595 01:05:14,210 --> 01:05:18,050 Nii et nüüd z on arvatavasti ladustamiseks väärtus 3, 1596 01:05:18,050 --> 01:05:19,360 ja siis tagasi 0. 1597 01:05:19,360 --> 01:05:23,020 >> Nüüd on see programm, see teeb midagi huvi? 1598 01:05:23,020 --> 01:05:26,170 Nii see tegelikult ei tee midagi huvitavat, igal 1599 01:05:26,170 --> 01:05:28,450 mõtet, sest miks? See teeb natuke matemaatikat. 1600 01:05:28,450 --> 01:05:30,590 Aga see ei tule vastust, eks. 1601 01:05:30,590 --> 01:05:31,790 See on jälle 0. 1602 01:05:31,790 --> 01:05:33,440 See ei trüki vastus. 1603 01:05:33,440 --> 01:05:35,760 Nii et see programm on täiesti väärtusetu, sest see 1604 01:05:35,760 --> 01:05:36,350 Praegusel kujul. 1605 01:05:36,350 --> 01:05:37,220 See teeb natuke tööd. 1606 01:05:37,220 --> 01:05:39,530 See saab võtta mõne arvu sekundit või mikrosekundites, et 1607 01:05:39,530 --> 01:05:41,510 joosta, aga see tegelikult ei tee midagi 1608 01:05:41,510 --> 01:05:42,770 kasulik inimese. 1609 01:05:42,770 --> 01:05:46,810 >> Nii et olgem tegelikult nüüd avatud math2, kus nüüd olen tegelikult 1610 01:05:46,810 --> 01:05:48,250 trüki tulemus. 1611 01:05:48,250 --> 01:05:51,260 Nii see ka saab tuletada meie eelnevatest näidetest. 1612 01:05:51,260 --> 01:05:54,320 Kui ma tahan teha mõned lihtsad matemaatika, int x = 1, y 1613 01:05:54,320 --> 01:05:56,820 = 2. z on 1 pluss 2 nüüd. 1614 01:05:56,820 --> 01:05:59,240 Mida see läheb välja trükkida ilmselt? 1615 01:05:59,240 --> 01:06:00,120 Lihtsalt 3. 1616 01:06:00,120 --> 01:06:01,590 Nii kiire meelerahu vaadata. 1617 01:06:01,590 --> 01:06:03,830 Lubage mul liikuda selles kataloogis. 1618 01:06:03,830 --> 01:06:06,480 Nii CD source1m. 1619 01:06:06,480 --> 01:06:09,370 Lubage mul minna ja kirjuta teha math2. 1620 01:06:09,370 --> 01:06:11,510 Ei veateateid tuli välja, et andke mulle joosta - 1621 01:06:11,510 --> 01:06:14,800 ei a.out--Ma jooksen math2. Enter. 1622 01:06:14,800 --> 01:06:16,750 Ja tõepoolest, see välja trükkida 3. 1623 01:06:16,750 --> 01:06:18,460 Noh olgem heita pilk variant see. 1624 01:06:18,460 --> 01:06:23,870 Aastal math3.c, meil on nüüd see näide siin. 1625 01:06:23,870 --> 01:06:26,540 >> Nii et see on omamoodi huvitav. 1626 01:06:26,540 --> 01:06:32,000 Nii et see siin, vastust ei hakka 1 jagatud 10 1627 01:06:32,000 --> 01:06:33,910 ja teate ma olen kuulutanud kui sularahaga. 1628 01:06:33,910 --> 01:06:35,200 Miks ma tahan, et see oleks sularahaga? 1629 01:06:35,200 --> 01:06:36,110 Noh, see on vaid murdosa. 1630 01:06:36,110 --> 01:06:37,140 See saab olema reaalne number. 1631 01:06:37,140 --> 01:06:40,970 Nii et see saab olema 0.1, loodetavasti - 10%, käesoleval juhul. 1632 01:06:40,970 --> 01:06:42,610 Ja mida ma siis tahan välja printida? 1633 01:06:42,610 --> 01:06:43,440 Noh, see vastus. 1634 01:06:43,440 --> 01:06:44,760 Noh, olgem tease nende peale esimesena. 1635 01:06:44,760 --> 01:06:47,020 Nii vasakul servas, kuulutada 1636 01:06:47,020 --> 01:06:49,410 float, nimetame seda vastata. 1637 01:06:49,410 --> 01:06:52,280 Paremal pool, ei 1 jagatud 10 ja pane see 1638 01:06:52,280 --> 01:06:54,370 vastata sees muutuja. 1639 01:06:54,370 --> 01:06:56,410 Nüüd on see rida paistab pisut rohkem segasena. 1640 01:06:56,410 --> 01:06:59,440 Aga märgata tuttavaid funktsioone. % Tähendab siin tuleb 1641 01:06:59,440 --> 01:07:00,490 kohatäide. 1642 01:07:00,490 --> 01:07:03,230 f tähendab siin ujukoma väärtus, vaid reaalne 1643 01:07:03,230 --> 01:07:05,490 arvu, midagi koma. 1644 01:07:05,490 --> 01:07:07,330 0,2 tähendab mida? 1645 01:07:07,330 --> 01:07:10,740 Keegi teab eelnevate kogemuste? 1646 01:07:10,740 --> 01:07:12,010 Kaks kohta pärast koma. 1647 01:07:12,010 --> 01:07:14,050 Nii et me pole näinud seda varem, aga see on lihtsalt viis 1648 01:07:14,050 --> 01:07:16,360 kasutades natuke rohkem kontrolli printf ja 1649 01:07:16,360 --> 01:07:20,840 ütlus ei anna mulle 30 punkti peale koma, 1650 01:07:20,840 --> 01:07:22,490 selle asemel mulle vaid 2. 1651 01:07:22,490 --> 01:07:23,960 >> Ja siis lähme edasi ja tee see. 1652 01:07:23,960 --> 01:07:30,160 Nii et matemaatika 3 ja nüüd andke mulle joosta matemaatika 3 Enter. 1653 01:07:30,160 --> 01:07:34,630 Ja see ei ole õige. 1654 01:07:34,630 --> 01:07:37,390 Tundub, et me oleme tulnud meie esimene tõeline viga. 1655 01:07:37,390 --> 01:07:39,400 Noh, võibolla ma lihtsalt ei otsi piisavalt lähedal. 1656 01:07:39,400 --> 01:07:41,960 Nii et lase mul minna siia üles, ja lase mul panna 20 kohaga 1657 01:07:41,960 --> 01:07:43,300 punkt kohti seal. 1658 01:07:43,300 --> 01:07:47,950 Ja las ma kompileerida seda teha math3, joosta. 1659 01:07:47,950 --> 01:07:50,960 Päris kindlasti 1 jagatud 10 ei ole 0. 1660 01:07:50,960 --> 01:07:54,270 Mis siis toimub? 1661 01:07:54,270 --> 01:07:56,740 Noh okei, tegelikult see ei ole pistmist. 1662 01:07:56,740 --> 01:07:57,600 See on hea mõte. 1663 01:07:57,600 --> 01:07:59,140 See on tõesti lihtsalt kokkusattumus 1664 01:07:59,140 --> 01:08:00,220 et me seda teeme. 1665 01:08:00,220 --> 01:08:02,010 Aga lihtsalt tõestada, et see ei ole see, ma tulen 1666 01:08:02,010 --> 01:08:03,160 tagasi midagi juhuslikku. 1667 01:08:03,160 --> 01:08:05,160 Ära tee seda kodus, sest see on lihtsalt vale. 1668 01:08:05,160 --> 01:08:08,000 Aga teha math3, lubage mul kasutada seda. 1669 01:08:08,000 --> 01:08:10,690 Nii et ei ole midagi pistmist sellega, mida ma teen sulle tagasi, vaid peab tegema 1670 01:08:10,690 --> 01:08:11,940 mida ma olen trükkimine. 1671 01:08:11,940 --> 01:08:14,150 Aga ma kuulsin seda siin all. 1672 01:08:14,150 --> 01:08:15,270 Mida? 1673 01:08:15,270 --> 01:08:17,524 Sihtrühm: Nii et me peame kirjutama numbrid 1674 01:08:17,524 --> 01:08:19,680 rajoon - 1675 01:08:19,680 --> 01:08:20,319 >> DAVID Malan: Okei hea. 1676 01:08:20,319 --> 01:08:22,810 Seega on meil vaja kirjutada numbrid osalevad 1677 01:08:22,810 --> 01:08:25,979 rajoon siin kui murdarve ise. 1678 01:08:25,979 --> 01:08:29,359 Nii et probleem on nagu enne: C, kus on palju 1679 01:08:29,359 --> 01:08:31,819 keeles, on eri tüüpi andmeid. 1680 01:08:31,819 --> 01:08:34,600 Ja need andmetüübid, näiteks need siin. 1681 01:08:34,600 --> 01:08:37,430 Ja andmed kõnealuste tooteliikide siin, kui ma tüüpi 1 ja siis ma 1682 01:08:37,430 --> 01:08:40,870 tüüp 10, on ilmselt, mida andmetüüpe? 1683 01:08:40,870 --> 01:08:42,170 Nii et see on tõenäoliselt int, eks? 1684 01:08:42,170 --> 01:08:44,149 See on kindlasti mitte float sest puudub koma 1685 01:08:44,149 --> 01:08:45,460 punkt või midagi sellist. 1686 01:08:45,460 --> 01:08:48,270 Nii et tõesti, mul on int jagatud int. 1687 01:08:48,270 --> 01:08:52,160 >> Nii huvitav asi matemaatika ja arvuti on see, et 1688 01:08:52,160 --> 01:08:54,840 kui sa teed rajoon kasutades täisarvu - 1689 01:08:54,840 --> 01:08:57,310 1 jagatud 10, jah on 0.1. 1690 01:08:57,310 --> 01:09:01,420 Samas, kui sa jagades täisarv poolt täisarv, 1691 01:09:01,420 --> 01:09:06,859 vastus peab ka olema täisarv lihtsalt sellepärast, praeguseks. 1692 01:09:06,859 --> 01:09:08,630 Ja mis tähendas siis? 1693 01:09:08,630 --> 01:09:13,640 Noh, kui vastus on 1 jagatud 10 võrdub 0,1, mis 1694 01:09:13,640 --> 01:09:15,680 arvuti läheb selleks vaja on ma ei tea, kuidas 1695 01:09:15,680 --> 01:09:19,270 esindada 0.1, sest see on Murdarv, ei 1696 01:09:19,270 --> 01:09:21,910 täisarv, see on raiun maha kõik pärast 1697 01:09:21,910 --> 01:09:27,470 Koma ja lihtsalt näitan sulle 0 alguses. 1698 01:09:27,470 --> 01:09:29,540 Ja asjaolu, et see prinditakse ujukoma 1699 01:09:29,540 --> 01:09:31,200 väärtus, see on lihtsalt esteetiline asi. 1700 01:09:31,200 --> 01:09:34,279 See on sellepärast, et ma sundides arvuti printida seda 1701 01:09:34,279 --> 01:09:35,229 Murdarv. 1702 01:09:35,229 --> 01:09:37,720 Ja tõepoolest olen kuulutanud, nagu float, kuid matemaatika on 1703 01:09:37,720 --> 01:09:39,010 toimub siin. 1704 01:09:39,010 --> 01:09:41,859 >> Nii et lubage mul tegelikult määrata see üks päris lihtne. 1705 01:09:41,859 --> 01:09:45,250 Miks ma ei lihtsalt ei 10.0 ja 1.0, kuigi 1706 01:09:45,250 --> 01:09:47,609 tehniliselt ma ei pääse lihtsalt teeme üks neist. 1707 01:09:47,609 --> 01:09:50,630 Nüüd lubage mul minna ja teha math3. 1708 01:09:50,630 --> 01:09:56,350 Lubage mul minna ja nüüd joosta math3, Enter. 1709 01:09:56,350 --> 01:09:57,500 Ja nüüd, oh boy. 1710 01:09:57,500 --> 01:10:00,050 Nüüd on meil uus probleem hoopis. 1711 01:10:00,050 --> 01:10:05,600 Nii et parem, eks, me oleme lähemal 0,1, aga mida täpselt on 1712 01:10:05,600 --> 01:10:06,240 valesti? 1713 01:10:06,240 --> 01:10:08,260 Kui me oleme valetab sulle juba aastaid, eks? 1714 01:10:08,260 --> 01:10:13,660 1 jagatud 10 on tegelikult mitte päris 0.1, et milline 1715 01:10:13,660 --> 01:10:14,700 tegelikult siin toimub? 1716 01:10:14,700 --> 01:10:16,420 Noh saate mingi põhjus selle kaudu loogiliselt. 1717 01:10:16,420 --> 01:10:19,200 Kui arvuti on ainult piiratud kogus RAM alustada 1718 01:10:19,200 --> 01:10:23,530 koos ja tegelikult arvuti ainult kasutab 32 bitti jaoks 1719 01:10:23,530 --> 01:10:26,200 Murdarv, siis loogiline, et koos 1720 01:10:26,200 --> 01:10:29,870 hulga bitti, 32 sel juhul, jah, saate 1721 01:10:29,870 --> 01:10:31,050 esindada palju asju. 1722 01:10:31,050 --> 01:10:33,220 See on tegelikult 4000000000 erinevaid väärtusi saab 1723 01:10:33,220 --> 01:10:38,040 esindatud 32 bitti, 2 32, aga see on siiski piiratud. 1724 01:10:38,040 --> 01:10:40,730 Nii et probleem on olemas lõpmatu arv reaalne 1725 01:10:40,730 --> 01:10:41,370 numbreid, eks. 1726 01:10:41,370 --> 01:10:43,560 Kui sa annad mulle päris mitmeid, saan alati leida teile ühe 1727 01:10:43,560 --> 01:10:46,080 veidi suurem, veidi vähem, lihtsalt tutistamine 1728 01:10:46,080 --> 01:10:47,970 numbrid, mis on pärast koma. 1729 01:10:47,970 --> 01:10:50,870 Nii et kui teil ei ole lõpmatu bittide arv, siis 1730 01:10:50,870 --> 01:10:52,940 ei saa kuidagi esindada lõpmatu 1731 01:10:52,940 --> 01:10:54,800 arvu reaalarvud. 1732 01:10:54,800 --> 01:10:58,090 >> Nii et seal on see omane ebatäpne arvutite ja 1733 01:10:58,090 --> 01:11:00,930 see saab otsa komistada kogu aeg isegi kõige lihtsamaid 1734 01:11:00,930 --> 01:11:02,260 programmid nagu see. 1735 01:11:02,260 --> 01:11:05,640 Aga ka mõnel väga reaalses maailmas probleeme. 1736 01:11:05,640 --> 01:11:07,790 Tegelikult, võtame hetk lihtsalt, kui heita pilk 1737 01:11:07,790 --> 01:11:09,530 midagi, mis tegelikult juhtus tegelikult. 1738 01:11:09,530 --> 01:11:11,620 Me vaatame ainult esimese paari minuti jooksul ning seejärel 1739 01:11:11,620 --> 01:11:13,270 Saadame link internetis. 1740 01:11:13,270 --> 01:11:16,700 Aga see on märk sellest, just see, mida saab valesti minna, üsna 1741 01:11:16,700 --> 01:11:19,680 ausalt, väga traagiline tee, kui neid asju ei ole 1742 01:11:19,680 --> 01:11:23,870 hinnatud või lihtsalt meie, inimesed teevad vigu, kui tegemist on 1743 01:11:23,870 --> 01:11:26,792 selliseid rakendamise üksikasju kaasaegseid arvuteid. 1744 01:11:26,792 --> 01:11:27,284 >> [Video mängimine] 1745 01:11:27,284 --> 01:11:30,730 -Me nüüd tagasi inseneri katastroofide Modern Marvels. 1746 01:11:30,730 --> 01:11:32,200 Arvutid. 1747 01:11:32,200 --> 01:11:34,920 Me kõik oleme tulnud vastu sageli heidutav probleeme 1748 01:11:34,920 --> 01:11:36,750 et minna koos nendega. 1749 01:11:36,750 --> 01:11:40,690 Bugs, viirused ja tarkvara tõrgete on väikesed hinnad 1750 01:11:40,690 --> 01:11:42,550 maksma mugavuse. 1751 01:11:42,550 --> 01:11:45,170 Aga kõrgtehnoloogia ja kiire sõjalise ja ruumi 1752 01:11:45,170 --> 01:11:48,450 programmi rakendusi, väikseim probleem võib olla 1753 01:11:48,450 --> 01:11:52,220 suurendatud võtta katastroof. 1754 01:11:52,220 --> 01:11:56,780 4. juunil 1996, teadlased valmis käivitada mehitamata 1755 01:11:56,780 --> 01:11:58,430 Ariane 5 raketi. 1756 01:11:58,430 --> 01:12:00,750 See vedas teaduslik satelliidid, mille eesmärk on 1757 01:12:00,750 --> 01:12:03,580 täpselt määratleda, kuidas maa magnetvälja 1758 01:12:03,580 --> 01:12:06,900 suhtleb päikese tuul. 1759 01:12:06,900 --> 01:12:10,330 Raketi ehitati Euroopa Kosmoseagentuuri ja 1760 01:12:10,330 --> 01:12:13,450 kergitatud selle rajatise rannikul Prantsuse Guajaana. 1761 01:12:13,450 --> 01:12:16,970 >> -Umbes umbes 37 sekundit arvesse lennu nad esimest korda 1762 01:12:16,970 --> 01:12:19,700 märkasin midagi oli valesti, et pihustid olid 1763 01:12:19,700 --> 01:12:21,590 pööramisega nii nad tõesti ei peaks. 1764 01:12:21,590 --> 01:12:25,020 Umbes 40 sekundit arvesse lennu selgelt sõiduki 1765 01:12:25,020 --> 01:12:27,340 oli probleeme, ja see, kui nad tegid otsuse 1766 01:12:27,340 --> 01:12:28,136 hävitada. 1767 01:12:28,136 --> 01:12:31,450 Range Safety Officer tohutu julgust pressitud 1768 01:12:31,450 --> 01:12:34,160 nuppu, plahvatas rakett enne seda võiks saada 1769 01:12:34,160 --> 01:12:37,470 ohustada avalikku julgeolekut. 1770 01:12:37,470 --> 01:12:40,750 >> -See oli esireis Ariane 5 ning selle 1771 01:12:40,750 --> 01:12:43,990 hävitamine toimus, sest viga põimitud 1772 01:12:43,990 --> 01:12:45,480 raketi tarkvara. 1773 01:12:45,480 --> 01:12:47,660 >> -Probleem Ariane oli see, et see arv 1774 01:12:47,660 --> 01:12:51,245 nõuab 64 bitti väljendada ja nad tahtsid, et muuta see 1775 01:12:51,245 --> 01:12:53,010 kuni 16 bit number. 1776 01:12:53,010 --> 01:12:54,900 Nad eeldasid, et number oli kunagi 1777 01:12:54,900 --> 01:12:56,280 saab olema väga suur, 1778 01:12:56,280 --> 01:12:59,920 et enamik neist numbrit 64 bit number oli 0s. 1779 01:12:59,920 --> 01:13:01,860 Nad eksisid. 1780 01:13:01,860 --> 01:13:04,550 >> -Suutmatus ühe programmi vastu 1781 01:13:04,550 --> 01:13:07,730 selline number, mille teine ​​oli keskmes 1782 01:13:07,730 --> 01:13:08,930 rike. 1783 01:13:08,930 --> 01:13:11,490 Tarkvaraarendus on muutunud väga kulukas osa 1784 01:13:11,490 --> 01:13:13,280 uus tehnoloogia. 1785 01:13:13,280 --> 01:13:16,530 Ariane 4 rakett on olnud väga edukad. 1786 01:13:16,530 --> 01:13:19,100 Nii palju tarkvara loodud Seda kasutati ka 1787 01:13:19,100 --> 01:13:21,050 aastal Ariane 5. 1788 01:13:21,050 --> 01:13:25,530 >> -Peamine probleem oli see, et Ariane 5 oli kiirem, 1789 01:13:25,530 --> 01:13:27,280 kiirendada kiiremini. 1790 01:13:27,280 --> 01:13:30,590 Ja tarkvara ei arvestatud selle eest. 1791 01:13:30,590 --> 01:13:33,060 >> -Hävitamise raketi oli suur rahaline 1792 01:13:33,060 --> 01:13:37,670 katastroof, kõik tänu minut tarkvara viga. 1793 01:13:37,670 --> 01:13:40,750 Kuid see ei olnud esimene kord, andmete konverteerimise probleeme olnud 1794 01:13:40,750 --> 01:13:43,680 vaevavad kaasaegse raketi tehnoloogiat. 1795 01:13:43,680 --> 01:13:44,390 >> DAVID Malan: Me jätame selle nii. 1796 01:13:44,390 --> 01:13:46,870 Aga see on märk sellest, kuidas kohaldatakse isegi mõned 1797 01:13:46,870 --> 01:13:48,750 Nende madalaimal tasemel üksikasjad, et oleme hakanud 1798 01:13:48,750 --> 01:13:50,040 uurima täna on. 1799 01:13:50,040 --> 01:13:52,510 Nii et isegi kui sa saad natuke segane ehk mõned 1800 01:13:52,510 --> 01:13:55,240 süntaks ja arcaneness siin aru, et üle 1801 01:13:55,240 --> 01:13:57,690 perspektiivis oleme me keskendunud ainult sellele, kuidas kohaldatakse seda on 1802 01:13:57,690 --> 01:13:59,530 maailmad kaugemale CS. 1803 01:13:59,530 --> 01:14:00,780 Me näeme teid kolmapäeval.