1 00:00:06,650 --> 00:00:09,390 [Powered by Google Translate] JOE McCormick: Svo nú erum við að fara að tala um breytur. 2 00:00:09,390 --> 00:00:13,270 Breytur í tölvunarfræði eru leið til að geyma verðmæti. 3 00:00:13,270 --> 00:00:14,980 Nú, hvað og hvernig við geyma sem 4 00:00:14,980 --> 00:00:16,210 gildið er ekki of mikilvægt. 5 00:00:16,210 --> 00:00:19,780 Við getum haft gildi sem er orð, sem gæti 6 00:00:19,780 --> 00:00:21,170 verið geymd sem streng. 7 00:00:21,170 --> 00:00:23,160 Eða við gætum hafa eitthvað sem er karakter, 8 00:00:23,160 --> 00:00:24,110 eins stafinn a. 9 00:00:24,110 --> 00:00:26,420 Og það yrði geymt sem bleikja. 10 00:00:26,420 --> 00:00:29,660 Við gætum hafa a tala, eins og einn eða 12, það væri 11 00:00:29,660 --> 00:00:32,310 geymd sem heiltölu eða int. 12 00:00:32,310 --> 00:00:35,940 Þá höfum við mismunandi hluti eins og fljóta, sem getur geymt 13 00:00:35,940 --> 00:00:41,700 hluti eins og 1,01 eða 111,13. 14 00:00:41,700 --> 00:00:43,530 Þessi gildi eru alltaf kallaðir breytanlegur. 15 00:00:43,530 --> 00:00:46,490 Sem þýðir að ef við geymd númer eitt í heiltölu á 16 00:00:46,490 --> 00:00:49,490 efst á dagskrá síðar, gætum við breytt þeim fjölda til 17 00:00:49,490 --> 00:00:51,460 vera þrír eða sjö. 18 00:00:51,460 --> 00:00:53,890 Nú, sveitarstjórn breyta er það sem þú munt venjulega fundur, 19 00:00:53,890 --> 00:00:55,250 við framkvæmd aðgerð. 20 00:00:55,250 --> 00:00:57,260 Svo skulum segja að þú ert í aðal virka. 21 00:00:57,260 --> 00:00:59,910 Og þú vilt búa til breytu sem heitir NUM. 22 00:00:59,910 --> 00:01:01,240 Og við munum geyma heiltölu í það. 23 00:01:01,240 --> 00:01:04,680 Svo við gætum sagt eitthvað eins og int num = 3. 24 00:01:04,680 --> 00:01:05,319 Nú, þar sem þú ferð. 25 00:01:05,319 --> 00:01:06,830 Þú hafa a heimamaður breytu. 26 00:01:06,830 --> 00:01:09,670 Nú er þessi breyta að breyta síðar í helstu 27 00:01:09,670 --> 00:01:13,700 virka, með því að segja eitthvað eins og num = 6 eða NUM = 7. 28 00:01:13,700 --> 00:01:15,940 En breyta er fastur innan 29 00:01:15,940 --> 00:01:18,320 umfang þeirrar starfsemi. 30 00:01:18,320 --> 00:01:21,690 Og umfang byrjar yfirleitt með hrokkið borsveif Á 31 00:01:21,690 --> 00:01:23,990 upphafi helstu og endar með hrokkið borsveif sem 32 00:01:23,990 --> 00:01:26,230 lokar út helstu hlutverk. 33 00:01:26,230 --> 00:01:29,610 Og þetta staðbundin breytu er nú fastur í þessu umfangi. 34 00:01:29,610 --> 00:01:32,200 Svo það er ekki lengur hægt að nálgast á annan valkost, 35 00:01:32,200 --> 00:01:33,950 utan meginvirkni. 36 00:01:33,950 --> 00:01:36,230 Og þegar endar helsta virka framkvæmd hennar og 37 00:01:36,230 --> 00:01:40,460 aftur, er þetta staðbundin breytu sem heitir NUM farin. 38 00:01:40,460 --> 00:01:42,760 Svo í mótsögn við staðbundnar breytur, höfum við eitthvað 39 00:01:42,760 --> 00:01:43,970 kallast global breytur. 40 00:01:43,970 --> 00:01:46,890 Nú, er alþjóðlegt breytu skilgreind efst af 41 00:01:46,890 --> 00:01:49,860 forrit og hægt er að nálgast hvar sem er í kerfinu. 42 00:01:49,860 --> 00:01:51,805 Svo skulum segja að þú lýst alþjóðlegt breytu efst á 43 00:01:51,805 --> 00:01:53,200 Forritið, sem kallast próf. 44 00:01:53,200 --> 00:01:54,990 Nú gæti þetta breytu er að nálgast 45 00:01:54,990 --> 00:01:56,000 hvar sem er í kerfinu. 46 00:01:56,000 --> 00:01:58,230 Þú getur nálgast það í aðal virka eða virka 47 00:01:58,230 --> 00:01:59,300 neðan það. 48 00:01:59,300 --> 00:02:02,210 En ef þú reynir alltaf að búa til staðbundnar breytu í einu 49 00:02:02,210 --> 00:02:04,170 þessar aðgerðir, með sama nafni og 50 00:02:04,170 --> 00:02:05,880 próf, það er átök. 51 00:02:05,880 --> 00:02:07,720 Þar sem þú veist ekki hvaða breytu sem þú vilt nota. 52 00:02:07,720 --> 00:02:09,039 Ert þú vilt nota alþjóðlegt próf, 53 00:02:09,039 --> 00:02:10,910 lýst efst program? 54 00:02:10,910 --> 00:02:12,495 Eða viltu að nota staðbundin breytu próf sem 55 00:02:12,495 --> 00:02:14,920 þú ert að reyna að búa til í þessa aðgerð? 56 00:02:14,920 --> 00:02:16,700 Nú, þetta er ein af ástæðunum af hverju við viljum ekki 57 00:02:16,700 --> 00:02:18,960 bara nota alþjóðlegum breytur frjálslega. 58 00:02:18,960 --> 00:02:21,570 Það er eitthvað sem kallast ringulreið nafnið pláss. 59 00:02:21,570 --> 00:02:23,940 Jafnvel þótt þú ætlir þér það ekki, getur þú óvart búa til 60 00:02:23,940 --> 00:02:26,270 staðbundin breytu, síðar í verkefninu, með sama 61 00:02:26,270 --> 00:02:28,140 nafn sem alþjóðlegt breytu. 62 00:02:28,140 --> 00:02:30,130 Og þetta er ekki sitja mikið vandamál þegar þú ert að vinna í 63 00:02:30,130 --> 00:02:33,120 lítil 10, 20, 30-lína forrit. 64 00:02:33,120 --> 00:02:35,520 Þegar þú hefur allt að þúsundir lína af kóða, þú verður ekki 65 00:02:35,520 --> 00:02:38,740 muna nákvæmlega hvað þú hefur vistað fyrir alþjóðleg breytu. 66 00:02:38,740 --> 00:02:41,000 Svo eitt að íhuga, þegar staðbundin og alheims 67 00:02:41,000 --> 00:02:43,570 breytur er að hugsa um umfang þeirra. 68 00:02:43,570 --> 00:02:47,270 Nú, umfang vísar til þar sem þessar breytur er hægt að nota í 69 00:02:47,270 --> 00:02:48,500 forritið. 70 00:02:48,500 --> 00:02:51,080 Svo er alþjóðlegt breytu hefur það sem er kallað alþjóðlegt umfang, 71 00:02:51,080 --> 00:02:53,820 sem þýðir að það væri hægt að nota hvar sem er í kerfinu. 72 00:02:53,820 --> 00:02:56,860 Þegar þú frumstilla þá breytu, það geta vera notaður í 73 00:02:56,860 --> 00:03:00,530 aðgerð, hvort sem það er helsta virka eða 74 00:03:00,530 --> 00:03:03,780 virka 10 aðgerðir niður, kallaði foo10. 75 00:03:03,780 --> 00:03:05,160 Það skiptir ekki máli hvar þú notar það. 76 00:03:05,160 --> 00:03:07,490 En staðbundin breytu hefur ákveðið svigrúm. 77 00:03:07,490 --> 00:03:09,800 Og umfang þess heimamaður breytu ræðst af 78 00:03:09,800 --> 00:03:11,030 þar sem það er frumstilla. 79 00:03:11,030 --> 00:03:13,680 Nú er umfang yfirleitt ákvarðað með opnun 80 00:03:13,680 --> 00:03:16,540 Brace fallsins að breyta er lýst í, þar 81 00:03:16,540 --> 00:03:18,300 Lokun Brace þess virka. 82 00:03:18,300 --> 00:03:19,730 Svo skulum segja að þú ert í the aðalæð virka. 83 00:03:19,730 --> 00:03:21,410 Og þú býrð til breytu. 84 00:03:21,410 --> 00:03:23,110 En nú, í þessu meginvirkni, kalla okkur annað 85 00:03:23,110 --> 00:03:24,640 virka foo. 86 00:03:24,640 --> 00:03:27,070 Í virka foo, getum við ekki hringt í breytu við bara 87 00:03:27,070 --> 00:03:29,940 búin í meginvirkni því það er ekki í umfangi. 88 00:03:29,940 --> 00:03:33,410 Þessi breyta er aðeins í umfangi innan meginvirkni. 89 00:03:33,410 --> 00:03:36,540 Þannig að við gætum notað það nánar, innan meginvirkni, en 90 00:03:36,540 --> 00:03:40,650 ekki innan aðgerð sem kallast frá meginvirkni. 91 00:03:40,650 --> 00:03:43,390 Svo eins og stafla og hrúga, eru alþjóðlegt breytur 92 00:03:43,390 --> 00:03:45,580 geymd í ákveðinn hluta af minni. 93 00:03:45,580 --> 00:03:47,665 Nú, þessi hluti af minni fer eftir kerfinu sem 94 00:03:47,665 --> 00:03:48,490 þú ert að nota. 95 00:03:48,490 --> 00:03:50,840 The alheims breytur hafa tvo aðskilda staði sem þeir eru 96 00:03:50,840 --> 00:03:54,570 geymd, einn fyrir frumstilla alþjóðlegum breytur, svo sem ef 97 00:03:54,570 --> 00:03:58,130 þú hefðir lýst int próf = 5, efst á forritinu. 98 00:03:58,130 --> 00:04:01,010 Og annað svæði er fyrir unitialized alþjóðlegum breytur, 99 00:04:01,010 --> 00:04:03,190 Ef þú segir bara, int próf, efst í kerfinu og 100 00:04:03,190 --> 00:04:05,040 var að fara að setja á próf breytur 101 00:04:05,040 --> 00:04:07,626 síðar í verkefninu. 102 00:04:07,626 --> 00:04:10,140 Svo núna er ég að fara að tala um eitthvað sem kallast # skilgreina, 103 00:04:10,140 --> 00:04:13,380 sem leið til að gefa táknræna nafn stöðug. 104 00:04:13,380 --> 00:04:17,420 Og hér höfum við dæmi um C forrit sem reiknar 105 00:04:17,420 --> 00:04:19,470 flatarmál hrings. 106 00:04:19,470 --> 00:04:21,690 Og efst á dagskrá við munum gera eitthvað sem segir 107 00:04:21,690 --> 00:04:25,830 # Define PI 3,14159. 108 00:04:25,830 --> 00:04:29,330 # Define ekki tæknilega skapa alþjóðlegt breytu. 109 00:04:29,330 --> 00:04:31,590 Frekar segir það Preprocessor þýðanda til 110 00:04:31,590 --> 00:04:34,350 finna og skipta öllum tilvikum af pi með 111 00:04:34,350 --> 00:04:37,540 3,14159 en byggja. 112 00:04:37,540 --> 00:04:39,830 Engu að síður verður það að vera gagnlegt tækni til að lýsa 113 00:04:39,830 --> 00:04:41,510 fastar, til notkunar gegn áætluninni. 114 00:04:41,510 --> 00:04:44,540 Nú, horfa á svæði virka, það tekur á flot 115 00:04:44,540 --> 00:04:48,150 ráðum og einfaldlega skilar flatarmál hrings með því að 116 00:04:48,150 --> 00:04:52,920 radíus eða PI R veldi, eða pi sinnum rad sinnum rad. 117 00:04:52,920 --> 00:04:56,040 Og þetta er þar sem # skilgreina gegnir lykilhlutverki. 118 00:04:56,040 --> 00:04:59,270 Vegna þess að þýðandinn verður í grundvallaratriðum skipta að PI 119 00:04:59,270 --> 00:05:02,780 tákn með fjölda 3,14159. 120 00:05:02,780 --> 00:05:05,560 Og svo að við þurfum ekki að skrifa það aftur og aftur. 121 00:05:05,560 --> 00:05:08,900 Og síðar, ef við ákveðum að nota fleiri tölustafi pi, skulum 122 00:05:08,900 --> 00:05:12,800 segja 3.1415926, gætum við bara að bæta það til the toppur af the 123 00:05:12,800 --> 00:05:14,330 áætlun og þyrfti ekki að breyta því, 124 00:05:14,330 --> 00:05:16,160 síðar í verkefninu. 125 00:05:16,160 --> 00:05:18,240 Þetta er gott að nota # define. 126 00:05:18,240 --> 00:05:20,520 Við viljum ekki að geyma PI sem alþjóðlegt breytu vegna þess að það 127 00:05:20,520 --> 00:05:21,780 gæti breyst síðar í áætluninni. 128 00:05:21,780 --> 00:05:23,430 Og við vitum PI ekki breyst. 129 00:05:23,430 --> 00:05:25,650 Það er stöðug. 130 00:05:25,650 --> 00:05:28,120 Svo hula það upp efni okkar á heimsvísu breytur. 131 00:05:28,120 --> 00:05:29,930 Svo í dag að við ræddum um mismuninn á milli sveitarfélaga og 132 00:05:29,930 --> 00:05:32,490 alþjóðlegt breytur, hvenær á að nota þá, eftir þeirra 133 00:05:32,490 --> 00:05:36,660 umfang, og hvers vegna ekki að nota alþjóðlegt breytur á vilja 134 00:05:36,660 --> 00:05:39,360 vegna ringulreið á nafninu rúm. 135 00:05:39,360 --> 00:05:40,270 Ég er Joe McCormick. 136 00:05:40,270 --> 00:05:42,290 Og þetta er CS50.