1 00:00:06,650 --> 00:00:09,390 [Powered by Google Translate] JOE MCCORMICK: ახლა ჩვენ ვაპირებთ ვისაუბროთ ცვლადების. 2 00:00:09,390 --> 00:00:13,270 ცვლადები კომპიუტერულ მეცნიერებაში არის გზა შესანახად ღირებულება. 3 00:00:13,270 --> 00:00:14,980 ახლა, რა და როგორ შესანახად, რომ 4 00:00:14,980 --> 00:00:16,210 ღირებულება არ არის ძალიან მნიშვნელოვანი. 5 00:00:16,210 --> 00:00:19,780 ჩვენ შეგვიძლია აქვს მნიშვნელობა, რომელიც არის სიტყვა, რომელსაც შეეძლო 6 00:00:19,780 --> 00:00:21,170 ინახება როგორც სიმებიანი. 7 00:00:21,170 --> 00:00:23,160 ან ჩვენ შეგვეძლო რაღაც რომ არის ხასიათი, 8 00:00:23,160 --> 00:00:24,110 მოსწონს წერილში. 9 00:00:24,110 --> 00:00:26,420 და რომ იყოს შენახული როგორც char. 10 00:00:26,420 --> 00:00:29,660 ჩვენ შეგვეძლო ნომერი, როგორც ერთი ან 12, იქნებოდა 11 00:00:29,660 --> 00:00:32,310 ჩაიწერა როგორც მთელი რიცხვი ან int. 12 00:00:32,310 --> 00:00:35,940 მაშინ, ჩვენ გვაქვს განსხვავებული რამ, როგორიცაა float, რომელიც შენახვა შეუძლია 13 00:00:35,940 --> 00:00:41,700 რამ, როგორიცაა 1.01 ან 111,13. 14 00:00:41,700 --> 00:00:43,530 ეს ფასეულობები ყოველთვის მოუწოდა mutable. 15 00:00:43,530 --> 00:00:46,490 რაც იმას ნიშნავს, რომ თუ ჩვენ შენახული ნომერ რიცხვი ზე 16 00:00:46,490 --> 00:00:49,490 ზევით პროგრამა მოგვიანებით, შეიძლება შეიცვალოს, რომ ნომერი 17 00:00:49,490 --> 00:00:51,460 იყოს სამი ან შვიდი. 18 00:00:51,460 --> 00:00:53,890 ახლა, ადგილობრივი ცვლადი არის ის, რაც თქვენ, როგორც წესი, ექმნებათ, 19 00:00:53,890 --> 00:00:55,250 როდესაც აღასრულებენ ფუნქცია. 20 00:00:55,250 --> 00:00:57,260 ასე ვთქვათ თქვენ განმავლობაში თქვენი მთავარი ფუნქცია. 21 00:00:57,260 --> 00:00:59,910 და გსურთ მისი შექმნა ცვლადში num. 22 00:00:59,910 --> 00:01:01,240 და ჩვენ ვინახავთ რიცხვი მას. 23 00:01:01,240 --> 00:01:04,680 ამიტომ შეიძლება ითქვას, რაღაც int num = 3. 24 00:01:04,680 --> 00:01:05,319 ახლა თქვენ გადასვლა. 25 00:01:05,319 --> 00:01:06,830 თქვენ გაქვთ ადგილობრივი ცვლადი. 26 00:01:06,830 --> 00:01:09,670 ახლა, ამ ცვლადი შეიძლება შეიცვალოს მოგვიანებით ძირითად 27 00:01:09,670 --> 00:01:13,700 ფუნქცია, განაცხადა მსგავსი რამ num = 6 ან num = 7. 28 00:01:13,700 --> 00:01:15,940 მაგრამ თქვენი ცვლადი დავრჩებოდით ფარგლებში 29 00:01:15,940 --> 00:01:18,320 ფარგლებს, რომ ფუნქცია. 30 00:01:18,320 --> 00:01:21,690 და ფარგლები, როგორც წესი, იწყება Curly გაუწიოს ზე 31 00:01:21,690 --> 00:01:23,990 beginning ძირითადი და მთავრდება Curly გაუწიოს, რომ 32 00:01:23,990 --> 00:01:26,230 ხურავს გარეთ მთავარი ფუნქცია. 33 00:01:26,230 --> 00:01:29,610 და ეს ადგილობრივი ცვლადი არის დავრჩებოდით ამ ფარგლებს. 34 00:01:29,610 --> 00:01:32,200 ასე რომ ვეღარ შემოწმდა სხვა ფუნქცია, 35 00:01:32,200 --> 00:01:33,950 გარეთ მთავარი ფუნქცია. 36 00:01:33,950 --> 00:01:36,230 და კიდევ მთავარი ფუნქცია სრულდება მისი აღსრულება და 37 00:01:36,230 --> 00:01:40,460 ანაზღაურება, ამ ადგილობრივი ცვლადში num გაქრა. 38 00:01:40,460 --> 00:01:42,760 ასე რომ, განსხვავებით ადგილობრივი ცვლადები, ჩვენ გვაქვს რაღაც 39 00:01:42,760 --> 00:01:43,970 მოუწოდა გლობალური ცვლადები. 40 00:01:43,970 --> 00:01:46,890 ახლა გლობალური ცვლადი გამოცხადებულია ზედა 41 00:01:46,890 --> 00:01:49,860 პროგრამა და შეიძლება გამოიყენოთ ნებისმიერ პროგრამა. 42 00:01:49,860 --> 00:01:51,805 ასე ვთქვათ თქვენ გამოაცხადა გლობალური ცვლადი ზედა 43 00:01:51,805 --> 00:01:53,200 თქვენი პროგრამა, მოუწოდა ტესტი. 44 00:01:53,200 --> 00:01:54,990 ახლა, ამ ცვლადი შეიძლება შემოწმდა 45 00:01:54,990 --> 00:01:56,000 ნებისმიერ პროგრამას. 46 00:01:56,000 --> 00:01:58,230 თქვენ შეიძლება თქვათ ეს თქვენი ძირითადი ფუნქცია ან ფუნქცია 47 00:01:58,230 --> 00:01:59,300 ქვემოთ რომ. 48 00:01:59,300 --> 00:02:02,210 მაგრამ თუ თქვენ ოდესმე უნდა შეიქმნას ადგილობრივი ცვლადი ერთ 49 00:02:02,210 --> 00:02:04,170 ამ ფუნქციების, იგივე სახელი 50 00:02:04,170 --> 00:02:05,880 ტესტი, არსებობს კონფლიქტი. 51 00:02:05,880 --> 00:02:07,720 რადგან არ იცის, რომელი ცვლადი, რომლის გამოყენებაც გსურთ. 52 00:02:07,720 --> 00:02:09,039 გსურთ გამოიყენოთ გლობალური ტესტი, 53 00:02:09,039 --> 00:02:10,910 განაცხადა ზედა პროგრამა? 54 00:02:10,910 --> 00:02:12,495 თუ გსურთ გამოიყენოთ ადგილობრივი ცვლადი გამოცდა რომ 55 00:02:12,495 --> 00:02:14,920 თქვენ შექმნას ცდილობენ ამ ფუნქცია? 56 00:02:14,920 --> 00:02:16,700 ახლა, ეს არის ერთი მიზეზი, თუ რატომ არ სურთ 57 00:02:16,700 --> 00:02:18,960 უბრალოდ გამოიყენოთ გლობალური ცვლადები თავისუფლად. 58 00:02:18,960 --> 00:02:21,570 არსებობს რაღაც მოუწოდა cluttering სახელი ფართი. 59 00:02:21,570 --> 00:02:23,940 მაშინაც კი, თუ თქვენ არ ნიშნავს, თქვენ შეიძლება შემთხვევით შექმნა 60 00:02:23,940 --> 00:02:26,270 ადგილობრივი ცვლადი, მოგვიანებით ამ პროგრამაში, იგივე 61 00:02:26,270 --> 00:02:28,140 სახელი გლობალური ცვლადი. 62 00:02:28,140 --> 00:02:30,130 და ეს არ უქმნის უზარმაზარი პრობლემა, როდესაც თქვენ მომუშავე 63 00:02:30,130 --> 00:02:33,120 მცირე 10, 20, 30-ხაზის პროგრამები. 64 00:02:33,120 --> 00:02:35,520 ერთხელ თქვენ მდე ათასობით ხაზების კოდი, თქვენ ვერ 65 00:02:35,520 --> 00:02:38,740 გახსოვთ ზუსტად რა თქვენ არ ინახება გლობალური ცვლადი. 66 00:02:38,740 --> 00:02:41,000 ასე რომ ერთი რამ განიხილოს, როდესაც გამოყენებით ადგილობრივი და გლობალური 67 00:02:41,000 --> 00:02:43,570 ცვლადები არის ფიქრი მისი მოცულობის. 68 00:02:43,570 --> 00:02:47,270 ახლა ფარგლებს ეხება, სადაც ეს ცვლადები შეიძლება გამოყენებული იქნას 69 00:02:47,270 --> 00:02:48,500 პროგრამა. 70 00:02:48,500 --> 00:02:51,080 ასე რომ გლობალური ცვლადი აქვს რასაც გლობალური ფარგლებს, 71 00:02:51,080 --> 00:02:53,820 რაც იმას ნიშნავს, რომ ეს შეიძლება გამოყენებულ ნებისმიერ პროგრამა. 72 00:02:53,820 --> 00:02:56,860 ერთხელ თქვენ ინიციალიზაცია რომ ცვლადი, ეს შეიძლება იყოს გამოყენებული 73 00:02:56,860 --> 00:03:00,530 ნებისმიერი ფუნქცია, იქნება ეს მთავარი ფუნქცია ან 74 00:03:00,530 --> 00:03:03,780 ფუნქცია 10 ფუნქციებს ქვემოთ, მოუწოდა foo10. 75 00:03:03,780 --> 00:03:05,160 არ აქვს მნიშვნელობა, სადაც თქვენ გამოიყენოს იგი. 76 00:03:05,160 --> 00:03:07,490 მაგრამ ადგილობრივი ცვლადი აქვს კონკრეტული ფარგლები. 77 00:03:07,490 --> 00:03:09,800 და ფარგლებს, რომ ადგილობრივი ცვლადი განისაზღვრება 78 00:03:09,800 --> 00:03:11,030 სადაც ის ინიციალიზაცია. 79 00:03:11,030 --> 00:03:13,680 ახლა, ფარგლებში, ამიტომ, როგორც წესი, განისაზღვრება გახსნა 80 00:03:13,680 --> 00:03:16,540 გაუწიოს ფუნქციის რომ ცვლადი გამოცხადებული, ვიდრე 81 00:03:16,540 --> 00:03:18,300 დახურვის გაუწიოს ამ ფუნქციას. 82 00:03:18,300 --> 00:03:19,730 ასე ვთქვათ თქვენ ძირითად ფუნქციას. 83 00:03:19,730 --> 00:03:21,410 თქვენ შექმნა ცვლადი. 84 00:03:21,410 --> 00:03:23,110 მაგრამ ახლა, ამ ძირითადი ფუნქცია, ჩვენ მოვუწოდებთ სხვა 85 00:03:23,110 --> 00:03:24,640 ფუნქციონირებს foo. 86 00:03:24,640 --> 00:03:27,070 In ფუნქცია foo, ჩვენ ვერ ვუწოდებ ცვლადი ჩვენ უბრალოდ 87 00:03:27,070 --> 00:03:29,940 შექმნილი ძირითადი ფუნქცია იმიტომ რომ არ ფარგლებს. 88 00:03:29,940 --> 00:03:33,410 რომ ცვლადის მხოლოდ ფარგლებს შიგნით ძირითადი ფუნქცია. 89 00:03:33,410 --> 00:03:36,540 ამიტომ ვერ გამოიყენოს იგი შემდგომი წლის განმავლობაში, ძირითადი ფუნქცია, მაგრამ 90 00:03:36,540 --> 00:03:40,650 არ შედის ფუნქცია ეწოდება ძირითადი ფუნქცია. 91 00:03:40,650 --> 00:03:43,390 ასე მოსწონს დასტის და ბევრი გლობალური ცვლადები არის 92 00:03:43,390 --> 00:03:45,580 ინახება გარკვეული ნაწილის მეხსიერებაში. 93 00:03:45,580 --> 00:03:47,665 ახლა, ამ ნაწილში მეხსიერება დამოკიდებულია სისტემა, რომელიც 94 00:03:47,665 --> 00:03:48,490 თქვენ გამოყენებით. 95 00:03:48,490 --> 00:03:50,840 გლობალური ცვლადები აქვს ორი დამოუკიდებელი ლაქების რომ ისინი 96 00:03:50,840 --> 00:03:54,570 ინახება, ერთი ინიციალიზაცია გლობალური ცვლადები, როგორიცაა, თუ 97 00:03:54,570 --> 00:03:58,130 თქვენ განაცხადა, int ტესტი = 5, ზედა თქვენი პროგრამა. 98 00:03:58,130 --> 00:04:01,010 და სხვა ფართობი არის unitialized გლობალური ცვლადები, 99 00:04:01,010 --> 00:04:03,190 თუ თქვენ მხოლოდ განაცხადა, int ტესტი, ზედა თქვენი პროგრამა და 100 00:04:03,190 --> 00:04:05,040 მიდიოდა მითითებული ტესტი ცვლადები 101 00:04:05,040 --> 00:04:07,626 მოგვიანებით ამ პროგრამაში. 102 00:04:07,626 --> 00:04:10,140 ახლა მე ვაპირებ ვისაუბრო რაღაც მოუწოდა # განსაზღვრავს, 103 00:04:10,140 --> 00:04:13,380 რაც გზას მისცემს სიმბოლურ სახელი მუდმივი. 104 00:04:13,380 --> 00:04:17,420 და აქ ჩვენ გვაქვს მაგალითი C პროგრამა, რომელიც ითვლის 105 00:04:17,420 --> 00:04:19,470 ფართობი წრეში. 106 00:04:19,470 --> 00:04:21,690 და ზედა პროგრამით ჩვენ ყველაფერს გავაკეთებთ, რომ რაღაც ამბობს 107 00:04:21,690 --> 00:04:25,830 # Define PI 3,14159. 108 00:04:25,830 --> 00:04:29,330 # განსაზღვროს არ ტექნიკურად შექმნას გლობალური ცვლადი. 109 00:04:29,330 --> 00:04:31,590 უფრო მეტიც, იგი ეუბნება შემდგენელი მისი preprocessor to 110 00:04:31,590 --> 00:04:34,350 იპოვოს და შეცვლის ყველა ინსტანციის pi ერთად 111 00:04:34,350 --> 00:04:37,540 3,14159 ადრე შედგენა. 112 00:04:37,540 --> 00:04:39,830 მიუხედავად ამისა, ხდება სასარგებლო ტექნიკა გამოცხადებისთვის 113 00:04:39,830 --> 00:04:41,510 მუდმივები, გამოყენების მთელი პროგრამა. 114 00:04:41,510 --> 00:04:44,540 ახლა, ეძებს ფართობი ფუნქცია, სჭირდება წელს float 115 00:04:44,540 --> 00:04:48,150 Rad და უბრალოდ ბრუნდება ფართობი წრე, რომ 116 00:04:48,150 --> 00:04:52,920 რადიუსი ან pi r კვადრატში, ან PI ჯერ Rad ჯერ Rad. 117 00:04:52,920 --> 00:04:56,040 და ეს არის სადაც # განსაზღვრავს გადამწყვეტი როლი შეასრულა. 118 00:04:56,040 --> 00:04:59,270 რადგან შემდგენელი ძირითადად replace რომ pi 119 00:04:59,270 --> 00:05:02,780 სიმბოლო მთელ რიგ 3,14159. 120 00:05:02,780 --> 00:05:05,560 ასე რომ, ჩვენ არ უნდა დაწერო, რომ უსასრულოდ. 121 00:05:05,560 --> 00:05:08,900 მოგვიანებით, თუ ჩვენ გადაწყვეტილებას გამოიყენონ მეტი ციფრით pi, მოდით 122 00:05:08,900 --> 00:05:12,800 ამბობენ 3.1415926, შეიძლება უბრალოდ დაამატოთ, რომ ზევით 123 00:05:12,800 --> 00:05:14,330 პროგრამა და არ უნდა შეიცვალოს ის, 124 00:05:14,330 --> 00:05:16,160 მოგვიანებით ამ პროგრამაში. 125 00:05:16,160 --> 00:05:18,240 ეს არის კარგი გამოყენება # განსაზღვრავს. 126 00:05:18,240 --> 00:05:20,520 ჩვენ არ გვინდა შესანახად pi როგორც გლობალური ცვლადი, რადგან იგი 127 00:05:20,520 --> 00:05:21,780 შეიძლება შეიცვალოს შემდეგ პროგრამა. 128 00:05:21,780 --> 00:05:23,430 და ვიცით, pi არ იცვლება. 129 00:05:23,430 --> 00:05:25,650 ეს მუდმივი. 130 00:05:25,650 --> 00:05:28,120 ასე რომ, ეს დაასრულა ჩვენი თემის გლობალური ცვლადები. 131 00:05:28,120 --> 00:05:29,930 ამიტომ დღეს ჩვენ ვისაუბრეთ განსხვავება ადგილობრივი და 132 00:05:29,930 --> 00:05:32,490 გლობალური ცვლადები, როდესაც მათი გამოყენება, დამოკიდებულია მათი 133 00:05:32,490 --> 00:05:36,660 დიაპაზონი და რატომ არ გამოიყენოს გლობალური ცვლადები სურვილისამებრ 134 00:05:36,660 --> 00:05:39,360 გამო cluttering of სახელი ფართი. 135 00:05:39,360 --> 00:05:40,270 მე Joe McCormick. 136 00:05:40,270 --> 00:05:42,290 და ეს არის CS50.