1 00:00:06,650 --> 00:00:09,390 [Powered by Google Translate] JOE McCormick: Jadi sekarang kita akan bercakap tentang pembolehubah. 2 00:00:09,390 --> 00:00:13,270 Pembolehubah dalam sains komputer adalah satu cara untuk menyimpan nilai. 3 00:00:13,270 --> 00:00:14,980 Sekarang, apa dan bagaimana kami menyimpan bahawa 4 00:00:14,980 --> 00:00:16,210 nilai tidak terlalu penting. 5 00:00:16,210 --> 00:00:19,780 Kita boleh mempunyai nilai yang adalah perkataan, yang boleh 6 00:00:19,780 --> 00:00:21,170 disimpan sebagai rentetan. 7 00:00:21,170 --> 00:00:23,160 Atau kita boleh mempunyai sesuatu yang bersifat, 8 00:00:23,160 --> 00:00:24,110 seperti huruf. 9 00:00:24,110 --> 00:00:26,420 Dan yang akan disimpan sebagai char. 10 00:00:26,420 --> 00:00:29,660 Kita boleh mempunyai nombor, seperti satu atau 12, yang akan 11 00:00:29,660 --> 00:00:32,310 disimpan sebagai integer atau int. 12 00:00:32,310 --> 00:00:35,940 Kemudian, kita mempunyai perkara-perkara yang berbeza seperti apungan, yang boleh menyimpan 13 00:00:35,940 --> 00:00:41,700 perkara seperti 1,01 atau 111,13. 14 00:00:41,700 --> 00:00:43,530 Nilai-nilai ini sentiasa dipanggil tdk. 15 00:00:43,530 --> 00:00:46,490 Yang bermaksud bahawa jika kita disimpan nombor satu dalam integer di 16 00:00:46,490 --> 00:00:49,490 atas program kemudian, kita boleh menukar nombor itu kepada 17 00:00:49,490 --> 00:00:51,460 menjadi tiga atau tujuh. 18 00:00:51,460 --> 00:00:53,890 Sekarang, pembolehubah tempatan adalah apa yang anda biasanya akan menemui, 19 00:00:53,890 --> 00:00:55,250 apabila melaksanakan fungsi. 20 00:00:55,250 --> 00:00:57,260 Jadi katakan anda dalam fungsi utama anda. 21 00:00:57,260 --> 00:00:59,910 Dan anda mahu untuk mewujudkan num ubah yang dipanggil. 22 00:00:59,910 --> 00:01:01,240 Dan kita akan menyimpan integer di dalamnya. 23 00:01:01,240 --> 00:01:04,680 Jadi, kita boleh mengatakan sesuatu seperti int num = 3. 24 00:01:04,680 --> 00:01:05,319 Sekarang, ada anda pergi. 25 00:01:05,319 --> 00:01:06,830 Anda mempunyai pembolehubah tempatan. 26 00:01:06,830 --> 00:01:09,670 Sekarang, pembolehubah ini boleh diubah kemudian di utama 27 00:01:09,670 --> 00:01:13,700 fungsi, dengan mengatakan sesuatu seperti num = 6 atau num = 7. 28 00:01:13,700 --> 00:01:15,940 Tetapi pembolehubah anda terperangkap dalam 29 00:01:15,940 --> 00:01:18,320 skop fungsi itu. 30 00:01:18,320 --> 00:01:21,690 Dan skop biasanya bermula dengan pendakap kerinting di 31 00:01:21,690 --> 00:01:23,990 awal utama dan berakhir dengan pendakap kerinting bahawa 32 00:01:23,990 --> 00:01:26,230 menutup fungsi utama. 33 00:01:26,230 --> 00:01:29,610 Dan ini pembolehubah tempatan kini terperangkap dalam skop ini. 34 00:01:29,610 --> 00:01:32,200 Jadi ia tidak lagi boleh diakses dalam fungsi lain, 35 00:01:32,200 --> 00:01:33,950 luar fungsi utama. 36 00:01:33,950 --> 00:01:36,230 Dan sekali fungsi utama selesai pelaksanaan dan 37 00:01:36,230 --> 00:01:40,460 pulangan, ini num tempatan ubah dipanggil hilang. 38 00:01:40,460 --> 00:01:42,760 Jadi Berbeza dengan pembolehubah tempatan, kita mempunyai sesuatu 39 00:01:42,760 --> 00:01:43,970 dipanggil pembolehubah global. 40 00:01:43,970 --> 00:01:46,890 Sekarang, pembolehubah global diisytiharkan di atas 41 00:01:46,890 --> 00:01:49,860 program dan boleh diakses di mana-mana dalam program ini. 42 00:01:49,860 --> 00:01:51,805 Jadi katakan anda mengisytiharkan pembolehubah global di bahagian atas 43 00:01:51,805 --> 00:01:53,200 program, dipanggil ujian. 44 00:01:53,200 --> 00:01:54,990 Sekarang, pembolehubah ini boleh diakses 45 00:01:54,990 --> 00:01:56,000 mana-mana sahaja dalam program ini. 46 00:01:56,000 --> 00:01:58,230 Anda boleh mengakses dalam fungsi utama atau fungsi 47 00:01:58,230 --> 00:01:59,300 bawah yang. 48 00:01:59,300 --> 00:02:02,210 Tetapi jika anda pernah cuba untuk mencipta pembolehubah tempatan di salah satu daripada 49 00:02:02,210 --> 00:02:04,170 fungsi-fungsi ini, dengan nama yang sama seperti 50 00:02:04,170 --> 00:02:05,880 ujian, ada konflik. 51 00:02:05,880 --> 00:02:07,720 Kerana anda tidak tahu pembolehubah yang anda mahu gunakan. 52 00:02:07,720 --> 00:02:09,039 Adakah anda ingin untuk menggunakan ujian global, 53 00:02:09,039 --> 00:02:10,910 diisytiharkan pada program atas? 54 00:02:10,910 --> 00:02:12,495 Atau adakah anda mahu menggunakan ujian tempatan pembolehubah yang 55 00:02:12,495 --> 00:02:14,920 anda cuba untuk mewujudkan dalam fungsi ini? 56 00:02:14,920 --> 00:02:16,700 Sekarang, ini adalah salah satu sebab mengapa kita tidak mahu 57 00:02:16,700 --> 00:02:18,960 hanya menggunakan pembolehubah global bebas. 58 00:02:18,960 --> 00:02:21,570 Ada sesuatu yang dipanggil cluttering ruang nama. 59 00:02:21,570 --> 00:02:23,940 Malah jika anda tidak bermaksud untuk, anda secara tidak sengaja boleh mewujudkan 60 00:02:23,940 --> 00:02:26,270 pembolehubah tempatan, kemudian di dalam program ini, dengan yang sama 61 00:02:26,270 --> 00:02:28,140 nama sebagai pembolehubah global. 62 00:02:28,140 --> 00:02:30,130 Dan ini tidak menimbulkan masalah besar apabila anda bekerja di 63 00:02:30,130 --> 00:02:33,120 kecil 10, 20, 30-line program. 64 00:02:33,120 --> 00:02:35,520 Sebaik sahaja anda mempunyai sehingga beribu-ribu baris kod, anda tidak akan 65 00:02:35,520 --> 00:02:38,740 ingat dengan tepat apa yang anda telah disimpan bagi pemboleh ubah global. 66 00:02:38,740 --> 00:02:41,000 Jadi, satu perkara yang perlu dipertimbangkan, apabila menggunakan tempatan dan global 67 00:02:41,000 --> 00:02:43,570 pembolehubah adalah untuk berfikir tentang skop mereka. 68 00:02:43,570 --> 00:02:47,270 Kini, skop merujuk kepada mana pembolehubah ini boleh digunakan dalam 69 00:02:47,270 --> 00:02:48,500 program. 70 00:02:48,500 --> 00:02:51,080 Jadi pembolehubah global mempunyai apa yang dipanggil skop global, 71 00:02:51,080 --> 00:02:53,820 bermakna bahawa ia boleh digunakan di mana-mana dalam program ini. 72 00:02:53,820 --> 00:02:56,860 Sebaik sahaja anda memulakan pembolehubah yang, ia boleh digunakan dalam 73 00:02:56,860 --> 00:03:00,530 apa-apa fungsi, sama ada ia menjadi fungsi utama atau 74 00:03:00,530 --> 00:03:03,780 fungsi 10 fungsi turun, dipanggil foo10. 75 00:03:03,780 --> 00:03:05,160 Ia tidak kira di mana anda menggunakannya. 76 00:03:05,160 --> 00:03:07,490 Tetapi pembolehubah tempatan mempunyai skop yang khusus. 77 00:03:07,490 --> 00:03:09,800 Dan skop pembolehubah tempatan itu ditentukan oleh 78 00:03:09,800 --> 00:03:11,030 di mana ia dimulakan. 79 00:03:11,030 --> 00:03:13,680 Kini, skop biasanya ditentukan oleh pembukaan 80 00:03:13,680 --> 00:03:16,540 bersedia fungsi bahawa pembolehubah diisytiharkan dalam, sehingga 81 00:03:16,540 --> 00:03:18,300 bersedia tutup fungsi itu. 82 00:03:18,300 --> 00:03:19,730 Jadi katakan anda dalam fungsi utama. 83 00:03:19,730 --> 00:03:21,410 Dan anda mewujudkan pemboleh ubah. 84 00:03:21,410 --> 00:03:23,110 Tetapi sekarang, dalam fungsi utama ini, kita panggil lain 85 00:03:23,110 --> 00:03:24,640 berfungsi foo. 86 00:03:24,640 --> 00:03:27,070 Dalam foo fungsi, kita tidak boleh memanggil pembolehubah kita hanya 87 00:03:27,070 --> 00:03:29,940 diwujudkan dalam fungsi utama kerana ia bukan dalam skop. 88 00:03:29,940 --> 00:03:33,410 Pembolehubah adalah hanya dalam skop dalam fungsi utama. 89 00:03:33,410 --> 00:03:36,540 Jadi kita boleh menggunakan lagi, dalam fungsi utama, tetapi 90 00:03:36,540 --> 00:03:40,650 bukan dalam fungsi yang dipanggil dari fungsi utama. 91 00:03:40,650 --> 00:03:43,390 Jadi seperti timbunan dan longgokan itu, pembolehubah global 92 00:03:43,390 --> 00:03:45,580 disimpan di dalam bahagian tertentu ingatan. 93 00:03:45,580 --> 00:03:47,665 Sekarang, ini sebahagian daripada memori bergantung kepada sistem yang 94 00:03:47,665 --> 00:03:48,490 anda gunakan. 95 00:03:48,490 --> 00:03:50,840 Pembolehubah global mempunyai dua tempat yang berasingan yang mereka 96 00:03:50,840 --> 00:03:54,570 disimpan, satu untuk pembolehubah dimulakan global, seperti jika 97 00:03:54,570 --> 00:03:58,130 anda telah mengisytiharkan ujian int = 5, di atas program anda. 98 00:03:58,130 --> 00:04:01,010 Dan kawasan lain adalah bagi pemboleh ubah unitialized global, 99 00:04:01,010 --> 00:04:03,190 jika anda hanya berkata, ujian int, di bahagian atas program anda dan 100 00:04:03,190 --> 00:04:05,040 telah pergi untuk menetapkan pembolehubah ujian 101 00:04:05,040 --> 00:04:07,626 kemudian di dalam program ini. 102 00:04:07,626 --> 00:04:10,140 Jadi sekarang saya akan bercakap tentang sesuatu yang dipanggil # menentukan, 103 00:04:10,140 --> 00:04:13,380 yang merupakan satu cara untuk memberi nama simbolik kepada pemalar. 104 00:04:13,380 --> 00:04:17,420 Dan di sini kita mempunyai contoh program C yang mengira 105 00:04:17,420 --> 00:04:19,470 kawasan bulatan. 106 00:04:19,470 --> 00:04:21,690 Dan di atas program kami akan melakukan sesuatu yang mengatakan 107 00:04:21,690 --> 00:04:25,830 # Define pi 3,14159. 108 00:04:25,830 --> 00:04:29,330 # Menentukan tidak teknikal mencipta pembolehubah global. 109 00:04:29,330 --> 00:04:31,590 Sebaliknya, ia memberitahu prapemproses pengumpul 110 00:04:31,590 --> 00:04:34,350 mencari dan menggantikan semua keadaan pi dengan 111 00:04:34,350 --> 00:04:37,540 3,14159 sebelum menyusun. 112 00:04:37,540 --> 00:04:39,830 Walau bagaimanapun, ia menjadi satu teknik yang berguna untuk mengisytiharkan 113 00:04:39,830 --> 00:04:41,510 pemalar, untuk kegunaan sepanjang program. 114 00:04:41,510 --> 00:04:44,540 Sekarang, melihat fungsi kawasan, ia mengambil masa dalam apungan 115 00:04:44,540 --> 00:04:48,150 rad dan hanya mengembalikan kawasan bulatan dengan 116 00:04:48,150 --> 00:04:52,920 jejari atau pi r kuasa dua, atau kali pi rad kali rad. 117 00:04:52,920 --> 00:04:56,040 Dan ini adalah di mana # define memainkan peranan penting. 118 00:04:56,040 --> 00:04:59,270 Kerana pengkompil pada dasarnya akan menggantikan yang pi 119 00:04:59,270 --> 00:05:02,780 simbol dengan bilangan 3,14159. 120 00:05:02,780 --> 00:05:05,560 Dan supaya kita tidak perlu untuk menulis yang berulang-ulang kali. 121 00:05:05,560 --> 00:05:08,900 Dan kemudian, jika kita memutuskan untuk menggunakan digit lebih pi, mari kita 122 00:05:08,900 --> 00:05:12,800 mengatakan 3.1415926, kita hanya boleh menambah bahawa ke atas 123 00:05:12,800 --> 00:05:14,330 program dan tidak akan mempunyai untuk menukar, 124 00:05:14,330 --> 00:05:16,160 kemudian di dalam program ini. 125 00:05:16,160 --> 00:05:18,240 Ini adalah penggunaan yang baik # define. 126 00:05:18,240 --> 00:05:20,520 Kita tidak mahu untuk menyimpan pi sebagai pembolehubah global kerana ia 127 00:05:20,520 --> 00:05:21,780 boleh mengubah kemudian dalam program ini. 128 00:05:21,780 --> 00:05:23,430 Dan kita tahu pi tidak berubah. 129 00:05:23,430 --> 00:05:25,650 Ia adalah pemalar. 130 00:05:25,650 --> 00:05:28,120 Jadi ini wrap up topik kami pembolehubah global. 131 00:05:28,120 --> 00:05:29,930 Jadi hari ini kita bercakap tentang perbezaan antara tempatan dan 132 00:05:29,930 --> 00:05:32,490 pembolehubah global; apabila menggunakan mereka, bergantung kepada mereka 133 00:05:32,490 --> 00:05:36,660 skop dan mengapa tidak menggunakan pembolehubah global pada akan 134 00:05:36,660 --> 00:05:39,360 kerana cluttering ruang nama. 135 00:05:39,360 --> 00:05:40,270 Saya Joe McCormick. 136 00:05:40,270 --> 00:05:42,290 Dan ini adalah CS50.