1 00:00:00,000 --> 00:00:00,487 2 00:00:00,487 --> 00:00:11,210 >> [عزف الموسيقى] 3 00:00:11,210 --> 00:00:12,100 >> ROB BODEN: حسنا. 4 00:00:12,100 --> 00:00:15,620 لذلك، أول شيء أول من الفيديو من وجها مألوفا. 5 00:00:15,620 --> 00:00:22,080 6 00:00:22,080 --> 00:00:22,560 >> [تشغيل الفيديو] 7 00:00:22,560 --> 00:00:23,370 >> حسنا. 8 00:00:23,370 --> 00:00:27,150 هذا هو CS50، وهذا هو بداية ثلاثة أسابيع. 9 00:00:27,150 --> 00:00:29,980 أنا آسف لأني لا يمكن أن يكون هناك معكم اليوم، ولكن اسمحوا لي أن أعرض 10 00:00:29,980 --> 00:00:32,880 الخاصة روب بودن CS50 ل. 11 00:00:32,880 --> 00:00:33,872 >> [END تشغيل الفيديو] 12 00:00:33,872 --> 00:00:39,340 >> [تصفيق وهتافات] 13 00:00:39,340 --> 00:00:41,277 >> ROB BODEN: إن أفلامه في هذا الفيديو هو رائع. 14 00:00:41,277 --> 00:00:47,280 15 00:00:47,280 --> 00:00:47,770 حسنا. 16 00:00:47,770 --> 00:00:50,960 لذلك الأولى، وهناك وجبة غداء أخرى. 17 00:00:50,960 --> 00:00:52,330 انها غدا في الساعة 1:15. 18 00:00:52,330 --> 00:00:54,480 ليس هناك غداء يوم الجمعة. 19 00:00:54,480 --> 00:00:55,810 هذا هو الحال مع قرة. 20 00:00:55,810 --> 00:01:00,190 وهذا تومي ليس هنا حتى الآن، ولكن واحدة من الشعب هناك CF الرئيس السابق، 21 00:01:00,190 --> 00:01:01,530 تومي ب McWilliam. 22 00:01:01,530 --> 00:01:02,730 ذلك انه رجل المتعة. 23 00:01:02,730 --> 00:01:04,819 يجب أن تأتي. 24 00:01:04,819 --> 00:01:05,900 >> حسنا. 25 00:01:05,900 --> 00:01:11,360 حتى الأسبوع الماضي، بدأنا تفكك حول ما هو سلسلة حقا. 26 00:01:11,360 --> 00:01:14,830 لقد عرفنا منذ البداية أن انها سلسلة من الأحرف. 27 00:01:14,830 --> 00:01:18,130 لكن في الاسبوع الماضي، ونحن يفتش حقيقة أن ما هو في الحقيقة سلسلة من 28 00:01:18,130 --> 00:01:22,110 الشخصيات، حسنا، لدينا الآن صفائف حرفا. 29 00:01:22,110 --> 00:01:26,450 ونحن نعلم أن سلسلة، انها مجموعة من الشخصيات، في النهاية، 30 00:01:26,450 --> 00:01:30,920 لدينا هذا بايت فارغة خاصة، وهذا مائل 0، الذي يشير إلى نهاية 31 00:01:30,920 --> 00:01:32,230 السلسلة. 32 00:01:32,230 --> 00:01:36,970 >> وهكذا سلسلة عبارة عن صفيف حرفا، لكننا يمكن أن يكون أكثر من 33 00:01:36,970 --> 00:01:39,530 مجرد مجموعة من الحروف، فإننا يمكن أن يكون أي مجموعة من 34 00:01:39,530 --> 00:01:40,890 نوع من شيء نريده. 35 00:01:40,890 --> 00:01:51,570 لذلك، إذا كنت تذكر من الأسبوع الماضي، و برنامج الأعمار التي قدم ديفيد 36 00:01:51,570 --> 00:01:53,560 بسرعة حقا. 37 00:01:53,560 --> 00:01:57,010 أولا حتى شيء نحن ذاهبون الى القيام به هو يطلب من المستخدم لعدد صحيح، و 38 00:01:57,010 --> 00:01:58,800 عدد الأشخاص في الغرفة. 39 00:01:58,800 --> 00:02:01,260 مرة واحدة لدينا أن عدد صحيح، نحن معلنا صفيف. 40 00:02:01,260 --> 00:02:02,890 تلاحظ هذه الجملة قوس. 41 00:02:02,890 --> 00:02:04,540 وأنت تسير لتعتاد على ذلك. 42 00:02:04,540 --> 00:02:09,430 >> لذلك نحن تصرح عن مصفوفة من الأعداد الصحيحة دعا الأعمار، وهناك ن 43 00:02:09,430 --> 00:02:12,080 أعداد صحيحة في هذه المجموعة. 44 00:02:12,080 --> 00:02:16,480 لذلك هذا النمط الحق هنا، وهذا 4 الباحث ط يساوي 0، ط أقل من ن، ط زائد 45 00:02:16,480 --> 00:02:20,580 بالاضافة الى ذلك، أن يجري أيضا أن يكون نمط أن تعتاد جدا. 46 00:02:20,580 --> 00:02:24,000 لأن هذا هو الى حد كبير كيف كنت دائما ما يكرر أكثر من المصفوفات. 47 00:02:24,000 --> 00:02:26,330 حتى أن نتذكر أن n هو طول مجموعة لدينا. 48 00:02:26,330 --> 00:02:32,120 وحتى هنا، نطالب مرارا وتكرارا بالنسبة لعمر الشخص وأنا في الغرفة. 49 00:02:32,120 --> 00:02:36,640 >> بعد هذا، نذهب إلى أسفل، وأيا كانت السبب التعسفي، ونحن بعد ذلك 50 00:02:36,640 --> 00:02:40,220 طباعة كيف انهم ذاهبون القديمة ليكون بعد عام من الآن. 51 00:02:40,220 --> 00:02:49,980 وتشغيل هذا البرنامج، دعونا جعل الأعمار، دوت مائل الأعمار. 52 00:02:49,980 --> 00:02:53,010 لذلك عدد الأشخاص في الغرفة، دعنا نقول أن هناك ثلاثة. 53 00:02:53,010 --> 00:02:59,880 ويقول: الشخص الأول هو 13، هو 26 المقبل، وآخر هو 30. 54 00:02:59,880 --> 00:03:05,080 حتى ذلك الحين انها سوف تكرار عبر هؤلاء الثلاثة الناس، وطباعة 14، 27، و 31. 55 00:03:05,080 --> 00:03:16,060 >> حتى أن نتذكر أنه عندما نعلن ل مجموعة من حجم ن، المؤشرات في هذا 56 00:03:16,060 --> 00:03:19,950 مجموعة، مجموعة لديها قيم و مؤشرات 0، 1، 2، على طول الطريق 57 00:03:19,950 --> 00:03:21,680 يصل إلى n ناقص 1. 58 00:03:21,680 --> 00:03:26,255 وذلك عندما قال كنا هناك ثلاثة أشخاص في الغرفة، ونضع هنا 59 00:03:26,255 --> 00:03:29,850 التكرار الأول من خلال هذا حلقة، وأنا سوف يكون 0. 60 00:03:29,850 --> 00:03:31,650 وذلك في مؤشر 0. 61 00:03:31,650 --> 00:03:34,540 نحن تعيين أول العمر يدخل المستخدم. 62 00:03:34,540 --> 00:03:38,870 ثم في المرحلة التالية، ونحن دخول الثاني ن يدخل المستخدم، و 63 00:03:38,870 --> 00:03:40,580 بجانب اثنين، وآخر ن. 64 00:03:40,580 --> 00:03:44,200 >> لذلك نلاحظ أن مجموعة من حجم ثلاثة لا يملك أي شيء 65 00:03:44,200 --> 00:03:46,040 في مؤشر الثلاثة. 66 00:03:46,040 --> 00:03:49,036 هذا غير صحيح. 67 00:03:49,036 --> 00:03:50,250 حسنا. 68 00:03:50,250 --> 00:03:55,136 لذلك، يعود هنا. 69 00:03:55,136 --> 00:03:57,650 70 00:03:57,650 --> 00:04:01,590 وحتى الآن بعد أن قمنا التعامل مع المصفوفات، لدينا بعض الألفة. 71 00:04:01,590 --> 00:04:03,780 الآن ونحن في طريقنا للانتقال إلى قيادة وسائط سطر، والتي ستكون 72 00:04:03,780 --> 00:04:05,890 ذات الصلة جدا لهذه المجموعة المشكلة. 73 00:04:05,890 --> 00:04:09,670 >> لذلك حتى الآن، كلما قمت أعلن المهمة الرئيسية الخاصة بك، لدينا 74 00:04:09,670 --> 00:04:11,230 وقال الباحث باطلة الرئيسي. 75 00:04:11,230 --> 00:04:14,070 الفراغ بحيث يعني فقط أن نحن لا يمر أي 76 00:04:14,070 --> 00:04:16,440 الحجج لهذه الوظيفة. 77 00:04:16,440 --> 00:04:19,190 الآن ونحن في طريقنا لنرى أن الرئيسي يمكن أن يستغرق بعض الحجج. 78 00:04:19,190 --> 00:04:22,470 ونحن هنا ندعو لهم كثافة ARGC وسلسلة أقواس ARGV. 79 00:04:22,470 --> 00:04:26,930 الأقواس، مرة أخرى، مشيرا إلى أن نتعامل مع المصفوفات. 80 00:04:26,930 --> 00:04:31,850 حتى هنا، بين قوسين سلسلة ARGV، نحن التعامل مع مجموعة من السلاسل. 81 00:04:31,850 --> 00:04:35,360 حتى ARGC، وهذا سوف تشير إلى كيف العديد من الحجج قمنا 82 00:04:35,360 --> 00:04:37,580 مرت لهذا البرنامج. 83 00:04:37,580 --> 00:04:46,050 ونرى ما يعني أنه، دعونا إغلاق هذا. 84 00:04:46,050 --> 00:04:46,490 >> موافق. 85 00:04:46,490 --> 00:04:50,790 لذلك حتى الآن، قمنا بتشغيل كل برنامج مثل الأعمار مائل نقطة. 86 00:04:50,790 --> 00:04:55,250 يمكننا أيضا، في سطر الأوامر، في الماضي تمرير الوسائط، وبالتالي فإن المدى، الأمر 87 00:04:55,250 --> 00:04:56,550 وسائط سطر. 88 00:04:56,550 --> 00:04:59,760 وبالتالي فإن الحجة الأولى، مرحبا العالم. 89 00:04:59,760 --> 00:05:03,350 حتى هنا، سوف يكون ARGC الثلاثة. 90 00:05:03,350 --> 00:05:07,720 انها العد من الحجج في سطر الأوامر. 91 00:05:07,720 --> 00:05:12,840 ARGC دائما لا يقل عن 1، منذ نقطة خفض الأعمار، في حد ذاته، باعتباره واحدا من التهم 92 00:05:12,840 --> 00:05:14,490 وسيطات سطر الأوامر. 93 00:05:14,490 --> 00:05:17,010 >> ثم مرحبا هو الأول. 94 00:05:17,010 --> 00:05:20,460 إذا الأعمار مائل نقطة هو الصفري، ثم مرحبا هي الأولى، والعالم هو 95 00:05:20,460 --> 00:05:22,830 الثاني سيطة سطر الأوامر. 96 00:05:22,830 --> 00:05:29,490 وبالتالي فإن ARGV سلسلة، ونحن في طريقنا لرؤية، يحتوي على سلاسل، مائل نقطة 97 00:05:29,490 --> 00:05:33,830 الأعمار، مرحبا، والعالم. 98 00:05:33,830 --> 00:05:38,945 و، حسب الطلب داود، ونحن في طريقنا للعب الفيديو إدخال ذلك. 99 00:05:38,945 --> 00:05:42,486 100 00:05:42,486 --> 00:05:43,890 >> [تشغيل الفيديو] 101 00:05:43,890 --> 00:05:46,240 >> حتى الآن، في البرامج التي قمت مكتوبة، ونحن قد تعلن 102 00:05:46,240 --> 00:05:48,500 الرئيسية باطلة الرئيسي كثافة كما. 103 00:05:48,500 --> 00:05:51,170 وطوال هذا الوقت، هذا الفراغ لديه ببساطة تم تحديد أن 104 00:05:51,170 --> 00:05:54,430 البرنامج لا تتخذ أي وسائط سطر الأوامر. 105 00:05:54,430 --> 00:05:57,750 وبعبارة أخرى، عندما يدير المستخدم البرنامج، وقال انه أو انها يمكن أن توفر القيادة 106 00:05:57,750 --> 00:06:01,710 وسائط سطر من خلال كتابة إضافية كلمات أو عبارات بعد البرنامج 107 00:06:01,710 --> 00:06:03,000 اسم في موجه. 108 00:06:03,000 --> 00:06:06,550 >> حسنا، إذا كنت تريد برنامج ل تأخذ وسيطات سطر الأوامر، واحد أو 109 00:06:06,550 --> 00:06:10,540 المزيد من مثل هذه الكلمات، ونحن في حاجة لاستبدال إبطال مع اثنين من الحجج. 110 00:06:10,540 --> 00:06:12,200 لذلك دعونا نفعل ذلك. 111 00:06:12,200 --> 00:06:15,750 وتشمل CS50.h. 112 00:06:15,750 --> 00:06:19,360 وتشمل io.h. القياسية 113 00:06:19,360 --> 00:06:20,760 الباحث الرئيسي. 114 00:06:20,760 --> 00:06:26,330 والآن، بدلا من الفراغ، وانا ذاهب ل تحديد كثافة دعا ARGC، و 115 00:06:26,330 --> 00:06:28,780 مجموعة من السلاسل دعا ARGV. 116 00:06:28,780 --> 00:06:31,820 الآن، ARGC وARGV هي ببساطة الاتفاقيات. 117 00:06:31,820 --> 00:06:34,000 >> أننا يمكن أن تسمى هذه الحجج معظم أي شيء نريده. 118 00:06:34,000 --> 00:06:37,630 ولكن ما هو مهم هو أن ARGC هو عدد صحيح لأنه، بحكم التعريف، هو 119 00:06:37,630 --> 00:06:41,360 الذهاب لاحتواء عدد حجة، و عدد الكلمات في مجموعه أن 120 00:06:41,360 --> 00:06:43,380 تمت كتابة المستخدم في موجه له أو لها. 121 00:06:43,380 --> 00:06:47,910 ARGV، وفي الوقت نفسه، ناقلات الحجة، هو سوف يكون في الواقع مجموعة تخزين 122 00:06:47,910 --> 00:06:52,020 كل الكلمات أن المستخدم لديه كتبته في موجه له أو لها. 123 00:06:52,020 --> 00:06:54,500 >> دعونا المضي قدما أن تفعل شيئا الآن مع واحد أو أكثر من هذه 124 00:06:54,500 --> 00:06:55,660 وسائط سطر الأوامر. 125 00:06:55,660 --> 00:07:00,070 على وجه الخصوص، دعونا نمضي قدما والطباعة مهما كانت كلمة أنواع المستخدم 126 00:07:00,070 --> 00:07:03,960 بعد اسم البرنامج في موجه. 127 00:07:03,960 --> 00:07:04,730 فتح قوس. 128 00:07:04,730 --> 00:07:06,240 على مقربة قوس. 129 00:07:06,240 --> 00:07:10,510 ق مائل Printf في المئة وفاصلة. 130 00:07:10,510 --> 00:07:14,550 والآن أحتاج أن أقول ما قيمة printf بهدف سد العجز في هذا العنصر النائب. 131 00:07:14,550 --> 00:07:18,600 أريد الكلمة الأولى أن المستخدم لديه كتابتها بعد اسم البرنامج، 132 00:07:18,600 --> 00:07:23,130 وحتى وأنا ذاهب لتحديد ARGV قوس 1، وثيقة 133 00:07:23,130 --> 00:07:24,830 قوسين، منقوطة. 134 00:07:24,830 --> 00:07:27,290 >> الآن، لماذا قوس 1، وليس قوس 0؟ 135 00:07:27,290 --> 00:07:30,990 كذلك، اتضح وتخزينها تلقائيا في ARGV 0 سوف يكون 136 00:07:30,990 --> 00:07:32,620 اسم البرنامج الفعلي. 137 00:07:32,620 --> 00:07:36,180 وبالتالي فإن الكلمة الأولى التي يكتب المستخدم بعد اسم البرنامج هو، من خلال 138 00:07:36,180 --> 00:07:38,990 الاتفاقية، ستكون تخزينها في ARGV 1. 139 00:07:38,990 --> 00:07:42,380 دعونا الآن تجميع و تشغيل هذا البرنامج. 140 00:07:42,380 --> 00:07:47,780 >> جعل ARGV 0، نقطة مائلة ARGV 0. 141 00:07:47,780 --> 00:07:50,520 والآن كلمة واحدة مثل مرحبا. 142 00:07:50,520 --> 00:07:51,670 دخول. 143 00:07:51,670 --> 00:07:53,520 ويوجد لدينا ذلك، مرحبا. 144 00:07:53,520 --> 00:07:55,750 >> [END تشغيل الفيديو] 145 00:07:55,750 --> 00:07:57,000 >> ROB BODEN: حسنا. 146 00:07:57,000 --> 00:07:59,380 147 00:07:59,380 --> 00:08:01,230 إغلاق ذلك. 148 00:08:01,230 --> 00:08:16,730 ذلك أن نلقي نظرة على هذا البرنامج الذي قدمنا ​​فقط لنا، حسنا، فقط 149 00:08:16,730 --> 00:08:24,710 لإظهار، واذا كنا طباعة ARGV 0، وجعل، والآن ما هو عليه، ARGV 0، نقطة مائلة ARGV 0. 150 00:08:24,710 --> 00:08:30,440 لذلك، كما هو متوقع، انها تطبع خارج اسم البرنامج، منذ ARGV 0 هو 151 00:08:30,440 --> 00:08:32,970 دائما ما يكون اسم البرنامج. 152 00:08:32,970 --> 00:08:35,640 ولكن دعونا نفعل شيئا ل بت أكثر إثارة للاهتمام. 153 00:08:35,640 --> 00:08:42,080 >> وذلك في مجموعة المشكلة، عليك أن تكون قدم لهذه الوظيفة، atoi. 154 00:08:42,080 --> 00:08:44,440 وذلك ما لم نستخدم atoi ل؟ 155 00:08:44,440 --> 00:08:48,550 أن يحدث لتحويل سلسلة إلى عدد صحيح. 156 00:08:48,550 --> 00:08:53,280 حتى لو كنت تمرير السلسلة، واحد اثنين ثلاثة، لatoi، والتي سوف تحويل هذا 157 00:08:53,280 --> 00:08:56,910 إلى عدد صحيح، واحد اثنين ثلاثة. 158 00:08:56,910 --> 00:09:01,480 لذلك نحن ذاهبون لتحويل أول سيطة سطر الأوامر إلى عدد صحيح، 159 00:09:01,480 --> 00:09:05,690 وبعد ذلك فقط طباعة هذا صحيح. 160 00:09:05,690 --> 00:09:09,680 >> ذلك أساسا، نحن نوع من reimplementing getint، فقط 161 00:09:09,680 --> 00:09:12,350 يتم إدخال عدد صحيح في الأمر بدلا من خط في البرنامج 162 00:09:12,350 --> 00:09:14,560 بشكل تفاعلي. 163 00:09:14,560 --> 00:09:23,170 حتى ذلك الحين، مما يجعل ARGV 0، دعونا نفعل في هنا، وإغلاق ذلك. 164 00:09:23,170 --> 00:09:27,670 حتى تشغيل ARGV 0، ودعونا دخول صحيح، واحد اثنين ثلاثة أربعة واحد اثنين. 165 00:09:27,670 --> 00:09:30,840 لذلك سوف طباعة عدد صحيح، واحد اثنان ثلاثة أربعة واحد اثنين. 166 00:09:30,840 --> 00:09:35,500 هناك بعض الخفايا التي لatoi انها سوف تتوقف عن رعاية أي شيء 167 00:09:35,500 --> 00:09:39,040 أبعد من أحرف رقمية صالحة، ولكن هذا لا يهم. 168 00:09:39,040 --> 00:09:42,870 >> فما رأيكم يحدث إذا كنت تفعل هذا؟ 169 00:09:42,870 --> 00:09:45,520 170 00:09:45,520 --> 00:09:47,050 خطأ تجزئة. 171 00:09:47,050 --> 00:09:50,410 فلماذا ذلك؟ 172 00:09:50,410 --> 00:09:56,060 إذا كنت ننظر إلى الوراء في برنامجنا، ونحن تحويل ARGV 1، الوسيطة الأولى 173 00:09:56,060 --> 00:09:59,610 بعد اسم البرنامج، إلى عدد صحيح. 174 00:09:59,610 --> 00:10:03,350 ولكن ليس هناك حجة مرت بعد اسم البرنامج. 175 00:10:03,350 --> 00:10:08,060 حتى هنا، ونحن نرى أن هذا هو عربات التي تجرها الدواب البرنامج، منذ ذلك الحين، لو كنا في محاولة لتشغيله 176 00:10:08,060 --> 00:10:10,530 دون أي حجج، انها سوف تعطل فقط. 177 00:10:10,530 --> 00:10:16,950 >> لذلك النمط الشائع أخرى سترى وشيء من هذا القبيل، إذا ARGC أقل 178 00:10:16,950 --> 00:10:21,100 من اثنين، مشيرا إلى أنه لم يكن هناك على الأقل اسم البرنامج و 179 00:10:21,100 --> 00:10:29,100 الوسيطة الأولى، ثم سنقوم تفعل شيئا مثل printf، لا يكفي 180 00:10:29,100 --> 00:10:31,190 وسائط سطر الأوامر. 181 00:10:31,190 --> 00:10:33,170 وهذا ربما ليس فكرة جيدة لطباعة، انها على الارجح شيئا، مثل 182 00:10:33,170 --> 00:10:35,440 يجب عليك إدخال عدد صحيح في سطر الأوامر. 183 00:10:35,440 --> 00:10:37,450 أنا مجرد وضع حد لها هناك. 184 00:10:37,450 --> 00:10:39,600 ثم العودة 1. 185 00:10:39,600 --> 00:10:44,740 حتى أن نتذكر أنه في نهاية لدينا البرنامج، إذا نعود 0، هذا النوع من 186 00:10:44,740 --> 00:10:47,060 يشير النجاح. 187 00:10:47,060 --> 00:10:50,940 والرئيسي أيضا تلقائيا بإرجاع 0 إذا كنت لا تفعل ذلك. 188 00:10:50,940 --> 00:10:55,800 >> حتى هنا، نحن إعادة ضبطها 1 للإشارة أن هذا ليس النجاح. 189 00:10:55,800 --> 00:11:01,000 ويمكنك العودة ما تريد، فقط، 0 إلى النجاح، و 190 00:11:01,000 --> 00:11:03,390 أي شيء آخر يشير إلى الفشل. 191 00:11:03,390 --> 00:11:04,855 لذلك دعونا تشغيل هذا الإصدار من الأشياء. 192 00:11:04,855 --> 00:11:12,880 193 00:11:12,880 --> 00:11:16,600 وحتى الآن، وإذا كنا لا تدخل سطر الأوامر حجة، وأنها سوف اقول بشكل صحيح 194 00:11:16,600 --> 00:11:18,290 لنا، لا يكفي سطر الأوامر. 195 00:11:18,290 --> 00:11:20,610 لم يكمل الجملة. 196 00:11:20,610 --> 00:11:24,950 آخر، إذا كنا فعلا تمرير واحدة، ويمكن استكمال البرنامج. 197 00:11:24,950 --> 00:11:27,920 لذلك هذا هو كيف سيستخدم في ARGC أجل التحقق من صحة عدد من 198 00:11:27,920 --> 00:11:30,630 وسائط سطر الأوامر التي يتم تمرير الواقع. 199 00:11:30,630 --> 00:11:39,360 >> لذلك دعونا جعل هذا البرنامج أكثر قليلا معقدة، وإلقاء نظرة على الثانية 200 00:11:39,360 --> 00:11:42,180 التكرار من الأشياء. 201 00:11:42,180 --> 00:11:46,310 وحتى الآن، ونحن لسنا مجرد طباعة أول وسيطة سطر الأوامر. 202 00:11:46,310 --> 00:11:51,210 هنا، نحن بالتكرار من التساوي ط كثافة العمليات 0، ط أقل من ARGC، ط زائد 203 00:11:51,210 --> 00:11:55,280 بالاضافة الى ذلك، والطباعة ARGV، مؤشر ط. 204 00:11:55,280 --> 00:11:59,300 لذلك هذا النمط، ومرة ​​أخرى، وهذا هو نفس نمط كما كان من قبل، باستثناء بدلا 205 00:11:59,300 --> 00:12:02,600 من استدعاء متغير ن، نستخدمه ARGC. 206 00:12:02,600 --> 00:12:09,520 >> لذلك هذا هو بالتكرار على كل مؤشر في مجموعة، وطباعة كل 207 00:12:09,520 --> 00:12:11,910 عنصر في هذا الصفيف. 208 00:12:11,910 --> 00:12:20,300 وهكذا، عندما نقوم بتشغيل هذا البرنامج، وأيضا، أنا لم أدخل أي سطر الأوامر 209 00:12:20,300 --> 00:12:22,540 الحجج، لذلك يطبع فقط اسم البرنامج. 210 00:12:22,540 --> 00:12:26,053 إذا دخلت مجموعة من الأشياء، وأنها سوف طباعة واحد، كل على السطر الخاص به. 211 00:12:26,053 --> 00:12:31,213 212 00:12:31,213 --> 00:12:32,210 >> موافق. 213 00:12:32,210 --> 00:12:34,770 لذلك دعونا اتخاذ هذه الخطوة واحدة أخرى. 214 00:12:34,770 --> 00:12:38,890 وبدلا من طباعة كل حجة على السطر الخاص به، دعونا طباعة كل 215 00:12:38,890 --> 00:12:42,590 شخصية كل حجة على السطر الخاص به. 216 00:12:42,590 --> 00:12:46,700 حتى أن نتذكر أن ARGV هو مجموعة من السلاسل. 217 00:12:46,700 --> 00:12:50,960 فما هو سلسلة، ولكن مجموعة من الأحرف؟ 218 00:12:50,960 --> 00:12:57,140 وهذا يعني أن ARGV هو في حقيقة الأمر مجموعة من مجموعة من الأحرف. 219 00:12:57,140 --> 00:13:04,920 لذلك الاستفادة من ذلك، دعونا تجاهل هذا الآن. 220 00:13:04,920 --> 00:13:08,190 دعونا مجرد النظر في سلسلة ARGV 0. 221 00:13:08,190 --> 00:13:14,170 >> لذلك إذا كنا نريد أن يحضر كل حرف من ARGV 0 على السطر الخاص به، ثم أريد 222 00:13:14,170 --> 00:13:19,500 للقيام نمط اعتدنا على، أنا هو أقل من طول المصفوفة، 223 00:13:19,500 --> 00:13:23,990 التي هنا، وstrlen من، هذا ليس ما أريد القيام به، سلسلة 224 00:13:23,990 --> 00:13:26,450 ق يساوي ARGV 0. 225 00:13:26,450 --> 00:13:30,390 لذلك أنا هو أقل من طول لدينا مجموعة، وهو في هذه الحالة عبارة عن صفيف 226 00:13:30,390 --> 00:13:34,410 من الشخصيات، ط زائد زائد. 227 00:13:34,410 --> 00:13:41,040 وهكذا، كما رأينا في الاسبوع الماضي، انها مثالية إذا نحن نمضي أن strlen خارج 228 00:13:41,040 --> 00:13:45,210 للحالة، سيتم منذ مضيفا ن وstrlen من ليالي كل مرة نذهب 229 00:13:45,210 --> 00:13:47,720 خلال الحلقة، وانها لن يتغير. 230 00:13:47,720 --> 00:13:50,230 ولذا فإننا سوف تعيينها يساوي ن أكثر من هنا. 231 00:13:50,230 --> 00:13:54,260 232 00:13:54,260 --> 00:13:55,170 >> موافق. 233 00:13:55,170 --> 00:14:01,320 وحتى الآن، ونحن على بالتكرار كل مؤشر في الصفيف. 234 00:14:01,320 --> 00:14:05,630 وهكذا، إذا كنا نريد لطباعة كل حرف في ذلك الصفيف، هو في المئة ج 235 00:14:05,630 --> 00:14:06,880 العلم أننا نريد أن استخدام لأحرف. 236 00:14:06,880 --> 00:14:10,750 237 00:14:10,750 --> 00:14:19,770 والآن أنا قوس سوف يكون سلسلة، والطابع مؤشر ط، لذلك إذا كانت 238 00:14:19,770 --> 00:14:20,970 سلسلة ومرحبا. 239 00:14:20,970 --> 00:14:27,530 ثم ق 0 ستكون ح، ق قوس 1 سوف تكون الإلكترونية، وهلم جرا. 240 00:14:27,530 --> 00:14:30,800 >> وحتى الآن نحن نريد أن الجمع بين هذين الأمرين. 241 00:14:30,800 --> 00:14:35,440 نحن نريد لطباعة كل حرف كل وسيطة سطر الأوامر. 242 00:14:35,440 --> 00:14:38,950 لذلك نحن ذاهبون الى ومتداخلة للحلقة. 243 00:14:38,950 --> 00:14:47,480 وتقليديا، العداد الأول وأنا، والقادم سيكون ي، ن 244 00:14:47,480 --> 00:14:54,450 سيكون strlen من ARGV ط، ط أقل من ن، ط زائد زائد. 245 00:14:54,450 --> 00:14:59,150 246 00:14:59,150 --> 00:15:06,870 والآن بدلا من الطباعة ARGV ط، لذلك ARGV قوس ط هو الذهاب الى مؤشر - 247 00:15:06,870 --> 00:15:14,280 التي ستكون سطر الأوامر ط ال حجة، ARGV ط، ي هو الذهاب الى 248 00:15:14,280 --> 00:15:16,925 أن يكون الحرف من jth حجة ط ال. 249 00:15:16,925 --> 00:15:20,580 250 00:15:20,580 --> 00:15:24,810 سوف نتخلص من هذا الأمر هنا الآن منذ أن وضعه في تلك الحلقة. 251 00:15:24,810 --> 00:15:33,900 وذلك هو ما يعادل التساوي سلسلة ق ARGV ط، ثم ق قوس ي. 252 00:15:33,900 --> 00:15:36,980 >> حسنا، نحن لسنا بحاجة إلى إعلان هذا و متغير. 253 00:15:36,980 --> 00:15:44,530 بدلا من ذلك، سنقوم فقط الجمع بين هذه اثنين الى ما كان لدينا، ARGV ط، ي. 254 00:15:44,530 --> 00:15:45,780 >> سرور 1: [غير مسموع]. 255 00:15:45,780 --> 00:15:48,850 256 00:15:48,850 --> 00:15:49,680 >> ROB BODEN: الكلمة الطيبة. 257 00:15:49,680 --> 00:15:52,936 لذلك هذا هو كسر. 258 00:15:52,936 --> 00:15:55,510 إذا أنا فعلا تجلى ذلك، فإننا وقد أدرك هذا. 259 00:15:55,510 --> 00:16:01,210 وبالتالي فإن مكافحة يهمني في هذا خاص ل 260 00:16:01,210 --> 00:16:05,410 الحلقة ي، ومكرر. 261 00:16:05,410 --> 00:16:08,560 لذلك كنت قد واجهت مشاكل، ربما حلقة لا نهائية، وإذا كنا 262 00:16:08,560 --> 00:16:09,540 لم الثابتة التي. 263 00:16:09,540 --> 00:16:12,220 هذا هو السبب في أننا نتحدث أيضا حول تصحيح الأخطاء اليوم. 264 00:16:12,220 --> 00:16:13,120 >> موافق. 265 00:16:13,120 --> 00:16:15,240 لذلك دعونا تشغيل هذا البرنامج. 266 00:16:15,240 --> 00:16:21,200 ودعونا في الواقع إضافة printf منفصلة الحق هنا أن سيطبع فقط 267 00:16:21,200 --> 00:16:27,480 خط آخر، لأن هذا يعني أننا عندما تشغيل البرنامج، سوف يكون هناك فارغة 268 00:16:27,480 --> 00:16:31,830 الخط بين كل حرف من كل وسيطة سطر الأوامر. 269 00:16:31,830 --> 00:16:33,448 حسنا، سنرى ماذا يعني ذلك. 270 00:16:33,448 --> 00:16:37,310 271 00:16:37,310 --> 00:16:37,790 OOP. 272 00:16:37,790 --> 00:16:39,870 حصلت على بعض الشوائب. 273 00:16:39,870 --> 00:16:42,860 الخطأ معلنا ضمنيا وظيفة المكتبة strlen. 274 00:16:42,860 --> 00:16:51,630 >> حتى تعود إلى برنامجنا، وأنا نسيت أن تجزئة تشمل string.h. 275 00:16:51,630 --> 00:16:54,240 276 00:16:54,240 --> 00:16:57,730 حتى string.h سوف يكون ملف الرأس الذي يعلن 277 00:16:57,730 --> 00:16:58,980 وظيفة strlen. 278 00:16:58,980 --> 00:17:04,650 279 00:17:04,650 --> 00:17:06,060 موافق، فإنه يجمع. 280 00:17:06,060 --> 00:17:09,109 الآن، دعونا تشغيله. 281 00:17:09,109 --> 00:17:10,930 بحيث فقط. 282 00:17:10,930 --> 00:17:17,790 انها تسير لطباعة لدينا اسم البرنامج، مرحبا العالم. 283 00:17:17,790 --> 00:17:23,510 انها تسير لطباعة كل شيء، كل حرف، على السطر الخاص به. 284 00:17:23,510 --> 00:17:24,540 موافق. 285 00:17:24,540 --> 00:17:30,625 >> لذلك دعونا نغتنم هذه في الواقع خطوة واحدة أخرى. 286 00:17:30,625 --> 00:17:34,050 287 00:17:34,050 --> 00:17:39,700 وبدلا من استخدام string.h، دعونا نفكر في كيفية تنفيذ كنا منطقتنا 288 00:17:39,700 --> 00:17:41,420 وظيفة strlen. 289 00:17:41,420 --> 00:17:45,600 ولذا فإنني سوف تعطي فورا وظيفة التوقيع. 290 00:17:45,600 --> 00:17:52,900 لذلك دعونا ندعو في my_strlen، وانها ذاهب الى اتخاذ سلسلة كوسيطة، 291 00:17:52,900 --> 00:17:57,220 ونتوقع أن يرجع طول تلك السلسلة. 292 00:17:57,220 --> 00:18:03,430 لذلك، أين ذلك الرجل؟ 293 00:18:03,430 --> 00:18:04,990 نعم. 294 00:18:04,990 --> 00:18:06,740 موافق. 295 00:18:06,740 --> 00:18:12,900 لذلك تذكر من الشريحة في وقت سابق أن وكان أيضا من الأسبوع الماضي، أن 296 00:18:12,900 --> 00:18:18,890 مجموعة من الشخصيات، حسنا، سلسلة، لذلك دعونا نقول هذا هو سلسلة ليالي لدينا. 297 00:18:18,890 --> 00:18:29,870 إذا كان الأمر كذلك ليالي هي السلسلة، مرحبا، ثم، H-E-L-L-O، في الذاكرة، وهذا يحدث ل 298 00:18:29,870 --> 00:18:35,610 تكون، ومن ثم هذا مائل 0 حرف. 299 00:18:35,610 --> 00:18:39,170 >> فكيف نحصل على طول من ليالي؟ 300 00:18:39,170 --> 00:18:43,190 جيدا، والحيلة هي تبحث عن هذا حركة ارتجاعية 0 حرف، وهذا باطل 301 00:18:43,190 --> 00:18:44,380 فاصل. 302 00:18:44,380 --> 00:18:50,270 وبالتالي فإن خوارزمية هل تسير أن يكون شيء من هذا القبيل قليلة 303 00:18:50,270 --> 00:18:51,510 يكفي الأحرف التي - 304 00:18:51,510 --> 00:18:56,180 دعونا لها هذا من ناحية تمثل بعض العداد، دعونا نسمي هذا طول كثافة العمليات. 305 00:18:56,180 --> 00:19:00,060 لذلك، بدءا من هنا، نحن الذهاب الى تكرار عبر سلسلة لدينا. 306 00:19:00,060 --> 00:19:04,100 >> وبالتالي فإن الحرف الأول، انها H، وانها ليست خفض الظهر 0، لذلك 307 00:19:04,100 --> 00:19:05,170 طول هو 1. 308 00:19:05,170 --> 00:19:08,050 تكرار إلى الحرف التالي، E، وانها ليست مائل 0. 309 00:19:08,050 --> 00:19:09,630 طول هو 2. 310 00:19:09,630 --> 00:19:10,960 L، 3. 311 00:19:10,960 --> 00:19:11,850 L، 4. 312 00:19:11,850 --> 00:19:13,050 O، 5. 313 00:19:13,050 --> 00:19:16,690 وأخيرا، نصل مائل 0، وهكذا وهذا يعني، أيضا، 314 00:19:16,690 --> 00:19:17,780 هذه السلسلة قد انتهت. 315 00:19:17,780 --> 00:19:20,130 لذلك دعونا العودة 5. 316 00:19:20,130 --> 00:19:33,630 >> حتى تنفيذ في الواقع أنه، أولا، بلدي ن طول يساوي 0، يدي اليمنى. 317 00:19:33,630 --> 00:19:36,088 ونحن في طريقنا لتكرار - 318 00:19:36,088 --> 00:19:38,000 >> سرور 1: [غير مسموع] 319 00:19:38,000 --> 00:19:38,640 >> ROB BODEN: أوه، واطلاق النار. 320 00:19:38,640 --> 00:19:39,870 الكلمة الطيبة. 321 00:19:39,870 --> 00:19:42,680 الازدهار. 322 00:19:42,680 --> 00:19:44,140 حتى ن طول يساوي 0. 323 00:19:44,140 --> 00:19:46,910 324 00:19:46,910 --> 00:19:58,310 وحتى الآن، في حين ق طول لا على قدم المساواة ومن ثم، مائل 0. 325 00:19:58,310 --> 00:20:04,660 لذلك تذكر، وهذا مائل 0، وهو الطابع الفعلي، وأنه يشير 326 00:20:04,660 --> 00:20:05,820 نهاية السلسلة. 327 00:20:05,820 --> 00:20:09,850 تماما مثل، أيضا، مائل n هو حرف الفعلية. 328 00:20:09,850 --> 00:20:14,040 0 مائل سوف تشير نهاية سلسلة لدينا. 329 00:20:14,040 --> 00:20:15,414 أنا لا أريد أن أضع ذلك هناك. 330 00:20:15,414 --> 00:20:19,190 331 00:20:19,190 --> 00:20:25,620 وبينما ق فهرستها من قبل طول ليس يساوي فاصل فارغة، ثم 332 00:20:25,620 --> 00:20:27,130 نحن ذاهبون لمجرد زيادة الطول. 333 00:20:27,130 --> 00:20:29,860 334 00:20:29,860 --> 00:20:34,880 حتى ذلك الحين، في نهاية برنامجنا، طول يجري في نهاية المطاف إلى 335 00:20:34,880 --> 00:20:37,610 5 أن يكون في هذه الحالة. 336 00:20:37,610 --> 00:20:39,210 ونحن سوف يعود فقط لطول. 337 00:20:39,210 --> 00:20:42,570 338 00:20:42,570 --> 00:20:43,530 >> موافق. 339 00:20:43,530 --> 00:20:48,290 وحتى الآن إلى هنا، وأنا لا القيام my_strlen. 340 00:20:48,290 --> 00:20:50,700 دعونا تجميع ذلك للتأكد من كل شيء يسير بشكل سلس. 341 00:20:50,700 --> 00:20:55,820 342 00:20:55,820 --> 00:20:58,210 وأفعل في 2؟ 343 00:20:58,210 --> 00:21:00,565 أو كان ذلك 1؟ 344 00:21:00,565 --> 00:21:01,940 يجب أن تفعل. 345 00:21:01,940 --> 00:21:02,690 حسنا. 346 00:21:02,690 --> 00:21:08,490 لذلك هذا هو ARGV 2. 347 00:21:08,490 --> 00:21:11,585 يعمل كما كان متوقعا، على الرغم من وكان أن واحدة أنا فعلت هذا في؟ 348 00:21:11,585 --> 00:21:15,060 349 00:21:15,060 --> 00:21:15,550 نعم. 350 00:21:15,550 --> 00:21:16,760 موافق. 351 00:21:16,760 --> 00:21:21,820 لم يكن لديك هذا الإصدار من الأشياء الخط الجديد printf بعد، ولكنه 352 00:21:21,820 --> 00:21:22,910 لا يجعل أي اختلاف. 353 00:21:22,910 --> 00:21:23,300 موافق. 354 00:21:23,300 --> 00:21:25,780 لذلك عملت كما هو متوقع. 355 00:21:25,780 --> 00:21:34,750 >> الآن يمكننا حتى الجمع بين هذه الخطوة واحدة أبعد من ذلك، حيث إشعار هنا، أيضا، 356 00:21:34,750 --> 00:21:38,920 أولا، نحن الاستيلاء على strlen من ARGV ط، ثم نقوم بالتكرار عبر 357 00:21:38,920 --> 00:21:41,450 كل حرف في هذه السلسلة. 358 00:21:41,450 --> 00:21:47,480 وذلك بدلا من القيام بذلك، ما إذا كنا مجرد الجمع بين هذا المنطق من الانتظار 359 00:21:47,480 --> 00:21:50,740 حتى ضربنا مائل 0 الحق في هذه الحلقة ل؟ 360 00:21:50,740 --> 00:21:53,740 361 00:21:53,740 --> 00:22:07,490 حتى تكرار بينما ARGV ط، ي لا لا يساوي مائل 0. 362 00:22:07,490 --> 00:22:10,680 لذلك دعونا تشغيل لأول مرة. 363 00:22:10,680 --> 00:22:19,838 364 00:22:19,838 --> 00:22:21,180 >> حسنا. 365 00:22:21,180 --> 00:22:27,655 حتى هنا، وهذا الشرط هو قوله - 366 00:22:27,655 --> 00:22:38,090 367 00:22:38,090 --> 00:22:40,060 دعونا مسح ذلك. 368 00:22:40,060 --> 00:22:49,140 وحتى الآن، دعونا أن يكون هذا ARGV لدينا. 369 00:22:49,140 --> 00:22:55,290 لذلك عندما ركض أنا فقط هذا البرنامج من قبل، ARGV هي مجموعة من السلاسل. 370 00:22:55,290 --> 00:23:03,100 وهكذا، إذا كنت تشغيله مع نقطة مائلة ARGV 2، مرحبا العالم، ثم ARGV 371 00:23:03,100 --> 00:23:07,650 في حد ذاته هو طول 3، لARGV الصفر، مرحبا، والعالم. 372 00:23:07,650 --> 00:23:11,700 373 00:23:11,700 --> 00:23:19,660 >> وداخل كل من هذه المؤشرات هو، نفسها صفيف، حيث سوف يكون هذا 374 00:23:19,660 --> 00:23:23,780 نقطة، وهذا سوف يكون مائل، وأنا لا أعرف إذا كان هذا هو الاتجاه الصحيح، وأنا 375 00:23:23,780 --> 00:23:25,680 لا أعتقد أنه كان. 376 00:23:25,680 --> 00:23:30,110 A-R-V شرطة، بحاجة إلى مساحة أكبر. 377 00:23:30,110 --> 00:23:32,570 دعونا مقطعة إلى هذه المجموعة. 378 00:23:32,570 --> 00:23:38,230 اندفاعة 0، ثم مائل 0 A-R-V. 379 00:23:38,230 --> 00:23:43,160 ثم في حالة من الفوضى سيكون مرحبا. 380 00:23:43,160 --> 00:23:45,910 دعنا نقول، H-E مائل 0. 381 00:23:45,910 --> 00:23:51,130 وأخيرا، W-O مائل 0. 382 00:23:51,130 --> 00:23:59,730 >> وبالتالي فإن الخوارزمية التي كتبنا فقط، والمتداخلة للحلقات، ما كنت 383 00:23:59,730 --> 00:24:07,321 غير القيام، لدينا لأول مرة مواجهة ط ثم ي. 384 00:24:07,321 --> 00:24:15,206 وهذا سيكون أسهل مع رمز على الشاشة، دعونا نعود إلى هذا. 385 00:24:15,206 --> 00:24:17,476 موافق. 386 00:24:17,476 --> 00:24:24,600 لذلك تلاحظ أن i هو مكرر هذا بالتكرار على كل أمر 387 00:24:24,600 --> 00:24:25,610 وسيطة سطر. 388 00:24:25,610 --> 00:24:28,870 وي هو بالتكرار مكرر على كل حرف في هذا 389 00:24:28,870 --> 00:24:30,410 وسيطة سطر الأوامر. 390 00:24:30,410 --> 00:24:46,755 ذلك ما تقوم به هذه printf الأعمق و، قمنا printf ARGV 0 0، printf 391 00:24:46,755 --> 00:24:58,680 ARGV 0 1، printf ARGV 0 2، 0 3، 4 0، 0 5، 6 0، ولكن الآن، ARGV 0 7 هو الذهاب الى 392 00:24:58,680 --> 00:25:00,670 مائل تساوي 0. 393 00:25:00,670 --> 00:25:05,730 >> لذلك فإننا الخروج أن للحلقة، والآن أنا بالتكرار إلى 1. 394 00:25:05,730 --> 00:25:10,910 والآن ونحن في طريقنا إلى الطباعة ARGV 1 0، ARGV 1 1 - 395 00:25:10,910 --> 00:25:17,040 حسنا، الآن، منذ أن قطعت مرحبا قصيرة، ARGV 1 2 يجري مرة أخرى لتكون 396 00:25:17,040 --> 00:25:18,170 مائل 0. 397 00:25:18,170 --> 00:25:25,050 وهكذا، ط زيادة والاستمرار، و هلم جرا، حتى ونحن طباعة جميع 398 00:25:25,050 --> 00:25:28,580 العالم، وهؤلاء هم ثلاثة سطر الأوامر الحجج، وسنقوم الخروج من 399 00:25:28,580 --> 00:25:31,670 الحلقة الأبعد، و الانتهاء من برنامجنا. 400 00:25:31,670 --> 00:25:38,390 401 00:25:38,390 --> 00:25:39,640 موافق. 402 00:25:39,640 --> 00:25:43,903 403 00:25:43,903 --> 00:25:46,795 >> لذلك دعونا نعود هنا. 404 00:25:46,795 --> 00:25:49,670 405 00:25:49,670 --> 00:25:52,370 لذلك عليك كسب بعض الألفة مع وسائط سطر الأوامر في هذا 406 00:25:52,370 --> 00:25:54,460 تعيين مشكلة معينة. 407 00:25:54,460 --> 00:25:56,630 >> الآن، وتصحيح الأخطاء. 408 00:25:56,630 --> 00:26:01,680 لذلك ربما كنت قد سبق أن تفعل بعض التصحيح مع السابقة 409 00:26:01,680 --> 00:26:03,120 تعيين المشكلة. 410 00:26:03,120 --> 00:26:08,420 وطريقة واحدة سهلة جدا من التصحيح، أولا، دعونا ننظر في برنامج عربات التي تجرها الدواب. 411 00:26:08,420 --> 00:26:20,710 412 00:26:20,710 --> 00:26:23,830 كذلك، والمشي من خلال هذا البرنامج، ونحن في طريقنا ليطلب من المستخدم ل 413 00:26:23,830 --> 00:26:29,350 صحيح، والاستيلاء على أن عددا صحيحا، وبعد ذلك، بشكل تعسفي، لدينا حلقة في حين أن 414 00:26:29,350 --> 00:26:32,280 هو مجرد الذهاب إلى إنقاص ط حتى انها تساوي 10. 415 00:26:32,280 --> 00:26:35,820 دعونا نفترض فقط أنا دخول عدد صحيح أكبر من 10. 416 00:26:35,820 --> 00:26:38,700 لذلك إنقاص ط حتى انها تساوي 10. 417 00:26:38,700 --> 00:26:42,630 >> ومن ثم لدينا حلقة في حين آخر ذلك، بينما أنا لا يساوي 0، ونحن 418 00:26:42,630 --> 00:26:44,540 الذهاب إلى إنقاص ط ب 3. 419 00:26:44,540 --> 00:26:49,790 حتى إذا كنت ترى القصد من الشوائب هنا، فهو أن هذا سوف إنقاص ط ل 420 00:26:49,790 --> 00:26:57,010 تكون 10، ثم هذه الحلقة في حين الإرادة ط إنقاص من 10 إلى 7، 4، 1، 421 00:26:57,010 --> 00:27:02,880 إلى سلبية 2، لالسلبية 5، وهلم جرا، إلى ما لا نهاية سلبية، منذ أن كنت سوف 422 00:27:02,880 --> 00:27:05,920 أبدا في الواقع يساوي 0. 423 00:27:05,920 --> 00:27:08,610 ثم في نهاية هذا البرنامج، لدينا وظيفة فو الذي هو 424 00:27:08,610 --> 00:27:12,130 يحدث الطباعة إلى أن ط. 425 00:27:12,130 --> 00:27:16,520 >> لذلك هذا هو البرنامج القصير وتافهة، وعلة واضحة، 426 00:27:16,520 --> 00:27:18,790 خاصة بعد أنا فقط وقال ما كان علة. 427 00:27:18,790 --> 00:27:24,840 ولكن القصد هنا هو، أيضا، وهذا قد تبدو فعلا مثل بعض الخاصة بك 428 00:27:24,840 --> 00:27:30,040 حلول من الجشع من الماضي مشكلة تعيين، وربما يجب عليك 429 00:27:30,040 --> 00:27:32,800 بعض حلقة لا نهائية في البرنامج، وليس لديك فكرة 430 00:27:32,800 --> 00:27:34,100 ما يسبب ذلك. 431 00:27:34,100 --> 00:27:38,690 حتى تقنية التصحيح مفيدة جدا هو مجرد إضافة printfs 432 00:27:38,690 --> 00:27:40,180 في جميع أنحاء التعليمات البرمجية. 433 00:27:40,180 --> 00:27:49,200 >> حتى هنا أريد printf خارج أول حلقة من الوقت. 434 00:27:49,200 --> 00:27:53,155 وهنا أريد printf، وأنا مجرد طباعة ط. 435 00:27:53,155 --> 00:27:55,670 436 00:27:55,670 --> 00:27:58,330 حتى سأفعل الأولى حين حلقة، ط. 437 00:27:58,330 --> 00:28:05,130 438 00:28:05,130 --> 00:28:09,040 في الخارج، في حين أن الثاني الحلقة. 439 00:28:09,040 --> 00:28:12,170 مرة أخرى، طباعة داخل من هنا، فإن قيمة ط. 440 00:28:12,170 --> 00:28:16,270 441 00:28:16,270 --> 00:28:17,520 ودعونا تشغيل هذا. 442 00:28:17,520 --> 00:28:22,620 443 00:28:22,620 --> 00:28:24,800 >> نقطة التصحيح حتى مائلة. 444 00:28:24,800 --> 00:28:25,610 إدخال عدد صحيح. 445 00:28:25,610 --> 00:28:28,150 دعونا نفعل 13. 446 00:28:28,150 --> 00:28:28,760 والازدهار. 447 00:28:28,760 --> 00:28:33,300 ونحن نرى أننا حلقات لانهائية داخل حلقة في حين الثانية. 448 00:28:33,300 --> 00:28:36,305 وحتى الآن نحن نعرف ما هو الخطأ. 449 00:28:36,305 --> 00:28:39,610 450 00:28:39,610 --> 00:28:45,610 ولكن التصحيح printf كبيرة تماما، ولكن بمجرد الحصول على البرامج الخاصة بك 451 00:28:45,610 --> 00:28:50,560 أطول وأكثر تعقيدا، وهناك حلول أكثر تطورا ل 452 00:28:50,560 --> 00:28:51,705 الحصول على الأشياء تعمل. 453 00:28:51,705 --> 00:28:52,955 لذلك دعونا إزالة كل هذه printfs. 454 00:28:52,955 --> 00:29:06,242 455 00:29:06,242 --> 00:29:08,896 ودعونا تأكد من أنني لم كسر أي شيء. 456 00:29:08,896 --> 00:29:09,850 موافق. 457 00:29:09,850 --> 00:29:14,180 >> وبالتالي فإن البرنامج ونحن في طريقنا لإدخال ما يسمى 458 00:29:14,180 --> 00:29:16,715 GDB، لالمصحح جنو. 459 00:29:16,715 --> 00:29:21,892 460 00:29:21,892 --> 00:29:27,510 حسنا، في الواقع، دعونا إزالة التصحيح ل الثانية، وجعل التصحيح مرة أخرى. 461 00:29:27,510 --> 00:29:31,420 462 00:29:31,420 --> 00:29:34,440 حسنا، في الواقع الأولى، درسا جيدا في وسائط سطر الأوامر. 463 00:29:34,440 --> 00:29:37,780 لاحظ أن هذا الأمر هو أن ضجيج تجميع يتم تمرير كل شيء 464 00:29:37,780 --> 00:29:41,300 في سطر الأوامر، وهذه وسائط سطر الأوامر. 465 00:29:41,300 --> 00:29:46,250 ذلك بالضبط كيف أنت ذاهب إلى استخدام وسائط سطر الأوامر، ونحن 466 00:29:46,250 --> 00:29:51,500 فعلت من قبل، وكما شئت في PSET 2، هذه هي الطريقة التي يتم استخدامها ضجيج. 467 00:29:51,500 --> 00:30:00,070 >> لذلك تلاحظ أن هذا أول علم، اندفاعة ggdb3، ما هذا ما يقول هو، ضجيج، 468 00:30:00,070 --> 00:30:03,790 يجب تجميع هذا الملف مع القصد أننا في نهاية المطاف 469 00:30:03,790 --> 00:30:05,380 تحتاج إلى تصحيح ذلك. 470 00:30:05,380 --> 00:30:13,840 لذلك طالما لديك هذا العلم، وبعد ذلك يمكننا GDB التصحيح. 471 00:30:13,840 --> 00:30:17,380 وانها سوف تفتح المصحح جنو. 472 00:30:17,380 --> 00:30:22,920 >> لذلك هناك الكثير من الأوامر التي تحتاج إلى التعود على. 473 00:30:22,920 --> 00:30:27,100 أول واحد عليك أن الأرجح تحتاج على الفور هو تشغيل. 474 00:30:27,100 --> 00:30:28,200 فما هو تشغيل تنوي القيام به؟ 475 00:30:28,200 --> 00:30:30,910 انها تسير لبدء برنامجنا. 476 00:30:30,910 --> 00:30:36,180 حتى تشغيل، بدء تشغيل البرنامج، البرنامج يطلب منا لعدد صحيح، 13. 477 00:30:36,180 --> 00:30:39,170 ثم انها حلقات لانهائية كما المتوقع، إلا أنني إزالة 478 00:30:39,170 --> 00:30:40,500 printfs، لذلك نحن لا نرى حتى ذلك. 479 00:30:40,500 --> 00:30:43,320 480 00:30:43,320 --> 00:30:44,600 خرجت بشكل طبيعي. 481 00:30:44,600 --> 00:30:45,850 اه. 482 00:30:45,850 --> 00:30:48,570 483 00:30:48,570 --> 00:30:53,640 فمن الممكن أنه ملفوفة جميع الطريق حول، والعودة إلى - تجاهل ذلك. 484 00:30:53,640 --> 00:30:55,170 نفترض أنها لم تخرج بشكل طبيعي. 485 00:30:55,170 --> 00:30:59,500 486 00:30:59,500 --> 00:31:03,370 هناك إجابة معقدة لذلك. 487 00:31:03,370 --> 00:31:07,890 >> وحتى الآن، وهذا ليس مفيدا للغاية. 488 00:31:07,890 --> 00:31:11,480 حتى مجرد تشغيل برنامجنا داخل هذا المصحح لا تساعدنا في أي 489 00:31:11,480 --> 00:31:15,610 طريقة، لأننا قد فعلت فقط نقطة خفض التصحيح من خارج GDB. 490 00:31:15,610 --> 00:31:21,250 وبالتالي فإن أمر واحد أن عليك ربما - 491 00:31:21,250 --> 00:31:22,970 وأنا سوف إنهاء هذا. 492 00:31:22,970 --> 00:31:25,850 السيطرة د أو إنهاء، سواء العمل. 493 00:31:25,850 --> 00:31:29,550 لذلك دعونا فتحه مرة أخرى. 494 00:31:29,550 --> 00:31:31,130 >> أمر آخر أن عليك ربما تريد على الفور ل 495 00:31:31,130 --> 00:31:33,600 تعتاد على هو فاصل. 496 00:31:33,600 --> 00:31:37,120 ولذا فإننا سوف كسر على الرئيسي في الوقت الراهن، ثم ساوضح ذلك. 497 00:31:37,120 --> 00:31:41,010 498 00:31:41,010 --> 00:31:46,370 حسنا، هنا نرى وضعنا نقطة توقف في هذا الخط في debug.c. 499 00:31:46,370 --> 00:31:50,160 فما الوسائل كسر هو أنني عندما اكتب المدى، البرنامج هو الذهاب الى 500 00:31:50,160 --> 00:31:53,560 متابعة تشغيل حتى أنا ضربت نقطة توقف. 501 00:31:53,560 --> 00:31:59,390 لذلك عندما ضرب المدى، يبدأ البرنامج، ومن ثم وقوعه في أقرب وقت لأنها 502 00:31:59,390 --> 00:32:01,940 يدخل الوظيفة الرئيسية. 503 00:32:01,940 --> 00:32:06,930 كسر الرئيسي سيكون شيئا كنت عادة جميلة تفعل. 504 00:32:06,930 --> 00:32:11,340 >> والآن، أن أعرض لكم لبعض الأوامر أكثر من ذلك. 505 00:32:11,340 --> 00:32:14,330 نلاحظ هنا، أنه ما يقول نحن كسر في خط 11، والذي هو 506 00:32:14,330 --> 00:32:16,230 printf، إدخال عدد صحيح. 507 00:32:16,230 --> 00:32:21,260 ذلك الأمر التالي سيكون كيف نذهب إلى السطر التالي من التعليمات البرمجية. 508 00:32:21,260 --> 00:32:24,810 هذا هو ذاهب للسماح لنا إلى الخطوة من خلال خط برنامجنا سطرا. 509 00:32:24,810 --> 00:32:26,260 بحيث المقبل. 510 00:32:26,260 --> 00:32:29,820 >> الآن خط 12، ونحن في طريقنا للحصول على عدد صحيح. 511 00:32:29,820 --> 00:32:30,450 المقبل. 512 00:32:30,450 --> 00:32:34,290 وإذا كنت مجرد ضرب أدخل مرة أخرى، وأنها سوف إعادة آخر شيء قمت به. 513 00:32:34,290 --> 00:32:36,480 لذلك أنا لا تحتاج إلى كتابة في كل مرة المقبل. 514 00:32:36,480 --> 00:32:40,100 لذلك إدخال عدد صحيح و 13. 515 00:32:40,100 --> 00:32:46,940 وحتى الآن، خط 14، في حين ط أكبر من 10، وسأفعل المقبل. 516 00:32:46,940 --> 00:32:48,685 ونحن نرى ونحن في طريقنا إلى إنقاص ط. 517 00:32:48,685 --> 00:32:50,210 لذلك نحن ذاهبون الى إنقاص ط مرة أخرى. 518 00:32:50,210 --> 00:32:53,620 >> وحتى الآن، مفيدا آخر الأمر طباعة. 519 00:32:53,620 --> 00:32:55,750 حتى يتم الانتقال إلى طباعة طباعة قيمة المتغير. 520 00:32:55,750 --> 00:32:57,825 دعونا تبرز قيمة ط متغير. 521 00:32:57,825 --> 00:32:58,705 دعونا طباعة ط. 522 00:32:58,705 --> 00:33:00,910 انها سوف يقول أنا هو 11. 523 00:33:00,910 --> 00:33:03,330 ونحن الآن مرة أخرى أثناء التالي ط أكبر من 10. 524 00:33:03,330 --> 00:33:05,590 لذلك أنا لا تزال أكبر من 10، لأنه 11. 525 00:33:05,590 --> 00:33:06,920 ط ناقص ناقص. 526 00:33:06,920 --> 00:33:08,250 دعونا طباعة ط مرة أخرى. 527 00:33:08,250 --> 00:33:10,950 كما هو متوقع، فمن 10. 528 00:33:10,950 --> 00:33:12,510 >> وحتى الآن، المقبل. 529 00:33:12,510 --> 00:33:16,250 انها تعود الى حالة، i غير أكبر من 10، ولكن أنا الآن 10، وذلك 530 00:33:16,250 --> 00:33:20,040 انها ليست أكبر من 10، لذلك نحن نتوقع لتسقط من حلقة الوقت. 531 00:33:20,040 --> 00:33:22,220 ونحن الآن تحت هذا الخط من التعليمات البرمجية. 532 00:33:22,220 --> 00:33:28,750 والقيادة، وآخر قائمة، هو مجرد الذهاب لعرض السابقة والقادمة 533 00:33:28,750 --> 00:33:31,240 بضعة أسطر من التعليمات البرمجية، في حال كنت فقدت نفسك. 534 00:33:31,240 --> 00:33:35,420 لذلك نحن للتو خرجت هذا في حين حلقة، والآن دخلنا هذا 535 00:33:35,420 --> 00:33:37,080 في حين حلقة، خط 18. 536 00:33:37,080 --> 00:33:39,860 وذلك في حين أنا لا يساوي 0. 537 00:33:39,860 --> 00:33:46,570 و، المقبل، ط ط يساوي ناقص 3، وسنقوم إشعار، وهذا سوف مجرد الاستمرار. 538 00:33:46,570 --> 00:33:48,270 ويمكننا طباعة ط. 539 00:33:48,270 --> 00:33:49,990 >> كل أمر له نوع من الاختصارات. 540 00:33:49,990 --> 00:33:51,720 حتى ع قصيرة لطباعة. 541 00:33:51,720 --> 00:33:53,400 حتى نتمكن من ع ط. 542 00:33:53,400 --> 00:33:57,550 تبقي فقط عقد ن، أو تستمر في فعل التالي. 543 00:33:57,550 --> 00:33:58,340 طباعة ط مرة أخرى. 544 00:33:58,340 --> 00:34:00,380 ترى الآن حان السلبية 167. 545 00:34:00,380 --> 00:34:06,030 ولذلك فإن هذا سوف تستمر إلى الأبد، ولكن ليس إلى الأبد حقا، منذ رأيت للتو، فإنه 546 00:34:06,030 --> 00:34:09,330 ستنتهي فعلا في بعض نقطة. 547 00:34:09,330 --> 00:34:15,699 >> بحيث يتم بداية GDB. 548 00:34:15,699 --> 00:34:19,504 ولكن دعونا نفعل شيئا آخر في GDB. 549 00:34:19,504 --> 00:34:20,754 اه، التصحيح. 550 00:34:20,754 --> 00:34:23,540 551 00:34:23,540 --> 00:34:28,534 لذلك، في هذه الحالة بالذات، و حدث حلقة لا نهائية أن يكون داخل 552 00:34:28,534 --> 00:34:30,050 وتتمثل المهمة الرئيسية. 553 00:34:30,050 --> 00:34:35,779 والآن، مجرد قبول أن هذا أنا الذهاب لنقل حلقة لا نهائية في 554 00:34:35,779 --> 00:34:37,029 وظيفة فو. 555 00:34:37,029 --> 00:34:40,679 556 00:34:40,679 --> 00:34:43,730 فقط تذكر أنه في نهاية هذا برنامج، حسنا، وكان هذا أصلا 557 00:34:43,730 --> 00:34:46,210 داعيا فو، الذي كان مجرد الذهاب الى طباعة ط. 558 00:34:46,210 --> 00:34:51,880 ولكن الآن نحن داعيا فو، الذي هو الذهاب إلى إنقاص ط حتى انها 0، و 559 00:34:51,880 --> 00:34:54,548 ثم طباعة هذا المتغير. 560 00:34:54,548 --> 00:34:55,469 موافق. 561 00:34:55,469 --> 00:34:57,970 حفظ ذلك. 562 00:34:57,970 --> 00:35:00,175 جعل التصحيح. 563 00:35:00,175 --> 00:35:03,310 والآن، جدب التصحيح. 564 00:35:03,310 --> 00:35:04,090 موافق. 565 00:35:04,090 --> 00:35:10,580 >> حتى لو كنت مجرد تشغيل ثم أنا لا أذهب ل تكون قادرة على التدخل في الواقع من خلال بلدي 566 00:35:10,580 --> 00:35:11,730 خط سطرا البرنامج. 567 00:35:11,730 --> 00:35:19,820 لذلك دعونا كسر في الرئيسي، ثم اكتب التشغيل. 568 00:35:19,820 --> 00:35:28,160 لذلك يذهب من خلال هذا، printf، أدخل عدد صحيح، والحصول على عدد صحيح و 13. 569 00:35:28,160 --> 00:35:34,180 570 00:35:34,180 --> 00:35:37,490 لذلك نحن في طريقنا للحفاظ على decrementing حتى أنا أكبر من 10. 571 00:35:37,490 --> 00:35:42,840 ثم ونحن في طريقنا للسقوط من خلال في حين حلقة، والحصول على خط - 572 00:35:42,840 --> 00:35:44,364 دعونا فتحه في نافذة منفصلة. 573 00:35:44,364 --> 00:35:48,720 574 00:35:48,720 --> 00:35:53,300 لذلك نحن decremented حتى أنا لم يعد أكبر من 10، ومن ثم نحن 575 00:35:53,300 --> 00:35:55,700 استدعاء الدالة، فو. 576 00:35:55,700 --> 00:36:01,340 >> ذلك ما حدث في أقرب وقت أنا ضربت وظيفة فو، حسنا، دعوت فو، و 577 00:36:01,340 --> 00:36:04,030 ثم أنا لم يعد لديه السيطرة على GDB. 578 00:36:04,030 --> 00:36:10,230 ذلك في أقرب وقت أنا ضربت التالي في هذا الخط، استمرت الامور حتى هذا حدث، 579 00:36:10,230 --> 00:36:12,400 حيث خرجت من البرنامج عندما - 580 00:36:12,400 --> 00:36:14,450 نفترض أنها لم تكن موجودة في نهاية المطاف. 581 00:36:14,450 --> 00:36:16,390 رأيت ذلك وقفة قليلا بالرغم من ذلك. 582 00:36:16,390 --> 00:36:22,040 فلماذا لم أفقد السيطرة على البرنامج في تلك المرحلة؟ 583 00:36:22,040 --> 00:36:27,540 حسنا، عندما كنت اكتب المقبل، أن يذهب إلى السطر التالي من التعليمات البرمجية التي الحرفي 584 00:36:27,540 --> 00:36:28,850 سيتم تنفيذ. 585 00:36:28,850 --> 00:36:35,950 حتى بعد خط 21، السطر التالي من التعليمات البرمجية التي ستنفذ هي خط 22، 586 00:36:35,950 --> 00:36:38,520 وهو، تخرج من الرئيسي. 587 00:36:38,520 --> 00:36:43,810 لذلك أنا لا أريد أن أذهب فقط إلى السطر التالي من التعليمات البرمجية. 588 00:36:43,810 --> 00:36:48,170 أريد أن أذهب إلى وظيفة، فو، ثم الخطوة أيضا من خلال 589 00:36:48,170 --> 00:36:49,830 تلك الأسطر من التعليمات البرمجية. 590 00:36:49,830 --> 00:36:53,726 >> لذلك لذلك، لدينا بديل. 591 00:36:53,726 --> 00:36:56,770 دعونا إنهاء ذلك مرة أخرى. 592 00:36:56,770 --> 00:36:58,020 كسر الرئيسي. 593 00:36:58,020 --> 00:37:00,520 594 00:37:00,520 --> 00:37:06,370 اه، 1، المقبل، المقبل، 13، المقبل، المقبل، المقبل، بعناية، 595 00:37:06,370 --> 00:37:09,820 قبل أن تصل خط فو. 596 00:37:09,820 --> 00:37:10,520 موافق. 597 00:37:10,520 --> 00:37:13,700 >> وحتى الآن، ونحن في خط 21، حيث نسميه فو. 598 00:37:13,700 --> 00:37:17,100 نحن لا نريد لكتابة المقبل، لأن ذلك سوف فقط استدعاء الدالة فو، و 599 00:37:17,100 --> 00:37:18,710 انتقل إلى السطر التالي من التعليمات البرمجية. 600 00:37:18,710 --> 00:37:20,840 ما نريد أن استخدامها هو الخطوة. 601 00:37:20,840 --> 00:37:25,690 لذلك هناك فرق بين الخطوة وبعد ذلك، حيث الخطوات الخطوة في 602 00:37:25,690 --> 00:37:28,190 وظيفة، ويذهب التالي أكثر من وظيفة. 603 00:37:28,190 --> 00:37:32,830 أن ينفذ فقط مجمل وظيفة واستمر على هذه الحال. 604 00:37:32,830 --> 00:37:37,210 >> حتى يتم الانتقال إلى الخطوة تجلب لنا في وظيفة، فو. 605 00:37:37,210 --> 00:37:41,160 ونحن نرى هنا، والآن، نعود في هذه الحلقة في حين أن هذا، من الناحية النظرية، 606 00:37:41,160 --> 00:37:44,190 سوف تستمر إلى الأبد. 607 00:37:44,190 --> 00:37:50,420 وإذا كنت أصاب الخطوة، عندما لا يكون حتى وظيفة للدعوة، ثم انها 608 00:37:50,420 --> 00:37:51,720 متطابقة إلى التالي. 609 00:37:51,720 --> 00:37:55,320 لذلك فقط عندما كنت في الخط الذي يتم استدعاء دالة أن الخطوة 610 00:37:55,320 --> 00:37:56,970 سوف تختلف عن التالي. 611 00:37:56,970 --> 00:37:57,930 لذلك الخطوة سوف تجلب لنا هنا. 612 00:37:57,930 --> 00:38:02,100 خطوة، خطوة، خطوة، خطوة، خطوة، خطوة، و سنقوم حلقة لا نهائية فقط إلى الأبد. 613 00:38:02,100 --> 00:38:06,810 >> لذلك قد تعتاد على ذلك ك طريقة تحديد حلقات لانهائية، هو 614 00:38:06,810 --> 00:38:08,960 مجرد عقد هذا مفتاح Enter ل ترى أين واجهتك مشكلة. 615 00:38:08,960 --> 00:38:11,610 616 00:38:11,610 --> 00:38:14,780 هناك طرق أفضل للقيام بذلك، ولكن في الوقت الراهن، وهذا هو تماما ما يكفي. 617 00:38:14,780 --> 00:38:17,967 وأسلوبيا، لتتوافق مع نمط 50، وأرجو أن يكون عمله هذا. 618 00:38:17,967 --> 00:38:21,550 619 00:38:21,550 --> 00:38:24,030 موافق. 620 00:38:24,030 --> 00:38:28,400 >> ذلك الأمر الأخير واحد لإدخال. 621 00:38:28,400 --> 00:38:30,810 حسنا، دعونا GDB التصحيح فيها. 622 00:38:30,810 --> 00:38:35,580 وذلك بدلا من كسر في الرئيسي، وإذا كنت تعرف وظيفة فو هو أيضا 623 00:38:35,580 --> 00:38:39,230 المشكلة، ثم أنا يمكن أن يكون فقط وقال، في كسر فو، بدلا من ذلك. 624 00:38:39,230 --> 00:38:42,310 دعنا نقول أنا كسر في كلا الرئيسي وفو. 625 00:38:42,310 --> 00:38:45,390 حتى تتمكن من تحديد العديد من نقاط التوقف على النحو الذي تريد. 626 00:38:45,390 --> 00:38:49,230 عندما كنت اكتب المدى، انها تسير التوقف عند - 627 00:38:49,230 --> 00:38:52,180 أوه، دعونا إعادة ترجمة، منذ لقد غيرت الأشياء. 628 00:38:52,180 --> 00:38:55,950 سترى هذا الخط، تحذير، مصدر ملف أحدث من تنفيذ. 629 00:38:55,950 --> 00:38:59,680 وهذا يعني أن أنا فقط ذهبت هنا وغيرت هذه لتتوافق مع نمط 630 00:38:59,680 --> 00:39:03,100 50، ولكن لم أكن إعادة ترجمة البرنامج. 631 00:39:03,100 --> 00:39:04,870 حتى GDB يجعلني على بينة من ذلك. 632 00:39:04,870 --> 00:39:10,130 سوف الإقلاع عن التدخين، جعل التصحيح مرة أخرى، ضرب جدب التصحيح. 633 00:39:10,130 --> 00:39:10,700 موافق. 634 00:39:10,700 --> 00:39:12,800 >> وحتى الآن، والعودة إلى ما كنت أفعله. 635 00:39:12,800 --> 00:39:15,720 كسر الرئيسي، وكسر فو. 636 00:39:15,720 --> 00:39:20,680 الآن إذا قمت بتشغيل البرنامج، لذلك فمن سوف يستمر حتى يضرب 637 00:39:20,680 --> 00:39:21,320 نقطة توقف. 638 00:39:21,320 --> 00:39:24,680 أن توقف يحدث ل تكون أول واحد على الرئيسي. 639 00:39:24,680 --> 00:39:28,630 الآن، بدلا من القيام المقبل، المقبل، المقبلة، المقبل، المقبلة، حتى أنا ضربت فو، وأنا 640 00:39:28,630 --> 00:39:35,230 يمكنك كتابة الاستمرار، والتي سوف تستمر حتى تصل إلى نقطة المقبل. 641 00:39:35,230 --> 00:39:37,200 لدي لدخول عدد صحيح أولا. 642 00:39:37,200 --> 00:39:40,570 تواصل سيستمر حتى أنا ضربت نقطة المقبل، وهو أن 643 00:39:40,570 --> 00:39:43,320 وظيفة من فو. 644 00:39:43,320 --> 00:39:50,130 >> لذلك سيتم تشغيل تشغيل حتى كنت أصاب نقطة توقف، ولكن كنت فقط اكتب التشغيل عند 645 00:39:50,130 --> 00:39:54,060 كنت بدء البرنامج، وبعد ذلك، منذ ذلك الحين، انها تستمر. 646 00:39:54,060 --> 00:40:01,950 إذا أنا فقط لم كسر الرئيسي و ثم ركض، وأنها سوف كسر في 647 00:40:01,950 --> 00:40:03,670 الرئيسية، ويستمر بعد ذلك. 648 00:40:03,670 --> 00:40:10,050 منذ ليس لدي نقطة فاصل في فو، أدخل عدد صحيح، ثم أنا الآن 649 00:40:10,050 --> 00:40:11,380 لن كسر في فو. 650 00:40:11,380 --> 00:40:16,318 انها مجرد الذهاب إلى لانهائية حلقة حتى ذلك. 651 00:40:16,318 --> 00:40:17,568 موافق. 652 00:40:17,568 --> 00:40:19,500 653 00:40:19,500 --> 00:40:24,420 >> حتى أن مقدمة إلى GDB. 654 00:40:24,420 --> 00:40:27,790 يجب عليك البدء في استخدامه في مجموعات مشكلتك. 655 00:40:27,790 --> 00:40:30,550 يمكن أن تكون مفيدة جدا لتحديد الخلل. 656 00:40:30,550 --> 00:40:35,280 إذا كنت في الواقع مجرد، خط سطرا، انتقل خلال التعليمات البرمجية الخاصة بك، وقارن بين ما هو 657 00:40:35,280 --> 00:40:39,740 يحدث في الواقع مع ما تتوقعه أن يحدث، ثم انها جميلة 658 00:40:39,740 --> 00:40:41,060 من الصعب أن تفوت البق الخاص بك. 659 00:40:41,060 --> 00:40:45,280 660 00:40:45,280 --> 00:40:46,530 موافق. 661 00:40:46,530 --> 00:40:48,310 662 00:40:48,310 --> 00:40:54,040 >> لذلك جلبت ديفيد الاسبوع الماضي عن هذا الاشياء التشفير السري الرئيسية لل 663 00:40:54,040 --> 00:40:59,350 المرة الأولى، حيث أننا لا نريد كلمات السر مجرد خزنها على موقعنا 664 00:40:59,350 --> 00:41:03,210 الكمبيوتر في بعض ملف نص عادي، حيث شخص ما يمكن أن تأتي مرارا وفقط 665 00:41:03,210 --> 00:41:04,660 فتحه وقراءتها. 666 00:41:04,660 --> 00:41:07,530 من الناحية المثالية، فإنها تكون مشفرة بطريقة أو بأخرى. 667 00:41:07,530 --> 00:41:13,340 ومشكلة في تعيين 2، فسوف يكون التعامل مع أسلوب واحد من التشفير، 668 00:41:13,340 --> 00:41:16,520 أو، حسنا، طريقتين، ولكن فهي ليست كبيرة جدا. 669 00:41:16,520 --> 00:41:20,050 اذا كنت تفعل الطبعة القراصنة، وكنت أيضا سوف يكون التعامل مع 670 00:41:20,050 --> 00:41:22,150 فك شفرة بعض الأشياء. 671 00:41:22,150 --> 00:41:29,770 >> وبالتالي فإن القضية الآن، حسنا، حتى لو لدينا أقوى التشفير 672 00:41:29,770 --> 00:41:34,830 الخوارزمية في العالم، وإذا اخترت كلمة الفقيرة بشكل خاص، بعد ذلك 673 00:41:34,830 --> 00:41:37,720 لن يساعد كثيرا لك، لأن الناس وسوف لا يزال قادرا على معرفة ذلك. 674 00:41:37,720 --> 00:41:41,530 حتى لو رؤية سلسلة المشفرة و يبدو وكأنه حالة من الفوضى في القمامة 675 00:41:41,530 --> 00:41:44,760 هذا لا يعني شيئا لهم، إذا كانوا لا تزال بحاجة فقط لمحاولة بضعة كلمات السر 676 00:41:44,760 --> 00:41:50,560 لأنها من أصل الرقم، فإنك ليست آمنة جدا. 677 00:41:50,560 --> 00:41:55,890 حتى مشاهدة الفيديو الذي يجعل تلك النقطة. 678 00:41:55,890 --> 00:41:59,587 679 00:41:59,587 --> 00:42:00,970 >> [تشغيل الفيديو] 680 00:42:00,970 --> 00:42:02,100 >> -الخوذة، كنت مدمن. 681 00:42:02,100 --> 00:42:03,370 ما الذي يحدث؟ 682 00:42:03,370 --> 00:42:05,170 ماذا تفعل لابنتي؟ 683 00:42:05,170 --> 00:42:09,910 >> -اسمحوا لي أن أعرض الرائعة جراح التجميل الشباب، والدكتور فيليب 684 00:42:09,910 --> 00:42:13,730 Schlotkin، أعظم الأنف رجل عمل في كامل 685 00:42:13,730 --> 00:42:16,080 الكون، وبيفرلي هيلز. 686 00:42:16,080 --> 00:42:17,210 >> -صاحب السمو. 687 00:42:17,210 --> 00:42:18,070 >> الأنف وظيفة؟ 688 00:42:18,070 --> 00:42:18,670 أنا لا أفهم. 689 00:42:18,670 --> 00:42:20,090 انها كانت بالفعل على وظيفة الأنف. 690 00:42:20,090 --> 00:42:21,910 وكان ستة عشر الحلو الحاضر. 691 00:42:21,910 --> 00:42:22,140 >> ، لا. 692 00:42:22,140 --> 00:42:23,690 انها ليست ما هو رأيك. 693 00:42:23,690 --> 00:42:25,420 انها كثيرا، وأسوأ من ذلك بكثير. 694 00:42:25,420 --> 00:42:30,300 إذا كنت لا تعطيني تركيبة ل درع الهواء، والدكتور Schlotkin سوف 695 00:42:30,300 --> 00:42:34,226 إعطاء ابنتك ظهرها القديمة الأنف. 696 00:42:34,226 --> 00:42:35,476 >> ، لا. 697 00:42:35,476 --> 00:42:38,712 698 00:42:38,712 --> 00:42:40,516 من أين لك هذا؟ 699 00:42:40,516 --> 00:42:41,440 >> حسنا. 700 00:42:41,440 --> 00:42:42,180 انا اقول. 701 00:42:42,180 --> 00:42:43,381 انا اقول. 702 00:42:43,381 --> 00:42:44,263 لا، بابا. 703 00:42:44,263 --> 00:42:45,590 لا، لا يجب عليك. 704 00:42:45,590 --> 00:42:46,860 >> أنت على حق،، يا عزيزي. 705 00:42:46,860 --> 00:42:48,450 سأشتاق الأنف الجديد. 706 00:42:48,450 --> 00:42:52,090 ولكن أنا لن أقول له الجمع، مهما كانت. 707 00:42:52,090 --> 00:42:53,680 >> -جدا أيضا. 708 00:42:53,680 --> 00:42:55,685 الدكتور Schlotkin، تفعل أسوأ الخاصة بك. 709 00:42:55,685 --> 00:42:56,914 >> بين بلدي المتعة. 710 00:42:56,914 --> 00:43:00,690 >> [الأدوات التي يجري شحذ] 711 00:43:00,690 --> 00:43:01,910 >> ، لا. 712 00:43:01,910 --> 00:43:02,520 الانتظار. 713 00:43:02,520 --> 00:43:03,836 الانتظار. 714 00:43:03,836 --> 00:43:05,300 انا اقول. 715 00:43:05,300 --> 00:43:06,880 انا اقول. 716 00:43:06,880 --> 00:43:09,130 >> -I عرف انها ستعمل. 717 00:43:09,130 --> 00:43:09,900 حسنا. 718 00:43:09,900 --> 00:43:12,850 تعطيه لي. 719 00:43:12,850 --> 00:43:16,918 >> -مزيج واحد. 720 00:43:16,918 --> 00:43:17,406 >> واحد. 721 00:43:17,406 --> 00:43:18,382 >> واحد. 722 00:43:18,382 --> 00:43:19,358 >> اثنين. 723 00:43:19,358 --> 00:43:19,846 >> اثنين. 724 00:43:19,846 --> 00:43:20,822 >> اثنين. 725 00:43:20,822 --> 00:43:21,310 >> ثلاثة و. 726 00:43:21,310 --> 00:43:21,798 >> ثلاثة و. 727 00:43:21,798 --> 00:43:22,774 >> ثلاثة و. 728 00:43:22,774 --> 00:43:23,262 >> فور. 729 00:43:23,262 --> 00:43:23,750 >> فور. 730 00:43:23,750 --> 00:43:26,150 >> فور. 731 00:43:26,150 --> 00:43:27,010 >> خمسة و. 732 00:43:27,010 --> 00:43:27,670 >> خمسة و. 733 00:43:27,670 --> 00:43:29,010 >> خمسة و. 734 00:43:29,010 --> 00:43:34,770 >> لذا، مزيج واحد، اثنان، ثلاثة، أربعة، خمسة. 735 00:43:34,770 --> 00:43:37,460 هذا هو أغبى مزيج أنا سمعت في حياتي. 736 00:43:37,460 --> 00:43:39,710 هذا هو النوع من الشيء احمق سيتعين على أمتعته. 737 00:43:39,710 --> 00:43:42,000 >> شكرا لك، سموكم. 738 00:43:42,000 --> 00:43:43,530 >> وماذا فعلتم؟ 739 00:43:43,530 --> 00:43:44,490 >> -I إيقاف الجدار. 740 00:43:44,490 --> 00:43:45,420 >> ، لا أنت لم تفعل ذلك. 741 00:43:45,420 --> 00:43:45,840 قمت بإيقاف الفيلم كله. 742 00:43:45,840 --> 00:43:46,930 >> -I يجب أن يكون الضغط على الزر الخطأ. 743 00:43:46,930 --> 00:43:48,265 >> حسنا، ووضعها مرة أخرى. 744 00:43:48,265 --> 00:43:49,110 وضع الفيلم مرة أخرى. 745 00:43:49,110 --> 00:43:49,510 >> نعم، يا سيدي. 746 00:43:49,510 --> 00:43:49,917 نعم، يا سيدي. 747 00:43:49,917 --> 00:43:50,324 >> دعنا نذهب، أرنولد. 748 00:43:50,324 --> 00:43:51,140 تأتي، غريتشن. 749 00:43:51,140 --> 00:43:53,060 بالطبع، كنت أعرف أنني سوف لا تزال يجب أن فاتورة لكم لهذا. 750 00:43:53,060 --> 00:43:53,440 >> [END تشغيل الفيديو] 751 00:43:53,440 --> 00:43:54,690 >> ROB BODEN: حسنا. 752 00:43:54,690 --> 00:43:59,690 753 00:43:59,690 --> 00:44:08,430 حتى الآن أن نتحدث بالفعل عن الأمن في بعض الطرق، لطيفة 754 00:44:08,430 --> 00:44:16,050 قليلا ملصق الفيلم، وذلك في الآونة الأخيرة أيام، هذه القضايا مع وكالة الأمن القومي 755 00:44:16,050 --> 00:44:17,300 مراقبة كل شيء. 756 00:44:17,300 --> 00:44:21,840 757 00:44:21,840 --> 00:44:26,930 قد يكون من الصعب أن تشعر وكأنك يكون نوعا من الخصوصية في 758 00:44:26,930 --> 00:44:34,540 عالم الانترنت، على الرغم من أنني لا يمكن أن أقول كنت معظم تفاصيل المنشور. 759 00:44:34,540 --> 00:44:42,130 بحيث تجاوز PRISM، ونحن لن أن نتحدث حول ذلك، والآن 760 00:44:42,130 --> 00:44:44,030 نفكر في جهاز الكمبيوتر المحمول. 761 00:44:44,030 --> 00:44:48,360 حتى هنا، أريد أن التحول إلى حسابي الفعلية، 762 00:44:48,360 --> 00:44:50,370 مع بلدي البطريق الصغير. 763 00:44:50,370 --> 00:44:57,310 وذلك لدي مجموعة كلمة السر، والتي كلمة السر هي كل ما أريد لها أن تكون. 764 00:44:57,310 --> 00:45:02,430 >> ولكن تذكر أن ما أقوم تسجيل في مع، لذلك هذا الدخول 765 00:45:02,430 --> 00:45:04,850 موجه، هو بعض البرامج. 766 00:45:04,850 --> 00:45:07,910 انها بعض البرامج التي كانت كتبه شخص. 767 00:45:07,910 --> 00:45:13,250 وهكذا، وهذا الشخص، إذا كانت الخبيثة بشكل خاص، ما في وسعهم 768 00:45:13,250 --> 00:45:17,780 وقال، كل الحق، لذلك إذا كانت كلمة المرور أنني أدخل يساوي بلدي 769 00:45:17,780 --> 00:45:22,800 كلمة السر الفعلية، أو أنها على قدم المساواة لبعض السر الخاصة - 770 00:45:22,800 --> 00:45:25,550 ديفيد هو رائع أو شيء من هذا - 771 00:45:25,550 --> 00:45:27,190 ثم السماح لهم بالدخول. 772 00:45:27,190 --> 00:45:33,760 لذلك يمكن أن يكون مبرمج الخبيثة الوصول إلى كافة أجهزة ماكينتوش الخاصة بك، أو 773 00:45:33,760 --> 00:45:36,150 النوافذ، أو أي شيء. 774 00:45:36,150 --> 00:45:41,980 >> بحيث ليس الكثير من القلق، منذ ذلك الحين، أعني، وهذا هو برنامج لتسجيل الدخول 775 00:45:41,980 --> 00:45:48,720 وهذا ما يتم شحنها مع OS X، ومئات أو آلاف من الناس لديهم 776 00:45:48,720 --> 00:45:50,020 مراجعة هذه التعليمات البرمجية. 777 00:45:50,020 --> 00:45:55,330 وهكذا، إذا، في التعليمات البرمجية في مكان ما، كنت القول ما اذا كان هذه السلسلة يساوي يساوي 778 00:45:55,330 --> 00:45:58,860 ديفيد هو رائع، تسجيل الدخول، ثم شخص ما ستكون، مثل، الانتظار. 779 00:45:58,860 --> 00:45:59,800 هذا ليس صحيحا. 780 00:45:59,800 --> 00:46:01,790 هذا لا ينبغي أن يكون هنا. 781 00:46:01,790 --> 00:46:06,650 ذلك أن طريقة واحدة نحصل على الأشياء أن يكون نوع من آمن. 782 00:46:06,650 --> 00:46:10,300 >> ولكن التفكير حتى برامج أن تكتب. 783 00:46:10,300 --> 00:46:13,000 دعنا نقول أنك كتبت برنامج تسجيل الدخول. 784 00:46:13,000 --> 00:46:20,440 لذلك هذا البرنامج تسجيل الدخول الذي كتبته، لذلك من الواضح، كنت جيدة 785 00:46:20,440 --> 00:46:21,210 مبرمج. 786 00:46:21,210 --> 00:46:25,610 كنت لن تضع أي الخبيثة إذا كان x يساوي يساوي ديفيد هو رائع 787 00:46:25,610 --> 00:46:27,860 في التعليمات البرمجية. 788 00:46:27,860 --> 00:46:31,930 ولكن هذا البرنامج، وماذا عن استخدامها لترجمة هذا البرنامج؟ 789 00:46:31,930 --> 00:46:34,180 شيء من هذا القبيل ضجيج. 790 00:46:34,180 --> 00:46:38,460 ذلك ما إذا كان الشخص الذي حدث ل إرسال ضجيج الخاصة فتش في ضجيج 791 00:46:38,460 --> 00:46:44,310 شيء من هذا القبيل، إذا أنا تجميع دخول البرنامج، ثم أدخل هذا الرمز 792 00:46:44,310 --> 00:46:49,720 في برنامج تسجيل الدخول الذي يقول، إذا x تساوي يساوي ديفيد هو رائع؟ 793 00:46:49,720 --> 00:46:59,890 حتى لا تماما حتى الآن، ولكن لدينا نفس تصدر هنا، حيث ضجيج، حسنا، 794 00:46:59,890 --> 00:47:03,790 الآلاف، إن لم يكن عشرات الآلاف من الناس، ونظرت إلى ضجيج، لديها 795 00:47:03,790 --> 00:47:07,160 نظرت إلى خطوطها من التعليمات البرمجية، وقال: كل الحق، لا يوجد شيء سيئ هنا. 796 00:47:07,160 --> 00:47:10,680 من الواضح، لا أحد يفعل أي شيء هذا الخبيثة. 797 00:47:10,680 --> 00:47:15,780 >> ولكن ما هو رنة نفسها، مثل، ماذا لو أنني تجميع ضجيج؟ 798 00:47:15,780 --> 00:47:20,900 ماذا لو كان لدي بعض المترجم أن يجمع ضجيج الذي يدرج في ضجيج 799 00:47:20,900 --> 00:47:25,610 هذا الإختراق الخاصة التي تقول، كل الحق، عندما كنت تجميع ضجيج، ثم 800 00:47:25,610 --> 00:47:31,290 تنفيذ أحصل ينبغي أن ننظر خصيصا داخل البرنامج تسجيل الدخول وإدراج 801 00:47:31,290 --> 00:47:34,230 كلمة المرور هذه، يساوي يساوي ديف هو رائع؟ 802 00:47:34,230 --> 00:47:37,990 لذلك تذكر أن المترجم الخاص بك نفسه يتعين جمعها في مرحلة ما. 803 00:47:37,990 --> 00:47:42,810 حتى إذا ما اخترت لتجميع ضجيج مع، في حد ذاته هو ضار، فإنك 804 00:47:42,810 --> 00:47:45,580 يمكن أن يكون مشدود كله الطريق إلى أسفل الخط. 805 00:47:45,580 --> 00:47:49,630 >> حتى هنا، لدينا كين تومسون ودينيس ريتشي. 806 00:47:49,630 --> 00:47:53,780 لذلك هذا هو الصورة الأيقونية. 807 00:47:53,780 --> 00:47:55,470 دينيس ريتشي هو على حق. 808 00:47:55,470 --> 00:47:58,740 فهو الرئيسية - 809 00:47:58,740 --> 00:48:03,640 كتب حد كبير C. لذا يمكنك أشكره على هذه الفئة. 810 00:48:03,640 --> 00:48:04,840 كين تومسون على اليسار. 811 00:48:04,840 --> 00:48:07,780 اثنين منهم كتب أساسا UNIX. 812 00:48:07,780 --> 00:48:10,140 حسنا، وكانوا من المساهمين الرئيسيين في UNIX. 813 00:48:10,140 --> 00:48:11,310 كانت هناك بعض الآخرين. 814 00:48:11,310 --> 00:48:16,240 حتى كين تومسون في مرحلة ما،، فاز في جائزة تورينج. 815 00:48:16,240 --> 00:48:20,860 وجائزة تورينج، لقد سمعت دائما أنها تشير بهذه الطريقة، انها 816 00:48:20,860 --> 00:48:23,100 جائزة نوبل لعلوم الكمبيوتر. 817 00:48:23,100 --> 00:48:27,500 >> حتى في جائزة تورينج، لديه ل إعطاء خطاب القبول. 818 00:48:27,500 --> 00:48:31,790 وقال انه يعطي هذا الخطاب مشهورة جدا الآن، ودعا تأملات في الثقة 819 00:48:31,790 --> 00:48:35,620 الثقة، ونحن وربطت لعلى موقع بالطبع. 820 00:48:35,620 --> 00:48:41,670 وفي هذا الخطاب، كما يقول، كل الحق، لذلك أنا كتبت UNIX، والآن كل من 821 00:48:41,670 --> 00:48:43,320 أيها الناس تستخدم UNIX. 822 00:48:43,320 --> 00:48:46,960 الآن، تذكر اليوم أن لينكس هو سليل مباشر من UNIX. 823 00:48:46,960 --> 00:48:50,140 OS X يستخدم مباشرة UNIX. 824 00:48:50,140 --> 00:48:53,810 نوافذ لا ليس كثيرا، ولكن الكثير من الأفكار أخذت من UNIX. 825 00:48:53,810 --> 00:48:59,220 >> حتى انه يذهب الى المسرح ويقول: كل الحق، كتبت UNIX. 826 00:48:59,220 --> 00:49:03,940 وفقط حتى تعرف يا رفاق، وأنا قادرا على تسجيل الدخول إلى كل 827 00:49:03,940 --> 00:49:05,590 واحد من أجهزة الكمبيوتر. 828 00:49:05,590 --> 00:49:14,280 منذ أضع واحدة من هذه خاصة إذا كان x يساوي يساوي كين تومسون هو رائع، 829 00:49:14,280 --> 00:49:16,350 ثم أنا سمحت للدخول. 830 00:49:16,350 --> 00:49:18,370 حتى الناس مثل، حسنا، كيف فعلت ذلك؟ 831 00:49:18,370 --> 00:49:21,090 ونحن ننظر في برنامج تسجيل الدخول ولا شيء هناك. 832 00:49:21,090 --> 00:49:24,700 انه مثل، حسنا، أنا عدلت المترجم لتسجيل الدخول في البرنامج 833 00:49:24,700 --> 00:49:30,490 ذلك أن البرنامج سوف يكون الدخول الآن أن x تساوي يساوي كين تومسون 834 00:49:30,490 --> 00:49:31,700 هو رهيبة. 835 00:49:31,700 --> 00:49:33,120 >> ويقولون، حسنا، هذا ليس صحيحا. 836 00:49:33,120 --> 00:49:35,740 نحن نبحث في المجمع، و ليس لديها أي خطوط المترجم 837 00:49:35,740 --> 00:49:36,400 رمز من هذا القبيل. 838 00:49:36,400 --> 00:49:40,540 انه مثل، حسنا، ولكن ما أنت تجميع مترجم مع؟ 839 00:49:40,540 --> 00:49:44,810 ويعتقدون، وانه، مثل، حسنا، أنا واحد الذي قدم لك المترجم 840 00:49:44,810 --> 00:49:50,580 كنت تستخدم لتجميع المترجم، لذلك كنت تجميع مترجم، أن 841 00:49:50,580 --> 00:49:56,390 هو نفسه الخبيثة، وسوف كسر برنامج تسجيل الدخول. 842 00:49:56,390 --> 00:49:59,360 ذلك أساسا، في تلك المرحلة، وهناك أي وسيلة يمكن أن ننظر إلى المصدر 843 00:49:59,360 --> 00:50:02,450 مدونة لبرنامج تسجيل الدخول لمعرفة ما هو الخطأ. 844 00:50:02,450 --> 00:50:04,220 أنت لا تستطيع حتى ننظر في شفرة المصدر من مترجم 845 00:50:04,220 --> 00:50:06,790 لمعرفة ما هو الخطأ. 846 00:50:06,790 --> 00:50:11,940 >> وكنت بحاجة أن ننظر إلى آلة رمز، ثنائي الفعلي لل 847 00:50:11,940 --> 00:50:16,760 مترجم ترجمة لرؤية، انتظر، هذه الأسطر من التعليمات البرمجية لا ينبغي أن يكون هنا. 848 00:50:16,760 --> 00:50:22,130 ولكن كين تومسون يعتبر خطوة واحدة أبعد من ذلك وقال، حسنا، هناك 849 00:50:22,130 --> 00:50:25,980 هذه البرامج الخاصة التي فعلا تساعدك على قراءة ثنائي من البرامج، 850 00:50:25,980 --> 00:50:29,340 وحتى اذا كان شخص يستخدم هذا البرنامج ل قراءة الثنائية، فإنها ترى هذه 851 00:50:29,340 --> 00:50:30,490 الأسطر من التعليمات البرمجية. 852 00:50:30,490 --> 00:50:34,020 انه تعديل تلك البرامج أن أقول، كل الحق، إذا كنت تبحث في 853 00:50:34,020 --> 00:50:38,460 مترجم، لا تظهر هذا خاص مجموعة من ثنائي. 854 00:50:38,460 --> 00:50:42,830 >> لذلك فأنت بحاجة لاتخاذ هذه الخطوة أبعد من ذلك وأساسا، يمكن أن يكون 855 00:50:42,830 --> 00:50:46,210 مستويات متعددة اتخذت من المراوغة، وعند نقطة ما، لا أحد في الواقع 856 00:50:46,210 --> 00:50:47,990 سيتم التحقق. 857 00:50:47,990 --> 00:50:52,590 وبالتالي فإن المغزى من القصة هو، كنت لن تكون الكتابة 858 00:50:52,590 --> 00:50:54,340 رنة في هذه الفئة. 859 00:50:54,340 --> 00:50:57,020 وأنت تسير إلى استخدام التسلق رنة الكثير في هذه الفئة. 860 00:50:57,020 --> 00:51:00,490 للجميع تعلمون، هو ضجيج الخبيثة البرنامج الذي يتم تخريب كل 861 00:51:00,490 --> 00:51:03,520 برنامج واحد كنت قد جمعت من أي وقت مضى. 862 00:51:03,520 --> 00:51:08,206 وأترك ​​لكم على هذا المشؤومة جدا ملاحظة، أراك يوم الاربعاء. 863 00:51:08,206 --> 00:51:10,030 >> [تصفيق] 864 00:51:10,030 --> 00:51:12,935 >> المتحدث 2: في CS50 المقبل. 865 00:51:12,935 --> 00:51:14,580 >> SPEAKER 3: لا أجرؤ على القول أن. 866 00:51:14,580 --> 00:51:15,930 يمكنك القيام بذلك. 867 00:51:15,930 --> 00:51:19,440 كنت قد فعلت هذا من قبل، يمكنك القيام بذلك اليوم، يمكنك القيام بذلك غدا. 868 00:51:19,440 --> 00:51:20,930 كنت قد تم القيام بذلك لعدة سنوات. 869 00:51:20,930 --> 00:51:22,790 اذهبوا الى هناك والقيام بذلك. 870 00:51:22,790 --> 00:51:24,310 يمكنك القيام بذلك. 871 00:51:24,310 --> 00:51:26,102 >> [عزف الموسيقى]