1 00:00:07,420 --> 00:00:08,160 [Powered by Google Translate] DAVID J. مالان: حسنا. 2 00:00:08,160 --> 00:00:11,170 هذا هو CS50، وهذا هو نهاية الأسبوع اثنين. 3 00:00:11,170 --> 00:00:14,650 إذا كنت تتوقع أن تكون جائعا في هذا الوقت غدا، نعلم أننا ذاهبون 4 00:00:14,650 --> 00:00:18,920 كما أن يعقد غدا مجموعة صغيرة، الخميس، 1:15 PM. 5 00:00:18,920 --> 00:00:21,460 هناك هذا URL هنا إذا كنت ترغب في أجبني لو سمحت. 6 00:00:21,460 --> 00:00:25,270 مساحة محدودة، لذا يرجى يغفر إذا كان النموذج قد يملأ بحلول الوقت الذي 7 00:00:25,270 --> 00:00:26,680 ملء هذا النموذج. 8 00:00:26,680 --> 00:00:29,400 على الرغم من أن آخر URL قد تكون ذات فائدة هو هذا. 9 00:00:29,400 --> 00:00:32,409 >> حتى في مجرد عن غضون شهر، وبالطبع سوف تتاح 10 00:00:32,409 --> 00:00:36,090 ومما يزيد من نطاق واسع من خلال EDX، والتي سوف عبر الناس على شبكة الإنترنت يكون 11 00:00:36,090 --> 00:00:39,580 قادرة على متابعة طول، والمشاركة بنشاط في سياق جدا، في الواقع. 12 00:00:39,580 --> 00:00:43,070 وأنها سوف تستخدم الجهاز CS50 CS50 ومناقشة ومعظم 13 00:00:43,070 --> 00:00:45,840 أدوات البرمجيات المختلفة التي لدينا بالفعل تم استخدام هذا الفصل الدراسي. 14 00:00:45,840 --> 00:00:49,030 واحدة من المبادرات نود أن تأخذ على كتجربة هذا العام 15 00:00:49,030 --> 00:00:53,120 هو أن نرى فقط كم المحتوى الذي يمكن أن تترجم إلى والأخرى المستخدمة 16 00:00:53,120 --> 00:00:54,110 كتابة اللغات. 17 00:00:54,110 --> 00:00:58,000 إذا كان الأمر كذلك قد يكون لديك مصلحة في المشاركة في هذا المشروع، حيث 18 00:00:58,000 --> 00:01:02,090 سوف نقدم النصوص الإنجليزية والترجمة لفي الدورة 19 00:01:02,090 --> 00:01:05,190 المحاضرات والندوات والسراويل والأقسام وما شابه ذلك - 20 00:01:05,190 --> 00:01:08,700 إذا كنت تتحدث بطلاقة والكتابة بطلاقة بعض اللغات الأخرى، بما نستطيع أن 21 00:01:08,700 --> 00:01:12,240 أحب أن المشاركة لكم في هذا المشروع، حيث كنت تأخذ على واحد أو أكثر من 22 00:01:12,240 --> 00:01:15,340 أشرطة الفيديو، وترجمتها إلى اللغة التي تعرف بشكل جيد. 23 00:01:15,340 --> 00:01:19,050 لإعطائك فكرة عن واجهة، وهناك واجهة المستخدم هذه على شبكة الإنترنت 24 00:01:19,050 --> 00:01:22,330 أن سنكون باستخدام التي من شأنها خلق أساسا UI مثل هذا. 25 00:01:22,330 --> 00:01:24,520 كان هذا لي تدريس بعض هالوين مضت. 26 00:01:24,520 --> 00:01:27,710 وعلى الجانب الأيمن باللون الأسود هناك إلى جانب هذه الطوابع الزمنية، 27 00:01:27,710 --> 00:01:31,300 سترى الأشياء المختلفة التي خرجت من فمي ذلك اليوم. 28 00:01:31,300 --> 00:01:34,660 ثم تحته، عليك أن تكون قادرا على ترجمة في بعض اللغات الأخرى. 29 00:01:34,660 --> 00:01:37,840 بالضبط ما هو التعيين بين، في هذه الحالة، الإنجليزية 30 00:01:37,840 --> 00:01:38,660 و، ويقول، الإسبانية. 31 00:01:38,660 --> 00:01:40,480 لذلك في الواقع جدا سهل الاستعمال الأداة. 32 00:01:40,480 --> 00:01:43,690 يمكنك الترجيع وسريعة إلى الأمام بسهولة جدا مع اختصارات لوحة المفاتيح. 33 00:01:43,690 --> 00:01:46,710 إذا كان الأمر كذلك كنت ترغب في المشاركة في هذه التجربة ويكون كلامك 34 00:01:46,710 --> 00:01:50,730 رأيت وقرأت من قبل الآلاف من الناس يحتمل أن تكون هناك، رجاء يشعر 35 00:01:50,730 --> 00:01:51,960 حرية المشاركة. 36 00:01:51,960 --> 00:01:56,940 >> الآن كلمة واحدة عن القط الصغير من يوم الاثنين، لئلا قمنا بإرسال أكثر من اللازم 37 00:01:56,940 --> 00:01:58,120 رسالة مخيفة. 38 00:01:58,120 --> 00:02:02,130 أدرك أن ما تشير الساعات المكتبية وتشير إلى أقسام، في 39 00:02:02,130 --> 00:02:05,110 تصميم هذه الدورة هو أن كثيرا المتعاونة والطلاب 40 00:02:05,110 --> 00:02:09,250 يتحدث العمل من خلال مجموعات المشكلة والمشاكل معا. 41 00:02:09,250 --> 00:02:13,630 وحقا خط يأتي فقط الى، مرة أخرى، في نهاية المطاف العمل الذي 42 00:02:13,630 --> 00:02:16,420 وينبغي أن تقدم تكون خاصة بك. 43 00:02:16,420 --> 00:02:19,080 ولذا فمن، بصراحة - في ساعات العمل، أنه من الطبيعي تماما - 44 00:02:19,080 --> 00:02:21,560 انها تماما أن يكون متوقعا، حتى - أن يتحدث مع بعض 45 00:02:21,560 --> 00:02:22,370 الأصدقاء إلى جانبك. 46 00:02:22,370 --> 00:02:25,240 إذا كان هو أو هي تعاني من بعض المواضيع، وكنت مثل، أوه، حسنا اسمحوا 47 00:02:25,240 --> 00:02:27,750 لي أن أقدم لكم لمحة عن بعض سطر من التعليمات البرمجية التي كتبت. 48 00:02:27,750 --> 00:02:28,290 هذا شيء طيب. 49 00:02:28,290 --> 00:02:28,700 يحدث ذلك. 50 00:02:28,700 --> 00:02:31,580 وهذا يؤدي بكثير جدا، كما أعتقد، في عملية التعلم. 51 00:02:31,580 --> 00:02:35,270 حيث الخط، مرة أخرى، ويحصل هو عندما عبرت الرأس هو نوع من يميل أكثر 52 00:02:35,270 --> 00:02:38,800 هنا لمدة ثانية أو عدد كبير جدا من دقائق لذلك حقا أن يكون مجرد 53 00:02:38,800 --> 00:02:41,250 تم رفع الحجب عن فرصة صديقك. 54 00:02:41,250 --> 00:02:43,870 وبالتأكيد، عندما تحصل على تبادل الأشياء عبر البريد الإلكتروني ودروببوإكس و 55 00:02:43,870 --> 00:02:45,350 شابه ذلك، هناك أيضا الخط. 56 00:02:45,350 --> 00:02:48,940 لذلك بكل الوسائل، تشعر بالراحة ويشعر تشجيع للدردشة مع الأصدقاء 57 00:02:48,940 --> 00:02:51,270 وزملاء الدراسة حول psets وأكثر من ذلك. 58 00:02:51,270 --> 00:02:54,680 وندرك تماما أن ما يقدم في نهاية المطاف يجب أن يكون حقا 59 00:02:54,680 --> 00:02:57,780 المنتج من خلقك وليس شخص آخر. 60 00:02:57,780 --> 00:03:01,010 >> لذلك وعلى نفس المنوال من المخلوقات محبوب، قد 61 00:03:01,010 --> 00:03:02,820 أعرف هذا الرجل هنا. 62 00:03:02,820 --> 00:03:06,180 لذلك هذا هو الفيلم جبني مروع من سنة مضت. 63 00:03:06,180 --> 00:03:08,680 أي شخص ينظر هنا Spaceballs؟ 64 00:03:08,680 --> 00:03:09,120 حسنا. 65 00:03:09,120 --> 00:03:10,220 حتى عدد لا بأس به هنا. 66 00:03:10,220 --> 00:03:13,840 لذلك هذا هو طريقنا الأكاديمية رائعة لإدخال اليوم في نهاية المطاف 67 00:03:13,840 --> 00:03:15,130 مفهوم التشفير. 68 00:03:15,130 --> 00:03:19,010 واحدة من المشاكل حتى مجال معين لpset 2، والتي سوف تأتي 69 00:03:19,010 --> 00:03:22,770 من ليلة الغد في وقت متأخر، هو يغوص في عالم التشفير، والتي 70 00:03:22,770 --> 00:03:26,380 هي فن تشفير أو الهرولة المعلومات. 71 00:03:26,380 --> 00:03:30,160 وهذا يتعلق في نهاية المطاف إلى عالم الأمن. 72 00:03:30,160 --> 00:03:34,440 >> الآن بالنسبة لمعظم لنا الأمن يأتي في شكل آليات الدنيوية إلى حد ما. 73 00:03:34,440 --> 00:03:36,920 كل منا لديه أسماء المستخدمين وكلمات السر. 74 00:03:36,920 --> 00:03:41,350 وعلينا جميعا أسماء المستخدمين وكلمات المرور سيئة للغاية، وعلى الأرجح. 75 00:03:41,350 --> 00:03:45,250 إذا كانت كلمة المرور هي نفسها في مواقع متعددة، وهذا ربما لا 76 00:03:45,250 --> 00:03:47,920 أفضل فكرة، وسوف نناقش في الفصل الدراسي نحو نهاية. 77 00:03:47,920 --> 00:03:51,680 إذا هو مكتوب كلمة المرور الخاصة بك على مذكرة لزجة - ليس مزحة - على الخاص 78 00:03:51,680 --> 00:03:55,130 مراقب، وهذا هو أيضا ليس بالضرورة أفضل تصميم لكنها شائعة جدا 79 00:03:55,130 --> 00:03:56,140 الظاهرة. 80 00:03:56,140 --> 00:04:00,420 وإذا كنت لا تستخدم التشفير لتشفير كلمات السر الخاصة بك، فهي 81 00:04:00,420 --> 00:04:01,610 المعرضة بصفة خاصة. 82 00:04:01,610 --> 00:04:04,670 حتى إذا كنت تعتقد أنك ذكي سوبر يجري من خلال وجود كلمة مخفي 83 00:04:04,670 --> 00:04:07,740 توثيق مكان ما على القرص الصلب الذي يحتوي جميع كلمات السر الخاصة بك ولكن 84 00:04:07,740 --> 00:04:10,550 انها في مجلد الذي لا أحد سوف ننظر في، وهذا هو أيضا ليس غاية 85 00:04:10,550 --> 00:04:11,540 آمنة آلية. 86 00:04:11,540 --> 00:04:15,100 وماذا في ذلك pset 2 سوف يعرض هذا الفن من الترميز و 87 00:04:15,100 --> 00:04:18,300 الهرولة المعلومات بحيث أشياء مثل كلمات السر هي 88 00:04:18,300 --> 00:04:19,500 كل أكثر أمنا. 89 00:04:19,500 --> 00:04:24,500 وذلك لتحفيز هذه المشكلة جدا في العالم الحقيقي مع جدا غير العالم الحقيقي 90 00:04:24,500 --> 00:04:28,740 السيناريو، اسمحوا لي أن أعرض لكم لقطات واحدة من المفضلة لدينا هنا من هذا 91 00:04:28,740 --> 00:04:29,895 الفيلم، Spaceballs. 92 00:04:29,895 --> 00:04:30,565 >> [تشغيل الفيديو] 93 00:04:30,565 --> 00:04:32,995 -الخوذة، كنت مدمن، ما الذي يحدث؟ 94 00:04:32,995 --> 00:04:34,730 ماذا تفعل لابنتي؟ 95 00:04:34,730 --> 00:04:38,960 -اسمحوا لي أن أعرض الرائعة جراح التجميل الشباب، والدكتور فيليب 96 00:04:38,960 --> 00:04:43,290 Schlotkin، والعمل أعظم رجل في الأنف بأكمله 97 00:04:43,290 --> 00:04:45,526 الكون وبيفرلي هيلز. 98 00:04:45,526 --> 00:04:46,450 صاحب السمو. 99 00:04:46,450 --> 00:04:47,380 الأنف ظيفة؟ 100 00:04:47,380 --> 00:04:48,035 أنا لا أفهم. 101 00:04:48,035 --> 00:04:49,480 بالفعل انها وظيفة الأنف. 102 00:04:49,480 --> 00:04:51,490 وكان الحلو 16 الحالي. 103 00:04:51,490 --> 00:04:53,090 لا، انها ليست ما هو رأيك. 104 00:04:53,090 --> 00:04:55,150 انها بكثير، وأسوأ من ذلك بكثير. 105 00:04:55,150 --> 00:04:59,860 إذا كنت لا تعطيني الجمع للدرع الهواء، والدكتور Schlotkin 106 00:04:59,860 --> 00:05:04,135 إعطاء ابنتك العودة أنفها القديمة. 107 00:05:04,135 --> 00:05:05,385 -لا! 108 00:05:08,202 --> 00:05:10,186 أين لك هذا؟ 109 00:05:10,186 --> 00:05:11,178 -حسنا. 110 00:05:11,178 --> 00:05:11,674 انا اقول. 111 00:05:11,674 --> 00:05:12,666 انا اقول. 112 00:05:12,666 --> 00:05:14,154 لا، أبي، لا. 113 00:05:14,154 --> 00:05:15,150 يجب أن لا. 114 00:05:15,150 --> 00:05:16,460 -تذهبين الحق، يا عزيزي. 115 00:05:16,460 --> 00:05:18,450 سوف افتقد الأنف الجديد. 116 00:05:18,450 --> 00:05:21,550 ولكنني لن أقول لهم الجمع مهما كانت. 117 00:05:21,550 --> 00:05:23,100 -جدا أيضا. 118 00:05:23,100 --> 00:05:25,510 الدكتور Schlotkin، قم أسوأ الخاص بك. 119 00:05:25,510 --> 00:05:26,760 بين بلدي المتعة. 120 00:05:30,560 --> 00:05:31,180 -لا! 121 00:05:31,180 --> 00:05:33,450 الانتظار، الانتظار. 122 00:05:33,450 --> 00:05:34,770 انا اقول. 123 00:05:34,770 --> 00:05:36,400 انا اقول. 124 00:05:36,400 --> 00:05:38,630 -I عرف انها ستعمل. 125 00:05:38,630 --> 00:05:42,040 حسنا، تعطيه لي. 126 00:05:42,040 --> 00:05:46,890 -الجمع واحد. 127 00:05:46,890 --> 00:05:47,290 واحد. 128 00:05:47,290 --> 00:05:48,183 واحد. 129 00:05:48,183 --> 00:05:48,950 اثنين. 130 00:05:48,950 --> 00:05:49,370 اثنين. 131 00:05:49,370 --> 00:05:50,450 اثنين. 132 00:05:50,450 --> 00:05:50,715 ثلاث- 133 00:05:50,715 --> 00:05:51,380 ثلاثة و. 134 00:05:51,380 --> 00:05:52,390 ثلاثة و. 135 00:05:52,390 --> 00:05:53,200 أربعة و. 136 00:05:53,200 --> 00:05:53,720 أربعة و. 137 00:05:53,720 --> 00:05:55,830 أربعة و. 138 00:05:55,830 --> 00:05:56,580 خمس- 139 00:05:56,580 --> 00:05:57,120 الخامسة. 140 00:05:57,120 --> 00:05:58,560 الخامسة. 141 00:05:58,560 --> 00:06:03,770 لذلك، الجمع واحد، اثنان، ثلاثة، أربعة، خمسة. 142 00:06:03,770 --> 00:06:06,745 هذا هو أغبى مزيج سمعت من أي وقت مضى في حياتي. 143 00:06:06,745 --> 00:06:09,290 هذا هو النوع من الشيء احمق سيترتب على حقائبه. 144 00:06:09,290 --> 00:06:11,540 شكرا لك يا مولاي. 145 00:06:11,540 --> 00:06:12,940 وماذا فعلت؟ 146 00:06:12,940 --> 00:06:14,230 -I إيقاف الجدار. 147 00:06:14,230 --> 00:06:14,630 لا، هل لا. 148 00:06:14,630 --> 00:06:15,430 تحولت قبالة لكم الفيلم كله. 149 00:06:15,430 --> 00:06:16,722 -I يجب أن يكون الضغط على الزر الخطأ. 150 00:06:16,722 --> 00:06:18,078 حسنا، ووضعها مرة أخرى. 151 00:06:18,078 --> 00:06:18,805 وضع الفيلم مرة أخرى. 152 00:06:18,805 --> 00:06:19,080 نعم، يا سيدي. 153 00:06:19,080 --> 00:06:19,270 نعم، يا سيدي. 154 00:06:19,270 --> 00:06:19,830 -دعونا نذهب، إرنا. 155 00:06:19,830 --> 00:06:20,270 تأتي، جريتشين. 156 00:06:20,270 --> 00:06:22,850 بالطبع كنت أعلم أنني سوف لا تزال بحاجة الى فاتورة لكم على هذا. 157 00:06:27,400 --> 00:06:28,325 حسنا، لم يعمل؟ 158 00:06:28,325 --> 00:06:29,550 أين البوابة؟ 159 00:06:29,550 --> 00:06:29,910 عملت-IT، يا سيدي. 160 00:06:29,910 --> 00:06:30,770 لدينا مجموعة. 161 00:06:30,770 --> 00:06:31,390 -الكبرى. 162 00:06:31,390 --> 00:06:35,630 الآن يمكن أن نأخذ كل نفس من الهواء النقي مشاركة Druidia من الكوكب. 163 00:06:35,630 --> 00:06:36,550 ما هو الجمع؟ 164 00:06:36,550 --> 00:06:38,805 واحد، اثنان، ثلاثة، أربعة، خمسة. 165 00:06:38,805 --> 00:06:40,610 واحد، اثنان، ثلاثة، أربعة، خمسة؟ 166 00:06:40,610 --> 00:06:41,070 نعم. 167 00:06:41,070 --> 00:06:41,760 وهذا مدهش،. 168 00:06:41,760 --> 00:06:45,200 لقد حصلت على نفس تركيبة بلدي الأمتعة. 169 00:06:45,200 --> 00:06:47,800 إعداد Spaceball 1 لرحيل فوري. 170 00:06:47,800 --> 00:06:48,536 نعم، يا سيدي. 171 00:06:48,536 --> 00:06:52,350 وتغيير تركيبة على بلدي الأمتعة. 172 00:06:52,350 --> 00:06:53,250 آه،! 173 00:06:53,250 --> 00:06:55,020 [تشغيل الفيديو END] 174 00:06:55,020 --> 00:06:57,470 >> DAVID J. مالان: لفيلم من افلام مذهلة يجب عليك الآن نرى جميعا. 175 00:07:00,600 --> 00:07:06,540 وبالتالي فإن السياق هنا هو أنه مع البيانات غير آمنة يأتي فرصة ل 176 00:07:06,540 --> 00:07:07,790 وتشفيرها لتغيير معالم ذلك. 177 00:07:07,790 --> 00:07:11,060 وحتى هذا، على سبيل المثال، هو مثال على رسالة مشفرة. 178 00:07:11,060 --> 00:07:12,980 هذا يقول في الواقع شيئا باللغة الإنجليزية. 179 00:07:12,980 --> 00:07:14,750 ولكن من الواضح ليس واضحا تماما. 180 00:07:14,750 --> 00:07:17,360 وسوف نأتي اليوم لدائرة كاملة ندف بصرف النظر ما هذا السر 181 00:07:17,360 --> 00:07:18,380 الرسالة هنا هو. 182 00:07:18,380 --> 00:07:22,370 ولكن في العالم الحقيقي من أجهزة الكمبيوتر، لا تبدو الأمور وكأنها قد حتى 183 00:07:22,370 --> 00:07:23,440 تكون العبارات الإنجليزية. 184 00:07:23,440 --> 00:07:27,500 على سبيل المثال، وهذا هو ما يمكن أن تجد على لينكس أو ماك أو القياسية 185 00:07:27,500 --> 00:07:32,080 دعا UNIX الكمبيوتر في ملف تم مرة واحدة عند كل مرة في ملف كلمة السر. 186 00:07:32,080 --> 00:07:34,170 في الوقت الحاضر، وانه تم نقله إلى أماكن أخرى. 187 00:07:34,170 --> 00:07:38,660 ولكن اذا نظرتم في المكان المناسب على النظام، سترى الخاص بك ليس فقط 188 00:07:38,660 --> 00:07:41,430 اسم المستخدم أو أن الآخرين على النظام، ولكن سترى على 189 00:07:41,430 --> 00:07:43,410 مشفرة نسخة من كلمة المرور الخاصة بهم. 190 00:07:43,410 --> 00:07:47,800 والواقع أن هناك سرداب كلمة تشير إلى أن الاشياء التالية مشفرة. 191 00:07:47,800 --> 00:07:52,030 وهذه السلسلة من رسائل عشوائية وأحرف وأرقام و 192 00:07:52,030 --> 00:07:56,370 هكذا يمكن فقط يمكن فك تشفير من خلال معرفة بعض عموما سرية - 193 00:07:56,370 --> 00:07:58,600 كلمة السر، رقم سري. 194 00:07:58,600 --> 00:08:02,760 وبالفعل كان الأمر كذلك، فن التشفير يغلي في نهاية المطاف الى ثقة بعض 195 00:08:02,760 --> 00:08:05,700 نوع ومعرفة شيء أن شخصا آخر لا. 196 00:08:05,700 --> 00:08:10,010 سوف نستكشف هذا بتفصيل أكثر قليلا اليوم وفي pset القادمة. 197 00:08:10,010 --> 00:08:11,860 >> والآن كلمة عن النجاح / الفشل. 198 00:08:11,860 --> 00:08:15,250 خصوصا ذلك، لأن بعض منكم قد اتجه الى pset 1، والأجهزة، و 199 00:08:15,250 --> 00:08:18,390 عالم جديد جدا لنفسك، وأدركت أن الإحباط 200 00:08:18,390 --> 00:08:21,340 الارتباك والصعوبات التقنية فقط وينتظر أن تتم. 201 00:08:21,340 --> 00:08:24,410 خاصة مع pset الأولى، حيث هناك فقط الكثير من الجديد، مجرد الحصول على 202 00:08:24,410 --> 00:08:28,830 دراية ليرة سورية ومؤتمر نزع السلاح وجميع هذه الأوامر غامضة في بيئة جديدة. 203 00:08:28,830 --> 00:08:32,679 وهذا منفصل عن المواد الفعلية والبرمجة نفسها. 204 00:08:32,679 --> 00:08:35,960 تحقيق ذلك، أيضا، أن هناك بالتأكيد أوقات العمل الموجودة كما 205 00:08:35,960 --> 00:08:36,770 دعم الهيكل. 206 00:08:36,770 --> 00:08:38,620 أقسام تبدأ يوم الأحد القادم. 207 00:08:38,620 --> 00:08:41,990 ولكن الأهم من ذلك، إذا كنت تشعر أن مجرد هذا ليس هو 208 00:08:41,990 --> 00:08:44,420 العالم بالنسبة لك، ندرك أنه حقا لا تأخذ فقط الوقت. 209 00:08:44,420 --> 00:08:47,520 وأنه لولا هذه الفرصة منذ سنوات بالنسبة لي من أخذ فئة 210 00:08:47,520 --> 00:08:50,840 تمرير / تفشل، وبصراحة، أنا لن حتى وضعت القدم في الفصول الدراسية. 211 00:08:50,840 --> 00:08:53,520 ويمكنك تغيير هذا حتى، يقول، يوم الاثنين الخامس من الدورة. 212 00:08:53,520 --> 00:08:57,110 إذا كان الأمر كذلك كنت على حافة الآن، يدرك أنه بدلا من التوجه إلى بعض الدول الاخرى 213 00:08:57,110 --> 00:09:01,000 المياه تماما، لا تنظر بالتأكيد مجرد تغيير لتمرير / تفشل. 214 00:09:01,000 --> 00:09:03,750 مرة أخرى، ليس هناك حقا هذه الثقافة هنا في جامعة هارفارد من أخذ الأمور 215 00:09:03,750 --> 00:09:08,080 تمرير / تفشل لأن الجميع يريد فعلا تحقيق أو overachieve. 216 00:09:08,080 --> 00:09:11,470 ولكن بصراحة، هذا هو وسيلة رائعة لمحاولة شيء إلى أن قد لا 217 00:09:11,470 --> 00:09:13,110 تكون مألوفة لك. 218 00:09:13,110 --> 00:09:17,090 وسوف ينتهي بك الأمر به في معظم الحالات غرامة تماما، وربما 219 00:09:17,090 --> 00:09:18,040 وكانت المفاجأة الخاص بك. 220 00:09:18,040 --> 00:09:20,850 وبعبارات أكثر تحديدا، ما أعتقد تمرير / تفشل عموما لا، 221 00:09:20,850 --> 00:09:23,350 خاصة قد شهدت لك pset 0، إذا كنت قد وضعت 222 00:09:23,350 --> 00:09:27,200 في 10 ساعة، 15 ساعة، 25 ساعة في بعض pset - وكنت ضجيجا فقط 223 00:09:27,200 --> 00:09:28,180 رأسك بالحائط، 224 00:09:28,180 --> 00:09:29,850 والأمر يزداد السوبر وقت متأخر من الليل، 225 00:09:29,850 --> 00:09:31,880 ولكن كنت قد اتخذت pset مثل 90٪ من الطريق، 226 00:09:31,880 --> 00:09:33,780 كنت أعلم أنك فقط لا يمكن معرفة شيء واحد - 227 00:09:33,780 --> 00:09:36,830 تمرير / تفشل يأخذ حقا على حافة الخروج من فئة مثل هذا، حيث يمكنك فرز 228 00:09:36,830 --> 00:09:39,150 من حسن الحظ يقول حسنا، أنا أعلم أنها ليست مثالية. 229 00:09:39,150 --> 00:09:40,470 ولكن عملت قبالة مؤخرتي في هذا الشأن. 230 00:09:40,470 --> 00:09:42,410 انا سعيدة جدا مع حيث انتهى. 231 00:09:42,410 --> 00:09:44,780 وسوف تلبي توقعات النجاح / الفشل. 232 00:09:44,780 --> 00:09:46,850 لذلك إبقاء ذلك في الاعتبار. 233 00:09:46,850 --> 00:09:47,140 >> حسنا. 234 00:09:47,140 --> 00:09:50,980 حتى أولئك منكم الذين يصارعون لاستخدام جامعة هارفارد واي فاي أعرف 235 00:09:50,980 --> 00:09:54,780 أن هناك SSID CS50، اتصال واي فاي وتطوف التي 236 00:09:54,780 --> 00:09:56,520 قد يكون أفضل حظا ل. 237 00:09:56,520 --> 00:09:59,430 انها سخرية قليلا أن كلمة السر لهذا - إذا كنت ترغب في محاولة 238 00:09:59,430 --> 00:10:03,080 هذا الاتصال لتحسين سرعة وعلينا أن نعرف ما اذا كان ليس أفضل - 239 00:10:03,080 --> 00:10:09,240 هي واحدة، اثنان، ثلاثة، أربعة، خمسة، على طول الطريق يصل إلى ثمانية لالثمانية 240 00:10:09,240 --> 00:10:10,270 أكثر أمانا من خمس سنوات. 241 00:10:10,270 --> 00:10:15,520 حتى إذا كنت في حاجة إلى كلمة واي فاي، الاتصال CS50 هنا لاسلكيا. 242 00:10:15,520 --> 00:10:16,950 واحد، اثنان، ثلاثة، أربعة، خمسة، ستة، سبعة، ثمانية. 243 00:10:16,950 --> 00:10:20,440 ومشاركة في مناقشة CS50 إذا كان لديك مشكلات في الاتصال تزال متقطعة، 244 00:10:20,440 --> 00:10:24,880 وسوف ندع القوى التي تعرف أن لهذا الفضاء. 245 00:10:24,880 --> 00:10:25,180 >> حسنا. 246 00:10:25,180 --> 00:10:30,350 حتى دعابة سريعة، خصوصا بالنسبة لأولئك منكم الذين هم الفتيان أو الفتيات مروحة 247 00:10:30,350 --> 00:10:31,900 أبل جميع الأشياء. 248 00:10:31,900 --> 00:10:37,566 ما حفرت من قبل بضع سنوات كان هذا الملف هنا، ilock.c، لمجرد أن 249 00:10:37,566 --> 00:10:40,930 نوع من جعل أكثر واقعية وأكثر تعقيدا بعض C الأساسية أكثر 250 00:10:40,930 --> 00:10:42,350 برامج كنا الكتابة. 251 00:10:42,350 --> 00:10:44,360 لذلك فتحت هذا الملف، ilock.c. 252 00:10:44,360 --> 00:10:46,830 لأنها متاحة على الصفحة محاضرات لهذا اليوم. 253 00:10:46,830 --> 00:10:49,470 على الجانب الأيمن، سترى لائحة طويلة من الوظائف. 254 00:10:49,470 --> 00:10:51,860 كتب ذلك الزميل الذي كتب هذا الأمر الكثير من الوظائف، 255 00:10:51,860 --> 00:10:53,290 أكثر من مجرد الرئيسي. 256 00:10:53,290 --> 00:10:55,490 لكنه كان في مجمله مجموعة من المكتبات هنا. 257 00:10:55,490 --> 00:11:00,450 وإذا بدأنا من خلال التمرير، هذا هو في الواقع ما هو جدا 258 00:11:00,450 --> 00:11:04,670 أولا، أعتقد، الكراك لفون الأصلي. 259 00:11:04,670 --> 00:11:08,000 عندما أردت الهروب من السجن اي فون الأصلي، وهو ما يعني untether 260 00:11:08,000 --> 00:11:11,800 فإنه من AT & T وفعلا تثبيت برنامج خاص على ذلك وتفعل أشياء 261 00:11:11,800 --> 00:11:13,510 أن أبل لا تريد ان يفعل الناس - 262 00:11:13,510 --> 00:11:17,020 حسنا، استغرق شخص الوقت لمعرفة بالضبط كيف أنها يمكن أن تستغل 263 00:11:17,020 --> 00:11:20,880 عيوب البرمجيات، وأخطاء، والبق، في برامج آبل. 264 00:11:20,880 --> 00:11:22,650 وهكذا ولدت ilock.c. 265 00:11:22,650 --> 00:11:26,670 أنه إذا جمعت على جهاز كمبيوتر وتثبيته على جهاز iPhone الذي 266 00:11:26,670 --> 00:11:29,810 كان متصلا جهاز الكمبيوتر الخاص بك عن طريق، مثلا، كبل USB، فإن هذا يعطيك 267 00:11:29,810 --> 00:11:33,360 امتيازات إدارية أو الجذر على اي فون الخاص بك وتتيح لك القيام الى حد كبير 268 00:11:33,360 --> 00:11:34,170 كل ما تريد. 269 00:11:34,170 --> 00:11:36,740 >> وهكذا كان هناك هذا القط لعبة الفأر ورائعة بين أبل و 270 00:11:36,740 --> 00:11:39,920 بقية العالم لا سيما ما، مثل العديد من الشركات، في محاولة لتأمين 271 00:11:39,920 --> 00:11:43,220 من الاشياء أسفل بحيث يمكنك القيام بذلك إلا أنه مع ما تنوي. 272 00:11:43,220 --> 00:11:46,620 ولكن بفضل الناس مثل هذا وفهمهم للمستوى المنخفض 273 00:11:46,620 --> 00:11:50,580 التفاصيل و، في هذه الحالة البرمجة C، والكثير من بنيات مألوفة 274 00:11:50,580 --> 00:11:54,630 أننا قد بدأت اللعب مع، وكنت قادرا على الاستفادة حقا 275 00:11:54,630 --> 00:11:59,050 الأجهزة بطريقة الذي تراه مناسبا وليس بالضرورة كيان بعض الشركات. 276 00:11:59,050 --> 00:12:01,360 هكذا على سبيل المثال، ليس لدي أي فكرة عما تقوم به كل هذا. 277 00:12:01,360 --> 00:12:03,220 ولكن يبدو GetVersion جميلة واضحة. 278 00:12:03,220 --> 00:12:05,480 ويبدو أن هذه هي وظيفة أن هذا الشخص كتب. 279 00:12:05,480 --> 00:12:09,240 تأخذ نوع من عدد صحيح كوسيطة، لا يرجع أي شيء، ولكن 280 00:12:09,240 --> 00:12:13,080 يبدو أن حلقة مع حلقة For هنا واذا كان الشرط، اذا كان الشرط، 281 00:12:13,080 --> 00:12:15,620 كسر، وتتعلق بطريقة أو بأخرى إلى أرقام الإصدار. 282 00:12:15,620 --> 00:12:16,700 إذا كان لنا أن انتقل لأسفل - 283 00:12:16,700 --> 00:12:19,570 على الرغم من أن الكثير من هذه الكلمات الرئيسية ستكون جديدة، وهناك من 284 00:12:19,570 --> 00:12:22,590 الكثير من الوظائف هنا لم نرها مطلقا من وقد لا نرى أي وقت مضى على 285 00:12:22,590 --> 00:12:23,830 أثناء الفصل الدراسي - 286 00:12:23,830 --> 00:12:27,150 في نهاية اليوم، ويترتب على نفس القواعد والمنطق الذي كنا 287 00:12:27,150 --> 00:12:28,760 اللعب مع حتى الآن. 288 00:12:28,760 --> 00:12:34,220 لذلك هذا هو الآن قديمة جدا للقضاء 3S الخاص بك iPhone 4S أو 5S أو قريبا، في هذه الأيام، 289 00:12:34,220 --> 00:12:37,320 ولكن أعلم أن جميع كثيرا مشتقة من هذا العالم بعد أن قمنا 290 00:12:37,320 --> 00:12:38,430 اتجه الى. 291 00:12:38,430 --> 00:12:41,900 >> لذلك دعونا نلقي نظرة على مثال بسيط أكثر قليلا. 292 00:12:41,900 --> 00:12:46,100 هذا واحد، لمجرد الحصول استعد مع بعض بناء الجملة، وكذلك بعض البيانات الأخرى 293 00:12:46,100 --> 00:12:49,240 النوع الذي تحدثنا عنه ولكن لم أر حقا في C. لذلك هذا هو 294 00:12:49,240 --> 00:12:51,680 دعا positive1.c الملف. 295 00:12:51,680 --> 00:12:55,120 وفقا للتعليقات في القمة، هذا يتطلب أن مستخدم فقط توفير 296 00:12:55,120 --> 00:12:55,960 عدد إيجابية. 297 00:12:55,960 --> 00:12:59,530 لذلك فمن مثال على حلقة افعل الوقت، التي هي لطيفة لتفاعلية للمستخدم 298 00:12:59,530 --> 00:13:01,980 البرامج التي تحتاج لنقول للمستخدم أن تفعل شيئا. 299 00:13:01,980 --> 00:13:05,190 وإذا لم تتعاون، ليصيح عليهم أو رفض مدخلاتها. 300 00:13:05,190 --> 00:13:11,610 مثال على ذلك، وانا ذاهب الى القيام خطوط 19 إلى 24 كما وقتا طويلا للمستخدم 301 00:13:11,610 --> 00:13:14,310 لم تعط لي رقما موجبا. 302 00:13:14,310 --> 00:13:20,400 الآن هذا التفصيل هنا على خط 18، لماذا أعلن ن فوق هذا كله 303 00:13:20,400 --> 00:13:24,490 بناء على العكس من حلقات بجوار خط 22 أين أنا 304 00:13:24,490 --> 00:13:26,880 للحصول على رعاية الواقع ن؟ 305 00:13:26,880 --> 00:13:27,330 نعم؟ 306 00:13:27,330 --> 00:13:27,780 [غير مسموع] 307 00:13:27,780 --> 00:13:29,040 >> DAVID J. مالان: نعم، لذلك هذه المسألة من نطاق. 308 00:13:29,040 --> 00:13:30,850 وفي فترة من عامة الشعب، ما لا تشير إلى نطاق؟ 309 00:13:34,690 --> 00:13:36,610 نعم؟ 310 00:13:36,610 --> 00:13:37,860 [غير مسموع] 311 00:13:40,040 --> 00:13:41,105 DAVID J. مالان: هل يمكنك التحدث بصوت أعلى قليلا و؟ 312 00:13:41,105 --> 00:13:43,450 SPEAKER 1: حيث يمكنك الوصول متغير معين. 313 00:13:43,450 --> 00:13:45,170 DAVID J. مالان: الكمال. 314 00:13:45,170 --> 00:13:47,360 حيث يمكنك الوصول إلى متغير معين. 315 00:13:47,360 --> 00:13:50,400 وعموما، وبحكم التجربة حتى الآن وكان ذلك في نطاق بعض 316 00:13:50,400 --> 00:13:55,860 يتم تعريف متغير من الأقواس المتعرجة والأحدث التي كنت قد رأيت. 317 00:13:55,860 --> 00:14:02,010 وحتى في هذه الحالة، إذا جعلت من الخطأ اعلان ن على خط 22، 318 00:14:02,010 --> 00:14:03,010 وهذا الخط يعمل. 319 00:14:03,010 --> 00:14:10,990 وأود أن الحصول على كثافة العمليات، وأود أن وضعه في أن ن المتغير في السطر 22. 320 00:14:10,990 --> 00:14:16,900 ولكن الأمر الذي سطر من التعليمات البرمجية دينا الآن أي فكرة عما أتحدث عنه؟ 321 00:14:16,900 --> 00:14:22,650 حتى 25 عاما، وتبين 24، وكذلك، لأنه في هذه الحالة، فإنه يقع خارج 322 00:14:22,650 --> 00:14:23,610 من الأقواس المتعرجة. 323 00:14:23,610 --> 00:14:27,280 لذلك قليلا من الإزعاج ولكن من السهل جدا حلها ببساطة من خلال الإعلان 324 00:14:27,280 --> 00:14:30,140 المتغير خارج الدالة نفسها. 325 00:14:30,140 --> 00:14:32,600 >> الآن سنرى في وقت لاحق اليوم، يمكنك أن يخطو خطوة إضافية. 326 00:14:32,600 --> 00:14:34,860 ويمكن أن تحصل حتى قليلا كسول - 327 00:14:34,860 --> 00:14:37,320 وليس هذا أن يكون الموصى بها، بشكل عام - 328 00:14:37,320 --> 00:14:42,260 ولكن هل يمكن حتى الحصول على كسول ووضع متغير على مستوى العالم، إذا جاز التعبير، وليس 329 00:14:42,260 --> 00:14:46,670 داخل وظيفة، وليس داخل حلقة، ولكن في الملف نفسه، خارج 330 00:14:46,670 --> 00:14:49,600 جميع وظائف لقد كتبت لكم، كما فعلت هنا على الخط 15. 331 00:14:49,600 --> 00:14:51,160 ولكن بشكل عام هذا تثير الامتعاض. 332 00:14:51,160 --> 00:14:55,680 ولكن تحقيق هذا الحل هو في بعض الأحيان إلى مشاكل أخرى، لأننا سنقوم 333 00:14:55,680 --> 00:14:56,620 انظر في نهاية المطاف. 334 00:14:56,620 --> 00:14:58,130 حتى الآن، سنقوم ترك الأمر من هذا القبيل. 335 00:14:58,130 --> 00:15:01,030 ولكن دعونا نرى ما اذا كنا نستطيع إعادة كتابة هذا فقط لبدء التعبير عن أنفسنا 336 00:15:01,030 --> 00:15:01,990 بشكل مختلف قليلا. 337 00:15:01,990 --> 00:15:05,330 >> لذلك هذا البرنامج، لمجرد أن يكون واضحا، هو positive1. 338 00:15:05,330 --> 00:15:11,810 اسمحوا لي هنا والمضي قدما في إطار المحطة الطرفية بلدي جعل positive1، أدخل. 339 00:15:11,810 --> 00:15:12,740 يجمع، حسنا. 340 00:15:12,740 --> 00:15:14,910 أنا ذاهب لتشغيل positive1، هاهنا. 341 00:15:14,910 --> 00:15:16,820 أطالب أن تعطيني عدد صحيح موجب. 342 00:15:16,820 --> 00:15:18,260 أنا أقول -1. 343 00:15:18,260 --> 00:15:18,910 هذا لم ينجح. 344 00:15:18,910 --> 00:15:22,150 0، 99، ويبدو أن العمل. 345 00:15:22,150 --> 00:15:23,570 ربما ليس الاختبار الأكثر صرامة. 346 00:15:23,570 --> 00:15:26,480 ولكن على الأقل أنها لطيفة الاختيار التعقل أننا على الطريق الصحيح. 347 00:15:26,480 --> 00:15:29,240 لذلك اسمحوا لي الآن المضي قدما وفتح الإصدار الثاني من هذا. 348 00:15:29,240 --> 00:15:32,500 وبالفعل ما هو مختلف؟ 349 00:15:32,500 --> 00:15:35,140 فإنه يطبق نفس الشيء. 350 00:15:35,140 --> 00:15:40,660 ولكن ما والقفز هذه المرة مختلفة بشكل واضح؟ 351 00:15:40,660 --> 00:15:42,560 نعم، لذلك هذا BOOL باللون الأخضر. 352 00:15:42,560 --> 00:15:45,980 وقد أبرزت هذه الكلمة في Gedit الخضراء المعروفة باسم BOOL، 353 00:15:45,980 --> 00:15:47,000 وهو نوع البيانات. 354 00:15:47,000 --> 00:15:51,080 لا حان إنشاؤها في كافة إصدارات C. تحتاج لتشمل 355 00:15:51,080 --> 00:15:52,010 مكتبة محددة. 356 00:15:52,010 --> 00:15:54,770 في حالتنا، وشملت I مكتبة CS50 حتى يتسنى لنا 357 00:15:54,770 --> 00:15:56,460 الحصول على BOOL. 358 00:15:56,460 --> 00:15:59,810 ولكن في خط 18، يبدو أننا نعاني قيمة منطقية هنا دعا شاكرين. 359 00:15:59,810 --> 00:16:01,040 لذلك يمكن أن يكون أي شيء دعوت هذا. 360 00:16:01,040 --> 00:16:04,500 ولكن دعوت ذلك شاكرين لمجرد نوع من نقل بعض المعنى الدلالي. 361 00:16:04,500 --> 00:16:07,930 في البداية حتى على الخط 18، على ما يبدو أنا لا شاكرين لأن 362 00:16:07,930 --> 00:16:12,150 تتم تهيئة قيمة منطقية شاكرين إلى false في خط 18. 363 00:16:12,150 --> 00:16:16,890 ومن ثم يبدو ما فعلته هنا في خطوط 21 من خلال 23 هو أنا فقط 364 00:16:16,890 --> 00:16:18,610 نوع من إعادة كتابة منطق بلدي. 365 00:16:18,610 --> 00:16:21,020 لذلك لا يختلف وظيفيا. 366 00:16:21,020 --> 00:16:26,940 ولكن في السطر 22 الآن، وأنا معرفة ما اذا كان الباحث المستخدم قدمت أكبر من 367 00:16:26,940 --> 00:16:31,120 0، ثم أنا ببساطة تغيير قيمة شاكرين إلى true. 368 00:16:31,120 --> 00:16:32,290 ولماذا أفعل ذلك؟ 369 00:16:32,290 --> 00:16:35,600 لأنه في السطر 25، على ما يبدو، وأنا ذاهب للتحقق من حالة. 370 00:16:35,600 --> 00:16:39,380 القيام بذلك حلقة في حين شاكرين غير صحيح. 371 00:16:39,380 --> 00:16:43,610 >> لذلك أنا أقترح في هذا كبديل لنسخة واحدة لأنه على الأقل 372 00:16:43,610 --> 00:16:45,130 قليلا أكثر سهولة، وربما. 373 00:16:45,130 --> 00:16:46,900 انها أكثر من ذلك بقليل على الارض باللغة الإنجليزية. 374 00:16:46,900 --> 00:16:51,710 تفعل ذلك ما يلي أثناء وجودك لا شاكرين أو أثناء شاكرين غير صحيح. 375 00:16:51,710 --> 00:16:55,890 وهذه المرة، أيضا، على ما يبدو أنا لا يهمني أن نتذكر ما كتبته المستخدم 376 00:16:55,890 --> 00:16:57,730 في لإشعار ليس هناك ن متغير. 377 00:16:57,730 --> 00:16:58,650 في الواقع كان الأمر كذلك، I - 378 00:16:58,650 --> 00:17:00,080 كذبة بيضاء صغيرة هناك. 379 00:17:00,080 --> 00:17:02,770 عمليا، إلا أن البرنامج يختلف قليلا مرة واحدة نصل الى الجزء السفلي من 380 00:17:02,770 --> 00:17:04,819 ذلك لأنني لست تذكر ما n هو. 381 00:17:04,819 --> 00:17:09,579 ولكن أردت أن تثبت ذلك أيضا هنا حتى ولو رأينا GetInt و 382 00:17:09,579 --> 00:17:13,920 تستخدم GetString على الجانب الأيمن من علامة المساواة بحيث حتى الآن 383 00:17:13,920 --> 00:17:17,160 علينا أن نتذكر قيمة، من الناحية الفنية، وهذا ليس ضروريا تماما. 384 00:17:17,160 --> 00:17:20,950 إذا كنت لأي سبب من الأسباب لا يهتمون لحفظ القيمة، كنت ترغب فقط 385 00:17:20,950 --> 00:17:25,710 للتحقق من قيمة، لاحظ أننا يمكن ببساطة كتابة هذا النحو GetInt المفتوحة 386 00:17:25,710 --> 00:17:27,000 PAREN، PAREN إغلاق. 387 00:17:27,000 --> 00:17:30,460 هذه الوظيفة هو الذهاب لإرجاع قيمة، كما نقوله في مجالسنا. 388 00:17:30,460 --> 00:17:32,010 انها سوف تعطيك عودة إلى الباحث. 389 00:17:32,010 --> 00:17:36,450 وهكذا إذا كنت تعتقد عقليا حدوث ذلك، عندما كنت اكتب في 99، GetInt 390 00:17:36,450 --> 00:17:38,160 إرجاع عدد 99. 391 00:17:38,160 --> 00:17:41,330 والمفهوم جدا .. انه كما لو كانت في الواقع قانون بلدي هذا. 392 00:17:41,330 --> 00:17:45,880 إذا كان الأمر كذلك في الواقع أكبر 99 غير من 0، ثم شاكرين يصبح صحيحا. 393 00:17:45,880 --> 00:17:50,420 ثم السطر 25 يدرك أوه، سننتهي من ذلك لأنني الآن شاكرين. 394 00:17:50,420 --> 00:17:54,590 وتمشيا 26، نقول ببساطة، وذلك بفضل لعدد صحيح موجب، أيا كان 395 00:17:54,590 --> 00:17:55,710 تصادف وجودهم. 396 00:17:55,710 --> 00:17:58,900 >> الآن دعونا نفعل السكر النحوية طفيفة هنا، إذا جاز التعبير. 397 00:17:58,900 --> 00:18:02,990 دعونا نرى ما اذا كنا نستطيع تنظيف هذا الخط 25 مع هذه الفرق الثالثة والأخيرة 398 00:18:02,990 --> 00:18:04,640 في positive3. 399 00:18:04,640 --> 00:18:08,250 تلاحظ حتى الآن والفرق الوحيد هو ما سطر من التعليمات البرمجية؟ 400 00:18:11,930 --> 00:18:13,260 نعم، لذلك 25. 401 00:18:13,260 --> 00:18:15,520 ولقد لا ينظر إليها في الحقيقة هذه الخدعة فقط حتى الآن. 402 00:18:15,520 --> 00:18:19,510 ولكن لم نرى علامة تعجب يوم الاثنين، والذي يدل على ماذا؟ 403 00:18:19,510 --> 00:18:20,970 لذلك لم يكن، أو النفي. 404 00:18:20,970 --> 00:18:23,460 حتى تأخذ قيمة منطقية والوجه قيمته. 405 00:18:23,460 --> 00:18:24,390 صحيح يصبح كاذبة. 406 00:18:24,390 --> 00:18:25,500 كاذبة يصبح صحيحا. 407 00:18:25,500 --> 00:18:28,910 لذلك هذا، وأود أن أقترح، بل أكثر من ذلك بقليل من بديهية وسيلة لل 408 00:18:28,910 --> 00:18:32,200 كتابة التعليمات البرمجية لأنني لا تزال تهيئة شاكرين إلى false. 409 00:18:32,200 --> 00:18:33,530 أنا لا تزال تفعل ما يلي. 410 00:18:33,530 --> 00:18:35,700 أنا وضعت الشكر إلى true عندما يحين الوقت. 411 00:18:35,700 --> 00:18:40,690 ولكن الآن يمكنك حقا ترجمة هذا الرمز فقط ترك شفهيا إلى اليمين، 412 00:18:40,690 --> 00:18:42,550 في حين لا شاكرين. 413 00:18:42,550 --> 00:18:46,170 لأن الانفجار، أو تعجب، يدل على فكرة لا، وذلك في حين 414 00:18:46,170 --> 00:18:47,010 لا شاكرين. 415 00:18:47,010 --> 00:18:49,740 >> ذلك مرة أخرى، ونحن لم أدخل أي مفاهيم جديدة في حد ذاتها. 416 00:18:49,740 --> 00:18:53,230 لقد تحدثنا عن القيم المنطقية مرة عندما لعبنا مع سكراتش. 417 00:18:53,230 --> 00:18:55,690 ولكن ندرك الآن فقط نستطيع أن نبدأ في كتابة التعليمات البرمجية لدينا 418 00:18:55,690 --> 00:18:56,550 العديد من الطرق المختلفة. 419 00:18:56,550 --> 00:19:00,010 لذلك لا سيما في pset1، إذا كنت تكافح من أجل نوع من معرفة الطريق إلى 420 00:19:00,010 --> 00:19:03,400 كتابة بعض البرامج، الاحتمالات هي كنت في الحظ لأن هناك سيكون أي 421 00:19:03,400 --> 00:19:05,780 عدد من الحلول التي يمكن أن يحدث عليها. 422 00:19:05,780 --> 00:19:09,850 على سبيل المثال، وهذا هو ثلاثة فقط لأبسط حتى من البرامج. 423 00:19:09,850 --> 00:19:10,180 حسنا. 424 00:19:10,180 --> 00:19:13,860 والآن أذكر يوم الاثنين، تركنا على هذه المذكرة مع قيم الإرجاع. 425 00:19:13,860 --> 00:19:18,280 ذلك للمرة الأولى، كتبنا البرنامج الذي لا يكون مجرد الرئيسي، 426 00:19:18,280 --> 00:19:22,240 كما أن لديها وظيفتها المخصصة الخاصة التي كتبت هنا. 427 00:19:22,240 --> 00:19:26,640 حتى في خط 31 الى 34، لقد نفذت I وظيفة المكعب. 428 00:19:26,640 --> 00:19:27,800 انها ليست معقدة. 429 00:19:27,800 --> 00:19:29,830 انها مجرد مرات في مرات، في هذه الحالة. 430 00:19:29,830 --> 00:19:34,920 ولكن ما هو مهم في ذلك هو أن أنا أخذ المدخلات في شكل و 431 00:19:34,920 --> 00:19:38,910 أنا العودة الناتج في شكل مرات في مرات. 432 00:19:38,910 --> 00:19:43,940 >> حتى الآن لدي القدرة، مثل الكثير كنت مع وحده printf، من استدعاء 433 00:19:43,940 --> 00:19:47,120 هذه الوظيفة عن طريق استدعاء الدالة مكعب. 434 00:19:47,120 --> 00:19:49,470 وظيفة مكعب يأخذ بعض المدخلات. 435 00:19:49,470 --> 00:19:52,030 وظيفة المكعب إرجاع بعض الانتاج. 436 00:19:52,030 --> 00:19:56,660 وذلك على النقيض من ذلك، لم يفعلوا شيئا printf. 437 00:19:56,660 --> 00:19:59,490 فإنه لم يرجع أي شيء أننا يهتم - على الرغم من ذلك، باعتبارها 438 00:19:59,490 --> 00:20:00,820 جانبا، فإنه لا ترجع قيمة. 439 00:20:00,820 --> 00:20:02,650 أنت فقط تجاهل عموما. 440 00:20:02,650 --> 00:20:04,000 لم يفعلوا شيئا Printf. 441 00:20:04,000 --> 00:20:06,220 وكان من الآثار الجانبية لطباعة على الشاشة. 442 00:20:06,220 --> 00:20:09,480 وعلى النقيض من هنا، لدينا وظيفة مكعب، والتي 443 00:20:09,480 --> 00:20:11,400 يعود في الواقع شيئا. 444 00:20:11,400 --> 00:20:12,960 >> لذلك هذا هو عموما - 445 00:20:12,960 --> 00:20:15,260 بالنسبة لمن هم يعرفون هذا، انها فكرة اضحة إلى حد ما. 446 00:20:15,260 --> 00:20:18,460 ولكن لأقل دراية تلك مع هذه الفكرة من تمرير المدخلات في والحصول على 447 00:20:18,460 --> 00:20:21,700 النواتج إلى الوراء، دعونا نحاول مجرد شيء بسيط عظمى. 448 00:20:21,700 --> 00:20:25,180 وأي شخص مريحة الخروج على خشبة المسرح لفترة وجيزة؟ 449 00:20:25,180 --> 00:20:27,460 عليك أن تكون مريحة مع كاميرا عليك، كذلك. 450 00:20:27,460 --> 00:20:27,640 نعم. 451 00:20:27,640 --> 00:20:28,610 حسنا، ما هو اسمك؟ 452 00:20:28,610 --> 00:20:29,020 KEN: كين. 453 00:20:29,020 --> 00:20:29,420 DAVID J. مالان: كين. 454 00:20:29,420 --> 00:20:29,810 كل الحق، كين. 455 00:20:29,810 --> 00:20:31,060 تأتي على ما يصل. 456 00:20:31,060 --> 00:20:34,660 حتى كين ستكون وظيفة من نوع ما هنا. 457 00:20:34,660 --> 00:20:35,760 ودعونا نمضي قدما ونفعل ذلك. 458 00:20:35,760 --> 00:20:38,790 دعونا الحصول على يتوهم قليلا. 459 00:20:38,790 --> 00:20:39,770 تشرفت بمقابلتك. 460 00:20:39,770 --> 00:20:41,010 مرحبا بك في مركز المرحلة. 461 00:20:41,010 --> 00:20:41,980 حسنا. 462 00:20:41,980 --> 00:20:45,590 دعونا ضرب هذا الزر هنا. 463 00:20:45,590 --> 00:20:46,420 حسنا. 464 00:20:46,420 --> 00:20:49,490 حتى هنا لديك السبورة الحديثة. 465 00:20:49,490 --> 00:20:53,050 وأنا ما هي الوظيفة الرئيسية، على سبيل المثال. 466 00:20:53,050 --> 00:20:55,990 وأنا لم يكن لديك أي باد في يدي. 467 00:20:55,990 --> 00:20:59,000 أنا لا أتذكر حقا كيف يمكنني أن - حسنا، في الواقع، لا يمكن أن نقول ذلك. 468 00:20:59,000 --> 00:21:02,200 ليس لدي حقا الكتابة اليدوية الجيدة. 469 00:21:02,200 --> 00:21:05,260 وبالتالي كان الأمر كذلك، أنا أريد منك أن طباعة شيء ما على الشاشة بالنسبة لي. 470 00:21:05,260 --> 00:21:07,470 >> حتى وأنا يجري البرنامج الرئيسي. 471 00:21:07,470 --> 00:21:15,060 وانا ذاهب لأقول لكم هذا من خلال كتابة الصفر في الدجاج بلدي و 472 00:21:15,060 --> 00:21:16,600 ثم يمر مدخلا. 473 00:21:16,600 --> 00:21:20,000 حتى سخيفة كما لو هذه العملية هو أن مفهوم المهام واستدعاء 474 00:21:20,000 --> 00:21:22,260 وظيفة وإعادة وظيفة يغلي في الواقع إلى هذا. 475 00:21:22,260 --> 00:21:23,120 أنا الرئيسي. 476 00:21:23,120 --> 00:21:26,270 وقد كتبت فقط printf ("شيئا") على الشاشة. 477 00:21:26,270 --> 00:21:27,470 أنا على التوالي هذا البرنامج. 478 00:21:27,470 --> 00:21:30,900 وحالما يحصل على استدعاء printf، فإنه يأخذ وسيطة واحدة - أو معلمة واحدة، 479 00:21:30,900 --> 00:21:31,660 في بعض الأحيان - 480 00:21:31,660 --> 00:21:32,780 بين علامات اقتباس مزدوجة. 481 00:21:32,780 --> 00:21:33,960 هنا هو أن الحجة. 482 00:21:33,960 --> 00:21:35,740 أنا فمررها الى كين. 483 00:21:35,740 --> 00:21:39,390 الآن هو مربع أسود كتب بعض عدد من السنوات قبل أن يبدو 484 00:21:39,390 --> 00:21:41,070 وحده يعلم كيفية طباعة الأشياء على الشاشة. 485 00:21:41,070 --> 00:21:42,320 >> لذلك، تنفيذ. 486 00:21:48,842 --> 00:21:49,900 وهذا ليس سيئا. 487 00:21:49,900 --> 00:21:50,890 لذلك، جيدة جدا. 488 00:21:50,890 --> 00:21:52,900 حتى الآن يتم تنفيذ كين. 489 00:21:52,900 --> 00:21:55,810 لا يحتاج إلى تسليم لي أي شيء مرة أخرى؟ 490 00:21:55,810 --> 00:21:57,240 حتى لا أن شاهدنا حتى الآن. 491 00:21:57,240 --> 00:21:59,230 مرة أخرى، لا يعود في الواقع printf رقم. 492 00:21:59,230 --> 00:22:01,640 ولكن ونحن في طريقنا لتجاهل ذلك في الوقت الحالي لاننا لم تستخدم. 493 00:22:01,640 --> 00:22:03,400 هذا كل شيء حتى لكين. 494 00:22:03,400 --> 00:22:06,650 وحتى الآن الرئيسي يعود لتنفيذ - 495 00:22:06,650 --> 00:22:09,630 الرئيسية تتولى السيطرة على البرنامج مرة أخرى لأن ذلك السطر من التعليمات البرمجية، 496 00:22:09,630 --> 00:22:11,010 printf، ويتم تنفيذ. 497 00:22:11,010 --> 00:22:13,890 ونحن نسير في طريقنا مهما كان تنفيذ خطوط أخرى هناك. 498 00:22:13,890 --> 00:22:14,130 >> حسنا. 499 00:22:14,130 --> 00:22:17,080 حتى الآن دعونا نحاول مثال مختلفة قليلا. 500 00:22:17,080 --> 00:22:22,430 وهذه المرة هنا، دعونا أولا مسح الشاشة هنا. 501 00:22:22,430 --> 00:22:24,670 وهذه المرة، سوف نفعل وظيفة التكعيب. 502 00:22:24,670 --> 00:22:27,350 ولكن هذه المرة، أنا أتوقع قيمة الانتاج. 503 00:22:27,350 --> 00:22:28,630 لذلك دعونا نمضي قدما ونفعل ذلك. 504 00:22:28,630 --> 00:22:35,680 حتى الآن لدي سطر من التعليمات البرمجية التي تقول س = مكعب (X). 505 00:22:35,680 --> 00:22:36,930 حتى let's الواقع - 506 00:22:41,450 --> 00:22:43,940 السطر من التعليمات البرمجية، استدعاء، يبدو مثل هذا. 507 00:22:43,940 --> 00:22:45,960 س = مكعب (X). 508 00:22:45,960 --> 00:22:48,100 فكيف يتم هذا الذهاب إلى العمل؟ 509 00:22:48,100 --> 00:22:50,820 لذلك دعونا نمضي قدما وتعطيك شاشة بيضاء مرة أخرى. 510 00:22:50,820 --> 00:22:55,000 وأنا أريد أن أكتب الآن أسفل قيمة x، والتي في هذه اللحظة من 511 00:22:55,000 --> 00:23:01,080 الوقت يحدث أن تكون، دعنا نقول، 2، ليبقيه بسيط. 512 00:23:01,080 --> 00:23:04,890 لذلك كنت قد كتبت على قطعة من الورق قيمة 2، 513 00:23:04,890 --> 00:23:06,100 وهو X بلدي القيمة. 514 00:23:06,100 --> 00:23:08,250 I بتسليمها الى كين. 515 00:23:08,250 --> 00:23:09,200 KEN: وأنا مجرد كتابة الجواب؟ 516 00:23:09,200 --> 00:23:12,660 DAVID J. مالان: نعم، دعونا مجرد كتابة الجواب. 517 00:23:12,660 --> 00:23:13,030 حسنا. 518 00:23:13,030 --> 00:23:16,280 والآن عليه أن يعود لي شيئا. 519 00:23:16,280 --> 00:23:17,560 لذلك - 520 00:23:17,560 --> 00:23:18,170 الكمال. 521 00:23:18,170 --> 00:23:18,840 لطيفة يواصل.. 522 00:23:18,840 --> 00:23:21,970 >> الآن حتى انه يسلم لي مرة أخرى بقيمة 8، في هذه الحالة. 523 00:23:21,970 --> 00:23:23,220 وماذا أفعل معها؟ 524 00:23:23,220 --> 00:23:26,130 حسنا، في الواقع، دعونا نرى. 525 00:23:26,130 --> 00:23:26,640 الحصول على هذا الحق. 526 00:23:26,640 --> 00:23:27,880 ما أنا ذاهب لتفعله حيال ذلك؟ 527 00:23:27,880 --> 00:23:31,900 الآن انا ذاهب الى اتخاذ هذه القيمة وتخزينها فعلا في تلك 528 00:23:31,900 --> 00:23:33,400 نفس بت في الذاكرة. 529 00:23:33,400 --> 00:23:35,030 ولكن إشعار، أنا نوع من الكفاح هنا. 530 00:23:35,030 --> 00:23:38,280 أنا بشيء من الارتباك لان ما يمكنني الكتابة فعلا قيمة x؟ 531 00:23:38,280 --> 00:23:41,840 لأن ما قمت به هو مجرد جهة جسديا كين قطعة من الورق 532 00:23:41,840 --> 00:23:44,400 كان أن قيمة 2، الذي كان س. 533 00:23:44,400 --> 00:23:46,300 وبالفعل، وهذا هو بالضبط ما يحدث. 534 00:23:46,300 --> 00:23:50,100 لذلك تبين أنه عند استدعاء دالة، والتي تمرر في حجة 535 00:23:50,100 --> 00:23:54,130 مثل "مرحبا العالم" أو يمكنك تمرير وسيطة في مثل 2، عموما، وكنت 536 00:23:54,130 --> 00:23:56,720 تمر على نسخة من هذه الحجة. 537 00:23:56,720 --> 00:24:01,020 وذلك تماما كما كتبت أسفل رقم 2 هنا وسلمها إلى كين، وهذا يجب أن 538 00:24:01,020 --> 00:24:04,760 يعني أن لا يزال لدي نسخة من 2 قيمة في مكان ما. 539 00:24:04,760 --> 00:24:08,140 لأن في الواقع، الآن بعد أن قمت حصلت مرة أخرى على قيمة 8، ولست بحاجة للذهاب مرة أخرى في 540 00:24:08,140 --> 00:24:12,010 RAM وفعلا كتابة 8 حيث كانت لدي عدد 2. 541 00:24:12,010 --> 00:24:15,720 >> حتى بصريا تذكر هذه الفكرة من تمرير حرفيا في 542 00:24:15,720 --> 00:24:16,730 نسخة من القيمة. 543 00:24:16,730 --> 00:24:19,570 كين لا شيء له، والأيدي لي مرة أخرى شيئا - في هذه الحالة، 544 00:24:19,570 --> 00:24:20,820 قيمة مثل 8. 545 00:24:20,820 --> 00:24:22,660 ومن ثم لا بد لي من القيام بشيء ما مع تلك القيمة إذا كنت 546 00:24:22,660 --> 00:24:24,880 تريد أن تبقي حولها. 547 00:24:24,880 --> 00:24:29,470 لذلك سوف يكون كل هذا مألوفا قبل فترة طويلة. 548 00:24:29,470 --> 00:24:33,082 شكرا جزيلا على هذا العرض هنا، كين. 549 00:24:33,082 --> 00:24:34,820 حسنا. 550 00:24:34,820 --> 00:24:36,720 جيد جدا القيام به. 551 00:24:36,720 --> 00:24:40,610 لذلك دعونا نرى كيف أن يتصل في نهاية المطاف إلى بعض من وظيفة 552 00:24:40,610 --> 00:24:42,270 الدعوة التي كنا نقوم به هنا. 553 00:24:42,270 --> 00:24:47,610 لذلك اسمحوا لي المضي قدما وتعيدنا إلى مثال التكعيب هنا. 554 00:24:47,610 --> 00:24:53,080 وتلاحظ أن إذا كنا نريد أن تبدأ فعلا مع هذا المزيد، ونحن في طريقنا 555 00:24:53,080 --> 00:24:57,050 لدينا لأن تضع في اعتبارها حقيقة أن x عدد الذي يتم تمريره 556 00:24:57,050 --> 00:25:01,390 هنا يختلف عما يجري في الواقع تم تمريرها إلى الدالة. 557 00:25:01,390 --> 00:25:03,940 ذلك مرة أخرى، وهذا الذي أقره نسخة سيصبح جدا 558 00:25:03,940 --> 00:25:05,620 ثيق في لحظة فقط. 559 00:25:05,620 --> 00:25:09,320 >> لذلك دعونا نلقي نظرة على ما لا يعمل تماما بعد الحق. 560 00:25:09,320 --> 00:25:11,790 انا ذاهب الى المضي قدما وفتح سبيل المثال عربات التي تجرها الدواب الثالث، الذي 561 00:25:11,790 --> 00:25:13,560 ومعيبة من الطبيعة. 562 00:25:13,560 --> 00:25:18,070 وهذا يدعى buggy3، وتنفذ وظيفة مبادلة. 563 00:25:18,070 --> 00:25:23,500 حتى هنا لدينا المهمة الرئيسية التي x و y لتهيئة تعسفا 564 00:25:23,500 --> 00:25:24,720 1 و 2 على التوالي. 565 00:25:24,720 --> 00:25:27,590 يمكن أن نستخدم GetInt، ولكن كل ما نحتاجه هو عملية بسيطة. 566 00:25:27,590 --> 00:25:29,680 لذلك فمن الثابت ترميز ك 1 و 2. 567 00:25:29,680 --> 00:25:35,330 في خطوط 21 و 22، ونحن على ما يبدو من طباعة x و y، واحد في كل سطر. 568 00:25:35,330 --> 00:25:39,620 ثم، في السطر 23، أزعم أنني مبادلة هذه القيم، نقطة، نقطة، نقطة. 569 00:25:39,620 --> 00:25:43,030 أعطي الكلمة على ما يبدو وظيفة في خط 24 ودعا المبادلة 570 00:25:43,030 --> 00:25:44,000 أن يأخذ اثنين الحجج. 571 00:25:44,000 --> 00:25:46,430 انها تماما شرعي لوظائف اتخاذ حجتين. 572 00:25:46,430 --> 00:25:48,220 لقد شهدنا بالفعل القيام printf. 573 00:25:48,220 --> 00:25:50,370 حتى يأخذ المبادلة على ما يبدو x و y. 574 00:25:50,370 --> 00:25:53,010 وكما يوحي اسمها، وآمل أنه سيكون ل 575 00:25:53,010 --> 00:25:54,320 مبادلة هاتين القيمتين. 576 00:25:54,320 --> 00:25:57,560 تبادلت ذلك ثم أزعم على خط 25،. 577 00:25:57,560 --> 00:26:01,570 وأنا طبع x و y على افتراض أن 578 00:26:01,570 --> 00:26:02,830 لقد تم بالفعل أنها تبادلت. 579 00:26:02,830 --> 00:26:04,370 ولكن إذا كنت بالفعل تشغيل هذا البرنامج - 580 00:26:04,370 --> 00:26:06,060 اسمحوا لي أن تفتح نافذة الصالة. 581 00:26:06,060 --> 00:26:07,750 اسمحوا لي أن buggy3. 582 00:26:07,750 --> 00:26:09,970 وكما يوحي اسمها، وهذا لن ينتهي به. 583 00:26:09,970 --> 00:26:14,690 لأنني عندما أدخل ضرب، لاحظ أن x هو 1. 584 00:26:14,690 --> 00:26:15,720 Y هو 2. 585 00:26:15,720 --> 00:26:19,160 ولكن في نهاية البرنامج، انهم ما زالوا، في الواقع، هو نفسه. 586 00:26:19,160 --> 00:26:22,760 >> مستندا في ذلك على مظاهرة الآن فقط مع كين، ما يحدث في الواقع على؟ 587 00:26:22,760 --> 00:26:24,660 حسنا، دعونا الغوص في هذه الوظيفة المبادلة. 588 00:26:24,660 --> 00:26:25,800 انها فائقة قصيرة. 589 00:26:25,800 --> 00:26:28,020 انها فقط بضعة أسطر من التعليمات البرمجية طويلة. 590 00:26:28,020 --> 00:26:32,810 ولكن ما لوكالة المشكلة الأساسية استنادا إلى قصة بسيطة 591 00:26:32,810 --> 00:26:34,270 هنا مع كين؟ 592 00:26:34,270 --> 00:26:36,115 لماذا كسر المبادلة؟ 593 00:26:36,115 --> 00:26:37,365 [غير مسموع] 594 00:26:39,840 --> 00:26:40,460 بالضبط. 595 00:26:40,460 --> 00:26:43,610 لذلك نحن لتخزين نسخة، وليس المتغير نفسه. 596 00:26:43,610 --> 00:26:46,810 وبعبارة أخرى، يبدو مبادلة يأخذ حجتين، وكثافة العمليات. 597 00:26:46,810 --> 00:26:49,370 وهذا يدعى تعسفا من ألف وباء. 598 00:26:49,370 --> 00:26:54,430 وهنا يصل، لقد مررت في x و y، والتي هي 1 و 2 على التوالي. 599 00:26:54,430 --> 00:26:56,580 ولكن أنا لا يمر حرفيا في العاشر. 600 00:26:56,580 --> 00:26:58,410 أنا لا يمر حرفيا في ذ. 601 00:26:58,410 --> 00:27:01,230 أنا تمرير نسخة من X ونسخة من ذ. 602 00:27:01,230 --> 00:27:05,180 انها تقريبا مثل كما لو كنت نسخ ولصق في مبادلة القيم التي 603 00:27:05,180 --> 00:27:07,440 تريد أن التلاعب في الواقع. 604 00:27:07,440 --> 00:27:11,970 إذا كان الأمر كذلك كان هذا هو الحال، عندما كنت، برنامج، بدء تنفيذ 605 00:27:11,970 --> 00:27:14,140 خط 35 و 36 ثم - 606 00:27:14,140 --> 00:27:17,740 عندما أحصل على خط 37، في هذه المرحلة من القصة، ما هو قيمة؟ 607 00:27:20,740 --> 00:27:24,850 في هذه المرحلة من القصة، خط 37، ما هو قيمة في هذه المرحلة؟ 608 00:27:24,850 --> 00:27:25,980 لذلك ينبغي أن يكون مجرد 1. 609 00:27:25,980 --> 00:27:26,170 أليس كذلك؟ 610 00:27:26,170 --> 00:27:29,100 لأن صدر في العاشر كوسيطة الأول. 611 00:27:29,100 --> 00:27:33,150 وهذه الوظيفة بشكل تعسفي فقط تدعو الحجة الأولى، أ. 612 00:27:33,150 --> 00:27:35,130 وبالمثل هو Y، الوسيطة الثانية. 613 00:27:35,130 --> 00:27:37,930 وانها مجرد دعوة تعسفا ب الحجة الثانية. 614 00:27:37,930 --> 00:27:40,510 >> الآن هو في الواقع هذا الانقسام إلى حد ما أوضح ببساطة. 615 00:27:40,510 --> 00:27:40,880 التفكير في الامر. 616 00:27:40,880 --> 00:27:42,980 لا أحد منا قد التقى الشخص الذي كتب printf. 617 00:27:42,980 --> 00:27:49,880 بالتأكيد كان الأمر كذلك، كان لديه أي فكرة عما لدينا المتغيرات 30 عاما في وقت لاحق سوف 618 00:27:49,880 --> 00:27:50,710 ليتم استدعاؤها. 619 00:27:50,710 --> 00:27:55,110 لذلك يجب أن يكون هناك تمييز بين ما تسمونه المتغيرات في 620 00:27:55,110 --> 00:27:59,960 الوظائف التي تقوم بكتابتها وما تسمونه المتغيرات في وظائف كنت 621 00:27:59,960 --> 00:28:01,770 الاتصال أو استخدام. 622 00:28:01,770 --> 00:28:05,120 لذلك وبعبارة أخرى، لقد كتبت المتغيرات بصفتي x و y. 623 00:28:05,120 --> 00:28:08,060 ولكن إذا كان شخص آخر كان قد كتب وظيفة المبادلة، أو أنها بالتأكيد 624 00:28:08,060 --> 00:28:10,480 لا أعرف ما هي المتغيرات بلدي سوف يتم استدعاؤها. 625 00:28:10,480 --> 00:28:13,850 ندرك ذلك أن هذا هو السبب لديك هذه الازدواجية في الأسماء. 626 00:28:13,850 --> 00:28:16,800 من الناحية الفنية، يمكن أن أفعل هذا من قبيل المصادفة. 627 00:28:16,800 --> 00:28:19,750 لكنهم كانوا تمريرها في شكل نسخ. 628 00:28:19,750 --> 00:28:22,940 سيكون من مجرد محض صدفة جماليا إذا كان هذا الشخص الذي كتب 629 00:28:22,940 --> 00:28:25,590 وقد تبادل استخدام نفس الأسماء. 630 00:28:25,590 --> 00:28:25,930 >> حسنا. 631 00:28:25,930 --> 00:28:29,010 حتى في هذه المرحلة من القصة، خط 37، وهي 1. 632 00:28:29,010 --> 00:28:30,410 ب هو 2. 633 00:28:30,410 --> 00:28:32,040 وأنا الآن المضي قدما لمقايضتهم. 634 00:28:32,040 --> 00:28:34,730 كذلك قبل كل شيء، اسمحوا لي أن تفعل أكثر من ذلك بكثير في الواقع هذا ببساطة. 635 00:28:34,730 --> 00:28:36,500 أنا لا أعرف ما هي تلك الخطوط الثلاثة من التعليمات البرمجية كانوا يفعلون. 636 00:28:36,500 --> 00:28:37,370 اسمحوا لي أن تفعل هذا. 637 00:28:37,370 --> 00:28:38,850 ب يحصل على. 638 00:28:38,850 --> 00:28:40,170 ويحصل ب. 639 00:28:40,170 --> 00:28:41,450 القيام به. 640 00:28:41,450 --> 00:28:43,540 لماذا هذا مكسورة، منطقيا؟ 641 00:28:46,980 --> 00:28:48,590 انها نوع من الشيء البديهي، أليس كذلك؟ 642 00:28:48,590 --> 00:28:50,640 لذلك يصبح ب. 643 00:28:50,640 --> 00:28:52,450 ويصبح ب. 644 00:28:52,450 --> 00:28:55,410 ولكن المشكلة هي أن بمجرد تنفيذ خط 37، ما هو 645 00:28:55,410 --> 00:28:58,170 قيمة أ و ب؟ 646 00:28:58,170 --> 00:28:59,070 نفسه، 1. 647 00:28:59,070 --> 00:29:03,460 لأنك مضروب، إذا جاز التعبير، لقد قمت بتغيير ب يساوي أ. 648 00:29:03,460 --> 00:29:06,000 حتى مرة واحدة يتم تنفيذ خط 37، وهذا عظيم. 649 00:29:06,000 --> 00:29:09,940 لديك الآن نسختين من داخل 1 عدد هذه الوظيفة. 650 00:29:09,940 --> 00:29:14,720 حتى ذلك الحين عندما تقول في خط 38، ويحصل ب، حسنا، كنت نوع من مشدود. 651 00:29:14,720 --> 00:29:17,370 لأنك فقط تعيين 1 إلى 1. 652 00:29:17,370 --> 00:29:20,400 كنت قد فقدت نوع من القيمة التي يهتم. 653 00:29:20,400 --> 00:29:22,910 >> حتى في النسخة الأصلية من هذا، لاحظ ما فعلته. 654 00:29:22,910 --> 00:29:26,620 كان لي بدلا من ذلك السطر الثالث من التعليمات البرمجية التي بدت مثل هذا. 655 00:29:26,620 --> 00:29:29,910 I تعريف متغير مؤقت - TMP هو الاسم الشائع جدا 656 00:29:29,910 --> 00:29:31,240 لمتغير مؤقت. 657 00:29:31,240 --> 00:29:34,280 انها الباحث لأنه يحتوي لمطابقة ما أريد أن نسخة من. 658 00:29:34,280 --> 00:29:39,720 I تخزين نسخة من داخل TMP. حتى مرة واحدة نفذت خط 37، 659 00:29:39,720 --> 00:29:41,390 قيمة غير - 660 00:29:41,390 --> 00:29:42,970 التعقل سريعة تحقق - 661 00:29:42,970 --> 00:29:43,460 1. 662 00:29:43,460 --> 00:29:45,780 قيمة ب 2. 663 00:29:45,780 --> 00:29:48,470 وقيمة TMP أيضا 1. 664 00:29:48,470 --> 00:29:51,470 حتى الآن أنا تنفيذ خط 38. 665 00:29:51,470 --> 00:29:57,180 حتى مرة واحدة ينفذ خط 38، ويأخذ على قيمة ب. 666 00:29:57,180 --> 00:29:58,510 وكان ب 2. 667 00:29:58,510 --> 00:30:00,500 لذلك هو الآن 2. 668 00:30:00,500 --> 00:30:03,110 حتى في هذه المرحلة من القصة، و2، ب 2، 669 00:30:03,110 --> 00:30:05,130 وتمة هو 1. 670 00:30:05,130 --> 00:30:09,330 ذلك منطقيا الآن، يمكننا أن قيمة صوت نزول المطر فقط TMP حيز ب. 671 00:30:09,330 --> 00:30:10,690 وننتهي. 672 00:30:10,690 --> 00:30:12,170 >> حتى لقد حللنا هذه المشكلة. 673 00:30:12,170 --> 00:30:16,040 لسوء الحظ، عندما كنت تشغيل هذا البرنامج في هذا الشكل، فإنه لا تبديل الواقع 674 00:30:16,040 --> 00:30:17,700 أي قيم. 675 00:30:17,700 --> 00:30:18,950 ولكن أن تكون واضحة، لماذا؟ 676 00:30:23,420 --> 00:30:26,310 I إصلاح مشكلة منطقية من قبل لحظة فقط. 677 00:30:26,310 --> 00:30:31,150 ولكن مرة أخرى، إذا قمت بتشغيل هذا البرنامج، x و y لم تتغير بحلول نهاية 678 00:30:31,150 --> 00:30:33,834 البرنامج التنفيذ. 679 00:30:33,834 --> 00:30:34,760 [غير مسموع] 680 00:30:34,760 --> 00:30:36,030 DAVID J. مالان: لذلك نحن لم يعودوا أي شيء. 681 00:30:36,030 --> 00:30:36,960 ذلك أن هذا صحيح. 682 00:30:36,960 --> 00:30:39,880 ولكن تبين أن هناك قليلا من مشكلة هنا لأن حتى الآن، على 683 00:30:39,880 --> 00:30:42,460 الشيء الوحيد كنا قادرين على العودة هو شيء واحد. 684 00:30:42,460 --> 00:30:46,540 وهذا هو تقييد C. يمكنك العودة فقط حقا قيمة واحدة، 685 00:30:46,540 --> 00:30:48,970 في هذه الحالة، وأنا نوع من عالقة هنا 686 00:30:48,970 --> 00:30:51,805 لأنني يمكن إرجاع قيمة جديدة من X أو يمكن أن أعود لل 687 00:30:51,805 --> 00:30:53,160 جديد قيمة y. 688 00:30:53,160 --> 00:30:54,330 ولكن أريد العودة على حد سواء. 689 00:30:54,330 --> 00:30:58,010 العودة بحيث لا يتم الحل بسيط هنا. 690 00:30:58,010 --> 00:30:59,770 ولكن المشكلة هي في الأساس لماذا؟ 691 00:30:59,770 --> 00:31:03,270 ونحن ما تبادلت فعلا؟ 692 00:31:03,270 --> 00:31:04,010 أ و ب. 693 00:31:04,010 --> 00:31:07,670 ولكن ألف وباء هي نسخ من X و Y، وهو ما يعني أننا لم يفعلوا كل هذا 694 00:31:07,670 --> 00:31:10,080 العمل - قضينا تماما مثل ثلاث دقائق يتحدث عن مبادلة 695 00:31:10,080 --> 00:31:11,680 وظيفة كل ثلاثة من هذه المتغيرات. 696 00:31:11,680 --> 00:31:15,090 وهذا أمر عظيم، صحيحة تماما في عزلة. 697 00:31:15,090 --> 00:31:20,230 لكن ونطاق ب هو فقط في هذه السطور هنا. 698 00:31:20,230 --> 00:31:24,130 لذلك تماما مثل حلقة For، إذا قمت بتعريف عددا صحيحا أنا داخل ل 699 00:31:24,130 --> 00:31:27,400 حلقة - وبالمثل، إذا كنت داخل إعلان وباء من أن وظيفة 700 00:31:27,400 --> 00:31:30,550 كنت قد كتبت، وانهم داخل صالحة فقط لهذه المهمة. 701 00:31:30,550 --> 00:31:35,020 وهو ما يعني في أقرب وقت كما هو الحال مبادلة المنفذة ونذهب من خط 24 إلى 702 00:31:35,020 --> 00:31:38,380 لم خط 25، X و Y تغير على الإطلاق. 703 00:31:38,380 --> 00:31:42,580 كنت مجرد إهدار الكثير من الوقت كله مبادلة نسخ من المتغيرات. 704 00:31:42,580 --> 00:31:46,490 >> لذلك تبين أن الحل لهذا هو في الواقع غير واضحة. 705 00:31:46,490 --> 00:31:49,210 انها ليست كافية تماما لإرجاع القيم لأننا يمكن 706 00:31:49,210 --> 00:31:50,320 العودة قيمة واحدة فقط. 707 00:31:50,320 --> 00:31:53,370 وأنا حقا تريد مبادلة كل من X و Y في نفس الوقت. 708 00:31:53,370 --> 00:31:55,020 لذلك نحن في طريقنا للعودة إلى هذا. 709 00:31:55,020 --> 00:31:58,770 لكن في الوقت الراهن، تدرك أن قضية تستمد أساسا من حقيقة 710 00:31:58,770 --> 00:32:00,660 أن أ و ب هي نسخة. 711 00:32:00,660 --> 00:32:03,450 وهما في نطاقها الخاص. 712 00:32:03,450 --> 00:32:04,980 حسنا، دعونا نحاول حل هذا بطريقة أو بأخرى. 713 00:32:04,980 --> 00:32:09,200 اسمحوا لي أن انتقل فعلا إلى هنا وفتح، دعنا نقول، البديل 4 714 00:32:09,200 --> 00:32:11,170 هذا، buggy4. 715 00:32:11,170 --> 00:32:13,230 وماذا عن هذا؟ 716 00:32:13,230 --> 00:32:16,690 هذه مشكلة مماثلة ولكن أبسط للنظر في قبل أن نتخذ طعنة في 717 00:32:16,690 --> 00:32:17,530 حلها. 718 00:32:17,530 --> 00:32:19,440 ويسمى هذا البرنامج طريقة. 719 00:32:19,440 --> 00:32:24,320 وعلى ما يبدو تهيئة عدد صحيح X إلى 1 في خط 18. 720 00:32:24,320 --> 00:32:25,950 أزعم ثم x هو 1. 721 00:32:25,950 --> 00:32:28,020 I ثم الادعاء تزايد، نقطة، نقطة، نقطة. 722 00:32:28,020 --> 00:32:29,460 I ثم استدعاء الزيادة. 723 00:32:29,460 --> 00:32:33,480 ولكن بعد ذلك في خطوط 22 و 23، وأنا ما كان يدعي أنه زيادة. 724 00:32:33,480 --> 00:32:37,780 أزعم X الآن كل ما هو (2)، يفترض. 725 00:32:37,780 --> 00:32:39,770 >> ولكن هذا البرنامج هو عربات التي تجرها الدواب. 726 00:32:39,770 --> 00:32:41,020 ما هي المشكلة؟ 727 00:32:43,450 --> 00:32:44,418 نعم؟ 728 00:32:44,418 --> 00:32:45,668 [غير مسموع] 729 00:32:49,260 --> 00:32:49,850 DAVID J. مالان: بالضبط. 730 00:32:49,850 --> 00:32:52,430 لذلك أعلنت X الواضح على خط 18. 731 00:32:52,430 --> 00:32:54,410 وهذا هو داخل الأقواس الرئيسية للمجعد. 732 00:32:54,410 --> 00:32:58,470 وبالتالي فإن الجواب البسيط هنا هو أنه، أيضا، X موجود هنا. 733 00:32:58,470 --> 00:33:01,510 لم يكن موجودا في السطر 32. 734 00:33:01,510 --> 00:33:03,710 ولذلك فإن هذا البرنامج سوف الواقع لا ترجمة حتى. 735 00:33:03,710 --> 00:33:07,910 المجمع، عندما أحاول تجميع هذا الرمز، سوف يصيح في وجهي 736 00:33:07,910 --> 00:33:13,190 عن بعض معرف غير معروفة أو شيء بهذا المعنى. 737 00:33:13,190 --> 00:33:13,870 في الواقع، دعونا نحاول. 738 00:33:13,870 --> 00:33:15,235 هذا هو جعل buggy4. 739 00:33:17,780 --> 00:33:18,190 هناك هو عليه. 740 00:33:18,190 --> 00:33:22,030 استخدام X معرف غير معروفة في السطر 32. 741 00:33:22,030 --> 00:33:25,700 وفعلا، دعونا نكون أكثر وضوحا هنا اليوم ان ذلك مفيد في هذا 742 00:33:25,700 --> 00:33:27,140 ساعات العمل والمنزل. 743 00:33:27,140 --> 00:33:29,000 لاحظت أنه مكتوب بشكل غامض قليلا. 744 00:33:29,000 --> 00:33:31,560 ولكن حقيقة أن صاح ضجيج وعلينا قائلا 745 00:33:31,560 --> 00:33:36,970 buggy4.c: 32:5، هو في الواقع مفيدة. 746 00:33:36,970 --> 00:33:41,970 فهذا يعني أن الخطأ هو في السطر 32 في موضع الحرف الخمسة. 747 00:33:41,970 --> 00:33:44,670 حتى واحد، اثنان، ثلاثة، أربعة، خمسة. 748 00:33:44,670 --> 00:33:46,640 وهذا، في الواقع، أين تكمن المشكلة. 749 00:33:46,640 --> 00:33:49,710 وأيضا أن نأخذ في الاعتبار في ساعات العمل والمنزل، وأنا محظوظ هنا. 750 00:33:49,710 --> 00:33:50,740 لدي خطأ واحد. 751 00:33:50,740 --> 00:33:52,660 انها سوف يكون من السهل نسبيا لإصلاح. 752 00:33:52,660 --> 00:33:56,220 ولكن إذا كنت تحصل على كامل الشاشة بأكملها من رسائل الخطأ الساحقة، مرة أخرى، 753 00:33:56,220 --> 00:33:59,240 ندرك أن واحد قد يكون مجرد bottommost أعراض 754 00:33:59,240 --> 00:34:00,320 تلك الأعلى. 755 00:34:00,320 --> 00:34:03,560 لذلك دائما مطاردة أسفل البق الخاص بك من أعلى إلى أسفل. 756 00:34:03,560 --> 00:34:06,720 لأنه قد يكون هناك مجرد أثر ديزي سلسلة أن يقترح لك 757 00:34:06,720 --> 00:34:09,030 لديهم مشاكل أكثر مما تفعله الطريقة في الواقع. 758 00:34:09,030 --> 00:34:14,989 >> لذلك كيف يمكن لنا إصلاح هذه إذا هدفي هو زيادة X؟ 759 00:34:14,989 --> 00:34:15,370 ما هذا؟ 760 00:34:15,370 --> 00:34:15,620 حسنا. 761 00:34:15,620 --> 00:34:16,679 لذلك يمكننا أن نجعل X العالمي. 762 00:34:16,679 --> 00:34:18,860 دعونا نلقي الاختصار الذي حذر في وقت سابق عن I. 763 00:34:18,860 --> 00:34:20,550 لكن هيك، نحن بحاجة فقط إلى حل سريع. 764 00:34:20,550 --> 00:34:23,949 لذلك دعونا نقول فقط X الباحث هنا حتى. 765 00:34:23,949 --> 00:34:25,600 الذي يجعل X العالمي. 766 00:34:25,600 --> 00:34:28,460 حتى الآن الرئيسي من الوصول اليها. 767 00:34:28,460 --> 00:34:31,780 وطريقة الوصول إليها. 768 00:34:31,780 --> 00:34:33,860 ولذا اسمحوا لي أن تمضي قدما وترجمة هذا الآن. 769 00:34:33,860 --> 00:34:36,330 جعل buggy4، أدخل. 770 00:34:36,330 --> 00:34:37,440 يبدو أن تجمع الآن. 771 00:34:37,440 --> 00:34:40,949 دعونا تشغيل buggy4، ويبدو للعمل فعلا. 772 00:34:40,949 --> 00:34:42,780 الآن هذا هو واحد من هذه الأمور - 773 00:34:42,780 --> 00:34:45,870 افعل كما أقول لك وليس كما أفعل أنا، وأنا قد فعلت فقط هنا. 774 00:34:45,870 --> 00:34:49,239 لأنه في عام، برامجنا سوف تحصل على الكثير أكثر إثارة للاهتمام و 775 00:34:49,239 --> 00:34:50,440 أطول بكثير من هذا. 776 00:34:50,440 --> 00:34:53,199 وإذا كان الحل لمشاكل الحياة ليست سوى آه، تطرح جميع 777 00:34:53,199 --> 00:34:57,550 المتغيرات في الجزء العلوي من الملف الخاص بك، بسرعة كبيرة تفعل برامج الحصول على 778 00:34:57,550 --> 00:34:59,700 من الصعب مروع لإدارة. 779 00:34:59,700 --> 00:35:02,050 ستكون أكثر صعوبة في التفكير حتى أسماء المتغيرات الجديدة. 780 00:35:02,050 --> 00:35:05,240 ستكون أكثر صعوبة لفهم ما يقوم به متغير ما. 781 00:35:05,240 --> 00:35:08,250 >> وهكذا بشكل عام، وهذا ليس حلا جيدا. 782 00:35:08,250 --> 00:35:09,780 لذلك دعونا نفعل ذلك بشكل أفضل. 783 00:35:09,780 --> 00:35:11,920 نحن لا نريد استخدام متغير عمومي هنا. 784 00:35:11,920 --> 00:35:14,050 أريد أن زيادة X. 785 00:35:14,050 --> 00:35:16,050 يمكن لذلك أنا من الواضح - 786 00:35:16,050 --> 00:35:18,450 في نهاية المطاف، انها نوع من قصة سخيفة لأننا نقوم فقط هذا. 787 00:35:18,450 --> 00:35:22,050 ولكن إذا لم أكن أعرف عن ذلك المشغل، أو لم يسمح لي 788 00:35:22,050 --> 00:35:27,700 تغيير في حد ذاته الرئيسية، كيف يمكن تنفيذ كين أخرى أنا أكثر من هنا، وهذا 789 00:35:27,700 --> 00:35:31,450 الوقت عدم مكعب ولكن زيادة ل؟ 790 00:35:31,450 --> 00:35:32,700 كيف يمكنني تغيير هذا الشيء هنا؟ 791 00:35:32,700 --> 00:35:33,025 نعم. 792 00:35:33,025 --> 00:35:34,275 [غير مسموع] 793 00:35:37,430 --> 00:35:38,000 DAVID J. مالان: حسنا، جيد. 794 00:35:38,000 --> 00:35:40,490 فلماذا لا أمرر في العاشر؟ 795 00:35:40,490 --> 00:35:44,390 ثم بدلا من إعادتها، لماذا لا أفعل فقط عودة X + 1؟ 796 00:35:44,390 --> 00:35:46,370 الآن، الأمور أكثر زوجين تضطر إلى تغيير هنا. 797 00:35:46,370 --> 00:35:47,530 أنا على الطريق الصحيح. 798 00:35:47,530 --> 00:35:48,910 ماذا أحتاج لقرص؟ 799 00:35:48,910 --> 00:35:49,470 شخص آخر. 800 00:35:49,470 --> 00:35:49,882 نعم؟ 801 00:35:49,882 --> 00:35:51,530 [غير مسموع] 802 00:35:51,530 --> 00:35:53,520 DAVID J. مالان: أنا بحاجة إلى تغيير نوع مقدار عودة 803 00:35:53,520 --> 00:35:54,590 لأنه ليست باطلة. 804 00:35:54,590 --> 00:35:56,650 الفراغ يعني ان عاد شيء. 805 00:35:56,650 --> 00:35:57,600 ولكن من الواضح، والآن هو. 806 00:35:57,600 --> 00:36:01,280 ولذلك فإن هذا يحتاج إلى تغيير إلى int أن تكون متسقة مع ما 807 00:36:01,280 --> 00:36:02,580 أنا العودة في الواقع. 808 00:36:02,580 --> 00:36:04,580 >> الآن شيء آخر لا يزال عربات التي تجرها الدواب هنا. 809 00:36:04,580 --> 00:36:04,982 نعم؟ 810 00:36:04,982 --> 00:36:06,590 [غير مسموع] 811 00:36:06,590 --> 00:36:07,630 DAVID J. مالان: لذا أنا بحاجة لزيادة X؟ 812 00:36:07,630 --> 00:36:10,336 [غير مسموع] 813 00:36:10,336 --> 00:36:11,880 DAVID J. مالان: آه، لذلك أنا بحاجة لتمرير X. 814 00:36:11,880 --> 00:36:13,300 لذلك أنا بحاجة للقيام بذلك هنا. 815 00:36:17,590 --> 00:36:19,690 وبالتالي فإن النموذج الأولي، لا بد لي من تغيير هذا الأمر هنا. 816 00:36:19,690 --> 00:36:21,290 ولذلك فإن هذا يجب أن تصبح كثافة العمليات. 817 00:36:21,290 --> 00:36:22,820 هذا قد تصبح - 818 00:36:22,820 --> 00:36:23,670 هم. 819 00:36:23,670 --> 00:36:24,710 أنا فعلا الشوائب إلى هنا. 820 00:36:24,710 --> 00:36:25,780 دعونا إصلاح هذه أول واحد. 821 00:36:25,780 --> 00:36:27,990 ما ينبغي أن يكون هذا الواقع؟ 822 00:36:27,990 --> 00:36:29,330 حتى انها حصلت على أن يكون الباحث شيئا. 823 00:36:29,330 --> 00:36:30,340 يمكن أن يكون س. 824 00:36:30,340 --> 00:36:33,120 ولكن بصراحة، إذا كنت بدء الدعوة للجميع X المتغيرات الخاصة بك، فإنه سيكون للحصول على 825 00:36:33,120 --> 00:36:35,250 أقل وأقل واضحة ما هو الذي. 826 00:36:35,250 --> 00:36:38,210 لذلك دعونا فقط اختيار تعسفي اصطلاح تسمية مختلفة لبلدي 827 00:36:38,210 --> 00:36:40,220 وظائف مساعد، وظائف أنا أكتب. 828 00:36:40,220 --> 00:36:41,100 سنقوم نسميها. 829 00:36:41,100 --> 00:36:44,500 أو يمكن أن نسميها - دعنا نسميها even_number أن تكون أكثر وضوحا. 830 00:36:44,500 --> 00:36:47,610 حتى ذلك الحين لا بد لي من العودة مهما كان الرقم بالإضافة إلى 1. 831 00:36:47,610 --> 00:36:49,720 والآن لا بد لي من تغيير شيء آخر هنا واحد 832 00:36:49,720 --> 00:36:50,700 الشيء الآخر هنا. 833 00:36:50,700 --> 00:36:54,150 ما لا بد لي من تغيير على خط ال 21 الأولى؟ 834 00:36:54,150 --> 00:36:55,390 ولا بد لي من إسناد ذلك إلى X. 835 00:36:55,390 --> 00:36:57,480 لذلك لا أستطيع مجرد دعوة X الزيادة. 836 00:36:57,480 --> 00:37:01,000 ولست بحاجة لتذكر الإجابة عن طريق تغيير قيمة x على 837 00:37:01,000 --> 00:37:02,020 الجانب الأيسر. 838 00:37:02,020 --> 00:37:04,930 وعلى الرغم من أن x هو الآن على اليسار واليمين، فلا بأس لأن تماما 839 00:37:04,930 --> 00:37:08,370 يعدم الجانب الأيمن أولا ثم يحصل ساقط في اليسار 840 00:37:08,370 --> 00:37:10,240 الشيء جهة، X في هذه الحالة. 841 00:37:10,240 --> 00:37:11,900 ثم أخيرا، وهذا هو حل سهل الآن. 842 00:37:11,900 --> 00:37:15,080 يجب أن تتطابق هذه فقط ما هو في الأسفل. 843 00:37:15,080 --> 00:37:17,120 الباحث العدد. 844 00:37:17,120 --> 00:37:17,320 >> حسنا. 845 00:37:17,320 --> 00:37:20,290 حتى في مجمله مجموعة من التغييرات لوظيفة الغباء حقا. 846 00:37:20,290 --> 00:37:24,250 لكن ممثل الأشياء التي سنقوم تريد على نحو متزايد للقيام به. 847 00:37:24,250 --> 00:37:25,490 لذلك buggy4. 848 00:37:25,490 --> 00:37:26,485 لقد ثمل أنا في مكان ما. 849 00:37:26,485 --> 00:37:27,520 يا إلهي. 850 00:37:27,520 --> 00:37:29,660 خمسة أخطاء في، مثل، برنامج خط الستة. 851 00:37:29,660 --> 00:37:36,500 فما هو الخطأ في السطر 18، حرف 5؟ 852 00:37:36,500 --> 00:37:36,970 حسنا. 853 00:37:36,970 --> 00:37:39,330 لذلك يجب أن يعلن هذا الباحث. 854 00:37:39,330 --> 00:37:39,630 حسنا. 855 00:37:39,630 --> 00:37:41,790 لذلك دعونا نرى، في مجمله مجموعة من الأخطاء الأخرى. 856 00:37:41,790 --> 00:37:42,230 يا إلهي. 857 00:37:42,230 --> 00:37:43,880 19، 18، 21. 858 00:37:43,880 --> 00:37:46,020 ولكن مرة أخرى، دعونا مسح الشاشة فقط - 859 00:37:46,020 --> 00:37:48,660 L مراقبة هنا - وضجيج إعادة التشغيل. 860 00:37:48,660 --> 00:37:51,340 حتى خمس مشاكل هو في الواقع أن واحدة فقط. 861 00:37:51,340 --> 00:37:53,500 حتى الآن دعونا تشغيل buggy4، أدخل. 862 00:37:53,500 --> 00:37:54,150 يا للعجب. 863 00:37:54,150 --> 00:37:57,434 وقد تم زيادة X بشكل صحيح. 864 00:37:57,434 --> 00:37:58,420 >> حسنا. 865 00:37:58,420 --> 00:38:01,700 أي أسئلة حول كيفية زيادة الأرقام؟ 866 00:38:01,700 --> 00:38:02,896 نعم؟ 867 00:38:02,896 --> 00:38:06,864 SPEAKER 2: لماذا هو أنه يمكنك تغيير فقط X لعدد في متغير 868 00:38:06,864 --> 00:38:08,860 اسم وانها سوف تعرف ماذا يعني لك؟ 869 00:38:08,860 --> 00:38:09,600 DAVID J. مالان: سؤال جيد. 870 00:38:09,600 --> 00:38:13,130 كيف يتم ذلك فقط يمكنني تغيير x إلى عدد والبرنامج سوف تعرف 871 00:38:13,130 --> 00:38:13,990 على الفور؟ 872 00:38:13,990 --> 00:38:16,120 ذلك مرة أخرى، والتفكير في الأمر على النحو هذا التجريد. 873 00:38:16,120 --> 00:38:20,110 حتى لو كنت أم مين و كين هو تدريجي، وبصراحة، لا يهمني 874 00:38:20,110 --> 00:38:21,540 ما يدعو باد كين له. 875 00:38:21,540 --> 00:38:25,350 لا يهمني ما يسميه أي شيء له علاقة مع تنفيذ له 876 00:38:25,350 --> 00:38:26,550 من هذه الوظيفة. 877 00:38:26,550 --> 00:38:32,130 لذلك هذا هو تفصيل تطبيق أنني، الرئيسية، لا 878 00:38:32,130 --> 00:38:33,010 يجب أن يهمك. 879 00:38:33,010 --> 00:38:37,440 وذلك ببساطة تغيير في الداخل باستمرار وظيفة، عدد هنا 880 00:38:37,440 --> 00:38:41,340 وعدد هنا، هو كل ما يأخذ وقتا طويلا وأنا إعادة ترجمة. 881 00:38:41,340 --> 00:38:43,820 انها نوع من مثل إذا كنت تفكر في - كثير منا، تلك التي كنت مع السائق 882 00:38:43,820 --> 00:38:46,590 لقد التراخيص الذين مدفوعة، أو إذا كنت قد دفعت حتى في سيارة - 883 00:38:46,590 --> 00:38:50,710 معظمنا ليس لديهم فكرة عن كيفية سيارة تعمل تحت غطاء محرك السيارة. 884 00:38:50,710 --> 00:38:54,710 وحرفيا، إذا كنت فتح غطاء محرك السيارة، ومعظمنا - وأنا منهم - 885 00:38:54,710 --> 00:38:56,580 لن تعرف حقيقة ما نحن نبحث في. 886 00:38:56,580 --> 00:38:58,850 نوع من مثل قد تشعر مع مثل هذه الاشياء في الوقت الحالي. 887 00:38:58,850 --> 00:39:01,380 ولكن ليس لدينا حقا كيف لرعاية السيارة يعمل. 888 00:39:01,380 --> 00:39:05,000 ليس لدينا لرعاية كل ما من قضبان والمكابس والكابلات داخل 889 00:39:05,000 --> 00:39:07,700 السيارة تقوم به فعلا. 890 00:39:07,700 --> 00:39:11,360 >> شيء من هذا القبيل حتى ما تسمونه مكبس لا يهم 891 00:39:11,360 --> 00:39:11,920 هنا في هذه الحالة. 892 00:39:11,920 --> 00:39:12,490 نفس الفكرة. 893 00:39:12,490 --> 00:39:12,670 نعم؟ 894 00:39:12,670 --> 00:39:13,920 [غير مسموع] 895 00:39:25,250 --> 00:39:29,530 DAVID J. مالان: إذا كان هناك أكثر من استخدامات لحظة XA متغير قبل 896 00:39:29,530 --> 00:39:32,220 لك، مبرمج، سوف تضطر إلى تغيير في كل مكان. 897 00:39:32,220 --> 00:39:35,230 أو هل يمكن أن تفعل حرفيا ملف، قائمة، ثم بحث / استبدال، 898 00:39:35,230 --> 00:39:36,270 شيء من هذا القبيل. 899 00:39:36,270 --> 00:39:40,110 ولكن كنت ستكون لدينا لجعل هذه التغييرات نفسك. 900 00:39:40,110 --> 00:39:41,200 عليك أن تكون متسقة. 901 00:39:41,200 --> 00:39:42,450 [غير مسموع] 902 00:39:47,200 --> 00:39:48,960 DAVID J. مالان: ترتيب معين مثل هنا؟ 903 00:39:48,960 --> 00:39:52,660 إذا كان هذا الباحث رقم آخر؟ 904 00:39:52,660 --> 00:39:52,940 نعم. 905 00:39:52,940 --> 00:39:56,430 ذلك أمر يهم عند استدعاء الدالة. 906 00:39:56,430 --> 00:40:00,350 وإذا كان الأمر كذلك كنت تدعو بشيء هنا مقدار فاصلة شيء، 907 00:40:00,350 --> 00:40:01,400 هناك رسم الخرائط مباشرة. 908 00:40:01,400 --> 00:40:04,490 يتم إجراء المتغير الأول، أيا كان اسمها، نسخة من أول 909 00:40:04,490 --> 00:40:05,480 الحجة هنا. 910 00:40:05,480 --> 00:40:07,280 عذرا، هذا لا ينبغي أن يكون قوس. 911 00:40:07,280 --> 00:40:09,300 خطوط الحجة الثانية مع ثانية واحدة. 912 00:40:09,300 --> 00:40:11,220 >> ذلك النظام، نعم، الأمور. 913 00:40:11,220 --> 00:40:11,490 حسنا. 914 00:40:11,490 --> 00:40:13,360 آسف لأني أخذت شوطا طويلا للوصول إلى هناك. 915 00:40:13,360 --> 00:40:14,610 أسئلة أخرى؟ 916 00:40:16,460 --> 00:40:16,850 حسنا. 917 00:40:16,850 --> 00:40:20,300 لذلك دعونا نرى ما اذا كنا لا يمكن رسم صورة لما يجري في الواقع على 918 00:40:20,300 --> 00:40:22,160 هنا تحت غطاء محرك السيارة، إذا جاز التعبير. 919 00:40:22,160 --> 00:40:26,310 لذلك هذا هو المستطيل الذي قد يمثل ذاكرة الكمبيوتر الخاص بك. 920 00:40:26,310 --> 00:40:31,240 وحتى اذا كان لديك أي فكرة عن كيفية الذاكرة يعمل أو كيفية عمل RAM، على الأقل 921 00:40:31,240 --> 00:40:33,590 افترض أن لديك باقات من ذلك في هذه الأيام. 922 00:40:33,590 --> 00:40:34,740 كنت قد حصلت ميغابايت من ذلك. 923 00:40:34,740 --> 00:40:35,760 كنت قد حصلت على غيغابايت من ذلك. 924 00:40:35,760 --> 00:40:40,690 ونحن نعرف من صفر الاسبوع ان البايت هو فقط ما؟ 925 00:40:40,690 --> 00:40:41,280 8 بت. 926 00:40:41,280 --> 00:40:42,730 الحق، لذلك 8 أصفار ومنها. 927 00:40:42,730 --> 00:40:46,300 حتى إذا كان جهاز الكمبيوتر الخاص بك يحتوي على أزعج من ذاكرة الوصول العشوائي، واثنين من العربات من ذاكرة الوصول العشوائي في هذه الأيام، لديك 928 00:40:46,300 --> 00:40:54,450 مليار أو 2 مليار بايت من الذاكرة، أو ما يقرب من 8 مليار مليار أو 16 929 00:40:54,450 --> 00:40:56,560 بت، داخل جهاز الكمبيوتر الخاص بك. 930 00:40:56,560 --> 00:40:59,710 الآن على عكس المثال ويلي ثوب صوفي قليلا، انها ليست جسيمات مغناطيسية 931 00:40:59,710 --> 00:41:00,560 عادة بعد الآن. 932 00:41:00,560 --> 00:41:04,470 على نحو متزايد، في أجهزة الكمبيوتر المحمولة على الأقل، انها الأقراص الصلبة، محركات الأقراص الصلبة، التي 933 00:41:04,470 --> 00:41:05,560 تماما كما لا أجزاء متحركة. 934 00:41:05,560 --> 00:41:06,710 كل شيء الإلكترونية. 935 00:41:06,710 --> 00:41:08,070 الأمر كله يعتمد الكهرباء. 936 00:41:08,070 --> 00:41:12,360 أعتقد ذلك، على الرغم من هذا المستطيل كما تمثل فقط واحد أو اثنين 937 00:41:12,360 --> 00:41:13,930 غيغابايت من الذاكرة التي لديك. 938 00:41:13,930 --> 00:41:15,500 >> لذلك فإن جزءا من الذاكرة. 939 00:41:15,500 --> 00:41:20,460 الآن العالم في علوم الحاسب الآلي لديها نوع من قطع ينفصل من 940 00:41:20,460 --> 00:41:22,570 ذاكرة أن تفعل أشياء مختلفة. 941 00:41:22,570 --> 00:41:25,930 هكذا على سبيل المثال، إذا كان هذا هو RAM جهاز الكمبيوتر الخاص بك - على النحو الذي اقترحه 942 00:41:25,930 --> 00:41:30,400 هناك مستطيل - تبين أن من الاتفاقية، في الجزء العلوي من RAM الخاص بك، حتى 943 00:41:30,400 --> 00:41:33,170 في الكلام، وعموما ما يسمى قطعة النص. 944 00:41:33,170 --> 00:41:35,910 تلك هي أصفار وتلك التي كنت قد جمعت. 945 00:41:35,910 --> 00:41:39,040 حتى عندما كنا قد بدا تحت غطاء محرك السيارة على ما هو a.out، جميع 946 00:41:39,040 --> 00:41:40,360 الاصفار ومنها - 947 00:41:40,360 --> 00:41:44,000 عند تشغيل البرنامج، يتم تحميل هذه الاصفار ومنها من الصلب الخاص بك 948 00:41:44,000 --> 00:41:46,290 محرك الأقراص إلى شيء يسمى RAM. 949 00:41:46,290 --> 00:41:48,950 وفي RAM، كنت وضعوا في الجزء العلوي. 950 00:41:48,950 --> 00:41:50,330 الآن وفي الوقت نفسه، لديك أشياء أخرى. 951 00:41:50,330 --> 00:41:53,060 تهيئة البيانات، والبيانات غير مهيأ. 952 00:41:53,060 --> 00:41:56,440 تلك مساحات اثنين من الذاكرة تشير إلى المتغيرات العالمية، والتي 953 00:41:56,440 --> 00:41:57,530 كنت لا تستخدم في كثير من الأحيان. 954 00:41:57,530 --> 00:42:00,630 لكن في بعض الأحيان إذا قمت بذلك، أنهم في نهاية المطاف ما يصل هناك أيضا. 955 00:42:00,630 --> 00:42:01,620 ثم هناك بعض الأشياء الأخرى. 956 00:42:01,620 --> 00:42:04,130 متغيرات البيئة، ونحن لن تنفق الكثير من الوقت على. 957 00:42:04,130 --> 00:42:06,120 ولكن بعد ذلك أمران مهمان من شأنها أن تعود طوال هذه 958 00:42:06,120 --> 00:42:08,130 فصل دراسي، وكومة كومة. 959 00:42:08,130 --> 00:42:12,280 >> بحيث يتم محفوظة معظم ذاكرة الكمبيوتر الخاص بك عند تشغيل برنامج لل 960 00:42:12,280 --> 00:42:14,880 ودعا شيء مكدس وما يسمى كومة. 961 00:42:14,880 --> 00:42:16,940 ونحن لن نتحدث عن كومة اليوم، ولكن سنقوم 962 00:42:16,940 --> 00:42:18,180 الحديث عن المكدس. 963 00:42:18,180 --> 00:42:22,910 ومن المفترض المكدس إلى الأذهان المرئي من مثل قاعة الطعام 964 00:42:22,910 --> 00:42:26,120 الصواني وجبة في البيت ماثر، أو في أي مكان كنت يحدث ليكون، حيث 965 00:42:26,120 --> 00:42:27,810 قاعة الطعام الموظفين تنظيفها كل يوم. 966 00:42:27,810 --> 00:42:30,180 أنها كومة لهم حتى من الكلمة على ما يصل. 967 00:42:30,180 --> 00:42:33,800 وبالمثل في الذاكرة، هناك فكرة وضع هذا على شيء 968 00:42:33,800 --> 00:42:36,740 كومة، ووضع شيء على كومة، ووضع شيء على كومة. 969 00:42:36,740 --> 00:42:38,000 وماذا نعني بذلك؟ 970 00:42:38,000 --> 00:42:41,430 حسنا، دعونا التكبير في أقل من نصف فقط من هذه الصورة، وجهاز الكمبيوتر الخاص بك 971 00:42:41,430 --> 00:42:43,990 RAM، أن يقترح ما يلي. 972 00:42:43,990 --> 00:42:48,300 تبين أنه عند تشغيل برنامج مثل a.out أو مرحبا، مهما كان 973 00:42:48,300 --> 00:42:49,920 هذا البرنامج هو ان كنت قد كتبت، 974 00:42:49,920 --> 00:42:53,030 مرة أخرى، يتم تحميل هذه الاصفار ومنها من محرك القرص الثابت - والذي هو 975 00:42:53,030 --> 00:42:56,190 التخزين على المدى الطويل، يبقى هناك حتى عند سحب القابس - 976 00:42:56,190 --> 00:42:57,220 تحميل إلى RAM. 977 00:42:57,220 --> 00:42:59,020 RAM أسرع من محركات الأقراص الصلبة. 978 00:42:59,020 --> 00:43:00,700 انها أصغر من محركات الأقراص الصلبة. 979 00:43:00,700 --> 00:43:03,490 ولكن من حيث البرامج في الوقت الذي كنت تعيش تشغيلها. 980 00:43:03,490 --> 00:43:06,380 >> حتى النقر المزدوج برنامج على نظام التشغيل Mac أو PC أ - يتم تحميل ذلك من 981 00:43:06,380 --> 00:43:07,750 القرص الصلب إلى ذاكرة الوصول العشوائي. 982 00:43:07,750 --> 00:43:11,760 بمجرد انها تحميل إلى RAM، والاصفار منها تذهب في أعلى الطريق، في 983 00:43:11,760 --> 00:43:13,130 ما يسمى الجزء النص. 984 00:43:13,130 --> 00:43:17,040 ولكن بعد ذلك في أقرب وقت بدء تشغيل البرنامج في الواقع قيد التشغيل، الرئيسية 985 00:43:17,040 --> 00:43:18,140 يتم استدعاء الدالة. 986 00:43:18,140 --> 00:43:21,070 والرئيسي، كما رأينا، في كثير من الأحيان المتغيرات المحلية. 987 00:43:21,070 --> 00:43:24,560 ولها رجات وخيوط وحرف وما شابه ذلك. 988 00:43:24,560 --> 00:43:28,300 إذا كان الأمر كذلك البرنامج الذي كنت قد كتبت أو البرنامج الذي لديك 989 00:43:28,300 --> 00:43:33,680 النقر المزدوج تستخدم بعض المتغيرات داخل الرئيسي، أنهم في نهاية المطاف في 990 00:43:33,680 --> 00:43:37,020 أسفل الكدسة من الذاكرة، إذا جاز التعبير. 991 00:43:37,020 --> 00:43:39,160 الآن على نحو أكثر تحديدا، ماذا يعني هذا في الواقع؟ 992 00:43:39,160 --> 00:43:44,080 هذا يعني فقط أنه إذا نحن ذاهبون إلى رقم الأمور - 993 00:43:44,080 --> 00:43:49,380 إذا نحن ذاهبون إلى عدد البايتات من ذاكرة الوصول العشوائي في جهاز الكمبيوتر الخاص بك، لاحظ أن 994 00:43:49,380 --> 00:43:51,650 وهذا قد يكون صفر بايت رقم. 995 00:43:51,650 --> 00:43:56,130 وهذا قد يكون عدد بايت واحد، اثنان، ثلاثة، أربعة، خمسة، ستة، جميع 996 00:43:56,130 --> 00:43:57,290 وصولا إلى مثل - 997 00:43:57,290 --> 00:44:01,520 و2 مليار كل وسيلة تصل هناك في الأعلى. 998 00:44:01,520 --> 00:44:05,960 لذلك وبعبارة أخرى، عندما نتحدث عن الذاكرة RAM أو من حيث بايت، فإنه 999 00:44:05,960 --> 00:44:09,680 يعني فقط أن شخصا ما قرر لعدد كل من 1000 00:44:09,680 --> 00:44:11,110 هذه أجزاء من الذاكرة. 1001 00:44:11,110 --> 00:44:16,950 >> حتى عندما كنت في حاجة للحصول على 32 بت الباحث، أو تحتاج ل8 بت شار، حيث 1002 00:44:16,950 --> 00:44:18,320 لا ينتهي الأمر بهم في الذاكرة؟ 1003 00:44:18,320 --> 00:44:20,650 المفهوم جيدا، أنها فقط في نهاية المطاف في الجزء السفلي من هذا 1004 00:44:20,650 --> 00:44:21,780 ودعا الشيء المكدس. 1005 00:44:21,780 --> 00:44:25,670 ولكن ما يثير الاهتمام هو عندما الرئيسي الآن يستدعي دالة. 1006 00:44:25,670 --> 00:44:28,830 لنفترض أن دالة يسمى فو، مجرد اسم عشوائية. 1007 00:44:28,830 --> 00:44:32,480 ما يحدث هو الرئيسي هو في الجزء السفلي من هذا كومة من الذاكرة. 1008 00:44:32,480 --> 00:44:35,630 فو الآن يوضع على رأس الرئيسي في الذاكرة. 1009 00:44:35,630 --> 00:44:40,020 لذلك أي أن المتغيرات المحلية وفو في نهاية المطاف نوعا من المفهوم أعلاه 1010 00:44:40,020 --> 00:44:40,770 تلك الموجودة في الرئيسية. 1011 00:44:40,770 --> 00:44:46,920 إذا فو يدعو ظيفة أخرى تسمى نقابة المحامين، وهذه المتغيرات في نهاية المطاف هنا. 1012 00:44:46,920 --> 00:44:49,790 إذا حجب المكالمات شيء آخر، هنا، هنا، هنا. 1013 00:44:49,790 --> 00:44:53,900 فما هو المثير للاهتمام حول تشغيل برنامج هو أنه عند استدعاء وظائف، 1014 00:44:53,900 --> 00:44:57,720 ولأن تلك المهام استدعاء وظائف، ولأن تلك المهام استدعاء وظائف، 1015 00:44:57,720 --> 00:45:00,980 يمكنك بناء هذا كومة من الوظائف في الذاكرة. 1016 00:45:00,980 --> 00:45:06,740 ومرة واحدة في ترجع الدالة هل البدء في الحصول على تلك الذاكرة الى الوراء. 1017 00:45:06,740 --> 00:45:11,190 حتى واحدة من أسهل الطرق لنفاد الذاكرة في برنامج الكمبيوتر لل 1018 00:45:11,190 --> 00:45:14,170 كتابة الوظائف التي يعود أبدا. 1019 00:45:14,170 --> 00:45:16,650 >> هكذا على سبيل المثال، دعونا إظهار قدر مع 1020 00:45:16,650 --> 00:45:18,460 عربات التي تجرها الدواب عمدا البرنامج. 1021 00:45:18,460 --> 00:45:24,690 اسمحوا لي أن نمضي قدما ونفعل # تشمل ، الباحث الرئيسي (الفراغ). 1022 00:45:24,690 --> 00:45:31,270 وانا ذاهب الى القيام به في حين (2> 1)، والتي ربما لن من أي وقت مضى 1023 00:45:31,270 --> 00:45:33,370 علينا تغيير. 1024 00:45:33,370 --> 00:45:37,720 واسمحوا لي الآن المضي قدما والقيام printf. 1025 00:45:37,720 --> 00:45:39,950 في الواقع، وهذا سيكون أقل إثارة للاهتمام بصريا. 1026 00:45:39,950 --> 00:45:40,460 دعونا نفعل هذا. 1027 00:45:40,460 --> 00:45:44,840 لINT (ط = 0، وأنا> 0). 1028 00:45:44,840 --> 00:45:49,740 دعونا جعل هذا الخطأ، وأنا + +. 1029 00:45:49,740 --> 00:45:51,150 ودعونا لا printf هنا. 1030 00:45:51,150 --> 00:45:52,550 دعونا ممارسة ما كنت الوعظ. 1031 00:45:52,550 --> 00:45:54,090 دعونا يكون لديك طريقة هنا. 1032 00:45:54,090 --> 00:46:00,860 جوقة باطلة، وسوف نقوله كثافة العمليات ط. 1033 00:46:00,860 --> 00:46:02,295 ثم انا ذاهب الى القول، printf - 1034 00:46:04,871 --> 00:46:06,790 أوه، دعونا جعل هذا أكثر إثارة للاهتمام. 1035 00:46:06,790 --> 00:46:08,350 دعونا الواقع لا تتم طباعة أي شيء على الإطلاق. 1036 00:46:08,350 --> 00:46:10,530 دعونا فقط القيام بذلك. 1037 00:46:10,530 --> 00:46:11,780 جوقة (ط). 1038 00:46:16,630 --> 00:46:17,000 >> حسنا. 1039 00:46:17,000 --> 00:46:20,040 لذلك هذا هو عربات التي تجرها الدواب لماذا؟ 1040 00:46:20,040 --> 00:46:22,850 أنا جعل هذا الأمر وأنا أذهب لأن البرنامج لا يفعل اي شيء في الواقع 1041 00:46:22,850 --> 00:46:23,420 من الفائدة. 1042 00:46:23,420 --> 00:46:24,670 ولكن هذا ليس الهدف. 1043 00:46:24,670 --> 00:46:30,440 والهدف من ذلك هو كتابة برنامج تتمثل وظيفتها الرئيسية يفعل ما، على ما يبدو؟ 1044 00:46:30,440 --> 00:46:31,370 الكلمة نفسها. 1045 00:46:31,370 --> 00:46:32,600 وفعلا، نحن لسنا بحاجة الحلقة. 1046 00:46:32,600 --> 00:46:36,070 دعونا تبسيط حتى هذا فقط حتى لا يفقد البصر من الحقيقة 1047 00:46:36,070 --> 00:46:37,310 علة الأساسية. 1048 00:46:37,310 --> 00:46:39,200 مكالمات الرئيسية جوقة الغناء جوقة بعض. 1049 00:46:39,200 --> 00:46:41,760 ثم فعلت شيئا غبيا I، وكان لي جوقة جوقة الدعوة لأنني افترض 1050 00:46:41,760 --> 00:46:43,550 كان شخص آخر سوف لتنفيذه ربما. 1051 00:46:43,550 --> 00:46:45,960 والآن هذا لن تجميع حتى الآن. 1052 00:46:45,960 --> 00:46:48,340 يجب أن أفعل ماذا؟ 1053 00:46:48,340 --> 00:46:49,700 أنا في حاجة إلى النموذج، تذكر. 1054 00:46:49,700 --> 00:46:55,520 لذلك أنا في حاجة الى هنا جوقة باطلة (كثافة العمليات ط)؛ 1055 00:46:55,520 --> 00:46:57,470 >> حتى الآن، إذا ذهبت إلى هنا - 1056 00:46:57,470 --> 00:46:59,030 في الواقع، دعونا استخدام أكبر النافذة. 1057 00:46:59,030 --> 00:47:01,670 دعونا نمضي قدما وجعل جوقة. 1058 00:47:01,670 --> 00:47:06,000 دعونا نمضي قدما وجعل جوقة. 1059 00:47:06,000 --> 00:47:08,302 استخدام مجهولة الهوية المعلن عن ط. 1060 00:47:08,302 --> 00:47:09,860 أوه، كان من الغباء. 1061 00:47:09,860 --> 00:47:11,020 نحن لسنا بحاجة لحجة. 1062 00:47:11,020 --> 00:47:13,680 دعونا فقط القيام بذلك. 1063 00:47:13,680 --> 00:47:14,550 أتمنى لو بدأنا بهذه الطريقة. 1064 00:47:14,550 --> 00:47:16,160 كان يمكن أن يكون أسهل بكثير برنامج الكتابة. 1065 00:47:16,160 --> 00:47:20,100 لذلك هناك. 1066 00:47:20,100 --> 00:47:23,870 الآن دعونا نذهب الى نافذة طرفية بلدي، وإعادة تشغيل ضجيج. 1067 00:47:23,870 --> 00:47:26,900 وهنا نذهب. 1068 00:47:26,900 --> 00:47:28,020 كان ذلك بسرعة. 1069 00:47:28,020 --> 00:47:30,690 في الواقع ما حدث للتو، على الرغم من؟ 1070 00:47:30,690 --> 00:47:33,430 حسنا، الآن سأضيف خط الطباعة، لذلك يمكننا أن نرى. 1071 00:47:33,430 --> 00:47:41,330 لذلك اسمحوا لي أن أقول printf، دعنا نقول، أنا هنا. 1072 00:47:41,330 --> 00:47:43,470 حسنا، لا متغيرات، سنقوم ترك الأمر من هذا القبيل. 1073 00:47:43,470 --> 00:47:44,860 اسمحوا لي أن إعادة تشغيل بها. 1074 00:47:44,860 --> 00:47:47,940 اسمحوا لي أن إعادة التشغيل جوقة. 1075 00:47:47,940 --> 00:47:51,235 وهيا. 1076 00:47:53,880 --> 00:47:55,130 الاستمرار. 1077 00:47:57,630 --> 00:47:59,750 بوصفها جانبا، لماذا لا تحطمت بعد؟ 1078 00:47:59,750 --> 00:48:02,050 حدث خطأ تجزئة بسرعة فائقة من قبل. 1079 00:48:02,050 --> 00:48:04,250 [غير مسموع] 1080 00:48:04,250 --> 00:48:04,830 DAVID J. مالان: بالضبط. 1081 00:48:04,830 --> 00:48:06,350 لذلك يستغرق وقتا طويلا لطباعة. 1082 00:48:06,350 --> 00:48:08,370 والامر لا يتطلب مزيد من العمل على الجزء الخاص بجهاز الكمبيوتر. 1083 00:48:08,370 --> 00:48:09,550 وهناك هو عليه. 1084 00:48:09,550 --> 00:48:10,620 تجزئة الخطأ. 1085 00:48:10,620 --> 00:48:12,140 >> لاحظت ذلك مدى سرعة تشغيل البرامج. 1086 00:48:12,140 --> 00:48:14,110 إذا كنت لا تطبع أي شيء، بسرعة فائقة. 1087 00:48:14,110 --> 00:48:18,100 لكن ليس لدينا ما زال هذا الخطأ تجزئة لأن ما كان يحدث؟ 1088 00:48:18,100 --> 00:48:21,310 حسنا، إذا كنت تفكر في ذلك، كيف وضعت ذاكرة الكمبيوتر الخاص بك من 1089 00:48:21,310 --> 00:48:22,890 يحدث أن تكون أهم. 1090 00:48:22,890 --> 00:48:23,800 ولكن هنا - 1091 00:48:23,800 --> 00:48:28,670 دعونا مجرد دعوة هذه الجوقة، ودعونا نطلق على هذا الكورس. 1092 00:48:28,670 --> 00:48:33,420 والآن إذا كنت تفعل جماليات حقي، وهذا هو مجرد الذهاب الى القول جوقة، 1093 00:48:33,420 --> 00:48:38,060 جوقة، جوقة، جوقة، جوقة، جوقة، جوقة، nauseum الإعلانية. 1094 00:48:38,060 --> 00:48:39,920 وأخيرا، ما الذي سيحدث؟ 1095 00:48:39,920 --> 00:48:46,690 إذا كانت الصورة كبيرة هذا هو حرفيا، ما يحدث لمجرد المفهوم؟ 1096 00:48:46,690 --> 00:48:48,320 وتجاوز كومة كومة. 1097 00:48:48,320 --> 00:48:52,400 أو ما هو أسوأ، وكنت للتو تجاوز كل شيء، بما في ذلك الجزء النص، الذي هو 1098 00:48:52,400 --> 00:48:54,530 الاصفار وتلك التي تمثل البرنامج. 1099 00:48:54,530 --> 00:48:56,690 باختصار، هذا هو مجرد فائقة، فائقة سيئة. 1100 00:48:56,690 --> 00:48:56,860 أليس كذلك؟ 1101 00:48:56,860 --> 00:48:58,620 وتصاعدت البرنامج خارج نطاق السيطرة. 1102 00:48:58,620 --> 00:49:02,840 كنت تستخدم ذاكرة طريقة أكثر مما كنت تصب كلها بسبب غبي 1103 00:49:02,840 --> 00:49:03,920 خطأ، في هذه الحالة. 1104 00:49:03,920 --> 00:49:08,160 أو في هذه الحالة، وهي وظيفة عمدا جدا القيام به تطلق على نفسها. 1105 00:49:08,160 --> 00:49:09,210 الآن هذه ليست كلها سيئة. 1106 00:49:09,210 --> 00:49:12,540 وظائف يطلقون على أنفسهم في الواقع قوة عظمى 1107 00:49:12,540 --> 00:49:13,700 عند استخدامه بشكل صحيح. 1108 00:49:13,700 --> 00:49:15,650 أنا لم تستخدم بشكل صحيح هنا. 1109 00:49:15,650 --> 00:49:16,940 >> لذلك هذا ليس كل شيء سيئا. 1110 00:49:16,940 --> 00:49:20,620 ولكن الحقيقة أنني لم تتوقف أبدا عن الواقع يدعو نفسي هو الأساسية 1111 00:49:20,620 --> 00:49:23,050 ضعف هنا من هذا البرنامج. 1112 00:49:23,050 --> 00:49:25,090 فأين نحن ذاهبون مع كل هذا؟ 1113 00:49:25,090 --> 00:49:26,230 حسنا، ماذا يحدث حقا؟ 1114 00:49:26,230 --> 00:49:30,010 عندما كنت استدعاء الدالة الزيادة، مثل كنا نفعل في تلك الأمثلة، 1115 00:49:30,010 --> 00:49:33,290 لدي قيمة مثل 1 أن أمرر فيها 1116 00:49:33,290 --> 00:49:35,820 أمرر على نسخة من رقم واحد. 1117 00:49:35,820 --> 00:49:37,080 حتى يحدث ما يلي. 1118 00:49:37,080 --> 00:49:40,390 لذلك دعونا الخوض في المثال الزيادة. 1119 00:49:40,390 --> 00:49:44,230 وهذا الرجل حق أكثر من هنا. 1120 00:49:44,230 --> 00:49:46,800 حتى هنا هو ما يحدث في الواقع. 1121 00:49:46,800 --> 00:49:50,770 عندما دعوت الزيادة، وأمرر في العاشر، ما هو بالصور 1122 00:49:50,770 --> 00:49:53,660 يجري هنا هو هذا - 1123 00:49:53,660 --> 00:50:00,240 إذا كان لدي قيمة من 1 المخزنة هنا، وأدعو فعلا الزيادة التي 1124 00:50:00,240 --> 00:50:02,680 وتسمى الآن جوقة - 1125 00:50:02,680 --> 00:50:04,010 نعم، هذا رمي قبالة لي هنا. 1126 00:50:04,010 --> 00:50:06,750 لذلك دعونا نسمي هذا الزيادة. 1127 00:50:06,750 --> 00:50:09,420 ونحن لا نعرف ما هذه الوظيفة المقبل ستكون. 1128 00:50:09,420 --> 00:50:14,270 ذلك ما يحدث في الواقع هو هنا في مكان ما في الرئيسية، ولدي قطعة من 1129 00:50:14,270 --> 00:50:16,670 الذاكرة التي تم تخزين الرقم 1. 1130 00:50:16,670 --> 00:50:19,730 عندما أعطي الكلمة الزيادة، أنا باستخدام قطعة أخرى من الذاكرة، ولكن الآن أنا 1131 00:50:19,730 --> 00:50:20,840 لديها نسخة 1. 1132 00:50:20,840 --> 00:50:25,480 عندما كنت زيادة تلك القيمة، وهذا يصبح 2 - كتابة فظيعة على 1133 00:50:25,480 --> 00:50:26,420 الشاشة هنا. 1134 00:50:26,420 --> 00:50:30,550 ولكن بعد ذلك، فإن ما يحدث في أقرب وقت عوائد الزيادة؟ 1135 00:50:30,550 --> 00:50:34,610 هذه الذاكرة فقط يحصل على تسليم عودة إلى نظام التشغيل، الأمر الذي يعني جميع 1136 00:50:34,610 --> 00:50:37,470 كنت قد فعلت أي شيء مفيد. 1137 00:50:37,470 --> 00:50:43,460 تلك التي وردت أصلا في الرئيسية لا يزال هناك في الواقع. 1138 00:50:43,460 --> 00:50:44,650 >> فأين نحن ذاهبون مع هذا؟ 1139 00:50:44,650 --> 00:50:49,400 حسنا، تبين أن الذاكرة لديك في هذه العودة إلى الوراء تسلسل 1140 00:50:49,400 --> 00:50:50,940 البايتات التي يمكنك وضع الاشياء فيه. 1141 00:50:50,940 --> 00:50:53,760 وتبين أن رأيناه بالفعل شيء ينطوي على وضع 1142 00:50:53,760 --> 00:50:55,100 الأشياء العودة إلى الوراء إلى العودة إلى الوراء. 1143 00:50:55,100 --> 00:51:00,170 ما هو سلسلة، على أساس أسبوع واحد وأسبوعين الآن؟ 1144 00:51:00,170 --> 00:51:01,840 لذلك فمن مجرد مجموعة من الأحرف. 1145 00:51:01,840 --> 00:51:05,290 لذلك تبين، تماما كما يمكنك وضع الأرقام في الذاكرة، يمكن لك بالمثل 1146 00:51:05,290 --> 00:51:06,900 وضع الأحرف في الذاكرة. 1147 00:51:06,900 --> 00:51:09,810 وبمجرد أن تبدأ الشخصيات وضع في الذاكرة مرة أخرى إلى العودة إلى الوراء إلى 1148 00:51:09,810 --> 00:51:12,800 مرة أخرى، اتضح أن استخدام أبسط الأشياء مثل لحلقة أو 1149 00:51:12,800 --> 00:51:14,510 حلقة من الوقت، يمكننا تكرار - 1150 00:51:14,510 --> 00:51:17,130 من اليسار إلى اليمين على الأحرف في سلسلة - 1151 00:51:17,130 --> 00:51:20,720 وتبدأ تلفيق لهم في شخصيات مختلفة تماما. 1152 00:51:20,720 --> 00:51:25,550 ويمكن أن تصبح B. B C. لذا يمكن أن تصبح في نهاية المطاف أن نستطيع اتخاذ 1153 00:51:25,550 --> 00:51:28,830 الجملة الإنجليزية التي في الواقع يجعل الشعور وتحويل كل من هذه 1154 00:51:28,830 --> 00:51:32,440 رسائل غادر في وقت واحد من خلال السير ذاكرة الكمبيوتر لدينا ل 1155 00:51:32,440 --> 00:51:34,300 الحق في تشفير الواقع. 1156 00:51:34,300 --> 00:51:36,590 >> لذلك دعونا نلقي دينا خمس دقائق استراحة هنا، وعندما نعود، سنقوم 1157 00:51:36,590 --> 00:51:39,060 بدء هذه العملية من الهرولة المعلومات. 1158 00:51:41,640 --> 00:51:43,180 >> حسنا. 1159 00:51:43,180 --> 00:51:48,440 حتى قبل أن الغوص في التشفير لبعض هذه الأشياء ودعا صفائف، اسمحوا لي 1160 00:51:48,440 --> 00:51:51,610 وقفة لأية أسئلة لأنني أشعر أنني حقا نوع من مشوش بعض 1161 00:51:51,610 --> 00:51:52,230 هذه المواضيع. 1162 00:51:52,230 --> 00:51:53,940 لذلك دعونا الآن إصلاح إذا ما في وسعنا. 1163 00:51:53,940 --> 00:51:56,480 لذلك نحن تحدثنا فقط عن قيم الإرجاع. 1164 00:51:56,480 --> 00:51:58,630 تحدثنا عن الحجج. 1165 00:51:58,630 --> 00:52:02,330 وتحدثنا عن هذه الفكرة، التي سنعود إليها في الأسابيع 1166 00:52:02,330 --> 00:52:07,140 تأتي، من الذاكرة كما عرض مجموعة كاملة من هذه مكدسة 1167 00:52:07,140 --> 00:52:08,540 الصواني، إذا جاز التعبير. 1168 00:52:08,540 --> 00:52:13,460 من أسفل على ما يصل، مثل أن كل علبة أن يحصل على وضعه على كومة يمثل 1169 00:52:13,460 --> 00:52:15,160 وظيفة في الوقت الحالي أن يتم استدعاء. 1170 00:52:17,970 --> 00:52:20,300 أي أسئلة؟ 1171 00:52:20,300 --> 00:52:22,890 فكيف - اسمحوا لي أن أحاول طرح السؤال. 1172 00:52:22,890 --> 00:52:25,520 وأظل إفساد ذلك، ولكن الآن it's - لقد رأيتها كل وجه الصبي. 1173 00:52:25,520 --> 00:52:27,020 وهكذا لن نعود إلى ذلك. 1174 00:52:27,020 --> 00:52:29,700 >> لذلك اسمحوا لي أن أطرح سؤالا هنا. 1175 00:52:29,700 --> 00:52:34,810 اسمحوا لي أن تبسيط هذه العودة إلى ما كان عليه قبل بعض Q & A. لدينا في وقت سابق 1176 00:52:34,810 --> 00:52:41,730 وأغلق حقيقة أن لديه طريقة قوس فتح، وعدد الباحث، 1177 00:52:41,730 --> 00:52:42,260 قوس. 1178 00:52:42,260 --> 00:52:46,370 ماذا تمثل عدد الباحث؟ 1179 00:52:46,370 --> 00:52:47,250 [غير مسموع] 1180 00:52:47,250 --> 00:52:47,870 DAVID J. مالان: حجة. 1181 00:52:47,870 --> 00:52:50,732 حسنا، ولكن ما هو حجة؟ 1182 00:52:50,732 --> 00:52:51,620 [غير مسموع] 1183 00:52:51,620 --> 00:52:52,500 DAVID J. مالان: عذرا، ما هذا؟ 1184 00:52:52,500 --> 00:52:53,150 SPEAKER 3: يمكنك تمرير شيء ما فيها. 1185 00:52:53,150 --> 00:52:53,570 DAVID J. مالان: حسنا. 1186 00:52:53,570 --> 00:52:54,780 شيء بحيث يمكنك تمرير فيها 1187 00:52:54,780 --> 00:52:56,560 وبصورة أعم، انها مجرد الإدخال. 1188 00:52:56,560 --> 00:52:59,860 إذا كنت تكتب وظيفة والغرض أن وظيفة في الحياة هو أن تفعل 1189 00:52:59,860 --> 00:53:03,290 شيئا قليلا مختلفة في كل مرة كنت تستخدم ذلك، فإن الطريقة الوحيدة ل 1190 00:53:03,290 --> 00:53:07,710 التي من شأنها أن يحدث حقا ويبدو أن لتزويدها الإدخال بحيث يكون 1191 00:53:07,710 --> 00:53:10,180 يمكن أن تفعل شيئا مختلفا مع هذا الإدخال في كل مرة. 1192 00:53:10,180 --> 00:53:13,590 >> لذلك تحتاج إلى تحديد أمرين عندما يأخذ وظيفة المدخلات. 1193 00:53:13,590 --> 00:53:17,240 تحتاج إلى تحديد الاسم الذي تريد أن تعطي لهذا المدخل، لمجرد 1194 00:53:17,240 --> 00:53:20,790 راحتك بحيث يمكنك الرجوع إليها في الدالة التي قمت 1195 00:53:20,790 --> 00:53:23,610 نفسك تكتب، كما فعلت هنا في السطر 32. 1196 00:53:23,610 --> 00:53:27,840 ولكن تحتاج أيضا إلى تحديد نوعه لC هي لغة برمجة 1197 00:53:27,840 --> 00:53:28,840 يتطلب فقط 1198 00:53:28,840 --> 00:53:31,810 إذا كنت تريد أن متغير، عليك أن تخبر الكمبيوتر ما 1199 00:53:31,810 --> 00:53:32,790 اكتب البيانات هو عليه، 1200 00:53:32,790 --> 00:53:35,540 في جزء كبير منه بحيث يعرف كم عدد البتات إلى 1201 00:53:35,540 --> 00:53:37,230 تخصيص لهذا المتغير. 1202 00:53:37,230 --> 00:53:38,600 لأنه يمكن أن يكون ستة - 1203 00:53:38,600 --> 00:53:39,990 عذرا، لن يكون ستة. 1204 00:53:39,990 --> 00:53:41,050 يمكن أن يكون 16. 1205 00:53:41,050 --> 00:53:41,630 يمكن أن يكون 8. 1206 00:53:41,630 --> 00:53:44,410 يمكن أن يكون 32، حتى 64. 1207 00:53:44,410 --> 00:53:45,820 لكن الكمبيوتر يحتاج إلى معرفة. 1208 00:53:45,820 --> 00:53:49,110 الآن على الباحث الجانب الأيسر يمثل ما، على النقيض من ذلك؟ 1209 00:53:52,825 --> 00:53:53,780 [غير مسموع] 1210 00:53:53,780 --> 00:53:54,570 DAVID J. مالان: ما هذا؟ 1211 00:53:54,570 --> 00:53:55,390 [غير مسموع] 1212 00:53:55,390 --> 00:53:57,920 DAVID J. مالان: نوع وظيفة وبشكل أكثر تحديدا، فإن 1213 00:53:57,920 --> 00:53:59,755 نوع من انتاجها. 1214 00:53:59,755 --> 00:54:00,220 الحق. 1215 00:54:00,220 --> 00:54:04,220 ذلك في حين أن الشيء بين قوسين تمثل مدخلاته، إن وجدت، على 1216 00:54:04,220 --> 00:54:06,640 الشيء إلى اليسار يمثل انتاجها. 1217 00:54:06,640 --> 00:54:10,560 وفي هذه الحالة، الزيادة ترجع على ما يبدو الباحث. 1218 00:54:10,560 --> 00:54:14,590 وذلك هو نوع الباحث عودة هذه الوظيفة. 1219 00:54:14,590 --> 00:54:16,090 >> ماذا يعني ذلك للعودة؟ 1220 00:54:16,090 --> 00:54:19,810 حرفيا، يمكنك استخدام الكلمة العودة. 1221 00:54:19,810 --> 00:54:24,640 ثم إذا كان ما يعودون إلى يمين الكلمة هو 1222 00:54:24,640 --> 00:54:28,340 صحيح، ثم وهذا هو في الواقع متسقة مع ما وعدنا. 1223 00:54:28,340 --> 00:54:31,110 هل يمكن أن تفعل شيئا من هذا القبيل - 1224 00:54:31,110 --> 00:54:32,280 مرحبا، العالم - 1225 00:54:32,280 --> 00:54:33,500 لأن ذلك هو سلسلة. 1226 00:54:33,500 --> 00:54:35,440 من الواضح أنها ليست عددا صحيحا. 1227 00:54:35,440 --> 00:54:40,450 لذلك وباختصار، فإن العبء يقع علينا حقا، مبرمج، على أن تكون محددة كما 1228 00:54:40,450 --> 00:54:44,730 ما نقوم العودة إلى وثم انتقل فعلا عن إعادته. 1229 00:54:44,730 --> 00:54:49,030 ومن ثم لجعل صبي أكثر وضوحا في سياق - 1230 00:54:49,030 --> 00:54:50,080 وها هو مرة أخرى. 1231 00:54:50,080 --> 00:54:51,060 سياق - 1232 00:54:51,060 --> 00:54:52,830 مفاجأة كبيرة قادمة في لحظة واحدة. 1233 00:54:52,830 --> 00:54:57,720 سياق هنا الآن هو أن ذاكرة الكمبيوتر الخاص بك هو، مرة أخرى، 1234 00:54:57,720 --> 00:54:59,070 GIGABYTE، وهما غيغابايت، أيا كان. 1235 00:54:59,070 --> 00:54:59,630 ربما هو أكثر من ذلك. 1236 00:54:59,630 --> 00:55:00,540 ربما انها أقل من ذلك. 1237 00:55:00,540 --> 00:55:03,750 لكن الكمبيوتر تعتبره وجود أقسام مختلفة. 1238 00:55:03,750 --> 00:55:04,860 وتنخفض شيئا هناك. 1239 00:55:04,860 --> 00:55:06,020 شيء آخر يذهب إلى هناك. 1240 00:55:06,020 --> 00:55:07,540 الاشياء المختلفة يذهب في وسطه. 1241 00:55:07,540 --> 00:55:09,300 واليوم، ونحن نقول فقط تبدأ هذه القصة. 1242 00:55:09,300 --> 00:55:11,130 >> ولكن سوف نعود إلى هذا الوقت انتهى. 1243 00:55:11,130 --> 00:55:15,000 في الوقت الراهن، سوى قطعة من الذاكرة ونحن نكترث هو جزء النص 1244 00:55:15,000 --> 00:55:17,160 لأن ذلك يمثل مجرد أصفار ومنها 1245 00:55:17,160 --> 00:55:18,460 وقد أنتج ذلك ضجيج. 1246 00:55:18,460 --> 00:55:21,570 لذلك عند تشغيل أمر على لوحة المفاتيح مثل a.out، أو النقر المزدوج 1247 00:55:21,570 --> 00:55:25,350 انقر فوق رمز على نظام التشغيل Mac OS أو Windows، يتم تحميل البرنامج من الصلب الخاص بك 1248 00:55:25,350 --> 00:55:26,930 تدفع إلى RAM. 1249 00:55:26,930 --> 00:55:30,850 وانها ساقط ذلك في الجزء العلوي من جهاز الكمبيوتر الخاص بك RAM، إذا جاز التعبير. 1250 00:55:30,850 --> 00:55:35,470 الآن وفي الوقت نفسه، كبرنامج يبدأ تشغيل ويحصل على استدعاء الرئيسي في 1251 00:55:35,470 --> 00:55:39,240 برنامج كتب لك أو كتب أو برنامج Microsoft أبل، أي من له 1252 00:55:39,240 --> 00:55:42,930 المتغيرات المحلية في نهاية المطاف الى هناك في الجزء السفلي من ذاكرة الكمبيوتر الخاص بك. 1253 00:55:42,930 --> 00:55:46,490 ولكن إذا الرئيسية دالة أخرى تدعو نفسها أو المتغيرات 1254 00:55:46,490 --> 00:55:48,340 الحجج، أنهم في نهاية المطاف فوقه. 1255 00:55:48,340 --> 00:55:50,670 وإذا كان ذلك وظيفة يدعو شيء، أنهم في نهاية المطاف فوقه، 1256 00:55:50,670 --> 00:55:51,840 فوقه، فوقه. 1257 00:55:51,840 --> 00:55:56,100 ومرة واحدة فقط ويتم تنفيذ وظيفة لا كومة من الصواني، لذلك 1258 00:55:56,100 --> 00:55:58,320 في الكلام، وتبدأ في الحصول على أقل وأقل. 1259 00:55:58,320 --> 00:56:03,370 وهذا ما ثم، باختصار، ما يفسر لماذا، عند استدعاء مكعب - 1260 00:56:03,370 --> 00:56:04,660 أو استدعاء الزيادة - 1261 00:56:04,660 --> 00:56:06,490 كنت تمر على نسخة من القيمة. 1262 00:56:06,490 --> 00:56:09,840 وماذا يعني ذلك بالصور هو أن كنت تكتب حرفيا 1263 00:56:09,840 --> 00:56:14,540 رقم 1 في جزء آخر من الذاكرة، وتغيير أن 1 إلى 2، في حالة 1264 00:56:14,540 --> 00:56:15,360 طريقة - 1265 00:56:15,360 --> 00:56:17,450 أو إلى 8، في حالة المكعب - 1266 00:56:17,450 --> 00:56:21,450 ورمي بعد ذلك أن الذاكرة بعيدا بمجرد زيادة أو المكعب 1267 00:56:21,450 --> 00:56:23,410 ترجع الدالة. 1268 00:56:23,410 --> 00:56:24,267 >> السؤال. 1269 00:56:24,267 --> 00:56:25,517 [غير مسموع] 1270 00:56:28,090 --> 00:56:29,970 DAVID J. مالان: أين - يتم تخزين المتغيرات العالمية في ما 1271 00:56:29,970 --> 00:56:32,960 ودعا في الوقت الراهن بيانات أو تهيئة البيانات غير مهيأ. 1272 00:56:32,960 --> 00:56:35,900 الفرق الراهن، إذا كان لديك متغير عمومي، وقمت بتعيين أنه 1273 00:56:35,900 --> 00:56:39,530 على الفور قيمة مع علامة التساوي، فإنه ينتهي في الجزء العلوي هناك. 1274 00:56:39,530 --> 00:56:43,390 وإذا كنت أقول الباحث العاشر منقوطة مع أية قيمة، وينتهي ارتفاعا طفيفا 1275 00:56:43,390 --> 00:56:46,670 انخفاض في RAM ببساطة عن طريق الاتفاقية. 1276 00:56:46,670 --> 00:56:49,308 غيرها من المسائل. 1277 00:56:49,308 --> 00:56:49,750 حسنا. 1278 00:56:49,750 --> 00:56:53,040 >> لذلك سوف يعود هذه الصورة كلما تقدمنا ​​أكثر قوة مع ما يمكننا القيام به 1279 00:56:53,040 --> 00:56:53,830 مع الكمبيوتر. 1280 00:56:53,830 --> 00:56:58,790 لكن في الوقت الراهن، دعونا لها مقدمة قصيرة لالترميز، ونوع معين من 1281 00:56:58,790 --> 00:57:01,910 التشفير التي لا تحل كل المشاكل في العالم ولكن لا حل 1282 00:57:01,910 --> 00:57:02,480 بعض منها. 1283 00:57:02,480 --> 00:57:06,090 في هذه الحالة هنا، لدينا ما يسمى تشفير المفتاح السري. 1284 00:57:06,090 --> 00:57:10,430 وتشفير المفتاح السري، وكما يوحي اسمها، تستمد أمنها 1285 00:57:10,430 --> 00:57:11,330 من سرا. 1286 00:57:11,330 --> 00:57:14,720 هكذا على سبيل المثال، إذا كنت مرة أخرى في المدارس الابتدائية وكنت تمرير 1287 00:57:14,720 --> 00:57:18,040 رسالة حب سرية قليلا للصبي أو فتاة كنت على سحق - إذا كنت 1288 00:57:18,040 --> 00:57:20,820 أراد أن يمر من خلال هذا الجمهور، وكنت ربما لا يكتب 1289 00:57:20,820 --> 00:57:24,120 هذا علما في اللغة الإنجليزية أو أيا كان لغتك الأم هي، بل كنت 1290 00:57:24,120 --> 00:57:25,800 قد تشفيرها. 1291 00:57:25,800 --> 00:57:27,820 أو قد تقوم بإرسال منهم فقط رسالة نصية في هذه الأيام. 1292 00:57:27,820 --> 00:57:30,310 ولكن قد تمر فعلا لهم مذكرة في جميع أنحاء الفصول الدراسية. 1293 00:57:30,310 --> 00:57:33,820 والقيام بذلك بشكل آمن، في مثل هذه الطريقة التي أصدقائك والمعلم 1294 00:57:33,820 --> 00:57:36,820 لا أعرف ما كنت تكتب، قد حان حتى مع بسيطة إلى حد ما 1295 00:57:36,820 --> 00:57:37,800 خوارزمية - 1296 00:57:37,800 --> 00:57:39,290 الشباب لو كنت قد يكون - 1297 00:57:39,290 --> 00:57:40,780 لتغيير معالم مجرد الكلمات. 1298 00:57:40,780 --> 00:57:44,390 وذلك بدلا من كتابة A، B. قد الكتابة بدلا من B، قد تكتب 1299 00:57:44,390 --> 00:57:46,670 C. وبدلا من C، D قد تكتب، وهكذا دواليك. 1300 00:57:46,670 --> 00:57:50,020 أو هل يمكن أن توصل إلى ترجمة أكثر تعقيدا من الرسائل 1301 00:57:50,020 --> 00:57:51,300 على رسائل مختلفة. 1302 00:57:51,300 --> 00:57:55,440 لكن الصيد هو الصبي أو الفتاة الذين كنت ترسل هذه المذكرة يحتاج إلى 1303 00:57:55,440 --> 00:57:56,850 تعرف شيئا. 1304 00:57:56,850 --> 00:57:59,620 وهو ما، من الواضح؟ 1305 00:57:59,620 --> 00:58:01,400 مثل، ما هو السر الخاصة بك. 1306 00:58:01,400 --> 00:58:04,620 مثل، ما هو أن تعيين بين الإفطار وكما وخدمات العملاء و DS؟ 1307 00:58:04,620 --> 00:58:08,780 وذلك إضافة واحدة فقط، إذا جاز التعبير، إلى كل من رسائل للانتقال من 1308 00:58:08,780 --> 00:58:09,730 A B ل، B C إلى؟ 1309 00:58:09,730 --> 00:58:11,350 هل هو أكثر تعقيدا من ذلك؟ 1310 00:58:11,350 --> 00:58:16,450 لذلك أنت وسحق الخاص في حاجة الى هذه المعلومات سرية. 1311 00:58:16,450 --> 00:58:18,170 ولكن هناك نوع من الصيد 22-هنا. 1312 00:58:18,170 --> 00:58:20,760 إذا كانت هذه هي المرة الأولى التي تقوم بإرسال هذه الرسالة من خلال الحب 1313 00:58:20,760 --> 00:58:25,590 الطبقة، وكيف يتم ذلك الصبي أو الفتاة أن تعرف ما يجري في السر هو حتى؟ 1314 00:58:25,590 --> 00:58:28,450 مفتاح التشفير السري حتى لا تحل كل مشاكل العالم. 1315 00:58:28,450 --> 00:58:30,490 وهناك في الواقع علاقة أننا سوف نعود إلى نحو 1316 00:58:30,490 --> 00:58:31,370 الفصل في النهاية. 1317 00:58:31,370 --> 00:58:35,970 >> وبالمثل، لا أحد منا ربما أرسلت من أي وقت مضى - 1318 00:58:35,970 --> 00:58:39,453 وبالمثل، لا معظمنا لا يعرف أحد ما الذي يعمل، على سبيل المثال، في 1319 00:58:39,453 --> 00:58:40,300 Amazon.com. 1320 00:58:40,300 --> 00:58:43,130 وحتى الآن، قد اشترى الكثير منا ربما الاشياء في Amazon.com. 1321 00:58:43,130 --> 00:58:45,670 ولقد تعلمنا أن نفترض أن هذه التجارة الإلكترونية 1322 00:58:45,670 --> 00:58:47,060 المعاملات آمنة. 1323 00:58:47,060 --> 00:58:47,210 أليس كذلك؟ 1324 00:58:47,210 --> 00:58:49,310 وربما يقول URL HTTPS. 1325 00:58:49,310 --> 00:58:51,590 هناك ربما سخيفة رمز القفل قليلا في مكان ما. 1326 00:58:51,590 --> 00:58:54,680 هناك نوع من الترميز تأمين معلومات بطاقتك الائتمانية 1327 00:58:54,680 --> 00:58:56,980 بينك و Amazon.com. 1328 00:58:56,980 --> 00:59:00,410 وحتى الآن، إذا التشفير ينطوي معرفة بعض السرية، وحتى الآن أنا لا 1329 00:59:00,410 --> 00:59:03,330 أعرف أحدا في الأمازون، ولقد رتبت بالتأكيد ليس أي نوع من 1330 00:59:03,330 --> 00:59:07,350 سرية مع شخص ما في الأمازون، وكيف يتم جهاز الكمبيوتر أو القيام بذلك متصفحي؟ 1331 00:59:07,350 --> 00:59:10,100 حسنا، تبين أن هناك أنواع أخرى من الترميز تماما أن حل 1332 00:59:10,100 --> 00:59:10,740 تلك المشكلة. 1333 00:59:10,740 --> 00:59:13,610 ولكن لهذا اليوم، سوف نركز على واحد بسيط، حيث يمكنك ترتيب في 1334 00:59:13,610 --> 00:59:18,480 تقدم إلى معرفة بعض السرية، مثل زائد 1 أو بعض تعيين بين باسم والإفطار. 1335 00:59:18,480 --> 00:59:20,710 >> وعملية الترميز عموما ينطوي هذا. 1336 00:59:20,710 --> 00:59:23,550 لديك بعض النص العادي، يصور هنا في اليسار. 1337 00:59:23,550 --> 00:59:26,260 تشغيل من خلال نوع من خوارزمية أو إجراء 1338 00:59:26,260 --> 00:59:27,670 لتشفيرها. 1339 00:59:27,670 --> 00:59:31,390 ربما هذا مجرد يصبح B، B يصبح C. ثم ينتهي بك الأمر مع 1340 00:59:31,390 --> 00:59:32,260 الشفرات النص. 1341 00:59:32,260 --> 00:59:36,450 وفي الوقت نفسه، مرة واحدة سحق الخاص يتلقى علما سرية، أو أنها يجب أن ثم 1342 00:59:36,450 --> 00:59:39,950 فك تشفيرها عن طريق عكس عموما أن الخوارزمية، وذلك للحصول على 1343 00:59:39,950 --> 00:59:41,640 نسخ النص العادي. 1344 00:59:41,640 --> 00:59:43,860 الآن هناك التجسيد المادي لهذا. 1345 00:59:43,860 --> 00:59:46,720 على سبيل المثال، وهذا هو القليل خاتم يحل الشفرات. 1346 00:59:46,720 --> 00:59:50,060 وهذا هو خاتم بمعنى أن هناك وهما بطلب هنا. 1347 00:59:50,060 --> 00:59:53,630 على هامش خارج هذا الشيء، وهناك رسائل من A إلى Z، 1348 00:59:53,630 --> 00:59:55,110 على الرغم من انهم في ترتيب عشوائي. 1349 00:59:55,110 --> 00:59:58,410 وعلى الداخل، وهناك في الواقع بعض الأرقام، مثل أن مع هذا 1350 00:59:58,410 --> 01:00:02,940 حلقة، يمكنك تحويل نوع من الخارج ولكن ليس داخل ليصطف 1351 01:00:02,940 --> 01:00:04,110 الأرقام مع الحروف. 1352 01:00:04,110 --> 01:00:08,290 وفي مقطع كنت على وشك أن نرى - والبعض منها قد شهدت 24/7 1353 01:00:08,290 --> 01:00:11,120 حول موسم عيد الميلاد من فيلم يحمل اسم قصة عيد الميلاد. 1354 01:00:11,120 --> 01:00:16,050 سترى أن Ralphie قليلا حريصة جدا لمعرفة ما اليتيم قليلا 1355 01:00:16,050 --> 01:00:19,810 وكانت الرسالة السرية آني له أنه قد تم أجله، وأعتقد، في 1356 01:00:19,810 --> 01:00:22,810 شكل رسائل رقمية على مربع المسلسل. 1357 01:00:22,810 --> 01:00:26,760 وكان عليك أن تتراكم كل الأوراق الصغيرة التي جاء 1358 01:00:26,760 --> 01:00:27,480 في مربع الحبوب. 1359 01:00:27,480 --> 01:00:28,320 هل كان لديك إلى البريد لهم بالدخول 1360 01:00:28,320 --> 01:00:31,060 هل كان لديك لاستعادة خاتم يحل الشفرات، بحيث يمكنك معرفة أخيرا 1361 01:00:31,060 --> 01:00:34,190 ما هو التعيين بين الحروف والأرقام، 1362 01:00:34,190 --> 01:00:35,420 أو رسائل وخطابات. 1363 01:00:35,420 --> 01:00:39,790 لذلك أنا أعطيك هذا مقطع قصير من قصة عيد الميلاد لتحفيز pset 2 و 1364 01:00:39,790 --> 01:00:42,340 لدينا مناقشة، في لحظة، من المصفوفات. 1365 01:00:42,340 --> 01:00:43,773 حتى هنا لدينا Ralphie. 1366 01:00:43,773 --> 01:00:44,126 >> [تشغيل الفيديو] 1367 01:00:44,126 --> 01:00:47,470 ، سواء أكان ذلك معروف للجميع من دون استثناء أن يعين بموجب هذا رالف لباركر 1368 01:00:47,470 --> 01:00:50,690 يحق عضو في دائرة اليتيم الصغير السرية وآني لجميع 1369 01:00:50,690 --> 01:00:53,500 يكرم والفوائد التي تحدث بها. 1370 01:00:53,500 --> 01:00:56,040 التوقيع، ليتل آني اليتيم. 1371 01:00:56,040 --> 01:00:58,730 بالعطف، بيار اندريه! 1372 01:00:58,730 --> 01:01:00,150 في الحبر! 1373 01:01:00,150 --> 01:01:02,910 يكرم والمزايا، وبالفعل في سن التاسعة. 1374 01:01:09,970 --> 01:01:10,730 هيا، دعونا نتجاوز هذا الامر. 1375 01:01:10,730 --> 01:01:15,000 أنا لا تحتاج الى كل ذلك الجاز حول المهربين والقراصنة. 1376 01:01:15,000 --> 01:01:17,624 استماع ليلة الغد، لمغامرة الختامية للأسود 1377 01:01:17,624 --> 01:01:19,710 القراصنة السفينة. 1378 01:01:19,710 --> 01:01:23,380 الآن حان الوقت لرسالة آني السرية لك أعضاء 1379 01:01:23,380 --> 01:01:25,670 من الدائرة السرية. 1380 01:01:25,670 --> 01:01:30,260 تذكر، والأطفال، ويمكن فقط لأعضاء الدائرة آني السرية لفك 1381 01:01:30,260 --> 01:01:31,660 آني رسالة سرية. 1382 01:01:31,660 --> 01:01:36,230 تذكر، وآني تبعا للكم. 1383 01:01:36,230 --> 01:01:38,720 تعيين دبابيس لB2. 1384 01:01:38,720 --> 01:01:41,040 هنا الرسالة. 1385 01:01:41,040 --> 01:01:42,470 12، 11 - 1386 01:01:42,470 --> 01:01:46,000 -I صباحا في لقائي السر الأول. 1387 01:01:46,000 --> 01:01:49,440 -14، 11، 18، 16 - 1388 01:01:49,440 --> 01:01:51,700 كان بيير في الليلة صوتا عظيما. 1389 01:01:51,700 --> 01:01:54,890 ويمكنني أن أقول أن رسالة هذه الليلة كان مهم حقا. 1390 01:01:54,890 --> 01:01:56,750 -3، 25. 1391 01:01:56,750 --> 01:01:58,590 وهذه رسالة من آني نفسها. 1392 01:01:58,590 --> 01:01:59,840 تذكر، لا تخبر أحدا. 1393 01:02:04,570 --> 01:02:08,750 -90 ثانية في وقت لاحق، وأنا في الغرفة الوحيدة في المنزل حيث صبي من تسعة 1394 01:02:08,750 --> 01:02:12,980 يمكن أن يجلس في الخصوصية وفك شفرة. 1395 01:02:12,980 --> 01:02:17,130 آها، ذهب B. I إلى آخر. 1396 01:02:17,130 --> 01:02:20,330 E. الكلمة الأولى هو أن يكون. 1397 01:02:20,330 --> 01:02:22,670 وS. والقادمة الآن أكثر سهولة. 1398 01:02:22,670 --> 01:02:24,590 U. 1399 01:02:24,590 --> 01:02:26,510 أوه، هيا، Ralphie. 1400 01:02:26,510 --> 01:02:28,430 حصلت للذهاب. 1401 01:02:28,430 --> 01:02:30,350 I'll-صولا يكون، يا أماه. 1402 01:02:30,350 --> 01:02:33,720 جي الازيز-. 1403 01:02:33,720 --> 01:02:38,270 -T، O. تأكد من. 1404 01:02:38,270 --> 01:02:40,000 تأكد من ماذا؟ 1405 01:02:40,000 --> 01:02:42,105 ما كان ليتل آني اليتيم يحاول أن يقول؟ 1406 01:02:42,105 --> 01:02:43,095 تأكد من ماذا؟ 1407 01:02:43,095 --> 01:02:43,590 -Ralphie! 1408 01:02:43,590 --> 01:02:44,580 وقد حصلت راندي للذهاب. 1409 01:02:44,580 --> 01:02:45,570 سوف يخرج من فضلك؟ 1410 01:02:45,570 --> 01:02:46,560 حسنا،، يا أماه. 1411 01:02:46,560 --> 01:02:48,540 سوف أكون خارج الصحيح. 1412 01:02:48,540 --> 01:02:50,580 -I وتقترب الآن. 1413 01:02:50,580 --> 01:02:52,550 وكان التوتر رهيب. 1414 01:02:52,550 --> 01:02:53,355 ما كان ذلك؟ 1415 01:02:53,355 --> 01:02:56,315 قد مصير كوكب الأرض معلقة في الميزان. 1416 01:02:56,315 --> 01:02:56,790 -Ralphie! 1417 01:02:56,790 --> 01:02:59,165 حصل راندي للذهاب. 1418 01:02:59,165 --> 01:03:02,310 I'll-سيغيب الحق، ليبكي بصوت عال. 1419 01:03:02,310 --> 01:03:04,000 -جي، هناك تقريبا. 1420 01:03:04,000 --> 01:03:05,180 طار أصابعي. 1421 01:03:05,180 --> 01:03:07,150 كان ذهني فخ الصلب. 1422 01:03:07,150 --> 01:03:08,790 كل مسام صدي. 1423 01:03:08,790 --> 01:03:10,040 كان من الواضح تقريبا. 1424 01:03:10,040 --> 01:03:13,400 نعم، نعم، نعم، نعم. 1425 01:03:13,400 --> 01:03:18,960 مما لا شك فيه، أن يشرب فالتين الخاص بك. 1426 01:03:18,960 --> 01:03:20,210 فالتين؟ 1427 01:03:24,010 --> 01:03:25,260 A التجاري تافه؟ 1428 01:03:28,200 --> 01:03:29,640 ابن العاهرة. 1429 01:03:29,640 --> 01:03:33,340 [تشغيل الفيديو END] 1430 01:03:33,340 --> 01:03:36,040 >> DAVID J. مالان: حتى أنه يوجد لدينا التشفير. 1431 01:03:36,040 --> 01:03:39,670 فكيف في كمبيوتر نذهب حول تنفيذ أو 1432 01:03:39,670 --> 01:03:40,950 تمثل مثل هذه الامور؟ 1433 01:03:40,950 --> 01:03:44,430 حسنا، نحن بحاجة إلى وسيلة للتعبير عن أنفسنا قليلا أكثر مرونة من 1434 01:03:44,430 --> 01:03:46,420 المتغيرات لدينا حتى الآن سمحت. 1435 01:03:46,420 --> 01:03:47,370 لدينا رجات. 1436 01:03:47,370 --> 01:03:48,380 لدينا حرف. 1437 01:03:48,380 --> 01:03:50,790 لدينا العائمة والزوجي وعدد قليل من الآخرين. 1438 01:03:50,790 --> 01:03:55,050 ولكن تلك هي قطع من الذاكرة الفردية التي لا تسمح لنا حقا 1439 01:03:55,050 --> 01:03:58,010 التعبير عن أشياء مثل الكلمات والجمل والعبارات. 1440 01:03:58,010 --> 01:04:00,200 في الواقع، لقد دعونا هذه الأشياء السلاسل. 1441 01:04:00,200 --> 01:04:03,650 ولكن وعدنا أن هذا هو حقا مجرد التبسيط في CS50 1442 01:04:03,650 --> 01:04:07,020 مكتبة أننا تنوي قشر الظهر. 1443 01:04:07,020 --> 01:04:08,970 >> وذلك دعونا نبدأ على القيام بذلك هنا. 1444 01:04:08,970 --> 01:04:11,130 اسمحوا لي أن تمضي قدما وفتح ملف - 1445 01:04:11,130 --> 01:04:13,770 كل هذه الملفات متوفرة على الانترنت كما المعتاد - 1446 01:04:13,770 --> 01:04:19,120 دعا array.c من أجل حل مشكلة لا علاقة لها سلاسل ولكن أن يرسم 1447 01:04:19,120 --> 01:04:23,040 دعا صور من هنا كيف يمكننا استخدام شيء صفيف. 1448 01:04:23,040 --> 01:04:25,530 مجموعة هو نوع البيانات. 1449 01:04:25,530 --> 01:04:31,320 انها نوع من متغير، من نوع ما، لديها عدة أنواع أصغر البيانات 1450 01:04:31,320 --> 01:04:34,150 داخل منه العودة إلى الوراء إلى العودة إلى الوراء. 1451 01:04:34,150 --> 01:04:37,700 هكذا على سبيل المثال، إذا كنا نريد أن كتابة برنامج القليل الذي يتيح لك الخاص 1452 01:04:37,700 --> 01:04:42,110 مسابقة المتوسط ​​لدورة ال 50 التي مثل اثنين من الاختبارات، هل يمكن بسهولة جدا 1453 01:04:42,110 --> 01:04:45,170 أكتب هذا البرنامج - يستند حتى على بعض المواد الأسبوع الماضي - 1454 01:04:45,170 --> 01:04:47,770 باستخدام GetInt واثنين من المتغيرات. 1455 01:04:47,770 --> 01:04:51,920 الباحث quiz1، وكثافة العمليات quiz2، وانها جميلة واضحة. 1456 01:04:51,920 --> 01:04:55,930 انها ربما 10، 20 أسطر من التعليمات البرمجية، ماكس، لتنفيذ البرنامج الذي يطلب من 1457 01:04:55,930 --> 01:05:01,170 المستخدم لعشرات مسابقة اثنين وثم يحسب متوسط ​​عن طريق إضافتها 1458 01:05:01,170 --> 01:05:03,850 معا، وتقسيم من قبل اثنين من ثم طباعة النتائج. 1459 01:05:03,850 --> 01:05:06,380 ربما يمكن أن نفعل ذلك بسهولة جدا الآن بعد 1460 01:05:06,380 --> 01:05:07,510 بعض عدد الدقائق. 1461 01:05:07,510 --> 01:05:11,005 >> ولكن المشكلة هي أن نفترض أن 50 كان ثلاثة أو أربعة اختبارات. 1462 01:05:11,005 --> 01:05:13,510 افترض أنك تريد استخدام نفس البرنامج لفئة التي لديها 1463 01:05:13,510 --> 01:05:14,850 مسابقات أسبوعية. 1464 01:05:14,850 --> 01:05:16,610 التفكير في الفئة التي والمسابقات الأسبوعية. 1465 01:05:16,610 --> 01:05:20,610 إذا كان هناك مثل 16 أو حتى أسابيع في الفصل الدراسي، والآن لديك 16 المتغيرات - 1466 01:05:20,610 --> 01:05:24,270 الباحث quiz1، وكثافة العمليات quiz2، وكثافة العمليات quiz3، وكثافة العمليات quiz4. 1467 01:05:24,270 --> 01:05:27,560 بمجرد البدء في رؤية هذا التكرار، وهذا النسخ واللصق 1468 01:05:27,560 --> 01:05:31,390 من التعليمات البرمجية، يجب أن تبدأ لجعل لكم أتمنى كان هناك طريقة أفضل. 1469 01:05:31,390 --> 01:05:33,930 ولله الحمد، وذلك بسبب صفائف، هناك. 1470 01:05:33,930 --> 01:05:34,980 لذلك دعونا نفعل ذلك. 1471 01:05:34,980 --> 01:05:38,430 أولا، اسمحوا لي أن أعرض شيء بسيط جدا أن لدينا لا تستخدم حتى الآن، 1472 01:05:38,430 --> 01:05:40,140 ولكن سترى من حين لآخر في التعليمات البرمجية. 1473 01:05:40,140 --> 01:05:42,360 هذا هو ما يسمى عموما ثابت. 1474 01:05:42,360 --> 01:05:45,790 لذلك فمن ثابت، بمعنى أن هذه القيمة لم تتغير. 1475 01:05:45,790 --> 01:05:49,210 اتفاقية الإنسان عند إنشاء ثابت هو استخدام كل رأس المال 1476 01:05:49,210 --> 01:05:51,940 الرسائل، فقط بحيث يقف حقا في التعليمات البرمجية. 1477 01:05:51,940 --> 01:05:55,960 والكلمة الخاصة التي تستخدمها في C # تعريف و. 1478 01:05:55,960 --> 01:06:00,250 حتى إذا كنت أقول # تعريف، ثم مسافة، ثم الكلمة التي تريد استخدامها لل 1479 01:06:00,250 --> 01:06:03,260 ثابت اسم، ومن ثم قيمة ثابتة. 1480 01:06:03,260 --> 01:06:06,180 حتى إشعار، وهذا يختلف عن تعيين شيء إلى متغير. 1481 01:06:06,180 --> 01:06:07,020 ليس هناك علامة التساوي. 1482 01:06:07,020 --> 01:06:08,240 ليس هناك فاصلة منقوطة. 1483 01:06:08,240 --> 01:06:11,410 هذا هو ما يعرف عموما بأنه توجيه المعالج، ولكن أكثر على 1484 01:06:11,410 --> 01:06:12,210 أن وقت آخر. 1485 01:06:12,210 --> 01:06:18,540 >> في الوقت الراهن، وهذا يخلق قيمة ثابتة تسمى مسابقات الفعلية التي 1486 01:06:18,540 --> 01:06:19,940 قيمة رقمية هو 2. 1487 01:06:19,940 --> 01:06:24,020 في أي مكان حتى ترى مسابقات، مسابقات، مسابقات في جميع أنحاء هذا الملف، وهذا 1488 01:06:24,020 --> 01:06:25,410 مجرد رقم 2. 1489 01:06:25,410 --> 01:06:28,100 الآن، إذا كنت ننظر الرئيسي الآن، دعونا نرى كيف يعمل هذا. 1490 01:06:28,100 --> 01:06:29,500 في البداية، يبدو قليلا خفي. 1491 01:06:29,500 --> 01:06:31,340 ولكن كل شيء من الاشياء أسبوع واحد. 1492 01:06:31,340 --> 01:06:32,710 تطلب من المستخدم للصفوف. 1493 01:06:32,710 --> 01:06:33,630 كيف نفعل ذلك؟ 1494 01:06:33,630 --> 01:06:35,470 حسنا، في السطر 22 - 1495 01:06:35,470 --> 01:06:37,210 هذا هو حقا جزء العصير - 1496 01:06:37,210 --> 01:06:40,960 أعلن عدد عشري، ولكن ليس مجرد تعويم واحدة. 1497 01:06:40,960 --> 01:06:44,620 أنا يعلن، بدلا من ذلك، مجموعة من القيم النقطة العائمة. 1498 01:06:44,620 --> 01:06:49,100 هذا المتغير سوف يتم استدعاؤها الدرجات، وضمنا هنا. 1499 01:06:49,100 --> 01:06:53,080 لكن قطعة فقط من جملة الجديدة ثم هذه الأقواس المربعة، والحقيقة 1500 01:06:53,080 --> 01:06:59,350 أن قلت الدرجات تعويم ثم قوس فتح ثم رقم. 1501 01:06:59,350 --> 01:07:02,460 إشعار، إذا كان هذا هو ثابت، وهذا هو تماما مثل فعلنا هذا. 1502 01:07:02,460 --> 01:07:06,890 يعني يا الكمبيوتر، وإعطاء لي اثنين من العوامات، ودعونا ندعو بشكل جماعي 1503 01:07:06,890 --> 01:07:08,220 لهم الدرجات. 1504 01:07:08,220 --> 01:07:11,920 هذا هو على النقيض من عملية شاقة أكثر مثل هذا. 1505 01:07:11,920 --> 01:07:15,850 تطفو grade1، تطفو grade2، وهكذا دواليك. 1506 01:07:15,850 --> 01:07:20,010 حتى مجموعة يسمح لنا لتنفيذ هذه الفكرة ولكن أقل بكثير بقذارة، في 1507 01:07:20,010 --> 01:07:24,630 مثل هذه الطريقة التي يمكننا كتابة سطر واحد من التعليمات البرمجية بدلا من، يقول، 16 لمن 16 1508 01:07:24,630 --> 01:07:25,740 الأسبوع فصل دراسي. 1509 01:07:25,740 --> 01:07:29,950 لذلك لم أكن أريد أن يصعب الكود 2 لأنه إذا كنت تفكر في هذا الآن 1510 01:07:29,950 --> 01:07:34,160 منطقيا - لنفترض العام المقبل CS50 التغييرات إلى 3 مسابقات بدلا من ذلك. 1511 01:07:34,160 --> 01:07:35,510 وكان لي رقم 2 هنا. 1512 01:07:35,510 --> 01:07:36,600 كان لي هنا رقم 2. 1513 01:07:36,600 --> 01:07:37,580 كان لي هنا رقم 2. 1514 01:07:37,580 --> 01:07:38,560 كان لي هنا رقم 2. 1515 01:07:38,560 --> 01:07:43,180 يصبح مملا جدا وسهلة جدا لالمسمار وتغيير بطريق الخطأ 1516 01:07:43,180 --> 01:07:47,690 قيمة واحدة إلى 3 وفقدان بعض قيمة أخرى من 2. 1517 01:07:47,690 --> 01:07:52,460 لذلك أنا ذاهب الى مجردة بعيدا وهذا بدلا استخدام هذا الثابت أنه، كما في 1518 01:07:52,460 --> 01:07:54,120 يوحي اسمها، لم يتغير. 1519 01:07:54,120 --> 01:07:57,710 والآن، بغض النظر عن ما إذا كان لدينا مختلف المسابقات هذا العام أو العام المقبل، I 1520 01:07:57,710 --> 01:08:01,210 فقط لتغييره في مكان واحد، حتى هنا في الأعلى. 1521 01:08:01,210 --> 01:08:02,720 >> ذلك أن كل الثابت هو. 1522 01:08:02,720 --> 01:08:08,680 وفي الوقت نفسه، ميزة مفاهيمي جديد هو أن من صفيف. 1523 01:08:08,680 --> 01:08:14,660 لذلك بين قوسين معقوفين تعطيني هذه العوامات كثيرة ويتيح لي بشكل جماعي 1524 01:08:14,660 --> 01:08:16,630 ندعو لهم الدرجات هنا. 1525 01:08:16,630 --> 01:08:17,990 حتى الآن دعونا نرى ما انا ذاهب الى القيام به. 1526 01:08:17,990 --> 01:08:20,359 هنا في السطر 24 هو بداية لحلقة. 1527 01:08:20,359 --> 01:08:22,260 هذا هو حقا يتوهم شيئا. 1528 01:08:22,260 --> 01:08:25,060 انها مجرد استخدام الاختبارات بدلا من رقم الثابت تلوينها. 1529 01:08:25,060 --> 01:08:27,790 ولكن لا يوجد شيء مختلف فكريا هناك من الأسبوع الماضي. 1530 01:08:27,790 --> 01:08:29,040 هذا هو printf فقط. 1531 01:08:29,040 --> 01:08:35,490 حتى printf ("٪ عدد من مسابقة د د٪") لأنني أريد فقط أن تعطيني طباعة مسابقة 1532 01:08:35,490 --> 01:08:38,050 رقم واحد من اثنين ثم اثنين من اثنين. 1533 01:08:38,050 --> 01:08:39,850 لذلك هذا هو محض شيء الجمالية. 1534 01:08:39,850 --> 01:08:42,500 ولكن الجزء المثير للاهتمام هو الآن في خط 27. 1535 01:08:42,500 --> 01:08:48,310 من أجل سد في واحدة من اثنين مع النائبة نقطة عائمة 1536 01:08:48,310 --> 01:08:51,029 القيمة، يمكنك استخدام مرة أخرى بين قوسين معقوفين. 1537 01:08:51,029 --> 01:08:55,620 في هذه الحالة، أنا باستخدام ط لأن هذا لحلقة بدأت مع ط يعادل 1538 01:08:55,620 --> 01:08:57,560 ما قيمة، على ما يبدو؟ 1539 01:08:57,560 --> 01:08:58,279 0. 1540 01:08:58,279 --> 01:09:01,350 >> إلى ذلك التكرار الأول من هذه الحلقة، وكأن I 1541 01:09:01,350 --> 01:09:02,689 كتبت هذا في التعليمات البرمجية. 1542 01:09:02,689 --> 01:09:05,580 ولكن على التكرار الثاني من هذه الحلقة، وكأن I 1543 01:09:05,580 --> 01:09:07,750 كتبت هذا في قانون بلدي. 1544 01:09:07,750 --> 01:09:10,750 ولكن الحقيقة أن أنا باستخدام متغير على ما يرام، لأنه كاسم 1545 01:09:10,750 --> 01:09:14,300 يوحي، انها متفاوتة القيمة على كل التكرار. 1546 01:09:14,300 --> 01:09:17,370 لذلك أنا ملء هذه المجموعة بقعة واحدة في كل مرة. 1547 01:09:17,370 --> 01:09:18,910 ماذا تبدو مثل هذه المجموعة؟ 1548 01:09:18,910 --> 01:09:21,430 حسنا، والسبب وجهت هذا المستطيل سوبر بسيطة على الشاشة هنا 1549 01:09:21,430 --> 01:09:23,350 كان قبل لهذا السبب. 1550 01:09:23,350 --> 01:09:27,279 مجموعة هو مجرد جزء من الذاكرة يليه آخر قطعة من الذاكرة، 1551 01:09:27,279 --> 01:09:30,109 يليه آخر قطعة من الذاكرة، وهكذا دواليك. 1552 01:09:30,109 --> 01:09:35,260 حتى إذا مجموعة من بلدي هو حجم 2، في هذه الحالة هنا، وأود أن كل ما تقوم به من 1553 01:09:35,260 --> 01:09:37,590 الكتابة في اختبار عشرات بلدي، أحب هنا. 1554 01:09:37,590 --> 01:09:39,430 حصلت 100 على هذا واحد. 1555 01:09:39,430 --> 01:09:42,020 وبعد ذلك حصلت على 99 على هذا واحد. 1556 01:09:42,020 --> 01:09:46,040 قد لا ثم هذه الذاكرة حتى أن تستخدم لأنني طلبت فقط 1557 01:09:46,040 --> 01:09:48,689 كمبيوتر لمجموعة من حجم 2. 1558 01:09:48,689 --> 01:09:50,180 تلك الساحات لا تزال هناك. 1559 01:09:50,180 --> 01:09:50,340 أليس كذلك؟ 1560 01:09:50,340 --> 01:09:52,500 لا يزال لديك اثنين غيغا بايت من ذاكرة الوصول العشوائي، حتى لو كنت فقط 1561 01:09:52,500 --> 01:09:53,979 يسأل لمدة يطفو. 1562 01:09:53,979 --> 01:09:58,710 وبالتالي فإن الفكرة وراء صفائف هو أن الكمبيوتر لا يستغرق سوى قطعة من الذاكرة 1563 01:09:58,710 --> 01:10:03,230 ويقسم أجزاء أصغر ثم العودة إلى الوراء إلى العودة إلى الوراء. 1564 01:10:03,230 --> 01:10:04,740 وهكذا هذا كل مجموعة هو. 1565 01:10:04,740 --> 01:10:09,080 انها قطعة متجاورة من الذاكرة، من داخل والتي يمكنك وضع الأمور. 1566 01:10:09,080 --> 01:10:12,400 >> الآن هذا يحدث لثم القيام ببعض العمليات الحسابية فقط مملة. 1567 01:10:12,400 --> 01:10:16,170 إذا كنت انتقل لأسفل هنا، وهذا هو المكان الذي أعاد ثم أكثر من الصفيف. 1568 01:10:16,170 --> 01:10:19,410 I الخروج مع الجمع من كافة القيم في الصفيف. 1569 01:10:19,410 --> 01:10:22,390 وبعد ذلك استخدم الدالة هنا للقيام الجولة في الواقع 1570 01:10:22,390 --> 01:10:23,940 خلاصة القول مقسوما المسابقات. 1571 01:10:23,940 --> 01:10:27,450 ولكن اسمحوا لي أن موجة يدي في ذلك النوع من الحسابات ويكفي في الوقت الراهن. 1572 01:10:27,450 --> 01:10:30,010 ولكن كل ذلك يفعل بالنسبة لي في نهاية المطاف يتم حساب متوسط. 1573 01:10:30,010 --> 01:10:33,640 أولا حتى زائد مسابقة مسابقة الثانية، مقسوما على 2، ثم الطباعة 1574 01:10:33,640 --> 01:10:34,700 من ذلك باعتباره الباحث. 1575 01:10:34,700 --> 01:10:39,030 >> ولكن دعونا الآن الانتقال إلى مثال آخر يسمى string1، 1576 01:10:39,030 --> 01:10:42,370 الذي يرسم صورة مماثلة ولكن باستخدام السلاسل. 1577 01:10:42,370 --> 01:10:45,550 اسمحوا لي أن تمضي قدما وتبسيط هذه لحظة فقط. 1578 01:10:45,550 --> 01:10:48,340 ويغفر المسافة البادئة في الوقت الراهن. 1579 01:10:48,340 --> 01:10:52,280 إشعار في خط 19 من هذا المثال، يمكنني الحصول على سلسلة من المستخدم. 1580 01:10:52,280 --> 01:10:55,780 ولكن لاحظ ما أفعله المقبل في خطوط 22 فصاعدا. 1581 01:10:55,780 --> 01:11:00,260 أنا في الواقع بالتكرار من أنا حتى - وهذا هو خدعة جديدة - 1582 01:11:00,260 --> 01:11:02,730 التوابع strlen طول السلسلة. 1583 01:11:02,730 --> 01:11:07,010 هذه هي وظيفة الذي يأتي مع C أنه إذا كنت تمر عليه سلسلة، فإنه يقول 1584 01:11:07,010 --> 01:11:08,950 لكم كم حرف في هذه السلسلة. 1585 01:11:08,950 --> 01:11:09,440 هذا كل شيء. 1586 01:11:09,440 --> 01:11:12,520 حقيقة أنه من التوابع strlen بدلا من طول السلسلة لمجرد انها 1587 01:11:12,520 --> 01:11:13,040 أكثر اقتضابا. 1588 01:11:13,040 --> 01:11:17,100 قبل 30 عاما، يحب الناس أن يكتب الأشياء كما بإيجاز قدر الإمكان. 1589 01:11:17,100 --> 01:11:19,080 حتى لقد أبقينا تلك الاتفاقية هنا. 1590 01:11:19,080 --> 01:11:21,730 ط + + يعني فقط زيادة في كل تكرار ط. 1591 01:11:21,730 --> 01:11:24,310 وتلاحظ الآن هذه، والتي هي مثيرة للاهتمام حقا. 1592 01:11:24,310 --> 01:11:28,730 حتى في خط 24، أقول الكمبيوتر، أعطني حرف، وثمانية 1593 01:11:28,730 --> 01:11:30,770 بت، والذي يطلق عليه ج. 1594 01:11:30,770 --> 01:11:35,370 ولكن ما هو هذا على الجانب الأيمن تقول؟ 1595 01:11:35,370 --> 01:11:38,150 في اللغة الإنجليزية، ماذا تمثل؟ 1596 01:11:38,150 --> 01:11:40,070 [غير مسموع] 1597 01:11:40,070 --> 01:11:40,490 DAVID J. مالان: بالضبط. 1598 01:11:40,490 --> 01:11:42,390 أعطني الحرف الأول في الصفيف. 1599 01:11:42,390 --> 01:11:45,400 أو أكثر عموما، أعطني الطابع ال I-في الصفيف. 1600 01:11:45,400 --> 01:11:48,230 وندرك أنه من المهم الآن أن وعلماء الكمبيوتر، ونحن في الواقع 1601 01:11:48,230 --> 01:11:49,330 العد من 0. 1602 01:11:49,330 --> 01:11:51,290 لم يكن لديك حرية التصرف الآن لبدء القيام بذلك. 1603 01:11:51,290 --> 01:11:54,580 الآن عليك أن تتصرف وفقا للتوقعات للكمبيوتر و 1604 01:11:54,580 --> 01:11:58,010 عد من الصفر لأن [0] سوف تكون أول 1605 01:11:58,010 --> 01:11:59,670 حرف في السلسلة. 1606 01:11:59,670 --> 01:12:01,320 [1] ستكون الثانية. 1607 01:12:01,320 --> 01:12:03,610 [2] ستكون ثالث، وهكذا دواليك. 1608 01:12:03,610 --> 01:12:08,840 لذلك هذا البرنامج، إذا كنت ترجمة عليه - وهذا هو، مرة أخرى، string1. 1609 01:12:08,840 --> 01:12:11,040 >> لذلك string1. 1610 01:12:11,040 --> 01:12:16,730 وأنا الآن في تشغيل string1 إطار المحطة الطرفية بلدي. 1611 01:12:16,730 --> 01:12:19,180 انها تنتظر الإدخال، لذلك أنا ذاهب لكتابة، ويقول ديفيد. 1612 01:12:19,180 --> 01:12:20,080 دخول. 1613 01:12:20,080 --> 01:12:23,350 والآن فإنه يطبع كل DAVID على خطوط مختلفة بسبب 1614 01:12:23,350 --> 01:12:24,430 تلاحظ ما أفعله. 1615 01:12:24,430 --> 01:12:27,510 أنا طباعة حرف واحد في كل مرة. 1616 01:12:27,510 --> 01:12:29,100 الآن فإننا لن أخوض في التفاصيل على هذا اليوم. 1617 01:12:29,100 --> 01:12:31,610 لكنني قبل لحظة حذف هذا الاختيار هنا. 1618 01:12:31,610 --> 01:12:36,310 تبين أنه إذا كان المستخدم الفاسقة، الخصومة، أو مجرد 1619 01:12:36,310 --> 01:12:41,780 الخلط، يمكنك تفشل في الواقع لإعطاء سلسلة من بعض الطول. 1620 01:12:41,780 --> 01:12:43,640 إذا كنت أصاب مفتاح خاطئ على لوحة المفاتيح، قد تعطي 1621 01:12:43,640 --> 01:12:44,390 لا سلسلة على الإطلاق. 1622 01:12:44,390 --> 01:12:47,790 أو إذا كنت الخبيثة، قد حاولت لصق في لوحات GIGABYTE الرئيسية تستحق من 1623 01:12:47,790 --> 01:12:49,380 مقال لملء هذه السلسلة. 1624 01:12:49,380 --> 01:12:52,060 وإذا كان الكمبيوتر نفدت الذاكرة، فإنه يتحول إلى أننا في طريقنا 1625 01:12:52,060 --> 01:12:54,310 للحصول على هذه القيمة مرة أخرى خاصة تسمى فارغة. 1626 01:12:54,310 --> 01:12:57,550 حتى الآن، أعرف فقط أن هناك قيمة خاصة تسمى هذه اغية أن 1627 01:12:57,550 --> 01:13:01,000 وسوف تسمح لنا للتحقق عندما نكون خارج الذاكرة، من بين أمور أخرى. 1628 01:13:01,000 --> 01:13:07,330 >> ولكن إذا كنت تفتح الآن string2، لاحظ فارق واحد هنا. 1629 01:13:07,330 --> 01:13:09,760 تلاحظ واحد مع الفرق هنا string2. 1630 01:13:09,760 --> 01:13:13,260 مع string2، وهذا هو لحلقة مختلفة قليلا. 1631 01:13:13,260 --> 01:13:16,350 اسمحوا لي أن حذف بالقيم الخالية حتى نتمكن من الحديث عن تلك وقت آخر. 1632 01:13:16,350 --> 01:13:18,460 ولكن ما هو مختلف عن لحلقة هذا الوقت؟ 1633 01:13:21,580 --> 01:13:23,160 ويمكن أن أعود إلى المثال السابق. 1634 01:13:23,160 --> 01:13:24,800 ولهذا الإصدار اثنين. 1635 01:13:24,800 --> 01:13:27,020 هذا هو الإصدار واحد. 1636 01:13:27,020 --> 01:13:31,935 واحد، اثنان، واحد اثنان. 1637 01:13:35,030 --> 01:13:38,240 وبالتالي فإن الدعوة التوابع strlen هو أين؟ 1638 01:13:38,240 --> 01:13:40,420 انها في الجزء الأول من حلقة ل. 1639 01:13:40,420 --> 01:13:43,060 أي أفكار لماذا أنا أفعل ذلك؟ 1640 01:13:43,060 --> 01:13:43,690 نعم. 1641 01:13:43,690 --> 01:13:46,010 [غير مسموع] 1642 01:13:46,010 --> 01:13:47,630 DAVID J. مالان: لذلك نحن لا استدعاء الدالة في كل مرة واحدة. 1643 01:13:47,630 --> 01:13:48,040 بالضبط. 1644 01:13:48,040 --> 01:13:50,350 أذكر من الحلقات لانهم بسيطة السوبر مرة واحدة كنت نوع من 1645 01:13:50,350 --> 01:13:52,180 نفهم أن هذا هو التهيئة، 1646 01:13:52,180 --> 01:13:53,330 الشرط، والتحديث. 1647 01:13:53,330 --> 01:13:55,430 المشكلة هي أن حالة يحدث على كل 1648 01:13:55,430 --> 01:13:56,600 التكرار من الحلقة. 1649 01:13:56,600 --> 01:13:59,930 وحتى في هذا المثال هنا، ما هو سيئ عن حقيقة 1650 01:13:59,930 --> 01:14:03,500 أن هذا هو وضعي؟ 1651 01:14:03,500 --> 01:14:05,920 انت تدعو التوابع strlen مرارا وتكرارا وتكرارا. 1652 01:14:05,920 --> 01:14:08,990 ولكن بمجرد لقد كتبته في DAVID، وطول هذه السلسلة هو خمسة. 1653 01:14:08,990 --> 01:14:11,560 وانها لن تتغير على كل التكرار من الحلقة لأن 1654 01:14:11,560 --> 01:14:15,560 سلسلة لا يزال D-A-V-I-D. لذلك هذا هو تلميح على ما يحدث لتصبح 1655 01:14:15,560 --> 01:14:19,650 أهمية متزايدة فكرة المعروف باسم قرار تصميم، حيث - لا فقط 1656 01:14:19,650 --> 01:14:21,640 جعل الكمبيوتر القيام بعمل لا لزوم لها. 1657 01:14:21,640 --> 01:14:25,630 >> كما هو الحال الآن مجرد معاينة التسلل من pset 2، pset 2 في طبعة هو معيار 1658 01:14:25,630 --> 01:14:28,850 سوف تحد لكم لتنفيذ عدد من الواقع بعض الأصفار، بعض 1659 01:14:28,850 --> 01:14:32,650 عدد من خوارزميات التشفير، بحيث يمكنك على حد سواء تشفير وفك تشفير 1660 01:14:32,650 --> 01:14:35,530 رسائل سرية، مثل الكثير من Ralphie 1 فك الشفرة هناك. 1661 01:14:35,530 --> 01:14:38,720 في طبعة من القراصنة pset 2، ونحن في طريقنا للذهاب أبعد قليلا. 1662 01:14:38,720 --> 01:14:42,010 ونحن في طريقنا لتسليم لكم ملف من نظام الكمبيوتر الفعلي الذي يحتوي على 1663 01:14:42,010 --> 01:14:45,690 كلها مجموعة من أسماء المستخدمين وكلمات السر المشفرة الفعلية، والتحدي 1664 01:14:45,690 --> 01:14:49,110 للطبعة القراصنة ستكون للقضاء تلك كلمات السر والرقم 1665 01:14:49,110 --> 01:14:53,060 ما سر التشفير أو ما تم استخدامه لفي الواقع 1666 01:14:53,060 --> 01:14:55,080 توليد كلمات المرور تلك. 1667 01:14:55,080 --> 01:14:58,360 ونحن في طريقنا للقيام بذلك عن طريق استخدام ميزة جديدة من هنا C التي سأعطيك 1668 01:14:58,360 --> 01:15:02,200 كنت مجرد عرض لل، والمعروفة باسم وسائط سطر الأوامر. 1669 01:15:02,200 --> 01:15:05,930 >> لذلك تبين، كما البعض منكم قد شهدت في القسم أو في الكتب المدرسية، 1670 01:15:05,930 --> 01:15:09,850 الرئيسية ليس لديها دائما أن يكون الفراغ بين قوسين. 1671 01:15:09,850 --> 01:15:14,060 تبين أنه يمكن أيضا أن تكون مكتوبة الرئيسي من هذا القبيل، مع اثنين من الحجج، 1672 01:15:14,060 --> 01:15:19,690 argc argv و، حيث argc هو عدد الكلمات التي تكتبها بعد 1673 01:15:19,690 --> 01:15:21,940 اسم البرنامج على سطر الأوامر الخاص بك. 1674 01:15:21,940 --> 01:15:24,550 وargv هو عبارة الفعلية. 1675 01:15:24,550 --> 01:15:29,470 وكما تشير الأقواس المربعة هناك، على ما يبدو argv صفيف. 1676 01:15:29,470 --> 01:15:33,720 انها سوف تكون سلسلة بعد سلسلة بعد سلسلة في الذاكرة. 1677 01:15:33,720 --> 01:15:36,170 فما نحن في طريقنا لتكون قادرة على القيام به، بدءا pset 2، 1678 01:15:36,170 --> 01:15:37,310 شيء مثل هذا. 1679 01:15:37,310 --> 01:15:42,450 إذا قمت بعمل argv1، الذي هو مثال سنعود إلى يوم الاثنين، وتشغيل 1680 01:15:42,450 --> 01:15:45,180 ذلك، لاحظ أنه لا يبدو أن تفعل أي شيء حتى الآن. 1681 01:15:45,180 --> 01:15:47,050 فإنه يطبع للتو باسمه. 1682 01:15:47,050 --> 01:15:53,220 ولكن إذا قلت وداعا الطبقة، لاحظ أن هذا البرنامج يبدو بالتكرار 1683 01:15:53,220 --> 01:15:57,030 على كل من الكلمات التي تم كتابتها في موجه. 1684 01:15:57,030 --> 01:16:02,050 والوسيلة التي سوف وصول إلى كلمات أن المستخدم لديه 1685 01:16:02,050 --> 01:16:06,780 كتبته في موجه هو من خلال تغيير الرئيسية، ابتداء من هذا الأسبوع، من كثافة العمليات 1686 01:16:06,780 --> 01:16:10,710 الرئيسية (الفراغ) إلى الباحث الرئيسي (argc، argv). 1687 01:16:10,710 --> 01:16:13,700 وسوف تكون ولدت هكذا سائط سطر الأوامر. 1688 01:16:13,700 --> 01:16:17,210 وبمجرد الحصول متطورة حقا في هذا، عليك أن تكون قادرا على الكتابة 1689 01:16:17,210 --> 01:16:21,370 trippy حقا البرامج، مثل هذا واحد هنا، والتي يذهب يتجاوز 1690 01:16:21,370 --> 01:16:25,520 بعض وظائف فعلناه حتى الآن ولكن كل قوية جدا. 1691 01:16:25,520 --> 01:16:27,330 >> وهكذا لن نترك هذا مع هذا على الشاشة. 1692 01:16:27,330 --> 01:16:29,160 وسوف نرى لك يوم الاثنين.