1 00:00:00,000 --> 00:00:05,300 2 00:00:05,300 --> 00:00:07,300 DOUG LLOYD: Siz başlamaq kimi funksiyaları ilə iş, 3 00:00:07,300 --> 00:00:09,966 başqa bir şey olmaq niyyətindədir anlamaq, həqiqətən, vacibdir, 4 00:00:09,966 --> 00:00:12,380 olan dəyişən daxilində anlayışdır. 5 00:00:12,380 --> 00:00:14,490 Belə ki, daxilində bir dəyişən xarakterik 6 00:00:14,490 --> 00:00:18,860 ki funksiyaları müəyyən ki, dəyişən əldə edilə bilər. 7 00:00:18,860 --> 00:00:24,595 >> C iki əsas scopes var, yerli dəyişənlərin və qlobal dəyişənlər. 8 00:00:24,595 --> 00:00:27,830 İndi yerli dəyişənlərin yalnız funksiyaları çərçivəsində əldə edilə 9 00:00:27,830 --> 00:00:29,045 onlar yaradılmış edirik. 10 00:00:29,045 --> 00:00:32,170 Onlar hər ilə əldə edilə bilməz proqram mövcud funksiyası, 11 00:00:32,170 --> 00:00:34,184 yalnız funksiyası bu da yaradılmışdır. 12 00:00:34,184 --> 00:00:36,350 Qlobal dəyişənlər, Digər tərəfdən, əldə edilə bilər 13 00:00:36,350 --> 00:00:37,719 proqram hər hansı bir funksiyası ilə. 14 00:00:37,719 --> 00:00:40,260 Və səbəbi Onlar daxili yaradılmış deyilik, çünki 15 00:00:40,260 --> 00:00:41,441 hər hansı bir funksiyası. 16 00:00:41,441 --> 00:00:43,690 Biz xaricində onlara elan funksiyaları, olan 17 00:00:43,690 --> 00:00:48,940 hər funksiyası bilir o deməkdir ki, bu və daxil olmaq və manipulyasiya edə bilər. 18 00:00:48,940 --> 00:00:52,010 >> Bu günə qədər zamanı olduqca var qədər yalnız işləyirik 19 00:00:52,010 --> 00:00:54,280 yerli dəyişənlərin. 20 00:00:54,280 --> 00:00:58,320 Burada bir nümunə çox, çox var sadə əsas funksiyası və bir çox sadə 21 00:00:58,320 --> 00:01:00,680 biz yazdıq əlavə funksiyası. 22 00:01:00,680 --> 00:01:03,180 Bu halda, x hansı Mən yalnız yaşıl rəngli etdik 23 00:01:03,180 --> 00:01:07,400 mövqeyində qeyd etmək və ya ki, dəyişən daxilində, 24 00:01:07,400 --> 00:01:09,240 üç funksiyası yerli. 25 00:01:09,240 --> 00:01:12,300 Əsas bütün x istinad edə bilməz. 26 00:01:12,300 --> 00:01:14,259 Bu nə bilmir. 27 00:01:14,259 --> 00:01:17,050 No digər funksiyası, əslində, biz əgər burada əlavə funksiyaları var idi 28 00:01:17,050 --> 00:01:19,360 x müraciət edə bilər. 29 00:01:19,360 --> 00:01:23,520 >> Eynilə, mən etdiyiniz nəticələrini mavi rəngli, yalnız əsas yerli edir. 30 00:01:23,520 --> 00:01:26,980 Yalnız əsas nə bilir dəyişən nəticəsidir. 31 00:01:26,980 --> 00:01:30,010 üç istifadə edə bilməz. 32 00:01:30,010 --> 00:01:32,580 >> İndi qeyd olunduğu kimi, qlobal dəyişənlər mövcuddur. 33 00:01:32,580 --> 00:01:35,575 Ki, dəyişən elan əgər hər hansı bir funksiyası kənarda, 34 00:01:35,575 --> 00:01:38,290 funksiyaları bütün proqram üçün müraciət edə bilər. 35 00:01:38,290 --> 00:01:44,010 Belə ki, bu halda mən qeyd etdik qlobal dəyişən bəyannamə yaşıl. 36 00:01:44,010 --> 00:01:45,830 Bu halda, dəyişən varlıq elan 37 00:01:45,830 --> 00:01:48,720 yalnız qlobal adlanır bu barədə çox aydın. 38 00:01:48,720 --> 00:01:49,720 Bu tipli float edir. 39 00:01:49,720 --> 00:01:52,940 Və mən dəyər 0,5050 təyin. 40 00:01:52,940 --> 00:01:58,080 >> Siz əsas və görəcəksiniz üç, mən qlobal müraciət edə edirəm. 41 00:01:58,080 --> 00:02:03,480 Və əslində, mən proqramı vasitəsilə getmək əgər əsas ilk zənglər üç göstərildiyi kimi, 42 00:02:03,480 --> 00:02:10,440 3 qlobal üç multiplies olan 1.5 şey onun dəyəri müəyyən edir, 43 00:02:10,440 --> 00:02:16,080 1.51 ya kimi bir şey, və sonra əsas da dəyər çap 44 00:02:16,080 --> 00:02:16,620 qlobal. 45 00:02:16,620 --> 00:02:24,424 0,5050 çap deyil, belə ki, əsas, onu , 1,51 qlobal dəfə 3 çap edəcək. 46 00:02:24,424 --> 00:02:27,340 Belə ki, zaman ehtiyatlı olmaq var qlobal dəyişənlər çalışırıq. 47 00:02:27,340 --> 00:02:30,260 Onlar çox çevik etdiyiniz isə məlumat keçmək qadir olan 48 00:02:30,260 --> 00:02:32,650 ətrafında ki, hər funksiyası istifadə edə bilərsiniz, 49 00:02:32,650 --> 00:02:34,580 bu da bəzi ola bilər təhlükəli nəticələri 50 00:02:34,580 --> 00:02:38,770 bir funksiyası dəyişikliklər əgər dəyişən dəyəri 51 00:02:38,770 --> 00:02:42,360 gözləmək əvvəl dəyişdirilə. 52 00:02:42,360 --> 00:02:44,200 >> Niyə bu fərq Fərq etmir? 53 00:02:44,200 --> 00:02:48,070 Niyə biz qayğı bəzi dəyişənlər olub yerli və digər qlobal var? 54 00:02:48,070 --> 00:02:53,880 Yaxşı, çox hissəsi üçün, yerli dəyişənlərin C dəyəri qəbul deyirlər nə var 55 00:02:53,880 --> 00:02:56,087 biz bir funksiyası zəng zaman. 56 00:02:56,087 --> 00:02:56,920 Bunun mənası nədir? 57 00:02:56,920 --> 00:03:00,880 >> Yaxşı, bir dəyişən keçdi zaman dəyəri, callee tərəfindən hansı 58 00:03:00,880 --> 00:03:04,350 funksiyası deyərək bir yoldur ki, dəyişən qəbul edir ki, 59 00:03:04,350 --> 00:03:08,465 bir giriş kimi qəbul olur, bu, həqiqətən ki, dəyişən özü qəbul etmir. 60 00:03:08,465 --> 00:03:12,490 O, öz qəbul bu surəti ilə işləmək üçün. 61 00:03:12,490 --> 00:03:14,350 Bu həqiqətən əhəmiyyətli bir fərq var. 62 00:03:14,350 --> 00:03:18,250 Biz yalnız bir ikinci əvvəl gördüm qlobal dəyişənlər ilə, 63 00:03:18,250 --> 00:03:23,240 qlobal manipulyasiya əgər bir funksiyası dəyişən təsiri 64 00:03:23,240 --> 00:03:26,390 ki, bir funksiyası daşıyır hər bir digər funksiyası vasitəsilə. 65 00:03:26,390 --> 00:03:28,920 >> Lakin yerli dəyişənlərin, ki, doğru deyil. 66 00:03:28,920 --> 00:03:32,060 Hər bir funksiyası zaman giriş kimi dəyişənlərin qəbul 67 00:03:32,060 --> 00:03:36,367 bu dəyişənlərin surətlərini almaq, Biz dəyişənlərin özləri. 68 00:03:36,367 --> 00:03:37,825 Belə ki, yan təsiri nədir? 69 00:03:37,825 --> 00:03:40,450 O deməkdir ki dəyişən zəng funksiyası ki, 70 00:03:40,450 --> 00:03:45,600 funksiyası zəng edərək deyil, dəyişməz siz yalnış halda. 71 00:03:45,600 --> 00:03:50,420 >> Məsələn, bu kodu foo bütün dəyişdirilə deyil. 72 00:03:50,420 --> 00:03:55,450 Int foo 4 bərabərdir, üç zəng foo, üç daxilində, 73 00:03:55,450 --> 00:03:58,850 ki, foo ki gözləmək olardı 3 vurulur və qaytarılır, 74 00:03:58,850 --> 00:04:01,450 lakin faktiki olaraq heç bir təsiri var. 75 00:04:01,450 --> 00:04:03,460 >> Burada baxmayaraq ki, bir çox incə fərq. 76 00:04:03,460 --> 00:04:06,520 Bu istədiyiniz effekti yoxdur. 77 00:04:06,520 --> 00:04:07,730 Niyə görürsünüz? 78 00:04:07,730 --> 00:04:11,500 Biz əsas bu dəfə foo əsas edirik. 79 00:04:11,500 --> 00:04:16,899 >> Belə ki, int foo 4, foo bərabərdir üç foo, biz zəng zaman, 80 00:04:16,899 --> 00:04:21,680 üç öz surətini alır foo, 4 öz surəti. 81 00:04:21,680 --> 00:04:27,340 Bu nə 4 dəfə 3, və ya geri deyir dəyişən dəfə 3 keçdi olur. 82 00:04:27,340 --> 00:04:32,109 Və sonra biz geri təyin üç dəyəri yenidən foo. 83 00:04:32,109 --> 00:04:33,650 Belə ki, bu, həqiqətən, foo üzerine olardı. 84 00:04:33,650 --> 00:04:35,816 Bunu etmək üçün yeganə yoldur yerli dəyişən ilə bu. 85 00:04:35,816 --> 00:04:38,120 Belə ki, indi biz bir əlavə burada kodu line 86 00:04:38,120 --> 00:04:40,870 Əsas sonuna at , foo dəyəri çap 87 00:04:40,870 --> 00:04:45,030 əslində 12 çap olardı. 88 00:04:45,030 --> 00:04:48,600 >> Dəyişən daxilində ümumiyyətlə bir problem çox deyil 89 00:04:48,600 --> 00:04:51,190 Siz bütün adını əgər sizin dəyişənlərin fərqli şeylər. 90 00:04:51,190 --> 00:04:54,920 Amma bu murdar cür əldə edə bilərsiniz Eyni dəyişən adı 91 00:04:54,920 --> 00:04:58,820 çox funksiyaları görünür, olan bir çox olacaq. 92 00:04:58,820 --> 00:05:02,130 Əgər iş deyilsə real dünya harada 93 00:05:02,130 --> 00:05:06,080 Siz əməkdaşlıq üzərində işləyirik müxtəlif qrupları proqramları və insanlar 94 00:05:06,080 --> 00:05:11,000 Eyni yazmaq üçün birlikdə çalışırıq proqram və ya proqramların eyni, 95 00:05:11,000 --> 00:05:13,900 Onlar tez-tez dəyişən təkrar lazımdır adları, xüsusilə ümumi olanları 96 00:05:13,900 --> 00:05:18,020 Belə x, y, I, J, və s. 97 00:05:18,020 --> 00:05:20,370 >> Amma dəyişənlər var eyni adı, əhatə dairəsi məsələlər 98 00:05:20,370 --> 00:05:23,080 bir az trickier analiz əldə edə bilərsiniz. 99 00:05:23,080 --> 00:05:26,790 Məsələn, bilirsiniz nə çap olunacaq 100 00:05:26,790 --> 00:05:30,190 bu Proqramın sonunda? 101 00:05:30,190 --> 00:05:31,280 Bir dəqiqə edin. 102 00:05:31,280 --> 00:05:33,382 Video Pause və oxumaq Bu proqram vasitəsilə. 103 00:05:33,382 --> 00:05:35,590 Siz üst biz görə bilərsiniz bir funksiyası bəyannamə var 104 00:05:35,590 --> 00:05:37,350 artım adlı funksiyası üçün. 105 00:05:37,350 --> 00:05:40,800 Ki, funksiyası bir edir parametri, biz x zəng tam. 106 00:05:40,800 --> 00:05:42,610 Və tam nəticələr. 107 00:05:42,610 --> 00:05:44,820 Ki, başında qaytarılması növü var. 108 00:05:44,820 --> 00:05:48,140 >> Sonra biz xətləri əsas, bir neçə var əsas kodu, olan son 109 00:05:48,140 --> 00:05:49,250 çap bəyanatdır. 110 00:05:49,250 --> 00:05:51,140 Və burada sual, xatırlayıram. 111 00:05:51,140 --> 00:05:54,240 Nə həqiqətən olacaq Bu funksiya sonunda çap? 112 00:05:54,240 --> 00:05:58,110 Və sonra biz həqiqətən var Aşağıdakı artım müəyyən. 113 00:05:58,110 --> 00:06:01,760 >> Belə addım, bir dəqiqə indeksi, şeyi iz. 114 00:06:01,760 --> 00:06:08,100 Siz çap olunacaq nə bilirik bu Proqramın sonunda? 115 00:06:08,100 --> 00:06:08,600 >> Oldu. 116 00:06:08,600 --> 00:06:11,433 Ümid edirəm ki, bir neçə saniyə qəbul etdik cəhd və bu bir analiz üçün. 117 00:06:11,433 --> 00:06:13,370 Birlikdə bunu edək. 118 00:06:13,370 --> 00:06:16,022 >> Belə ki, artım həyata keçərək etdik orada üst Bəyannamə. 119 00:06:16,022 --> 00:06:17,230 Bu yayındırma idi. 120 00:06:17,230 --> 00:06:18,570 O, öz dəyişən deyil. 121 00:06:18,570 --> 00:06:19,879 O, öz əhatə dairəsini yoxdur. 122 00:06:19,879 --> 00:06:21,920 Bu, sadəcə bir funksiyası var bəyannamə, belə ki, məqsədlər üçün 123 00:06:21,920 --> 00:06:24,330 bir ne analiz çalışır Bu proqram baş, 124 00:06:24,330 --> 00:06:26,660 biz də yalnız qarşısını almaq bilər. 125 00:06:26,660 --> 00:06:29,560 >> İndi biz bu halda var, Bu problem çətin səbəbi 126 00:06:29,560 --> 00:06:34,030 biz yerli dəyişənlər var, çünki əsas və artım, həm də hər hansı 127 00:06:34,030 --> 00:06:35,090 adlı x edir. 128 00:06:35,090 --> 00:06:39,830 Və əlbəttə, bu məsələnin mahiyyəti deyil x dəyişdi olur süss üçün çalışır 129 00:06:39,830 --> 00:06:41,890 və necə dəyişdi almaq deyil. 130 00:06:41,890 --> 00:06:46,900 Belə ki, hər instansiya rəngli etdik x əsas qırmızı yerli ki. 131 00:06:46,900 --> 00:06:52,040 Və mən hər instansiya rəngli etdik x mavi arttırmayı yerli var. 132 00:06:52,040 --> 00:06:55,220 >> Üçüncü xətt Notice əsas, y artım bərabərdir 133 00:06:55,220 --> 00:07:00,800 x ki, artım olan deyil keçdiyini əsas x, və ya qırmızı x. 134 00:07:00,800 --> 00:07:03,320 Bu, bir kopyasını qəbul əldə edir. 135 00:07:03,320 --> 00:07:06,987 Və yalnız işləmək olacaq bu ki surəti, mavi x. 136 00:07:06,987 --> 00:07:08,820 Siz riyazi edirsinizsə maili, güc 137 00:07:08,820 --> 00:07:14,230 əvəzinə x alt kimi bu fikir artım üçün əsas və alt x i üçün m. 138 00:07:14,230 --> 00:07:15,700 Amma eyni fikirdir. 139 00:07:15,700 --> 00:07:18,999 x sub m, ya x qırmızı Əvvəlki slayd, 140 00:07:18,999 --> 00:07:21,790 local-- var dəyişənlər var ki, daha çox x instansiya edir 141 00:07:21,790 --> 00:07:26,900 əsas yerli və x sub i, və ya Əvvəlki slide mavi dəyişənlər, 142 00:07:26,900 --> 00:07:30,760 x hallarda var ki, arttırmayı yerli. 143 00:07:30,760 --> 00:07:36,220 >> Belə ki, anlamaq mümkün idi nə sonunda çap, bu funksiya? 144 00:07:36,220 --> 00:07:39,420 Mən Doug Lloyd oldum və bu CS50 edir. 145 00:07:39,420 --> 00:07:41,542