1 00:00:00,000 --> 00:00:03,353 >> [TÓNLIST spila] 2 00:00:03,353 --> 00:00:04,842 3 00:00:04,842 --> 00:00:06,050 DAVID Malan: Halló, allir. 4 00:00:06,050 --> 00:00:07,777 Þetta er supersection CS50 er. 5 00:00:07,777 --> 00:00:09,860 Úthlutað Deildir mun ekki byrja í aðra viku. 6 00:00:09,860 --> 00:00:11,580 Og svo í dag, ég er hér with-- 7 00:00:11,580 --> 00:00:12,122 >> MARIA: Maria. 8 00:00:12,122 --> 00:00:14,163 DAVID Malan: --to raun taka a líta á vandamál 9 00:00:14,163 --> 00:00:16,110 setja einn, auðvitað er Fyrstu vikur efni, 10 00:00:16,110 --> 00:00:19,780 fá þú stilla með CS50 IDE, dálítið Linux stýrikerfi sem er 11 00:00:19,780 --> 00:00:22,290 í gangi á IDE, sem og líta á sumir af the umskipti 12 00:00:22,290 --> 00:00:25,730 frá grunni til C leiðandi allt að Heimadæmi einn. 13 00:00:25,730 --> 00:00:28,340 >> Svo án frekari fjaðrafok, í vandamál setja einn, 14 00:00:28,340 --> 00:00:30,520 þú ert að fara að vera kynnt CS50 IDE, sem 15 00:00:30,520 --> 00:00:33,230 er þessi vefur-undirstaða forritun umhverfi sem við notum til 16 00:00:33,230 --> 00:00:34,280 til að skrifa forrit. 17 00:00:34,280 --> 00:00:37,280 Það hefur verið hannaður til að líta mjög minnir á dæmigerðum tölvu 18 00:00:37,280 --> 00:00:39,430 Kerfið keyra rekstur Kerfið heitir Linux. 19 00:00:39,430 --> 00:00:42,440 En það er í svokölluðu ský, sem þýðir að allir í bekknum 20 00:00:42,440 --> 00:00:45,100 getur raunverulega hafa hans eða hennar eigin reikning og nota það, eins og heilbrigður. 21 00:00:45,100 --> 00:00:48,950 >> Þannig að flestir af þú sennilega hafa aldrei notað Linux umhverfi áður eða kannski 22 00:00:48,950 --> 00:00:50,447 jafnvel a stjórn lína umhverfi. 23 00:00:50,447 --> 00:00:52,280 Og a stjórn lína umhverfi er öðruvísi. 24 00:00:52,280 --> 00:00:53,200 Það er allt texta. 25 00:00:53,200 --> 00:00:54,730 Það er allt lyklaborðsskipanir. 26 00:00:54,730 --> 00:00:59,480 Og það er engin Músakennsla, engin tákn, án tals gluggar, engar valmyndir. 27 00:00:59,480 --> 00:01:00,212 Það er eingöngu texti. 28 00:01:00,212 --> 00:01:01,920 Svo í fyrstu, það góður af er eins og skref 29 00:01:01,920 --> 00:01:04,434 aftur á bak hvað varðar fágun. 30 00:01:04,434 --> 00:01:06,600 En það endar á því að vera mikið öflugri, vissulega, 31 00:01:06,600 --> 00:01:08,510 fyrir tölvunarfræðingur lokum. 32 00:01:08,510 --> 00:01:09,540 >> Svo skulum taka a líta. 33 00:01:09,540 --> 00:01:13,850 Hér er ég á CS50.io, með sem þú getur skráð þig inn CS50 IDE. 34 00:01:13,850 --> 00:01:17,414 Og líkt í grunni, það er þrjár aðal svæði þessum skjá. 35 00:01:17,414 --> 00:01:20,080 Svo á vinstri hönd hlið, við höfum hvað verður skrá flettitæki. 36 00:01:20,080 --> 00:01:22,413 Og það er þetta folderinn efst, sem er núna tóm 37 00:01:22,413 --> 00:01:24,690 þar sem ég fékk að losa um allt mitt skrár fyrir supersection. 38 00:01:24,690 --> 00:01:27,599 Og það er þar sem við munum vista C skrár sem við skrifum. 39 00:01:27,599 --> 00:01:30,890 Efst til hægri, höfum við stað þar allt númerið okkar er að fara að fá skrifað. 40 00:01:30,890 --> 00:01:34,610 Og reyndar, ef ég smelli þessu plús, þetta er að fara að láta mig velja nýja skrá. 41 00:01:34,610 --> 00:01:38,310 Og hér ég get byrjað að skrifa C kóða eða, raunverulega, fjölda annarra tungumála. 42 00:01:38,310 --> 00:01:42,670 >> Og þá neðst þar sem það segir jharvard @ ide50-- og þitt mun 43 00:01:42,670 --> 00:01:45,080 segja eitthvað smá different-- hvað var þetta kallað? 44 00:01:45,080 --> 00:01:48,644 45 00:01:48,644 --> 00:01:49,310 Endastöðvar. 46 00:01:49,310 --> 00:01:49,570 Já. 47 00:01:49,570 --> 00:01:51,810 Svo er endastöðvar svokallaða stjórn lína 48 00:01:51,810 --> 00:01:55,540 tengi í gegnum sem þú getur samskipti með undirliggjandi stýrikerfi. 49 00:01:55,540 --> 00:01:58,220 Og nú erum við að fara að gera mjög lítið notað this-- 50 00:01:58,220 --> 00:02:01,170 bara til að safna saman, til að líta á villa skilaboð sem við sjáum, 51 00:02:01,170 --> 00:02:02,347 og að keyra forrit okkar. 52 00:02:02,347 --> 00:02:04,680 En að lokum, við erum að fara að gera svo miklu meira, eins og heilbrigður. 53 00:02:04,680 --> 00:02:07,490 Og þú getur jafnvel setja upp hugbúnað og gefa vinnusvæði 54 00:02:07,490 --> 00:02:09,066 innan CS50 IDE, eins og heilbrigður. 55 00:02:09,066 --> 00:02:10,440 En meira um það einhverjum öðrum tíma. 56 00:02:10,440 --> 00:02:12,689 >> Svo skulum við fara á undan og skrifa mjög einfalt program bara 57 00:02:12,689 --> 00:02:15,064 að fara í gegnum hlýja-upp af hello.c, sem er kannski 58 00:02:15,064 --> 00:02:16,480 einfaldasta forrit sem við getum skrifað. 59 00:02:16,480 --> 00:02:18,330 Ég hef nú þegar opnað nýja flipa. 60 00:02:18,330 --> 00:02:24,310 Ég ætla að fara á undan og segir eru stöðluð io.h. 61 00:02:24,310 --> 00:02:25,325 Þá int helstu (tóm). 62 00:02:25,325 --> 00:02:28,930 63 00:02:28,930 --> 00:02:35,200 Og svo printf ("Halló, heimur" sviga n, loka vitna, 64 00:02:35,200 --> 00:02:39,480 loka sviga og semíkommu. 65 00:02:39,480 --> 00:02:39,990 >> Allt í lagi. 66 00:02:39,990 --> 00:02:41,700 Svo nú taka gluggi minn er án titils. 67 00:02:41,700 --> 00:02:44,840 Svo ég er mjög fljótt að fara að fara upp í File, Save. 68 00:02:44,840 --> 00:02:46,910 Og það er mikilvægt að Ég kalla þetta ekki "halló." 69 00:02:46,910 --> 00:02:49,243 Svo mjög algeng mistök, sérstaklega í Heimadæmi einn, 70 00:02:49,243 --> 00:02:52,530 er að tilviljun bara hringja þinn program "vatn" eða "gráðugur" eða "Mario" 71 00:02:52,530 --> 00:02:53,890 eða "inneign" eða þess háttar. 72 00:02:53,890 --> 00:02:55,970 En þú vilt í raun að gera Verið viss um að skrá eftirnafn 73 00:02:55,970 --> 00:02:58,928 vegna þess að þetta er eina leiðin sem þýðandinn og einnig merkjamál ritstjóri 74 00:02:58,928 --> 00:03:00,710 veit að þú ert í raun að skrifa C kóða. 75 00:03:00,710 --> 00:03:02,280 Svo láta mig fara á undan og smelltu á Vista. 76 00:03:02,280 --> 00:03:05,710 >> Og nú líka, hvað CS50 IDE hefur gert fyrir okkur er að það er líka 77 00:03:05,710 --> 00:03:07,120 setningafræði hápunktur allt. 78 00:03:07,120 --> 00:03:08,822 Svo það er gert allt mjög litrík. 79 00:03:08,822 --> 00:03:10,780 Og allt tilgangur sem er ekki sá. 80 00:03:10,780 --> 00:03:14,290 Það er bara að teikna augu mín til eðli mismunandi stykki 81 00:03:14,290 --> 00:03:15,310 þessarar áætlunar. 82 00:03:15,310 --> 00:03:17,570 Svo skulum við fara á undan og taka saman þetta. 83 00:03:17,570 --> 00:03:19,490 Og ég get safna saman þetta í nokkra vegu. 84 00:03:19,490 --> 00:03:22,010 Og í viku eitt er gamla skólanum leið við gerðum 85 00:03:22,010 --> 00:03:26,250 það var bókstaflega á í Command line-- "Clang hello.c." 86 00:03:26,250 --> 00:03:27,596 Og þá er ég ýta á Enter. 87 00:03:27,596 --> 00:03:29,720 Og ekkert virðist gerast í flugstöðinni glugga. 88 00:03:29,720 --> 00:03:32,654 En hvað gerði breytingu á IDE? 89 00:03:32,654 --> 00:03:35,320 Þar, aftur, IDE þýðir bara Integrated Development Umhverfi. 90 00:03:35,320 --> 00:03:38,360 Það er fínt leið til að segja Þessi samþætta þróun 91 00:03:38,360 --> 00:03:40,620 umhverfi til að þróa hugbúnað. 92 00:03:40,620 --> 00:03:42,477 Svo hvað var að breyta í HÍ? 93 00:03:42,477 --> 00:03:44,310 Hvað gerðir þú tekur það er öðruvísi, Maria? 94 00:03:44,310 --> 00:03:47,100 >> MARIA: Ég tók eitthvað undir IDE50 mappa upp hér. 95 00:03:47,100 --> 00:03:47,850 >> DAVID Malan: Já. 96 00:03:47,850 --> 00:03:50,230 Svo hér, ekki aðeins höfum við "hello.c." 97 00:03:50,230 --> 00:03:53,120 Við höfum einnig "a.out," sem er konar heimsk nafn á forriti. 98 00:03:53,120 --> 00:03:56,430 En reyndar er það sjálfgefið nafn fyrir a program þegar þú saman bara númerið þitt 99 00:03:56,430 --> 00:03:59,110 og ekki segja þýðanda hvaða skrá í úttak. 100 00:03:59,110 --> 00:04:01,790 Þannig að ef ég vil keyra þetta, ég þarf að segja compiler-- 101 00:04:01,790 --> 00:04:05,340 eða öllu heldur, ég þarf að segja vinnusvæði sem ég 102 00:04:05,340 --> 00:04:09,780 vilt keyra forrit sem heitir "a.out." 103 00:04:09,780 --> 00:04:10,550 Sláðu. 104 00:04:10,550 --> 00:04:12,474 Og það er "halló, heimur. "nú" ./ ". 105 00:04:12,474 --> 00:04:13,390 er í raun mikilvægt. 106 00:04:13,390 --> 00:04:16,050 Jafnvel þó venjulega við aðeins skrifa nöfn skipunum, 107 00:04:16,050 --> 00:04:19,060 þegar það er forrit sem þú hefur skrifað, viltu segja "./" 108 00:04:19,060 --> 00:04:22,460 því sem sérstaklega segir Linux sem þú vilt keyra forrit sem heitir 109 00:04:22,460 --> 00:04:26,930 "a.out" sem er í þessu, þar sem punktur þýðir þetta möppu sem ég er nú 110 00:04:26,930 --> 00:04:31,600 í, sem gerist að vera kallað vinnusvæði, "a.out. 111 00:04:31,600 --> 00:04:35,410 Vegna þess að ef ég sagði bara "a.out," Enter, Ég ætla að fá "a.out stjórn ekki 112 00:04:35,410 --> 00:04:38,035 fannst "vegna þess að computer-- vegna þess að ég fann "a.out;" 113 00:04:38,035 --> 00:04:40,910 það kom ekki með computer-- veit ekki hvar á að leita að því, 114 00:04:40,910 --> 00:04:43,590 jafnvel þó að það er rétt undir nefið á mér, svo að segja. 115 00:04:43,590 --> 00:04:44,090 OK. 116 00:04:44,090 --> 00:04:49,910 Þannig að við gætum breytt þessu í vera "Clang -o halló hello.c." 117 00:04:49,910 --> 00:04:53,030 Og ef ég högg inn, hvaða forrit er þetta að fara að framleiðsla fyrir mig? 118 00:04:53,030 --> 00:04:55,710 Hvað er nafnið á skránni? 119 00:04:55,710 --> 00:04:57,500 Já, í bak. 120 00:04:57,500 --> 00:04:58,479 Það er rétt. "Hello." 121 00:04:58,479 --> 00:05:00,520 Svo "halló" er að fara að vera nafn af the program 122 00:05:00,520 --> 00:05:04,610 vegna þess að við höfum notað svokölluð stjórn lína rifrildi, sem er bara 123 00:05:04,610 --> 00:05:08,120 leið að breyta hegðun þýðandinn að raun framleiðsla 124 00:05:08,120 --> 00:05:09,450 a sérstakur skrá nafn. 125 00:05:09,450 --> 00:05:12,400 Og reyndar, ef ég stækka út og líta upp hér, 126 00:05:12,400 --> 00:05:17,430 nú hef ég ekki aðeins "a.out" og "hello.c" en einnig "halló," eins og heilbrigður. 127 00:05:17,430 --> 00:05:22,410 Svo nú get ég gert "./hello," Enter. 128 00:05:22,410 --> 00:05:23,640 Og það er "Halló, heimur." 129 00:05:23,640 --> 00:05:25,640 En lastly-- og þetta mun nú vera samningur 130 00:05:25,640 --> 00:05:27,590 við notum um allan önn, typically-- 131 00:05:27,590 --> 00:05:30,070 er einnig hægt að segja bara "gera halló." 132 00:05:30,070 --> 00:05:33,370 Og reyndar, það er að segja það er allt hingað vegna þess að það er þegar til. 133 00:05:33,370 --> 00:05:37,860 Leyfðu mér að fara á undan og fjarlægja með RM stjórn, bæði "a.out" - 134 00:05:37,860 --> 00:05:39,644 og segja "fjarlægja reglulega skrá a.out?" 135 00:05:39,644 --> 00:05:41,810 Það þýðir bara, þú ert viss um að þú viljir eyða honum? 136 00:05:41,810 --> 00:05:42,880 Ég ætla að segja já. 137 00:05:42,880 --> 00:05:46,690 Og þá er ég að fara að fjarlægja "halló" en ekki "hello.c." 138 00:05:46,690 --> 00:05:49,920 Ég ætla að segja "já" sérstaklega, en "Y" er nóg, eins vel. 139 00:05:49,920 --> 00:05:52,140 >> Og nú eftir ef ég slá ls-- Sem muna, 140 00:05:52,140 --> 00:05:55,540 þýðir list-- það er listi yfir allar skrár í möppuna mína. 141 00:05:55,540 --> 00:05:57,850 Og reyndar, ef ég stækka út og líta á efst til vinstri, 142 00:05:57,850 --> 00:05:59,730 það staðfestir að það er í þessari möppu, jafnvel 143 00:05:59,730 --> 00:06:04,990 þó að það er merkt sem IDE50 upp hér og ekki vinnusvæði, er það bara "hello.c." 144 00:06:04,990 --> 00:06:09,152 Svo nú niður hér, ef ég ekki "gera halló," Enter, 145 00:06:09,152 --> 00:06:12,360 nú sé ég mun lengur stjórn en flóknari stjórn sem er að fara 146 00:06:12,360 --> 00:06:13,940 til að vera gagnlegt í vikur til að koma. 147 00:06:13,940 --> 00:06:16,720 Og nú get ég sagt "./hello." 148 00:06:16,720 --> 00:06:19,257 >> Svo skulum taka a fljótur ferð einhver önnur Linux skipanir. 149 00:06:19,257 --> 00:06:21,840 Þá hvers vegna eigum við ekki að taka skref aftur og í raun líta á C meira 150 00:06:21,840 --> 00:06:25,020 almennt, breyting frá grunni til C, og þá gera með útlit 151 00:06:25,020 --> 00:06:27,305 við fyrsta vandamál sett í C. Allur réttur. 152 00:06:27,305 --> 00:06:30,430 Þannig að ég ætla að fara á undan og bara hreint upp vinnuaðstöðu mína við Control-L bara 153 00:06:30,430 --> 00:06:31,429 Til að halda skjánum snyrtilegur. 154 00:06:31,429 --> 00:06:33,520 En það hefur engin virk áhrif annars. 155 00:06:33,520 --> 00:06:35,820 >> Muna að við höfum séð nokkrar skipanir núna. 156 00:06:35,820 --> 00:06:39,900 Þannig að við höfum séð clang, sem almennt þú þarft ekki að framkvæma handvirkt lengur. 157 00:06:39,900 --> 00:06:41,650 Við munum í staðinn nota gera. 158 00:06:41,650 --> 00:06:45,290 En við sáum líka LS, sem sýnir skráningu skrár í möppuna mína. 159 00:06:45,290 --> 00:06:48,750 Og nú er ástæða there-- það er tvær skrár nú, "halló" og "hello.c." 160 00:06:48,750 --> 00:06:52,240 Hvers vegna er það stjarna eða Stjörnumerki eftir "halló"? 161 00:06:52,240 --> 00:06:54,900 Hvað gerði það signify, byggt á það sem við sáum í viku eitt? 162 00:06:54,900 --> 00:06:58,852 163 00:06:58,852 --> 00:07:00,400 Hvað finnst þér? 164 00:07:00,400 --> 00:07:02,742 Hvað þýðir stjarnan signify? 165 00:07:02,742 --> 00:07:04,614 >> MARIA: For-- áætlunarinnar "halló"? 166 00:07:04,614 --> 00:07:05,530 DAVID Malan: "Hello *". 167 00:07:05,530 --> 00:07:06,330 Já. 168 00:07:06,330 --> 00:07:07,760 Ó já? 169 00:07:07,760 --> 00:07:08,639 Oh, executable. 170 00:07:08,639 --> 00:07:09,180 Það er rétt. 171 00:07:09,180 --> 00:07:10,890 Svo það þýðir að "halló" er executable. 172 00:07:10,890 --> 00:07:13,430 Svo reyndar, að vegna Ég get gert "./hello." 173 00:07:13,430 --> 00:07:13,930 Allt í lagi. 174 00:07:13,930 --> 00:07:15,179 Svo hvað get ég gert hér? 175 00:07:15,179 --> 00:07:17,290 Jæja, það kemur í ljós að ég get líka búið framkvæmdarstjóra. 176 00:07:17,290 --> 00:07:20,924 Svo láta mig fara á undan og búa til, til dæmis, a "pset1" skrá. 177 00:07:20,924 --> 00:07:23,590 Og vandamálið sett forskrift verður þú að gera einmitt þetta, 178 00:07:23,590 --> 00:07:25,260 svo þú þarft ekki að muna í dag. 179 00:07:25,260 --> 00:07:27,340 En "mkdir pset1" virðist hafa engin áhrif. 180 00:07:27,340 --> 00:07:30,540 En aftur, engin villuboð er almennt gott. 181 00:07:30,540 --> 00:07:34,060 Svo ef ég tegund "ls" now-- Ah, nú Ég er með executable skrá sem heitir 182 00:07:34,060 --> 00:07:36,570 "halló," a C skrá sem heitir "hello.c." 183 00:07:36,570 --> 00:07:40,860 Og þá slóð rista, svo að tala, þýðir að þetta er mappa. 184 00:07:40,860 --> 00:07:42,510 >> Svo reyndar, nú vil ég að opna hana. 185 00:07:42,510 --> 00:07:45,730 Og ég ekki á að tvöfalda smella á það eins og í GUI, myndrænt umhverfi. 186 00:07:45,730 --> 00:07:48,550 Ég segi í staðinn "CD pset1." 187 00:07:48,550 --> 00:07:49,640 Sláðu. 188 00:07:49,640 --> 00:07:53,100 Ekkert áhugavert virðist hafa gerðist nema smá hvetja mína 189 00:07:53,100 --> 00:07:57,300 here-- er með þessum hætti Linux er að minna mér þar sem ég er, svo hvaða möppu er opinn. 190 00:07:57,300 --> 00:08:00,080 Það er bara að segja mér afdráttarlaust öfugt við myndrænt. 191 00:08:00,080 --> 00:08:05,100 Og ef ég tegund "ls," hvers vegna ég sé annað hvetja strax, finnst þér, 192 00:08:05,100 --> 00:08:07,269 þegar ég lista innihald pset1? 193 00:08:07,269 --> 00:08:09,310 MARIA: Þú sennilega ekki hafa neitt í það. 194 00:08:09,310 --> 00:08:09,630 DAVID Malan: Já. 195 00:08:09,630 --> 00:08:11,510 Svo þá höfum við ekki augljóslega skapað eitthvað í það 196 00:08:11,510 --> 00:08:13,150 vegna þess að ég var að stofna möppu. 197 00:08:13,150 --> 00:08:17,690 Nú, ef ég vildi búa til file-- fyrir dæmi gæti ég búið til nýja skrá. 198 00:08:17,690 --> 00:08:20,190 Og þá gæti ég farið að Vista og vista hana sem, 199 00:08:20,190 --> 00:08:23,090 eins og: "mario.c" ef þú ert að gera staðall útgáfa af pset einn. 200 00:08:23,090 --> 00:08:27,610 Og þá, eins og allir Mac eða PC, bara velja möppuna "pset1, Vista. 201 00:08:27,610 --> 00:08:28,740 Og nú er skrá tóm. 202 00:08:28,740 --> 00:08:31,160 En við skulum stækka aftur fyrir annað. 203 00:08:31,160 --> 00:08:32,470 Við skulum gera LS hér. 204 00:08:32,470 --> 00:08:34,470 Nú sjáum við "mario.c". 205 00:08:34,470 --> 00:08:37,850 >> Svo er nokkur aðrar skipanir þar sem eru þess virði að halda í huga yfir time-- 206 00:08:37,850 --> 00:08:41,200 eytt eða Control-L er það sem ég hef verið hitting; mkdir við höfum séð; 207 00:08:41,200 --> 00:08:45,240 RM við höfum séð, eins og heilbrigður, sem er til að fjarlægja eða eyða skrá. 208 00:08:45,240 --> 00:08:49,310 Varast þú getur also-- og ef þú horfir á netinu námskeið, þú munt rm -Rf 209 00:08:49,310 --> 00:08:52,630 er mjög algeng leið til að segja Ef eyða á möppu sem hefur efni á því. 210 00:08:52,630 --> 00:08:54,280 Bara vera frábær, frábær varkár. 211 00:08:54,280 --> 00:08:58,780 -Rf þýðir endurkvæmt eyða hvað sem það er 212 00:08:58,780 --> 00:09:01,150 þú ert að reyna að eyða og valdi eyða því. 213 00:09:01,150 --> 00:09:04,630 Svo endurkvæma þýðir að ef það er mappa með mappa með möppu með möppu, 214 00:09:04,630 --> 00:09:05,690 eyða þeim. 215 00:09:05,690 --> 00:09:08,680 Og valdi þýðir ekki einu sinni spyrja mig já eða nei, ég viss? 216 00:09:08,680 --> 00:09:11,960 Svo það er frábær hættulegt leið eyða fullt af dóti fljótt. 217 00:09:11,960 --> 00:09:17,210 En beware-- of oft gerir hugrakkur nemandi tilviljun eyða, segjum, pset 218 00:09:17,210 --> 00:09:18,000 einn, til dæmis. 219 00:09:18,000 --> 00:09:19,833 >> MARIA: Og ef þeir bara gera -r, þeir eru að fara 220 00:09:19,833 --> 00:09:21,870 að spyrja þá um hvert einasta skrá. 221 00:09:21,870 --> 00:09:22,790 >> DAVID Malan: Hver er hóflega pirrandi. 222 00:09:22,790 --> 00:09:23,480 >> MARIA: Já. 223 00:09:23,480 --> 00:09:25,813 >> DAVID Malan: Svo er það hvers vegna svo margir af okkur, sjálf með, 224 00:09:25,813 --> 00:09:27,070 er í vana að nota -Rf. 225 00:09:27,070 --> 00:09:27,861 En það er hættulegt. 226 00:09:27,861 --> 00:09:29,010 Svo kaupandi gæta sín. 227 00:09:29,010 --> 00:09:31,050 Og þá er MV konar Athyglisvert hét. 228 00:09:31,050 --> 00:09:33,600 Svo er þetta að færa stjórn, sem finnst svolítið skrítið 229 00:09:33,600 --> 00:09:37,260 vegna þess að þú getur örugglega notað það til að flytja skrár frá einum stað til annars. 230 00:09:37,260 --> 00:09:39,970 Til dæmis, gera ráð fyrir að ég boðberi upp. 231 00:09:39,970 --> 00:09:43,660 Segjum sem svo að ég stofnaði ný skrá fyrir pset. 232 00:09:43,660 --> 00:09:46,320 Og ég spara það eins og "greedy.c." 233 00:09:46,320 --> 00:09:49,970 En ég geri ráð fyrir slysni vista það í IDE50-- svo í vinnurými mínu sig 234 00:09:49,970 --> 00:09:51,580 og ekki í pset1. 235 00:09:51,580 --> 00:09:53,960 >> Þú getur séð meira á efst til vinstri. 236 00:09:53,960 --> 00:09:55,284 Það er "greedy.c." 237 00:09:55,284 --> 00:09:56,450 Og það er nokkrar lausnir. 238 00:09:56,450 --> 00:09:58,324 Svo einn, ég get notað frábær notandi-vingjarnlegur hátt 239 00:09:58,324 --> 00:09:59,740 þess bara draga og sleppa honum. 240 00:09:59,740 --> 00:10:01,910 Og það væri í raun laga þetta vandamál. 241 00:10:01,910 --> 00:10:04,967 En í dag erum við að reyna að líta á því meira Bogagöng en öflug leiðir 242 00:10:04,967 --> 00:10:05,550 til að gera þetta. 243 00:10:05,550 --> 00:10:07,880 Svo láta mig taka "ls" í pset1. 244 00:10:07,880 --> 00:10:09,690 Og ég sé bara "mario.c." 245 00:10:09,690 --> 00:10:13,450 Leyfðu mér að fara á undan og gera "cd ..". 246 00:10:13,450 --> 00:10:15,320 Svo CD er aftur breyting skrá. 247 00:10:15,320 --> 00:10:18,130 ".." Þýðir það, þó? 248 00:10:18,130 --> 00:10:21,100 Síðast þegar ég sagði "CD pset1 "að fara í pset1. 249 00:10:21,100 --> 00:10:24,360 Svo þegar ég segi "cd .." Hvað er ég að gera? 250 00:10:24,360 --> 00:10:24,910 Aftur á bak. 251 00:10:24,910 --> 00:10:25,150 Já. 252 00:10:25,150 --> 00:10:26,750 >> Svo það er að fara að svokölluðum foreldris. 253 00:10:26,750 --> 00:10:29,730 Fara upp um eitt stig, eins og spennandi úr möppu. 254 00:10:29,730 --> 00:10:30,500 Svo Enter. 255 00:10:30,500 --> 00:10:31,900 Og reyndar, sjáðu hvað það gerði. 256 00:10:31,900 --> 00:10:37,070 Það flutti mig bara inn vinnusvæði stað af í pset1, sem er í vinnurými. 257 00:10:37,070 --> 00:10:39,710 Og nú ef ég tegund "ls", það er allt fullt af efni. 258 00:10:39,710 --> 00:10:41,650 Í það er "greedy.c". 259 00:10:41,650 --> 00:10:48,720 Svo nú langar mig að nota MV að bókstaflega færa "greedy.c" í pset1. 260 00:10:48,720 --> 00:10:51,120 Og svo mikið af Linux skipanir vinna nákvæmlega eins og þetta. 261 00:10:51,120 --> 00:10:54,470 Þeir taka ekki rök eða þeir taka einn rifrildi eða þeir taka tvö skipanalína 262 00:10:54,470 --> 00:10:55,449 rök og svo framvegis. 263 00:10:55,449 --> 00:10:57,240 Og í þessu tilfelli, það er bókstaflega að gera það 264 00:10:57,240 --> 00:11:01,670 það segir, að vísu succinctly-- færa greedy.c í pset1. 265 00:11:01,670 --> 00:11:02,310 Sláðu. 266 00:11:02,310 --> 00:11:03,310 Ekkert virðist gerast. 267 00:11:03,310 --> 00:11:06,180 En ef ég a ls aftur, gráðugur er farinn. 268 00:11:06,180 --> 00:11:12,437 Og ef ég geri "CD pset1", Enter, og þá LS aftur, nú er það á réttum stað. 269 00:11:12,437 --> 00:11:14,270 Sem innskot, ef til sumir reason-- sérstaklega 270 00:11:14,270 --> 00:11:16,194 ef þú ert með hléum net-tengingu 271 00:11:16,194 --> 00:11:18,360 eða þú ert að ganga í kring háskólasvæðinu með fartölvu loki þinni 272 00:11:18,360 --> 00:11:20,180 lokað og þá opna það upp aftur og vinnusvæði 273 00:11:20,180 --> 00:11:21,730 virðist nokkuð úr takti, ekki máli. 274 00:11:21,730 --> 00:11:23,646 Bara endurræsa vafrann glugga, og það ætti að 275 00:11:23,646 --> 00:11:26,339 resync þannig að vinstri-hönd skrá flettitæki lítur nákvæmlega 276 00:11:26,339 --> 00:11:27,380 eins flugstöðinni glugga. 277 00:11:27,380 --> 00:11:27,921 Ekki hafa áhyggjur. 278 00:11:27,921 --> 00:11:31,460 Hvenær í vafa, endurhlaða síðunni, svo lengi sem þú hefur vistað skrár þegar. 279 00:11:31,460 --> 00:11:31,960 OK. 280 00:11:31,960 --> 00:11:34,710 Svo MV einnig hægt að nota til að endurnefna skrár. 281 00:11:34,710 --> 00:11:36,760 Og við skulum taka a líta á þetta endanlega stjórn hér. 282 00:11:36,760 --> 00:11:39,950 Svo suppose-- og þetta er frábær sameiginleg líka snemma. 283 00:11:39,950 --> 00:11:46,400 Sumir nemendur stundum að búa til skrá kallað, við skulum say-- hvað er annað? 284 00:11:46,400 --> 00:11:47,730 Eins og "WATER.C." 285 00:11:47,730 --> 00:11:51,080 Þannig að ég ætla bara æpa, fyrir engin ástæða, í öllum húfur. 286 00:11:51,080 --> 00:11:53,190 En þetta er ekki rétt nafn fyrir the skrá 287 00:11:53,190 --> 00:11:56,660 ef aðeins vegna þess að vandamál okkar sett forskrift ekki segja þér 288 00:11:56,660 --> 00:11:59,430 til að vista skrána sem allar húfur "WATER.C." 289 00:11:59,430 --> 00:12:01,320 Þess í stað, gerum við ráð fyrir "water.c" í lágstöfum. 290 00:12:01,320 --> 00:12:03,140 Og í raun er þetta erfið vegna check50, 291 00:12:03,140 --> 00:12:04,370 a program sem þú ert að fara til að mæta í vanda 292 00:12:04,370 --> 00:12:07,350 setja einn sem sjálfkrafa prófar Réttmæti númerið þitt 293 00:12:07,350 --> 00:12:11,615 er að fara að æpa á þig ef það er ekki hægt finna "water.c" í öllum lágstöfum. 294 00:12:11,615 --> 00:12:12,712 >> Þannig að ég þarf að laga þetta. 295 00:12:12,712 --> 00:12:14,920 Svo margar mismunandi leiðir til að gera þetta, fyrst sem 296 00:12:14,920 --> 00:12:18,330 væri að stjórna smellur eða hægri-smelltu skrá nafn og bara breyta Rename. 297 00:12:18,330 --> 00:12:19,740 Algerlega lagi að gera það. 298 00:12:19,740 --> 00:12:21,820 En aftur, í dag, við skulum gera það svolítið áhugamaður. 299 00:12:21,820 --> 00:12:26,680 Notum MV að breyta "WATER.C" til "water.c." 300 00:12:26,680 --> 00:12:30,690 Svo getur þú líka notað í fyrsta rifrildi til að endurnefna það til seinni rök 301 00:12:30,690 --> 00:12:34,455 ef annað rifrildi er ekki í staðreynd, möppu eða skrá nafn. 302 00:12:34,455 --> 00:12:35,120 >> Allt í lagi. 303 00:12:35,120 --> 00:12:39,560 Og loks, smá trick-- þannig að ég er í vinnusvæði skrá mitt í augnablikinu. 304 00:12:39,560 --> 00:12:43,660 Ef ég vil fá inn í pset einn, Ég get vissulega slegið "CD pset1." 305 00:12:43,660 --> 00:12:47,260 En það er svo leiðinlegt að slá "pset1" eða lengur skrá nöfn eða skrá nöfn 306 00:12:47,260 --> 00:12:47,980 enn. 307 00:12:47,980 --> 00:12:51,960 Svo mjög oft í Linux, hvað þú getur gert er að byrja að skrifa "tímalínu" 308 00:12:51,960 --> 00:12:56,100 og bara leiðindi, högg Tab og láta tölvan reikna það út fyrir þig. 309 00:12:56,100 --> 00:12:58,190 Super gagnlegt að fá inn í þessi vana. 310 00:12:58,190 --> 00:13:01,079 The eini grípa er ef þú ert með margar skrár eða möppur sem byrja 311 00:13:01,079 --> 00:13:02,870 stafnum "p" eða "PS," þú might hafa 312 00:13:02,870 --> 00:13:05,525 að slá nokkrar fleiri áður en tölva veit hvað á að gera. 313 00:13:05,525 --> 00:13:06,820 >> MARIA: Við eins flýtileiðir. 314 00:13:06,820 --> 00:13:08,695 >> DAVID Malan: Þetta mun spara þér svo mikinn tíma. 315 00:13:08,695 --> 00:13:11,930 Og einnig, eins og ég sagði í fyrirlestri, þú getur flett upp í sögu, upp og niður, 316 00:13:11,930 --> 00:13:15,461 að finna nýlega keyrð skipanir, eins vel. 317 00:13:15,461 --> 00:13:15,960 Allt í lagi. 318 00:13:15,960 --> 00:13:20,904 Svo nú skulum við snúa athygli okkar aftur til einfalt forrit, halló heimur. 319 00:13:20,904 --> 00:13:22,195 Þannig að við höfum tekið saman þetta nákvæmlega. 320 00:13:22,195 --> 00:13:24,050 Og nú hvers vegna eigum við ekki að taka a líta á gagnatög 321 00:13:24,050 --> 00:13:26,776 og þá umskipti frá sumum samsvarandi Scratch blokkir til C. 322 00:13:26,776 --> 00:13:27,400 MARIA: Awesome. 323 00:13:27,400 --> 00:13:30,031 Svo nú að þú hefur byrjað skrifa forrit í C, 324 00:13:30,031 --> 00:13:32,530 við erum að fara að byrja að tala um tegundir gagna og breytum. 325 00:13:32,530 --> 00:13:37,570 Svo sumir gagnatög sem þú myndi vilja vita að byrja núna 326 00:13:37,570 --> 00:13:39,400 eru þau sem eru hápunktur í bláu. 327 00:13:39,400 --> 00:13:42,420 Þannig að við höfum INT fyrst, sem stendur fyrir heiltölu. 328 00:13:42,420 --> 00:13:46,075 Og það hefur heiltölur, eins og þú kunna að hafa guessed-- svo 1, 2, 3, 329 00:13:46,075 --> 00:13:47,950 og önnur heiltölur sem þú getur hugsa um. 330 00:13:47,950 --> 00:13:48,730 >> DAVID Malan: Og einnig neikvæðar. 331 00:13:48,730 --> 00:13:50,220 >> MARIA: Og einnig neikvæð sjálfur, jebb. 332 00:13:50,220 --> 00:13:51,450 Og 0. 333 00:13:51,450 --> 00:13:54,250 Þá höfum við fljóta, sem eru fljótandi tölur benda. 334 00:13:54,250 --> 00:13:58,360 Svo er það allt rauntölur sem hafa aukastöfum. 335 00:13:58,360 --> 00:14:03,960 Svo 5,0, 5,2, og jafnvel fleiri Tölunum eftir kommu, 336 00:14:03,960 --> 00:14:05,620 eins vel og einnig neikvæð. 337 00:14:05,620 --> 00:14:07,530 Þá höfum við bleikju sem er eðli. 338 00:14:07,530 --> 00:14:10,240 Þannig að ég held að við töluðum um þetta í fyrirlestri í dag. 339 00:14:10,240 --> 00:14:15,682 En við höfum bréf, fyrir example-- A, B, C-- sem hægt er að geyma sem char. 340 00:14:15,682 --> 00:14:18,390 En þá höfum við miklu fleiri tákn sem geta verið geymd sem char. 341 00:14:18,390 --> 00:14:22,380 Og þeir eru geymdar sem ASCII. 342 00:14:22,380 --> 00:14:25,280 >> Og þá höfum við bool, sem eru Booleans. 343 00:14:25,280 --> 00:14:29,067 Og þeir meta að True eða Rangar eða 1 og 0, í þessari röð. 344 00:14:29,067 --> 00:14:31,650 DAVID Malan: Og muna að bool kemur frá CS50 bókasafn. 345 00:14:31,650 --> 00:14:33,300 Svo það er ekki innbyggður í C, en það er frábær gagnlegt 346 00:14:33,300 --> 00:14:34,850 að hafa hugmynd um satt og ósatt. 347 00:14:34,850 --> 00:14:36,990 Og jafnvel þó að þú gæti think-- gaman staðreynd. 348 00:14:36,990 --> 00:14:43,700 A bool tæknilega þarf hversu margir bitar, sannarlega, að tákna True móti False? 349 00:14:43,700 --> 00:14:47,910 Hversu margir bitar finnst þér þú þyrfti, hámarks? 350 00:14:47,910 --> 00:14:48,790 Já, bara einn. 351 00:14:48,790 --> 00:14:52,077 Svo kemur í ljós að C get ekki gefið þér bara einn hluti. 352 00:14:52,077 --> 00:14:54,160 Minnsta eining mál þú getur fengið er átta. 353 00:14:54,160 --> 00:14:57,090 Svo það er lítið sóun þeir að þú ert með heilt bæti, eða átta bita, 354 00:14:57,090 --> 00:14:58,340 að tákna True eða False. 355 00:14:58,340 --> 00:15:01,807 En það er bara þannig að það er framkvæmda í C með CS50 bókasafn. 356 00:15:01,807 --> 00:15:04,890 Maria: Og þá þau sem við erum ekki að fara að tala um eins mikið 357 00:15:04,890 --> 00:15:08,060 rétt now-- tvöfaldur, það er fyrir stærri flotum. 358 00:15:08,060 --> 00:15:09,811 Lengi lengi og stutt eru einnig fyrir heiltölur. 359 00:15:09,811 --> 00:15:10,643 DAVID Malan: Reyndar. 360 00:15:10,643 --> 00:15:13,190 Í spjallþráð hefti pset einn, við notum í raun lengi lengi. 361 00:15:13,190 --> 00:15:15,801 En fyrir venjulegu útgáfunni, það ætti ekki að vera nauðsynlegt. 362 00:15:15,801 --> 00:15:16,300 MARIA: Cool. 363 00:15:16,300 --> 00:15:17,361 OK. 364 00:15:17,361 --> 00:15:20,110 Svo operators-- þú ættir að vera líklega kannast við flest af þessu. 365 00:15:20,110 --> 00:15:22,620 Viðbót, +; frádráttur, -. 366 00:15:22,620 --> 00:15:24,070 Fyrir margföldun, höfum við *. 367 00:15:24,070 --> 00:15:25,900 Svo ekki X sem við notum venjulega. 368 00:15:25,900 --> 00:15:27,840 Division, höfum við sviga. 369 00:15:27,840 --> 00:15:31,380 Og Modulo er síðasti rekstraraðili okkar sem við erum að fara að tala um núna. 370 00:15:31,380 --> 00:15:35,610 Það er rekstraraðili sem gerir okkur kleift að taka afganginn af deild. 371 00:15:35,610 --> 00:15:40,630 Svo ef við höfum 4% 2, 4 skipt með 2 er 2 með eftir 0. 372 00:15:40,630 --> 00:15:41,740 Svo er 4% 2 0. 373 00:15:41,740 --> 00:15:42,950 4% 3 er 1. 374 00:15:42,950 --> 00:15:44,870 4% 5 er 4, eins og þú gætir hafa giska. 375 00:15:44,870 --> 00:15:48,860 Og muna þegar öll þessi rekstraraðila til að nota PEMDAS reglur. 376 00:15:48,860 --> 00:15:54,060 >> DAVID Malan: Svo til að vera skýr, ef þú gera 4% 2, hvers vegna er það 0, nákvæmlega? 377 00:15:54,060 --> 00:15:57,480 >> MARIA: Þar 4 deilt með 2 er 2 með sem eftir er af 0. 378 00:15:57,480 --> 00:16:00,752 Svo gefur Modulo okkur að afgangurinn sem öfugt við vegna skiptingu. 379 00:16:00,752 --> 00:16:02,960 DAVID Malan: Og reyndar, það sem við munum finna þetta gagnlegt 380 00:16:02,960 --> 00:16:05,640 fyrir er að í sumum vandamálum það er ekki endilega einn, 381 00:16:05,640 --> 00:16:08,040 ef þú vilt hafa Áhrif takmarka sjálfur 382 00:16:08,040 --> 00:16:10,720 að ýmsum tölum eins 0 gegnum eitthvað, 383 00:16:10,720 --> 00:16:13,904 þú getur notað modulo að vefja í kringum fyrr en eins og 2 milljarða 384 00:16:13,904 --> 00:16:16,320 eða 4 milljarða verðmæti sem við höfum talað um í fyrirlestri. 385 00:16:16,320 --> 00:16:16,870 >> MARIA: Já. 386 00:16:16,870 --> 00:16:19,429 Og jafnvel í "gráðugur" Við gætum. 387 00:16:19,429 --> 00:16:21,345 DAVID Malan: Já, í vandamál setja einn, eins vel. 388 00:16:21,345 --> 00:16:22,520 MARIA: Já, gott. 389 00:16:22,520 --> 00:16:24,340 DAVID Malan: Good vísbending. 390 00:16:24,340 --> 00:16:25,750 MARIA: Sorry. 391 00:16:25,750 --> 00:16:28,590 Boolean expressions-- svo fyrir Boolean rekstraraðila, 392 00:16:28,590 --> 00:16:31,770 við erum að fara að tala um allt af þessum sem þú sérð hér. 393 00:16:31,770 --> 00:16:35,310 Svo núna, höfum við tvær samasemmerki skráð til jafningja. 394 00:16:35,310 --> 00:16:38,650 Svo þeir eru til samanburðar. 395 00:16:38,650 --> 00:16:40,830 Svo langt, höfum við aðeins séð einn jafngildir skilti. 396 00:16:40,830 --> 00:16:44,870 Það er þegar við framselja gildi breytu. 397 00:16:44,870 --> 00:16:50,160 Þannig að ef við höfum séð INT n = 5, þá við höfum úthlutað 5 til breytu n. 398 00:16:50,160 --> 00:16:55,600 En ef við viljum nota == fyrir samanburður, getum við að athuga hvort n == 5. 399 00:16:55,600 --> 00:16:58,310 Og ef n == 5, þá er það satt. 400 00:16:58,310 --> 00:17:01,950 >> Svo Boolean rekstraraðila leyfa okkur, í grundvallaratriðum, 401 00:17:01,950 --> 00:17:04,670 að meta Boolean orðasambönd til True eða False. 402 00:17:04,670 --> 00:17:07,819 Svo ekki equals-- við höfum upphrópunarmerki og jafningjar. 403 00:17:07,819 --> 00:17:14,240 Þannig að við gætum einnig athugað hvort n ekki jafn 5-- svo n! = 5. 404 00:17:14,240 --> 00:17:17,640 Minna en, minna en eða jafnt og, meiri en, stærra en eða jafnt og, 405 00:17:17,640 --> 00:17:20,720 og þá höfum við rökrétt OG og rökrétt OR. 406 00:17:20,720 --> 00:17:24,060 Og þeir gera okkur kleift að meta margar Boolean tjáning saman 407 00:17:24,060 --> 00:17:27,930 í rauninni koma saman sem heil Boolean tjáningu. 408 00:17:27,930 --> 00:17:34,970 Svo ef við viljum að finna fjölda, segja, sem er meiri en 5 en minna en 15 409 00:17:34,970 --> 00:17:39,810 á sama tíma, við myndum nota við rökrétt og rekstraraðila til að sjá hvort n er 410 00:17:39,810 --> 00:17:42,937 meiri en 5 && n minna en 15. 411 00:17:42,937 --> 00:17:44,770 DAVID Malan: Og hér, of, það er mjög auðvelt 412 00:17:44,770 --> 00:17:47,290 snemma á óvart nota bara einn merkið 413 00:17:47,290 --> 00:17:48,572 eða einn lóðrétt strik. 414 00:17:48,572 --> 00:17:51,280 Og vonandi þýðandinn mun æpa á þig vegna þess að þeir í raun og veru 415 00:17:51,280 --> 00:17:52,530 hafa mjög mismunandi merkingu. 416 00:17:52,530 --> 00:17:55,660 Fyrir þá forvitinn, þeir notað fyrir Bita aðgerðir, 417 00:17:55,660 --> 00:17:57,197 starfa á einstökum bitum. 418 00:17:57,197 --> 00:17:58,780 En þú vilt par af þeim hér. 419 00:17:58,780 --> 00:18:01,560 Og frábær mikilvægt er að fyrsta, merkið, 420 00:18:01,560 --> 00:18:05,270 sem er jafnrétti rekstraraðila sem öfugt við framsal rekstraraðila. 421 00:18:05,270 --> 00:18:08,552 >> MARIA: Og lóðrétt bar er staðsett milli Delete og aftur. 422 00:18:08,552 --> 00:18:09,260 DAVID Malan: Já. 423 00:18:09,260 --> 00:18:11,420 Á dæmigerðum bandaríska lyklaborðinu. 424 00:18:11,420 --> 00:18:13,190 >> MARIA: Já. 425 00:18:13,190 --> 00:18:15,890 Svo skulum hoppa rétt inn skilyrt yfirlýsingar. 426 00:18:15,890 --> 00:18:18,300 Í grunni, hefur þú þegar séð, sennilega, 427 00:18:18,300 --> 00:18:22,730 ef yfirlýsingar sem leyfa þér að athuga hvort eitthvað sé satt, þá 428 00:18:22,730 --> 00:18:23,660 gera eitthvað annað. 429 00:18:23,660 --> 00:18:28,410 Svo þú gætir viljað til að athuga hvort Sprite er 430 00:18:28,410 --> 00:18:31,410 snerta einhverja aðra Sprite eða á landamærum skjánum. 431 00:18:31,410 --> 00:18:35,520 Og þá þú might hafa langað til að enda leikinn eða gera eitthvað annað. 432 00:18:35,520 --> 00:18:40,000 Svo setningafræði fyrir að er "ef (skilyrði)." 433 00:18:40,000 --> 00:18:46,820 Þannig að ef Sprite er snerta eitthvað, þá er ekki inni í hrokkið axlabönd. 434 00:18:46,820 --> 00:18:48,980 >> Þá höfum við if-else yfirlýsingar. 435 00:18:48,980 --> 00:18:54,080 Else gerir okkur kleift að gera eitthvað ef ástand sem við 436 00:18:54,080 --> 00:18:55,870 stöðva fyrir í upphafi er ekki satt. 437 00:18:55,870 --> 00:19:01,530 Þannig að ef Sprite er snerta landamæri að gera þetta, annað að gera eitthvað annað. 438 00:19:01,530 --> 00:19:04,030 Svo annars gera eitthvað annað. 439 00:19:04,030 --> 00:19:07,530 Þá höfum við stutt dæmi um þetta. 440 00:19:07,530 --> 00:19:11,551 Svo ef (military_time <12), við langar að printf "Góðan dag!" 441 00:19:11,551 --> 00:19:13,300 Annað sem við erum að fara að printf "Gott kvöld!" 442 00:19:13,300 --> 00:19:14,860 Basic dæmi. 443 00:19:14,860 --> 00:19:15,680 >> DAVID Malan: Good. 444 00:19:15,680 --> 00:19:16,760 >> MARIA: Cool. 445 00:19:16,760 --> 00:19:18,560 Svo nú höfum við skipta yfirlýsingar. 446 00:19:18,560 --> 00:19:21,960 Skipta yfirlýsingar almennt hægt leyfa okkur að gera a einhver fjöldi af það sama 447 00:19:21,960 --> 00:19:25,070 sem við ræddum bara um með ef yfirlýsingar. 448 00:19:25,070 --> 00:19:29,440 Til dæmis, núna höfum við Almenna form af the rofi yfirlýsingu 449 00:19:29,440 --> 00:19:33,870 sem gerir okkur kleift að taka breytu sem heitir n 450 00:19:33,870 --> 00:19:37,670 og bera saman það til a einhver fjöldi af Mismunandi gildi, sem hér við 451 00:19:37,670 --> 00:19:40,010 hafa kallað constant1, constant2. 452 00:19:40,010 --> 00:19:41,150 Við kunnum að hafa a einhver fjöldi fleiri. 453 00:19:41,150 --> 00:19:42,930 Og þeir eru kallaðir tilvikum. 454 00:19:42,930 --> 00:19:46,280 >> Svo ef við höfum skipt statement-- og þetta virkar 455 00:19:46,280 --> 00:19:50,580 aðeins fyrir integers-- við höfum breyta í þessu tilfelli sem er n. 456 00:19:50,580 --> 00:19:53,840 Ef breyta n er jafnt constant1, við 457 00:19:53,840 --> 00:19:59,720 mun framkvæma sumir kóðabút eða eitthvað sem við viljum gera. 458 00:19:59,720 --> 00:20:01,280 Og þá myndum við brjóta. 459 00:20:01,280 --> 00:20:04,820 Svo brot þýðir að skipta yfirlýsingu 460 00:20:04,820 --> 00:20:08,120 hættir framkvæmd ef n er jafnt og constant1, 461 00:20:08,120 --> 00:20:09,752 og þá program vilja halda áfram. 462 00:20:09,752 --> 00:20:11,835 Það mun hætta út af skipta yfirlýsingu og það verður 463 00:20:11,835 --> 00:20:13,520 halda áfram að gera eitthvað annað. 464 00:20:13,520 --> 00:20:17,204 >> Ef hins vegar n er ekki jafnt og constant1, þá rök fyrir constant2 465 00:20:17,204 --> 00:20:17,870 verður skoðuð. 466 00:20:17,870 --> 00:20:21,750 Svo ef n jafngildir constant2, að aðrir kóðabút verður beitt. 467 00:20:21,750 --> 00:20:23,850 Og þá verður það að brjóta ef það er jafn það. 468 00:20:23,850 --> 00:20:27,580 Og þá getum við haft also-- ekki endilega, though-- sjálfgefið mál, 469 00:20:27,580 --> 00:20:32,290 sem mun gerast ef n er ekki jafnt einhverju tilvikum sem þú hefur skráð. 470 00:20:32,290 --> 00:20:35,400 Og í sjálfgefna tilfelli, einnig þurfa ekki pásu endilega 471 00:20:35,400 --> 00:20:39,271 vegna þess að skipta yfirlýsingu vilja vita að það þarf að enda eftir sjálfgefna 472 00:20:39,271 --> 00:20:40,270 ræða ef það er málið. 473 00:20:40,270 --> 00:20:42,140 >> DAVID Malan: En stylistically, við setjum alltaf í það. 474 00:20:42,140 --> 00:20:42,540 >> MARIA: Já. 475 00:20:42,540 --> 00:20:42,710 >> DAVID Malan: Já. 476 00:20:42,710 --> 00:20:44,750 Svo sérstaklega þegar byrjun út, sérstaklega ef meðal þeirra sem minna 477 00:20:44,750 --> 00:20:47,458 þægilegt, myndi ég persónulega bara mæli með að standa við Skógrækt ríkisins 478 00:20:47,458 --> 00:20:51,564 og IFS-elses og if-else-ef-elses og svo framvegis Ef aðeins 479 00:20:51,564 --> 00:20:53,480 vegna þess að þeir eru svolítið meira einfalt. 480 00:20:53,480 --> 00:20:56,142 Þetta er ágætur hagræðingu, eða stundum jafnvel fagurfræðilega það 481 00:20:56,142 --> 00:20:57,350 gerir kóðann læsilegri. 482 00:20:57,350 --> 00:20:59,599 Og í raun, líklega miðjan önn munum við sjá vandamál 483 00:20:59,599 --> 00:21:02,504 setja þar sem það lítur bara betur og auðveldara að lesa fyrir menn 484 00:21:02,504 --> 00:21:03,670 með því að nota skipta yfirlýsingu. 485 00:21:03,670 --> 00:21:05,460 En ekki hafa áhyggjur óður í liggur efst þetta of snemma. 486 00:21:05,460 --> 00:21:05,680 >> MARIA: Já. 487 00:21:05,680 --> 00:21:08,840 Ef þú hafa a einhver fjöldi af ef yfirlýsingar, það gæti bara ekki verið mjög læsileg. 488 00:21:08,840 --> 00:21:10,965 Það gæti ekki verið mjög hratt fyrir þig að fara í gegnum það. 489 00:21:10,965 --> 00:21:13,230 Svo skipta staðhæfing getur vera mjög gagnlegt, eins og heilbrigður. 490 00:21:13,230 --> 00:21:17,900 Og einnig, ekki remember-- ekki gleyma að setja hlé í það. 491 00:21:17,900 --> 00:21:20,330 >> DAVID Malan: Ekki muna þetta. 492 00:21:20,330 --> 00:21:24,890 >> MARIA: Því þá gæti fallið í gegnum frá einu tilviki til annars. 493 00:21:24,890 --> 00:21:27,930 Svo skulum segja að málið constant1 ekki hafa hlé yfirlýsingu í það. 494 00:21:27,930 --> 00:21:31,920 Þá erum við kannski falla í gegnum inni tilfelli constant2. 495 00:21:31,920 --> 00:21:35,070 Og við viljum ekki að gera það ef við höfum nú þegar náð að ræða constant1 496 00:21:35,070 --> 00:21:37,830 og það er jafnt n. 497 00:21:37,830 --> 00:21:45,100 >> Svo, til dæmis, ef við erum með breytu n sem inniheldur flokks númer, 498 00:21:45,100 --> 00:21:48,990 og við viljum að sjá hvað það bekknum is-- ef n jafngildir 50, 499 00:21:48,990 --> 00:21:51,957 við erum að fara að prenta "CS50 er Inngangur að tölvunarfræði I. " 500 00:21:51,957 --> 00:21:53,040 Þá erum við að fara að brjóta. 501 00:21:53,040 --> 00:21:53,920 Og það er það. 502 00:21:53,920 --> 00:21:55,950 Ef hins vegar sem n er jafngilt 51, við erum að fara 503 00:21:55,950 --> 00:21:58,494 að prenta "CS51 er Inngangur að tölvunarfræði II. " 504 00:21:58,494 --> 00:21:59,910 Þá aftur, við erum að fara að brjóta. 505 00:21:59,910 --> 00:22:05,080 Hins vegar, ef þá erum við að setja 124, 61, allir annað númer sem þú might hugsa um, 506 00:22:05,080 --> 00:22:06,890 eða program er ekki að fara að viðurkenna það. 507 00:22:06,890 --> 00:22:09,010 Svo það er að fara að segja, "Því miður, ég er ekki kunnugur þeim flokki. " 508 00:22:09,010 --> 00:22:10,009 Og það er að fara að brjóta. 509 00:22:10,009 --> 00:22:12,847 DAVID Malan: Svo þú getur raunverulega sjá if, annars ef annað hugmynd hér. 510 00:22:12,847 --> 00:22:15,430 Það er bara öðruvísi setningafræði fyrir tjá nákvæmlega sömu hugmynd. 511 00:22:15,430 --> 00:22:17,690 >> MARIA: Nákvæmlega. 512 00:22:17,690 --> 00:22:19,480 Nú höfum við þríþætt rekstraraðila okkar. 513 00:22:19,480 --> 00:22:24,900 Svo þrígildur rekstraraðilar hafa þrír parts-- ástandi, 514 00:22:24,900 --> 00:22:27,220 eitthvað að gera ef sem skilyrði er satt, 515 00:22:27,220 --> 00:22:29,730 og þá eitthvað að gera ef það ástand er falskur. 516 00:22:29,730 --> 00:22:33,400 Svo þú sérð, í grundvallaratriðum, setningafræði sem hér. 517 00:22:33,400 --> 00:22:37,792 Við höfum á spurningamerkið, og þá the-- hvað við köllum þetta? 518 00:22:37,792 --> 00:22:38,750 DAVID Malan: The ristill. 519 00:22:38,750 --> 00:22:39,100 MARIA: Colon. 520 00:22:39,100 --> 00:22:39,599 Þakka þér fyrir. 521 00:22:39,599 --> 00:22:41,880 Sorry. 522 00:22:41,880 --> 00:22:45,800 Svo skulum líta á dæmi til sjá hvort við getum gert tilfinningu this-- 523 00:22:45,800 --> 00:22:47,840 class_num == 50. 524 00:22:47,840 --> 00:22:52,580 Svo hér sjáum við Boolean rekstraraðila okkar == sem ber saman breytilega class_num 525 00:22:52,580 --> 00:22:53,100 til 50. 526 00:22:53,100 --> 00:22:55,150 Svo class_num verslanir heiltala. 527 00:22:55,150 --> 00:22:58,180 Og ef það heiltölu jafngildir 50, þá erum við 528 00:22:58,180 --> 00:23:02,810 að geyma "David Malan" inni í streng prófessor. 529 00:23:02,810 --> 00:23:05,912 Ef flokkur fjöldi ekki jafna 50, "að Davíð Malan" 530 00:23:05,912 --> 00:23:07,120 er að fara að vera prófessor. 531 00:23:07,120 --> 00:23:08,630 >> DAVID Malan: Þakka þér. 532 00:23:08,630 --> 00:23:12,110 Og svo virðist þetta jafngildir hvað, myndir þú segja, við fyrstu sýn? 533 00:23:12,110 --> 00:23:17,930 534 00:23:17,930 --> 00:23:19,960 >> MARIA: Mér virðist eins if-else yfirlýsingar. 535 00:23:19,960 --> 00:23:20,709 >> DAVID Malan: Já. 536 00:23:20,709 --> 00:23:24,020 Og í raun, þetta er góður af ansi einn Ferja, 537 00:23:24,020 --> 00:23:27,520 svo að segja, til að hrinda nákvæmlega röksemdafærsla if-else 538 00:23:27,520 --> 00:23:29,010 en að gera allt í einu skrefi. 539 00:23:29,010 --> 00:23:29,860 >> MARIA: Nákvæmlega. 540 00:23:29,860 --> 00:23:30,360 Já. 541 00:23:30,360 --> 00:23:33,520 Svo if-else yfirlýsingar gæti taka upp mikið pláss. 542 00:23:33,520 --> 00:23:36,283 Þeir gætu verið of löng fyrir eitthvað eins einfalt og þetta. 543 00:23:36,283 --> 00:23:38,350 Þannig að þetta getur verið mjög gagnorðar og mjög gott. 544 00:23:38,350 --> 00:23:40,880 545 00:23:40,880 --> 00:23:46,820 Svo nú erum við að fara til að horfa á framkvæmd eitthvað aftur og aftur, 546 00:23:46,820 --> 00:23:50,060 svo stöðva fyrir a ástand mörgum sinnum 547 00:23:50,060 --> 00:23:53,510 og þá halda áfram að gera eitthvað en það ástand er satt. 548 00:23:53,510 --> 00:23:56,740 Þannig að þetta færir okkur vel inn í meðan lykkjur. 549 00:23:56,740 --> 00:23:59,270 >> Til vinstri, höfum við fyrst meðan okkar lykkja. 550 00:23:59,270 --> 00:24:03,840 Svo á meðan eitthvað er satt, gera eitthvað aftur og aftur. 551 00:24:03,840 --> 00:24:08,850 Svo tryggja að taka eftir því að okkar ástand hér er staðfest á the toppur. 552 00:24:08,850 --> 00:24:14,150 En með öðrum loop-- okkar sem við köllum að gera-en loop-- við gerum eitthvað, 553 00:24:14,150 --> 00:24:15,890 þá erum við að athuga ástand. 554 00:24:15,890 --> 00:24:17,980 Og ef því ástandi áfram að vera satt, 555 00:24:17,980 --> 00:24:20,150 við förum aftur og gera hlutur aftur. 556 00:24:20,150 --> 00:24:23,360 Svo er helsti munurinn þar skilyrðið er köflóttur fyrir. 557 00:24:23,360 --> 00:24:29,260 Og númerið má aldrei vera framkvæmd Ef ástand er ekki 558 00:24:29,260 --> 00:24:30,430 satt með while lykkju. 559 00:24:30,430 --> 00:24:33,050 En við gera-en lykkja, höfum við kóðann 560 00:24:33,050 --> 00:24:35,380 sem alltaf framkvæmt að minnsta kosti einu sinni. 561 00:24:35,380 --> 00:24:37,470 Og þá á meðan ástand áfram að vera satt, 562 00:24:37,470 --> 00:24:39,960 við getum farið aftur og kunnugt inn aftur. 563 00:24:39,960 --> 00:24:43,625 Svo hvers vegna finnst þér að við myndum nota a gera-while lykkju yfir while lykkju? 564 00:24:43,625 --> 00:24:48,221 565 00:24:48,221 --> 00:24:48,720 Hægri. 566 00:24:48,720 --> 00:24:52,600 Svo ef við viljum hvetja sem Notendur að einhvers konar inntak, 567 00:24:52,600 --> 00:24:55,400 ef við viljum biðja þá til að slá inn nafn sitt, 568 00:24:55,400 --> 00:24:57,342 við viljum að minnsta kosti spyrja þá einu sinni. 569 00:24:57,342 --> 00:24:59,050 Og ef þeir gera inn að nafn, við erum ekki 570 00:24:59,050 --> 00:25:00,740 að fara að spyrja þá aftur vegna þess að við vitum það nú þegar. 571 00:25:00,740 --> 00:25:02,656 En ef þeir ekki inn nafn þeirra, eða ef þeir 572 00:25:02,656 --> 00:25:05,787 inn eitthvað sem er augljóslega ekki nafn, 573 00:25:05,787 --> 00:25:08,120 við viljum samt að halda áfram biðja þá um að nafn þeirra. 574 00:25:08,120 --> 00:25:10,710 >> DAVID Malan: Og í fyrirlestri við höfðum eitt svona með að fá jákvæða int 575 00:25:10,710 --> 00:25:13,550 dæmi, þar er ekkert að athuga fyrst vegna þess að þú ert ekki einu sinni 576 00:25:13,550 --> 00:25:14,190 fengið int. 577 00:25:14,190 --> 00:25:16,680 Þannig að við viljum gera this-- fá int frá user-- 578 00:25:16,680 --> 00:25:18,860 þá stöðva það, ef til vill, aftur og aftur og aftur. 579 00:25:18,860 --> 00:25:21,030 >> MARIA: Nákvæmlega. 580 00:25:21,030 --> 00:25:22,060 Fyrir loops-- lagi. 581 00:25:22,060 --> 00:25:25,842 Fyrir lykkjur er hægt að leyfa okkur að gera nánast nákvæmlega það sama, eins og heilbrigður. 582 00:25:25,842 --> 00:25:27,300 Það er í raun nákvæmlega sama. 583 00:25:27,300 --> 00:25:30,190 Svo er ekkert sem þú getur gert með fyrir lykkjur 584 00:25:30,190 --> 00:25:32,840 að þú viljir ekki vera fær um að gera við á meðan lykkjur. 585 00:25:32,840 --> 00:25:36,900 En fyrir lykkjur kann að virðast svolítið dálítið flóknara setningafræðilega 586 00:25:36,900 --> 00:25:39,730 vegna þess að þeir hafa þremur hlutum inni hvað 587 00:25:39,730 --> 00:25:42,990 var áður bara ástand við á meðan lykkjur. 588 00:25:42,990 --> 00:25:48,260 Svo fyrsta hluti sem þú sjó, vinstri-mest, höfum við "INT dvergarnir = 0." 589 00:25:48,260 --> 00:25:51,490 Svo er þetta þar sem við frumstilla breytu okkar. 590 00:25:51,490 --> 00:25:55,210 >> Þá höfum við semíkommu og "dvergarnir <7." 591 00:25:55,210 --> 00:25:57,100 Svo er þetta þar út ástand í raun er. 592 00:25:57,100 --> 00:26:00,170 Svo það er það sem við hefðum setja bara í tíma loop-- 593 00:26:00,170 --> 00:26:01,880 "en dvergarnir <7." 594 00:26:01,880 --> 00:26:05,380 Hér, sem fer í miðja okkar fyrir lykkju. 595 00:26:05,380 --> 00:26:07,190 Svo "dwaves <7." 596 00:26:07,190 --> 00:26:11,350 Og þá er síðasta hluti okkar "dvergarnir ++," sem er þar við uppfæra breytu okkar. 597 00:26:11,350 --> 00:26:15,470 Svo mikilvægast að átta sig á er að þessi 598 00:26:15,470 --> 00:26:22,010 er að fara að fara í gegnum þetta fyrir lykkju sjö sinnum og framkvæma sjö sinnum. 599 00:26:22,010 --> 00:26:24,020 Þannig að við höfum sjö Dvergarnir, og þeir eru allir 600 00:26:24,020 --> 00:26:26,020 að fara að segja, "ég er hér til að hjálpa þér, Snow White " 601 00:26:26,020 --> 00:26:28,860 vegna þess að þeir eru tilbúnir til að hjálpa Mjallhvíti. 602 00:26:28,860 --> 00:26:33,600 >> Með meðan lykkja, við hefðum gert frumstilling og uppfærslu 603 00:26:33,600 --> 00:26:37,490 ekki inni í ástandi, aftur, en annaðhvort fyrir eða inni í while lykkju 604 00:26:37,490 --> 00:26:40,210 til að tryggja að we-- því við þurfum alltaf þá hluta. 605 00:26:40,210 --> 00:26:42,835 Svo til að tryggja að við höfum þá, myndum við höfum enn bætt þeim 606 00:26:42,835 --> 00:26:44,580 á, bara ekki inni í sviga. 607 00:26:44,580 --> 00:26:47,288 >> DAVID Malan: Og svo lítur það like-- í fyrirlestri, til dæmis, 608 00:26:47,288 --> 00:26:50,250 Ég næstum alltaf notað, eins og, ég og n og laglegur leiðinlegur breytur. 609 00:26:50,250 --> 00:26:53,050 Það lítur út eins og þú getur notað fleiri snjall heitir breytur líka. 610 00:26:53,050 --> 00:26:56,300 >> MARIA: Já, það er í raun mjög gott að nota aðeins meira lýsandi breytur 611 00:26:56,300 --> 00:26:59,400 því sérstaklega ef einhver annar er lesa code-- þinn kannski þú ert Röð 612 00:26:59,400 --> 00:27:00,940 eða ef þú ert að taka þátt með somebody-- 613 00:27:00,940 --> 00:27:03,481 þú vilt vera viss um að þeir skilja hvað þú ert að gera. 614 00:27:03,481 --> 00:27:05,750 615 00:27:05,750 --> 00:27:06,400 >> OK. 616 00:27:06,400 --> 00:27:11,435 Svo er þetta eitthvað mjög funky-- fyrir lykkju inni fyrir lykkju. 617 00:27:11,435 --> 00:27:13,060 Ég veit ekki hvort við höfum séð þetta áður. 618 00:27:13,060 --> 00:27:13,830 Örugglega ekki. 619 00:27:13,830 --> 00:27:17,750 En við getum í raun hafa this-- svo lykkjur í stað lykkjur. 620 00:27:17,750 --> 00:27:25,130 Svo er einhver vilja til að kannski ganga mig í gegnum hvað er að gerast hér? 621 00:27:25,130 --> 00:27:28,240 622 00:27:28,240 --> 00:27:29,490 DAVID Malan: Ég tek stunga. 623 00:27:29,490 --> 00:27:29,970 MARIA: Cool. 624 00:27:29,970 --> 00:27:30,636 DAVID Malan: OK. 625 00:27:30,636 --> 00:27:34,690 Svo, spoiler-- við viljum prenta efni sem er í neðra hægra horninu 626 00:27:34,690 --> 00:27:35,190 þar. 627 00:27:35,190 --> 00:27:35,450 >> MARIA: Hægri. 628 00:27:35,450 --> 00:27:35,710 Jájá. 629 00:27:35,710 --> 00:27:38,043 >> DAVID Malan: Þannig að við höfum bara setja þessi sýnishorn framleiðsla þar. 630 00:27:38,043 --> 00:27:42,590 Svo ég get álykta frá hæstur lykkja sem þú ert 631 00:27:42,590 --> 00:27:45,680 iterating yfir raðir í yst lykkja, svo að segja. 632 00:27:45,680 --> 00:27:48,107 Og þú ert iterating yfir dálka með innsta lykkju. 633 00:27:48,107 --> 00:27:50,190 Og innsæi, þetta ætti vonandi vit 634 00:27:50,190 --> 00:27:52,070 því við eðli hvert forrit sem við höfum séð 635 00:27:52,070 --> 00:27:55,570 áður, printf, sem er virka við erum að nota, að lokum, 636 00:27:55,570 --> 00:27:58,190 hefur getu til að prenta efni út í raun línu fyrir línu. 637 00:27:58,190 --> 00:27:59,960 Eins og þegar þú hefur outputted ný lína, það er 638 00:27:59,960 --> 00:28:02,876 engin tvöföldun aftur og prentun eitthvað hærra í skjánum, að minnsta kosti 639 00:28:02,876 --> 00:28:04,530 ekki nota printf svona. 640 00:28:04,530 --> 00:28:07,750 >> Og svo í þeim efnum, sem gerir það skilningi að ysta lykkja 641 00:28:07,750 --> 00:28:10,930 skal vísa til raðir vegna þess að gefinn röð, 642 00:28:10,930 --> 00:28:13,650 þú ert að fara til að vilja prenta út xxxxx og þá 643 00:28:13,650 --> 00:28:15,520 fara yfir í næstu línu, XXXXX. 644 00:28:15,520 --> 00:28:17,317 Svo raðir koma fyrst. 645 00:28:17,317 --> 00:28:19,150 Og þá innan hvers röð, prenta þú dálka. 646 00:28:19,150 --> 00:28:21,160 Ef þú reyndir að gera það á gagnstæða, myndi það sennilega ekki 647 00:28:21,160 --> 00:28:21,690 koma út eins og þú ætlar. 648 00:28:21,690 --> 00:28:22,190 >> MARIA: Já. 649 00:28:22,190 --> 00:28:24,950 Við bara gat ekki farið aftur til fyrri umf með printf. 650 00:28:24,950 --> 00:28:27,658 >> DAVID Malan: Og hvað er áhugavert á spjalli í dag um umfang, 651 00:28:27,658 --> 00:28:31,600 reyndar, er að röð er int sem er lýst í hæstur lykkju. 652 00:28:31,600 --> 00:28:34,030 En eftir að það er enn inni, svo að segja, 653 00:28:34,030 --> 00:28:35,982 hrokkið axlabönd sem strax á eftir, 654 00:28:35,982 --> 00:28:38,440 jafnvel þó að það er ekki tæknilega innan þessara hrokkið axlabönd. 655 00:28:38,440 --> 00:28:41,750 Svo er röðin að umfangi fyrir heild á runu af kóða, 656 00:28:41,750 --> 00:28:44,690 bæði innri hlið ytra fyrir lykkju og innan í innri til hliðar. 657 00:28:44,690 --> 00:28:48,050 En hins vegar þar er dálkur í umfangi? 658 00:28:48,050 --> 00:28:49,810 Breytan dálkur? 659 00:28:49,810 --> 00:28:51,310 Já, aðeins í inni lykkju. 660 00:28:51,310 --> 00:28:54,280 Og það er allt í lagi vegna þess að við ekki aðgang að það utan hrokkið axlabönd sínum. 661 00:28:54,280 --> 00:28:57,280 Allt sem við gerum er að prenta út nýtt lína aftast þar. 662 00:28:57,280 --> 00:28:58,670 Þannig að í raun er í lagi. 663 00:28:58,670 --> 00:29:03,740 >> Svo hefur þetta áhrif, það lítur út eins og, um að gera þrjár raðir og fjögur blöð. 664 00:29:03,740 --> 00:29:04,370 >> MARIA: Hægri. 665 00:29:04,370 --> 00:29:06,270 Svo fyrst við förum í gegnum fyrstu röðinni okkar. 666 00:29:06,270 --> 00:29:10,520 Og bara í fyrstu röðinni okkar, við gerum það fjórir dálkar inni í fyrstu röðinni. 667 00:29:10,520 --> 00:29:11,980 Þannig að við prenta út fjórum X er. 668 00:29:11,980 --> 00:29:15,800 Og þá getum við hætta er til hliðar, þar sem við höfum nú þegar prentað út fjórum X er. 669 00:29:15,800 --> 00:29:17,100 Og við að prenta nýja línu. 670 00:29:17,100 --> 00:29:19,920 Og þá erum við að fara í gegnum Sama ferli í tvö raðir 671 00:29:19,920 --> 00:29:21,170 að gera samtals þremur. 672 00:29:21,170 --> 00:29:23,530 >> DAVID Malan: Og það er athyglisvert að það er bara artifact af letrinu, sú staðreynd 673 00:29:23,530 --> 00:29:25,680 að sýnið framleiðsla virðast svo miklu hærri, 674 00:29:25,680 --> 00:29:27,520 eins og það sem meira er raðir en dálkum. 675 00:29:27,520 --> 00:29:29,824 En það er bara vegna þess að X er hærri en það er breiður. 676 00:29:29,824 --> 00:29:32,740 Það er allt sem er að gerast þar, auk hvítt rúm milli línanna. 677 00:29:32,740 --> 00:29:33,281 >> MARIA: Hægri. 678 00:29:33,281 --> 00:29:34,792 Cool. 679 00:29:34,792 --> 00:29:35,750 DAVID Malan: Allt í lagi. 680 00:29:35,750 --> 00:29:39,830 Svo a fljótur líta á vandamál setja einn, taka einhverjar spurningar, og þá frestað? 681 00:29:39,830 --> 00:29:40,330 Allt í lagi. 682 00:29:40,330 --> 00:29:43,164 Svo í vandamál setja einn, það er þrjú helstu hindranir, að lokum. 683 00:29:43,164 --> 00:29:44,955 En fyrst, þú munt finna að vandamálið sett 684 00:29:44,955 --> 00:29:47,900 forskrift, sem með mörgum sem psets í haust, er að fara að ganga í 685 00:29:47,900 --> 00:29:50,691 gegnum nokkur hlý upp æfingum, benda þér á nokkur úrræði 686 00:29:50,691 --> 00:29:52,440 sem þú mega eða mega ekki hafa séð þegar. 687 00:29:52,440 --> 00:29:54,440 Til dæmis, CS50 hefur föruneyti af stuttbuxur, 688 00:29:54,440 --> 00:29:56,481 sem eru stutt myndbönd, ekki ólíkt þessu, en það 689 00:29:56,481 --> 00:29:58,460 eru mjög spjallþráð specific-- kannski fimm mínútur, 690 00:29:58,460 --> 00:30:02,360 10 mínútur að lengd á lykkjur eða um skilyrði eða reiknirit 691 00:30:02,360 --> 00:30:04,125 eða síðar á fleiri háþróaður efni, eins og heilbrigður. 692 00:30:04,125 --> 00:30:06,000 Og við embed almennt þeir í vandræðum 693 00:30:06,000 --> 00:30:07,950 setur þannig að nemendur hafa auðlind sem á 694 00:30:07,950 --> 00:30:10,840 að endurskoða efni sem gæti hafa nú þegar komið upp í fyrirlestri eða kafla. 695 00:30:10,840 --> 00:30:13,220 En þannig það er markvissari og fleiri innan seilingar þeirra. 696 00:30:13,220 --> 00:30:15,928 >> Við hafa tilhneigingu einnig til að embed í vanda setur hlutina kallast walkthroughs. 697 00:30:15,928 --> 00:30:20,790 Svo næstum öll dæmi sem ég geri í fyrirlestri, á sviðinu hér, við einnig 698 00:30:20,790 --> 00:30:24,565 skutum á myndavél í fara meira hægar, 699 00:30:24,565 --> 00:30:28,760 nánara walkthrough af mér á minn laptop þess kóða, línu fyrir línu 700 00:30:28,760 --> 00:30:31,427 þannig að í bekknum, munum við oft Lögð gegnum eitthvað eða einhvern 701 00:30:31,427 --> 00:30:33,260 mun interject með að svara við spurningu. 702 00:30:33,260 --> 00:30:35,820 En það þýðir ekki endilega að sökkva í fyrir í áhorfendur. 703 00:30:35,820 --> 00:30:38,230 Svo þú munt finna númer walkthroughs fyrir flest af dæmunum 704 00:30:38,230 --> 00:30:40,950 sem við gerum hér í fyrirlestri þannig að þú Hægt er að ganga í gegnum það á eigin hraða 705 00:30:40,950 --> 00:30:43,580 og spóla hratt áfram eða til sleppa öllu leyti, ef þú vilt. 706 00:30:43,580 --> 00:30:45,356 >> Það er oft nokkrar Warm-upp spurningar sem 707 00:30:45,356 --> 00:30:47,105 biðja þig að raða á styrkja þetta efni 708 00:30:47,105 --> 00:30:50,250 og ganga úr skugga um að þú ert notalega áður þú halda áfram með the hvíla af the pset. 709 00:30:50,250 --> 00:30:51,700 Og þá, að sjálfsögðu, það er pset sjálft. 710 00:30:51,700 --> 00:30:53,450 Og eitt af því sem við mjög vísvitandi 711 00:30:53,450 --> 00:30:57,202 gera í CS50 er nánast hvert uninteresting eða vitsmunalega uninteresting 712 00:30:57,202 --> 00:30:58,910 vélrænni skref sem þú gætir þurft að gera 713 00:30:58,910 --> 00:31:00,519 er nánast alltaf mjög vel skjalfest. 714 00:31:00,519 --> 00:31:03,560 Á meðan á hugtakinu, munum við byrja að spyrja meira Retorísk spurningar 715 00:31:03,560 --> 00:31:06,187 eins muna hvernig á að gera þetta eða hitt? 716 00:31:06,187 --> 00:31:08,520 En almennt, þú munt finna að vandamálið setur fá þig 717 00:31:08,520 --> 00:31:10,269 gegnum aflfræði um eitthvað svo að 718 00:31:10,269 --> 00:31:14,160 áhugaverðar, vitsmunalegu viðfangsefni eru á endanum til vinstri við þig nemandann. 719 00:31:14,160 --> 00:31:17,390 >> Með því að segja, Zamyla, sem vér haldið vísa í dag í fyrirlestri, 720 00:31:17,390 --> 00:31:20,190 er einn af longtime starfsfólk okkar aðili sem einnig hefur walkthroughs 721 00:31:20,190 --> 00:31:24,520 á ákveðin vandamál pset eins og Mario og gráðugur, þó ekki vatn á þessu ári. 722 00:31:24,520 --> 00:31:26,540 Og það er í þeim walkthroughs sem hún oft 723 00:31:26,540 --> 00:31:29,450 býður upp á nokkrar ábendingar og bragðarefur fyrir hvernig á að halda áfram, aldrei að segja þér 724 00:31:29,450 --> 00:31:31,810 nákvæmlega hvað á að gera, en rather-- eins ástandi, 725 00:31:31,810 --> 00:31:35,200 ef þú will-- gefa þér að minnsta kosti nokkrar hugmyndir svo að það er komið að þér, 726 00:31:35,200 --> 00:31:37,830 lokum, að ákveða hvernig á að snúa sér til þeirra. 727 00:31:37,830 --> 00:31:41,200 >> MARIA: Raða af eins og a hár-láréttur flötur skilningur á rökfræði sem 728 00:31:41,200 --> 00:31:42,220 við erum að biðja þig um að gera. 729 00:31:42,220 --> 00:31:42,485 >> DAVID Malan: Einmitt. 730 00:31:42,485 --> 00:31:44,190 Og í raun, Zamyla er walkthroughs er ætlað 731 00:31:44,190 --> 00:31:46,190 að svara oft spurði spurning um hvar 732 00:31:46,190 --> 00:31:48,610 ég byrjaði, sérstaklega þegar þessi langa upplýsingar eru 733 00:31:48,610 --> 00:31:51,960 a lítill draga kjark gefið allan texta og myndefni sem þeir hafa í þeim. 734 00:31:51,960 --> 00:31:54,890 >> Svo water.c, þú munt finna eftir að þú hefur lokið því, 735 00:31:54,890 --> 00:31:56,920 er í raun tiltölulega einfalt. 736 00:31:56,920 --> 00:31:58,882 Absolutely eru fullt af að fara til Bang 737 00:31:58,882 --> 00:32:01,840 höfuð við vegg að reyna að reikna út hvers vegna það er ekki gerð 738 00:32:01,840 --> 00:32:03,450 eða hvers vegna það er ekki í gangi rétt. 739 00:32:03,450 --> 00:32:05,040 En þegar þú ert búinn með það og þegar þú hefur 740 00:32:05,040 --> 00:32:07,620 eyddi nokkrum tíma að glíma við eitthvað af galla sem þú gætir hafa, 741 00:32:07,620 --> 00:32:09,490 þú munt komast að því að það er mjög stutt program. 742 00:32:09,490 --> 00:32:11,770 Það er hægt að gera í örfáum línur af kóða, sem flest 743 00:32:11,770 --> 00:32:15,030 við höfum séð hér í fyrirlestri þegar, ef þú saman rétt kubbar. 744 00:32:15,030 --> 00:32:16,810 >> Og eins og við leggjum hér, það er að fara að spyrja 745 00:32:16,810 --> 00:32:22,250 þú að tilgreina hversu margar mínútur einhver er að taka í sturtu á háskólasvæðinu. 746 00:32:22,250 --> 00:32:24,779 Við tilgreina í vanda stilla inn gengið flæði vatns 747 00:32:24,779 --> 00:32:27,320 í, eins og, lág-rennsli sturtu höfuð, mikið eins og Seinfeld bút 748 00:32:27,320 --> 00:32:29,180 við sáum í gær eða hið gagnstæða þar af. 749 00:32:29,180 --> 00:32:30,971 Og þá verður þú bara að gera smá af stærðfræði, 750 00:32:30,971 --> 00:32:34,710 really-- tölur með C að segja okkur hversu mörg, u.þ.b., flöskur af vatni 751 00:32:34,710 --> 00:32:37,720 er það sem svarar til ef við erum að taka á milli n-mínútna sturtu. 752 00:32:37,720 --> 00:32:41,389 >> Nú, í mario.c, þetta er að fara að vera örlítið lengur program. 753 00:32:41,389 --> 00:32:42,930 Það er samt ekki að fara að vera svona lengi. 754 00:32:42,930 --> 00:32:45,130 Bara nokkrar línur sem eru yfir water.c. 755 00:32:45,130 --> 00:32:48,230 En það er að fara að vera tækifæri að endurskapa gamla skólanum Mario 756 00:32:48,230 --> 00:32:50,670 pýramída frá Super Mario Brothers eða sumir eftirfylgni á. 757 00:32:50,670 --> 00:32:53,510 Það er ekki að fara að líta út eins og fallegri eða eins litrík og það eitt þar. 758 00:32:53,510 --> 00:32:56,468 Við erum bara að fara að nota litla hashtags eins og við höfum hér á skjánum 759 00:32:56,468 --> 00:32:58,120 nota ASCII texta. 760 00:32:58,120 --> 00:33:00,362 En það mun samræma sömu hugmynd. 761 00:33:00,362 --> 00:33:02,570 Og það er að fara að vera æfa sem við fyrstu sýn 762 00:33:02,570 --> 00:33:04,720 virðist nokkuð simple-- bara prenta einföld pýramída. 763 00:33:04,720 --> 00:33:07,345 En það er nokkra eiginleika hér sem eru áhugaverð. 764 00:33:07,345 --> 00:33:12,400 Takið eftir að rightmost brún pýramída raun hefur breidd tvö. 765 00:33:12,400 --> 00:33:14,570 Svo er það tveir jafnir dálkar hæð, sem 766 00:33:14,570 --> 00:33:16,804 gerir það þurfa smá hluti af hugsun til að gera 767 00:33:16,804 --> 00:33:19,720 viss um að þú færð að nákvæmlega rétt, sem öfugt við bara fullkomlega horn 768 00:33:19,720 --> 00:33:20,220 lína. 769 00:33:20,220 --> 00:33:23,340 Svo er það hluti af horninu að ræða en passar í raun leikinn. 770 00:33:23,340 --> 00:33:27,610 >> Og það er líka ekki augljós í fyrstu litið hvernig á að prenta hvítt rúm. 771 00:33:27,610 --> 00:33:29,430 Svo þegar ég líta á Sýnið framleiðsla here-- 772 00:33:29,430 --> 00:33:32,440 og það er líka í spec-- það konar lítur út eins og rétthyrningur, 773 00:33:32,440 --> 00:33:35,120 en ská af rétthyrningur hefur verið hakkað burt, 774 00:33:35,120 --> 00:33:37,320 og það er bara hvítt rými, svo að segja. 775 00:33:37,320 --> 00:33:40,100 Og svo oft spurt Spurningin hér er alltaf vel, 776 00:33:40,100 --> 00:33:43,302 hvernig get ég færa hashtags yfir til hægri? 777 00:33:43,302 --> 00:33:44,760 Eða hvernig get ég prentað autt rými? 778 00:33:44,760 --> 00:33:46,860 Og það er í raun auðveldara en flestir nemendur hugsa. 779 00:33:46,860 --> 00:33:47,360 Ekki satt? 780 00:33:47,360 --> 00:33:51,620 Þú getur samræma það sjónrænt með bara hitting á bil bar einu sinni eða tvisvar 781 00:33:51,620 --> 00:33:52,700 eða þrisvar. 782 00:33:52,700 --> 00:33:56,260 >> Og svo jafnvel þótt við printf við nánast alltaf prenta út strenginn eða int 783 00:33:56,260 --> 00:33:59,950 eða orð eins og "halló, heimurinn "eða röð af orðum, 784 00:33:59,950 --> 00:34:03,560 þú getur líka bara prenta vitna, rúm, unquote. 785 00:34:03,560 --> 00:34:06,320 Og það mun í raun gefa þú hvítt pláss þar. 786 00:34:06,320 --> 00:34:08,330 Svo halda að í huga og ekki overthink þetta. 787 00:34:08,330 --> 00:34:10,570 Þú þarft virkilega að ákveða, röð fyrir röð af röð, 788 00:34:10,570 --> 00:34:14,280 ekki ólíkt td þínum áðan, hversu margir af þeim 789 00:34:14,280 --> 00:34:18,420 dálkum ætti að vera hvítur rými og hversu margir af þeim ætti að vera Hashtags. 790 00:34:18,420 --> 00:34:21,560 Það mun taka smá tíma, en það er lokum rökfræði ráðgáta konar. 791 00:34:21,560 --> 00:34:22,060 >> MARIA: Já. 792 00:34:22,060 --> 00:34:25,060 En röksemdafærsla fara, röð fyrir röð er að fara að vera mjög gagnlegt hér. 793 00:34:25,060 --> 00:34:25,810 DAVID Malan: Já. 794 00:34:25,810 --> 00:34:28,976 Ég held að dæmi um kóða sem þú gave-- jafnvel þó það væri ekki heill forrit. 795 00:34:28,976 --> 00:34:34,247 Þú þarft samt int og helstu og tóm og #include stdio.h, 796 00:34:34,247 --> 00:34:35,580 a einhver fjöldi af efni frá fyrirlestri. 797 00:34:35,580 --> 00:34:37,629 En að byggja blokkir virðast vera þar. 798 00:34:37,629 --> 00:34:39,920 Og þá er loks eitthvað aðeins meira lausnarleiðar. 799 00:34:39,920 --> 00:34:43,210 Svo kemur í ljós að hvenær sem þú fara í CVS eða hvaða sjoppa 800 00:34:43,210 --> 00:34:47,810 og einhver hendur þér á að gjaldkeri reikninga eða mynt sem breyting, 801 00:34:47,810 --> 00:34:50,620 það kemur í ljós að þeir, menn, hvort sem þeir vita það eða ekki, 802 00:34:50,620 --> 00:34:53,300 eru sennilega með hvað er kallað gráðugur reiknirit, 803 00:34:53,300 --> 00:34:58,170 þar ef þú ert skuldaði, segja, $ 21 í breytingum því af einhverjum ástæðum 804 00:34:58,170 --> 00:35:01,580 þú keyptir eitthvað mjög ódýrt með mjög stór reikningur á CVS, 805 00:35:01,580 --> 00:35:05,910 það væri mjög pirrandi ef Gjaldkeri gaf þér 21 manns eða verri 806 00:35:05,910 --> 00:35:07,629 enn, a heild einhver fjöldi af mynt. 807 00:35:07,629 --> 00:35:10,670 Frekar, það skynsamur maður er líklega að fara að gera er að þeir eru að fara 808 00:35:10,670 --> 00:35:14,224 að grípa $ 20- og þá $ 1-frumvarp, og skila þér bara tvær reikninga í umræddu tilviki. 809 00:35:14,224 --> 00:35:17,390 MARIA: Svo þeir eru að leita að lágmarka breyting sem þeir gefa til baka til þín. 810 00:35:17,390 --> 00:35:17,850 DAVID Malan: Einmitt. 811 00:35:17,850 --> 00:35:19,540 Og sami samningur með mynt, eins og heilbrigður. 812 00:35:19,540 --> 00:35:23,040 Ef þú ert skuldaði, segja, $ 0,50, vonandi þú vilt ekki 50 smáaurarnir. 813 00:35:23,040 --> 00:35:25,500 Þú vilt í staðinn tvö misserum, til dæmis. 814 00:35:25,500 --> 00:35:27,540 Nú, þetta er gert ráð fyrir að gjaldkeri hefur 815 00:35:27,540 --> 00:35:29,940 nóg af öllum kirkjum sem hann eða hún gæti langað til að gefa þér. 816 00:35:29,940 --> 00:35:32,148 En við leyfum þér að gera ráð fyrir eins mikið á því vandamáli. 817 00:35:32,148 --> 00:35:35,590 Og markmiðið, að lokum er, að hrinda í C kóða gráðugur reiknirit. 818 00:35:35,590 --> 00:35:37,344 Þannig að notandi er leyft að slá í hversu mikið 819 00:35:37,344 --> 00:35:40,510 breyta hann eða hún er skuldaði með dollara og sent, einhvers konar fleytitölu 820 00:35:40,510 --> 00:35:41,590 gildi líklega. 821 00:35:41,590 --> 00:35:45,530 Og þá verður þú að gera stærðfræði og reikna út algorithmically vel, 822 00:35:45,530 --> 00:35:49,020 hversu margir mynt get ég gefið þú óverulega að gefa þér 823 00:35:49,020 --> 00:35:50,270 nákvæmlega það magn af breytingum. 824 00:35:50,270 --> 00:35:53,470 En það er að fara til vera a Nokkrum erfiður hlutum hér, ekki satt? 825 00:35:53,470 --> 00:35:56,236 Eins og það er allt ónákvæmni mál. 826 00:35:56,236 --> 00:35:56,860 MARIA: Nákvæmlega. 827 00:35:56,860 --> 00:35:59,114 Svo fleytitölu gildi hafa ónákvæmni. 828 00:35:59,114 --> 00:36:00,780 Gerði við tölum um þetta í fyrirlestri í dag? 829 00:36:00,780 --> 00:36:02,340 >> DAVID Malan: Við gerðum Síðast þegar í fyrirlestri. 830 00:36:02,340 --> 00:36:03,506 Við ræddum um ónákvæmni. 831 00:36:03,506 --> 00:36:08,840 Og þú vilt ekki að svindla notanda um hversu miklar breytingar sem hann eða hún er skuldaði. 832 00:36:08,840 --> 00:36:11,290 Og svo walkthrough, í vandamálið sett forskrift, 833 00:36:11,290 --> 00:36:15,990 gefa sumir hugsun, að lokum, eins og til hvernig þú getur draga þá ónákvæmni 834 00:36:15,990 --> 00:36:17,280 villur, hugsanlega. 835 00:36:17,280 --> 00:36:21,050 Það er óhjákvæmileg, vissulega, fyrir inntak við erum að tala um. 836 00:36:21,050 --> 00:36:23,590 Og í raun, pennies-- kannski að við munum fresta til Zamyla, 837 00:36:23,590 --> 00:36:25,136 Ég held, fyrir bragðarefur þar. 838 00:36:25,136 --> 00:36:27,760 Svo að lokum, þú munt finna a framvinda vandamál í þessari viku, 839 00:36:27,760 --> 00:36:30,700 fyrsta sem er frekar lítill, þá miðlungs, þá lítið stærri. 840 00:36:30,700 --> 00:36:33,200 En öll þeirra nota húsið blokkir frá þessum síðustu viku, 841 00:36:33,200 --> 00:36:35,280 frá þessari supersection, Heimadæmi forskrift 842 00:36:35,280 --> 00:36:36,710 setur þig í óteljandi úrræði. 843 00:36:36,710 --> 00:36:41,000 En samt, ef yfirleitt barátta, sérstaklega meðal þeirra minna þægilegt 844 00:36:41,000 --> 00:36:42,917 án undangenginnar bakgrunn, koma til skrifstofutíma 845 00:36:42,917 --> 00:36:44,958 á mánudag og þriðjudag og Miðvikudagur og fimmtudagur. 846 00:36:44,958 --> 00:36:46,950 Fara á CS50 Ræddu um website Námskeiðið er, 847 00:36:46,950 --> 00:36:49,080 um sem þú getur spjallað við starfsfólk og bekkjarfélögum. 848 00:36:49,080 --> 00:36:51,670 >> En á endanum held ég að Besta ráð er bara að byrja snemma. 849 00:36:51,670 --> 00:36:54,711 Það er ekki góður af bekknum sem þér ættu að vera farnar psets á miðvikudag 850 00:36:54,711 --> 00:36:56,640 nótt, eða verri fimmtudagskvöld. 851 00:36:56,640 --> 00:36:59,067 >> MARIA: Besta ráð mitt er að hafa byrjað með því að mánudagur. 852 00:36:59,067 --> 00:36:59,900 DAVID Malan: mánudagur. 853 00:36:59,900 --> 00:37:02,490 Svo ef þú hefur ekki byrjað already-- nr. 854 00:37:02,490 --> 00:37:04,732 En jafnvel þótt ekki mánudagur, þá þriðjudagur. 855 00:37:04,732 --> 00:37:05,690 Því fyrr því betra. 856 00:37:05,690 --> 00:37:08,605 Og það er ástæðan fyrir því að Auðvitað hefur svo marga seint daga er 857 00:37:08,605 --> 00:37:10,535 að gefa þér smá a sálfræðileg þrýstingur 858 00:37:10,535 --> 00:37:13,684 að byrja fyrr en samt láta það miði þegar það tekur lengri tíma 859 00:37:13,684 --> 00:37:14,350 en þú átt von á. 860 00:37:14,350 --> 00:37:17,950 >> MARIA: Og þú vilt að nýta Viðtalstími eins mikið og þú getur líka. 861 00:37:17,950 --> 00:37:20,291 >> DAVID Malan: Einhverjar spurningar? 862 00:37:20,291 --> 00:37:20,790 Allt í lagi. 863 00:37:20,790 --> 00:37:22,930 Ja, hvers vegna eigum við ekki að fresta hér? 864 00:37:22,930 --> 00:37:23,487