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