1 00:00:00,000 --> 00:00:02,420 >> [عزف الموسيقى] 2 00:00:02,420 --> 00:00:05,189 3 00:00:05,189 --> 00:00:05,980 المتحدث: جميع الصحيح. 4 00:00:05,980 --> 00:00:08,540 لذلك دعونا نتحدث عن آخر الشيء هذا النوع من فريدة من نوعها لC، 5 00:00:08,540 --> 00:00:10,010 وهو أنواع البيانات والمتغيرات. 6 00:00:10,010 --> 00:00:12,340 عندما أقول فريدة من نوعها لC، وأنا حقا يعني فقط في سياق، 7 00:00:12,340 --> 00:00:14,470 إذا كنت قد تم مبرمج لفترة طويلة حقا، 8 00:00:14,470 --> 00:00:16,270 كنت قد ربما لا عملت مع أنواع البيانات 9 00:00:16,270 --> 00:00:18,470 إذا كنت قد استخدمت الحديث لغات البرمجة. 10 00:00:18,470 --> 00:00:20,432 اللغات الحديثة مثل PHP وجافا سكريبت، 11 00:00:20,432 --> 00:00:22,640 ونحن سوف نرى أيضا قليلا في وقت لاحق في الدورة، 12 00:00:22,640 --> 00:00:25,550 لم يكن لديك فعلا لتحديد نوع البيانات متغير 13 00:00:25,550 --> 00:00:26,270 عند استخدامه. 14 00:00:26,270 --> 00:00:28,067 >> أنت فقط نعلن ذلك والبدء في استخدامه. 15 00:00:28,067 --> 00:00:29,900 اذا كان عدد صحيح، فإنه أعلم أنه صحيح. 16 00:00:29,900 --> 00:00:31,960 اذا كان حرف، انها يعرف انها شخصية. 17 00:00:31,960 --> 00:00:35,320 اذا كان كلمة، فهو يعرف انها سلسلة، ما يسمى ب. 18 00:00:35,320 --> 00:00:37,300 >> ولكن في C، وهو اللغة القديمة، ونحن بحاجة 19 00:00:37,300 --> 00:00:39,420 لتحديد البيانات نوع كل متغير 20 00:00:39,420 --> 00:00:42,990 أن نخلق أول مرة التي نستخدمها هذا المتغير. 21 00:00:42,990 --> 00:00:45,030 هكذا C يأتي مع بعض المدمج في أنواع البيانات. 22 00:00:45,030 --> 00:00:46,972 ودعونا الحصول على دراية مع بعض من هؤلاء. 23 00:00:46,972 --> 00:00:50,180 ثم بعد ذلك سنقوم أيضا التحدث قليلا عن بعض أنواع البيانات 24 00:00:50,180 --> 00:00:54,450 أننا قد كتبت لك، حتى تتمكن من استخدامها في CS50. 25 00:00:54,450 --> 00:00:56,130 >> الأول هو كثافة العمليات. 26 00:00:56,130 --> 00:00:59,110 يتم استخدام نوع البيانات عدد صحيح للمتغيرات التي من شأنها أن تخزين قيم صحيحة. 27 00:00:59,110 --> 00:01:03,210 حتى 1، 2، 3، سلبية 1، 2، 3، وهلم جرا. 28 00:01:03,210 --> 00:01:05,960 الأعداد الصحيحة، وهو ما كنت يجب أن نضع في اعتبارنا للمسابقة، 29 00:01:05,960 --> 00:01:09,590 دائما تناول أربعة بايت من الذاكرة، والذي هو 32 بت. 30 00:01:09,590 --> 00:01:11,620 هناك ثمانية بت في البايت. 31 00:01:11,620 --> 00:01:14,470 >> ولذلك فإن هذا يعني أن مجموعة من تقدر أن عدد صحيح يمكن تخزين 32 00:01:14,470 --> 00:01:19,130 محدود بسبب ما يمكن أن يصلح داخل 32 بت بقيمة المعلومات. 33 00:01:19,130 --> 00:01:21,850 الآن كما اتضح، ومنذ فترة طويلة تقرر 34 00:01:21,850 --> 00:01:24,310 أننا سوف تقسيم أن مجموعة من 32 بت 35 00:01:24,310 --> 00:01:26,650 في الأعداد الصحيحة السالبة والأعداد الصحيحة الموجبة، 36 00:01:26,650 --> 00:01:28,390 كل شوط الحصول النطاق. 37 00:01:28,390 --> 00:01:32,230 لذلك مجموعة من القيم التي نمثلها مع مجموعة من صحيح سلبي 2 38 00:01:32,230 --> 00:01:36,520 إلى قوة ال31 إلى 2 ل قوة ال31 ناقص 1، 39 00:01:36,520 --> 00:01:38,190 تسبب لك أيضا في حاجة إلى بقعة ل0. 40 00:01:38,190 --> 00:01:41,650 >> وذلك أساسا نصف القيم الممكنة أنت يمكن أن يصلح في الباحث هي سلبية، 41 00:01:41,650 --> 00:01:42,610 ونصف إيجابية. 42 00:01:42,610 --> 00:01:47,270 وتقريبا هنا، وهذا هو حول سلبية 2000000000 نحو إيجابي 2 مليار دولار. 43 00:01:47,270 --> 00:01:50,207 يعطي أو يأخذ بضعة مئات من ملايين. 44 00:01:50,207 --> 00:01:52,290 وهذا ما يمكن أن يصلح لك في متغير عدد صحيح. 45 00:01:52,290 --> 00:01:55,490 الآن لدينا أيضا شيئا دعا عدد صحيح غير موقعة. 46 00:01:55,490 --> 00:01:59,220 الآن [إينتس] غير الموقعة ليست نوع منفصل من متغير. 47 00:01:59,220 --> 00:02:01,590 بدلا من ذلك، غير موقعة ما يسمى تصفيات. 48 00:02:01,590 --> 00:02:04,990 عدلت البيانات نوع عدد صحيح قليلا. 49 00:02:04,990 --> 00:02:07,850 >> وفي هذه الحالة، ما غير موقعة means-- ويمكنك أيضا 50 00:02:07,850 --> 00:02:11,530 استخدام أنواع البيانات الأخرى غير الموقعة، صحيح ليس الوحيد. 51 00:02:11,530 --> 00:02:15,310 ماذا يفعل فعال غير الزوجي مجموعة من القيم الإيجابية 52 00:02:15,310 --> 00:02:19,350 هذا صحيح ويمكن أن تتخذ على على حساب لم يعد يسمح 53 00:02:19,350 --> 00:02:21,140 لك أن تأخذ على القيم السلبية. 54 00:02:21,140 --> 00:02:25,400 حتى إذا كان لديك أرقام أن تعرف سوف تحصل على أعلى من 2 مليار لكن أقل 55 00:02:25,400 --> 00:02:31,280 من 4 مليار دولار، لexample-- وهو 2 إلى 32 power-- 56 00:02:31,280 --> 00:02:33,330 قد ترغب في استخدام عدد صحيح غير موقعة إذا كنت 57 00:02:33,330 --> 00:02:35,050 أعرف قيمتك لن يكون سلبيا. 58 00:02:35,050 --> 00:02:37,216 >> سيكون لديك بعض الأحيان تستخدم للمتغيرات غير الموقعة 59 00:02:37,216 --> 00:02:39,460 في CS50، والذي هو السبب في أنني أذكر ذلك هنا. 60 00:02:39,460 --> 00:02:43,830 ولكن مرة أخرى، ومجموعة من القيم التي يمكن أن تمثل مع عدد صحيح غير موقعة 61 00:02:43,830 --> 00:02:48,240 كما لر صحيح العادية، هي 0 ل2 إلى قوة 32 ناقص 1، 62 00:02:48,240 --> 00:02:50,840 أو ما يقرب من 0-4000000000. 63 00:02:50,840 --> 00:02:53,730 لذلك كنت قد تضاعفت بشكل فعال مجموعة الإيجابي الذي يمكن أن يصلح لك، 64 00:02:53,730 --> 00:02:56,270 ولكن كنت قد تخليت عن كل القيم السلبية. 65 00:02:56,270 --> 00:03:00,040 >> الآن بوصفها جانبا، غير موقعة ليس التصفيات المؤهلة الوحيدة 66 00:03:00,040 --> 00:03:01,790 أننا قد نرى ل أنواع البيانات المتغيرة. 67 00:03:01,790 --> 00:03:05,779 هناك أيضا أشياء تسمى قصيرة وطويلة وCONST. 68 00:03:05,779 --> 00:03:07,820 CONST سنرى قليلا قليلا في وقت لاحق في الدورة. 69 00:03:07,820 --> 00:03:10,830 القصير والطويل، ونحن ربما لا. 70 00:03:10,830 --> 00:03:12,830 >> ولكن أعرف فقط أن هناك هي صفات أخرى. 71 00:03:12,830 --> 00:03:14,080 غير موقعة ليست واحدة فقط. 72 00:03:14,080 --> 00:03:16,596 لكنه واحد فقط نحن بصدد الحديث عن الوقت الحالي. 73 00:03:16,596 --> 00:03:17,310 لذلك كل الحق. 74 00:03:17,310 --> 00:03:18,393 لذلك نحن قد غطت أعداد صحيحة. 75 00:03:18,393 --> 00:03:19,200 ماذا بعد؟ 76 00:03:19,200 --> 00:03:20,130 >> حرف. 77 00:03:20,130 --> 00:03:23,620 وهكذا يتم استخدام حرف للمتغيرات التي سيتم تخزين أحرف واحدة. 78 00:03:23,620 --> 00:03:24,850 شار قصيرة لحرف. 79 00:03:24,850 --> 00:03:27,870 وأحيانا قد تسمع الناس نطق أنها سيارة. 80 00:03:27,870 --> 00:03:32,020 >> من الشخصيات دائما يستغرق فترة تصل احدة بايت من الذاكرة، وهو بت فقط 8. 81 00:03:32,020 --> 00:03:35,700 ولذلك فإن هذا يعني أنها يمكن أن يصلح فقط القيم في نطاق سلبي 2 82 00:03:35,700 --> 00:03:42,430 إلى قوة السابعة، أو سلبية 128، ل2 إلى قوة 7TH ناقص 1، أو 127. 83 00:03:42,430 --> 00:03:45,710 >> بفضل ASCII، كان عليه منذ فترة طويلة قررت وسيلة 84 00:03:45,710 --> 00:03:50,805 لتعيين هذه الأرقام الإيجابية من 0-127 لمختلف الشخصيات 85 00:03:50,805 --> 00:03:52,182 أن كل موجود على لوحة المفاتيح لدينا. 86 00:03:52,182 --> 00:03:54,640 لذلك كما سنرى لاحقا في وبطبيعة الحال، وعليك ربما 87 00:03:54,640 --> 00:03:57,700 تأتي لحفظ في بعض نقطة عاصمة A، لexample-- 88 00:03:57,700 --> 00:04:00,732 العاصمة الطابع A-- خرائط لعدد 65. 89 00:04:00,732 --> 00:04:02,940 والسبب في ذلك هو لأن هذا هو ما انها 90 00:04:02,940 --> 00:04:05,490 تم تعيينه من قبل معيار ASCII. 91 00:04:05,490 --> 00:04:07,850 >> صغيرة A هو 97. 92 00:04:07,850 --> 00:04:11,900 الطابع 0 لعند في الواقع كتابة الحرف، وليس 93 00:04:11,900 --> 00:04:13,532 يمثل الرقم صفر، هو 48. 94 00:04:13,532 --> 00:04:15,240 ستعرف زوجين هذه كما تذهب. 95 00:04:15,240 --> 00:04:17,990 وسوف تأتي بالتأكيد في حاجة إلى في وقت لاحق قليلا في CS50. 96 00:04:17,990 --> 00:04:20,450 97 00:04:20,450 --> 00:04:23,390 >> نوع البيانات الرئيسي التالي وأرقام النقطة العائمة. 98 00:04:23,390 --> 00:04:26,100 حتى أرقام الفاصلة العائمة هي المعروف أيضا باسم الأعداد الحقيقية. 99 00:04:26,100 --> 00:04:28,850 انهم فى الاساس الأرقام التي لديك نقطة العشرية في نفوسهم. 100 00:04:28,850 --> 00:04:33,360 القيم النقطة العائمة مثل الأعداد الصحيحة أيضا 101 00:04:33,360 --> 00:04:36,090 الواردة في 4 بايت من الذاكرة. 102 00:04:36,090 --> 00:04:37,580 الآن ليس هناك مخطط هنا. 103 00:04:37,580 --> 00:04:40,890 ليس هناك خط الأعداد، ل تصف مجموعة من تعويم 104 00:04:40,890 --> 00:04:44,550 ليس واضحا بالضبط أو بديهية. 105 00:04:44,550 --> 00:04:47,350 >> ويكفي أن نقول لكم لدينا 32 بت للعمل مع. 106 00:04:47,350 --> 00:04:49,730 وإذا كان لديك عدد مثل باي، التي لديها 107 00:04:49,730 --> 00:04:55,510 جزءا صحيحا 3، والعائمة نقطة جزئيا، أو الجزء العشري 0.14159، 108 00:04:55,510 --> 00:04:58,735 وهلم جرا، تحتاج إلى أن يكون قادرة على تمثيل كل من it-- 109 00:04:58,735 --> 00:05:02,420 الجزء صحيح والجزء العشري. 110 00:05:02,420 --> 00:05:04,550 >> فما رأيك قد يعني؟ 111 00:05:04,550 --> 00:05:08,180 شيء واحد هو أنه إذا كان العشري جزء يحصل أطول وأطول، 112 00:05:08,180 --> 00:05:10,660 إذا كان لدي كبير جدا الجزء الصحيح، وأنا لا ربما 113 00:05:10,660 --> 00:05:13,090 تكون قادرة على أن تكون دقيقة مع الجزء العشري. 114 00:05:13,090 --> 00:05:15,280 وهذا هو حقا الحد من عدد عشري. 115 00:05:15,280 --> 00:05:17,229 >> العوامات لديها مشكلة الدقة. 116 00:05:17,229 --> 00:05:19,270 لدينا 32 بت فقط عمل مع، ولذا فإننا لا يمكن إلا أن 117 00:05:19,270 --> 00:05:22,510 يكون دقيقا جدا مع هذا الجزء العشري. 118 00:05:22,510 --> 00:05:27,300 ونحن لا يمكن أن يكون بالضرورة عشري جزء الدقيق إلى 100 أو 200 أرقام، 119 00:05:27,300 --> 00:05:29,710 لأن لدينا فقط 32 بت للعمل مع. 120 00:05:29,710 --> 00:05:31,590 لذلك هذا هو وجود قيود على عدد عشري. 121 00:05:31,590 --> 00:05:33,590 >> الآن لحسن الحظ هناك نوع بيانات آخر يسمى 122 00:05:33,590 --> 00:05:36,530 المزدوج، والتي إلى حد ما تتعامل مع هذه المشكلة. 123 00:05:36,530 --> 00:05:39,980 الزوجي، مثل العوامات، وتستخدم أيضا ل تخزين الأعداد الحقيقية، أو النقطة العائمة 124 00:05:39,980 --> 00:05:40,840 القيم. 125 00:05:40,840 --> 00:05:44,340 والفرق هو أن الزوجي هي الدقة المزدوجة. 126 00:05:44,340 --> 00:05:48,177 ويمكن أن تناسب 64 بت من البيانات، أو ثمانية بايت. 127 00:05:48,177 --> 00:05:49,010 ماذا يعني ذلك؟ 128 00:05:49,010 --> 00:05:51,801 حسنا، هذا يعني أننا يمكن أن يكون أكثر بكثير دقيقة مع العلامة العشرية. 129 00:05:51,801 --> 00:05:54,830 بدلا من الاضطرار بي إلى سبعة الأماكن ربما، مع تعويم، 130 00:05:54,830 --> 00:05:56,710 فإننا يمكن أن يكون ربما إلى 30 الأماكن. 131 00:05:56,710 --> 00:05:59,824 إذا كان هذا هو المهم، قد ترغب لاستخدام مزدوج بدلا من تعويم. 132 00:05:59,824 --> 00:06:01,740 في الأساس، إذا كنت العمل على أي شيء حيث 133 00:06:01,740 --> 00:06:06,540 وجود مكان عشري طويلة حقا والكثير من الدقة مهم، 134 00:06:06,540 --> 00:06:08,630 ربما كنت ترغب في استخدام overfloat مزدوجة. 135 00:06:08,630 --> 00:06:11,250 الآن بالنسبة لمعظم عملك في CS50، يجب تعويم تكفي. 136 00:06:11,250 --> 00:06:15,340 ولكن أعرف أن زوجي توجد باعتباره طريقة للتعامل بعض الشيء مع دقة 137 00:06:15,340 --> 00:06:20,980 المشكلة عن طريق إعطائك مبلغ إضافي 32 بت للعمل مع لأرقامك. 138 00:06:20,980 --> 00:06:23,650 >> الآن هذا ليس نوع البيانات. 139 00:06:23,650 --> 00:06:24,390 هذا هو نوع. 140 00:06:24,390 --> 00:06:25,340 ويسمى ذلك الفراغ. 141 00:06:25,340 --> 00:06:27,506 وأنا أتحدث عن ذلك هنا لأننا ربما 142 00:06:27,506 --> 00:06:29,520 رأيت ذلك عدة مرات بالفعل في CS50. 143 00:06:29,520 --> 00:06:32,020 وكنت قد يكون التساؤل ما يدور حول كل شيء. 144 00:06:32,020 --> 00:06:33,390 >> الفراغ حتى هو نوع. 145 00:06:33,390 --> 00:06:34,097 فإنه لا وجود لها. 146 00:06:34,097 --> 00:06:35,180 ولكنها ليست من نوع البيانات. 147 00:06:35,180 --> 00:06:39,350 >> لا يمكننا إنشاء متغير من نوع باطلة وتعيين قيمة له. 148 00:06:39,350 --> 00:06:42,519 ولكن وظائف، على سبيل المثال، يمكن أن يكون لها نوع إرجاع الفراغ. 149 00:06:42,519 --> 00:06:45,060 في الأساس، إذا كنت ترى وظيفة الذي يحتوي على نوع عودة الفراغ، 150 00:06:45,060 --> 00:06:46,970 فهذا يعني أنها لا ترجع قيمة. 151 00:06:46,970 --> 00:06:49,440 يمكنك التفكير في شيوعا الوظيفة التي استخدمناها حتى الآن 152 00:06:49,440 --> 00:06:52,780 في CS50 التي لا ترجع قيمة؟ 153 00:06:52,780 --> 00:06:54,700 >> Printf واحد. 154 00:06:54,700 --> 00:06:56,820 Printf لا فعلا يعود أي شيء لك. 155 00:06:56,820 --> 00:06:59,850 فإنه يطبع شيئا لل الشاشة، وانها في الاساس 156 00:06:59,850 --> 00:07:01,650 من الآثار الجانبية لماذا يفعل printf. 157 00:07:01,650 --> 00:07:03,620 لكنها لا تعطيك القيمة مرة أخرى. 158 00:07:03,620 --> 00:07:08,419 كنت لا التقاط وتخزين النتيجة في بعض متغير لاستخدامها في وقت لاحق. 159 00:07:08,419 --> 00:07:10,710 انها مجرد يطبع شيء ل الشاشة وأنت القيام به. 160 00:07:10,710 --> 00:07:14,360 >> لذلك نحن نقول ان printf هي وظيفة الفراغ. 161 00:07:14,360 --> 00:07:16,450 تقوم بإرجاع أي شيء. 162 00:07:16,450 --> 00:07:18,580 >> قائمة محيط يمكن أيضا أن تكون وظيفة باطلة. 163 00:07:18,580 --> 00:07:21,410 وكنت قد رأيت أيضا أن لا بأس به في CS50 جدا. 164 00:07:21,410 --> 00:07:22,300 الفراغ الرئيسي كثافة العمليات. 165 00:07:22,300 --> 00:07:23,260 يفعل ذلك قرع جرس؟ 166 00:07:23,260 --> 00:07:24,080 167 00:07:24,080 --> 00:07:27,220 أساسا ما يعنيه ذلك هو أن الرئيسية لا يأخذ أية معلمات. 168 00:07:27,220 --> 00:07:29,520 ليس هناك حجة أن الحصول على تمرير إلى الرئيسية. 169 00:07:29,520 --> 00:07:32,780 الآن في وقت لاحق سنرى أن هناك وسيلة لتمرير الوسائط إلى الرئيسية، 170 00:07:32,780 --> 00:07:36,189 ولكن حتى الآن ما كنا شهدت هي باطلة الرئيسي كثافة العمليات. 171 00:07:36,189 --> 00:07:37,730 الرئيسية فقط لا تأخذ أية وسائط. 172 00:07:37,730 --> 00:07:40,236 ولذا فإننا تحديد ذلك بقوله الفراغ. 173 00:07:40,236 --> 00:07:42,110 نحن مجرد كونها جدا صريحة عن حقيقة 174 00:07:42,110 --> 00:07:44,430 أنه لا يأخذ أية وسائط. 175 00:07:44,430 --> 00:07:47,160 >> حتى الآن، يكفي أن أقول هذا الفراغ الأساس 176 00:07:47,160 --> 00:07:50,789 ينبغي أن تكون فقط كعنصر نائب بالنسبة لك في التفكير في لا شيء. 177 00:07:50,789 --> 00:07:52,080 انها ليست حقا القيام بأي شيء. 178 00:07:52,080 --> 00:07:53,550 ليس هناك قيمة الإرجاع هنا. 179 00:07:53,550 --> 00:07:54,770 ليس هناك المعلمات هنا. 180 00:07:54,770 --> 00:07:55,709 انها باطلة. 181 00:07:55,709 --> 00:07:57,250 انها أكثر تعقيدا قليلا من ذلك. 182 00:07:57,250 --> 00:08:00,640 ولكن هذا ينبغي أن يكون كافيا ل أفضل جزء من الدورة. 183 00:08:00,640 --> 00:08:05,010 ونأمل الآن لديك قليلا أكثر قليلا من مفهوم ما هو باطل. 184 00:08:05,010 --> 00:08:08,460 >> حتى تلك هي خمسة أنواع عليك اللقاء التي تم إنشاؤها في لC. 185 00:08:08,460 --> 00:08:10,670 ولكن في CS50 ايضا لدينا مكتبة. 186 00:08:10,670 --> 00:08:13,550 CS50.h، والتي يمكن أن تشمل. 187 00:08:13,550 --> 00:08:15,930 والتي سوف توفر لك مع نوعين إضافية 188 00:08:15,930 --> 00:08:18,280 عليك أن تكون على الأرجح قادرة لاستخدامها في المهام الخاصة بك، 189 00:08:18,280 --> 00:08:21,210 أو مجرد عمل عموما البرمجة. 190 00:08:21,210 --> 00:08:23,030 >> وأول هذه العناصر هو منطقي. 191 00:08:23,030 --> 00:08:26,780 حتى نوع البيانات المنطقية، منطقي، ويستخدم للمتغيرات 192 00:08:26,780 --> 00:08:28,114 التي سيتم تخزين قيمة منطقية. 193 00:08:28,114 --> 00:08:29,863 إذا كنت قد سمعت من أي وقت مضى هذا المصطلح من قبل، كنت 194 00:08:29,863 --> 00:08:31,960 يمكن أن نعرف أن قيمة منطقية القيمة هي القادرة فقط 195 00:08:31,960 --> 00:08:34,440 عقد قيمتين متميزة مختلفة. 196 00:08:34,440 --> 00:08:35,872 صح وخطأ. 197 00:08:35,872 --> 00:08:37,580 الآن هذا يبدو جدا أساسي، أليس كذلك؟ 198 00:08:37,580 --> 00:08:40,496 انها نوع من المفاجأة أن هذا غير موجود في C كما انها بنيت في ذلك. 199 00:08:40,496 --> 00:08:42,640 وفي العديد من اللغات الحديثة، وبطبيعة الحال، القيم المنطقية 200 00:08:42,640 --> 00:08:45,390 هي نوع البيانات الافتراضي القياسية. 201 00:08:45,390 --> 00:08:47,192 ولكن في C، وانهم في الواقع لا. 202 00:08:47,192 --> 00:08:48,400 ولكن قمنا بإنشاء لانها لكم. 203 00:08:48,400 --> 00:08:51,910 حتى إذا كنت في حاجة من أي وقت مضى لخلق متغير نوعه غير منطقي، 204 00:08:51,910 --> 00:08:55,230 من المؤكد أن مجرد # تضمين CS50.h في بداية البرنامج، 205 00:08:55,230 --> 00:08:57,800 وعليك أن تكون قادرا على خلق المتغيرات من نوع منطقي. 206 00:08:57,800 --> 00:09:02,095 >> إذا كنت قد نسيت ل# تضمين CS50.h، و البدء في استخدام منطقية من نوع المتغيرات، 207 00:09:02,095 --> 00:09:04,970 قد تواجه بعض المشاكل عندما كنت تجميع البرنامج. 208 00:09:04,970 --> 00:09:06,490 بذلك فقط تكون على اطلاع على ذلك. 209 00:09:06,490 --> 00:09:11,180 وربما يمكنك فقط إصلاح المشاكل التي جنيه بما في ذلك CS50.h. 210 00:09:11,180 --> 00:09:14,590 >> نوع البيانات الرئيسية الأخرى التي نحن تقدم لك في المكتبة CS50 211 00:09:14,590 --> 00:09:15,670 هو السلسلة. 212 00:09:15,670 --> 00:09:17,130 فما هو سلسلة؟ 213 00:09:17,130 --> 00:09:18,520 سلاسل هي في الواقع مجرد كلمات. 214 00:09:18,520 --> 00:09:20,000 انهم مجموعة من الأحرف. 215 00:09:20,000 --> 00:09:20,640 انهم الكلمات. 216 00:09:20,640 --> 00:09:21,390 انهم الجمل. 217 00:09:21,390 --> 00:09:22,480 انهم الفقرات. 218 00:09:22,480 --> 00:09:25,850 قد تكون الكتب كلها، حتى. 219 00:09:25,850 --> 00:09:29,690 >> قصيرة جدا لفترة طويلة جدا سلسلة من الأحرف. 220 00:09:29,690 --> 00:09:34,310 إذا كنت بحاجة إلى استخدام الجمل، على سبيل المثال، لتخزين كلمة واحدة، 221 00:09:34,310 --> 00:09:37,609 من المؤكد أن مجرد تشمل CS50.h في بداية البرنامج 222 00:09:37,609 --> 00:09:38,900 بحيث يمكنك استخدام نوع السلسلة. 223 00:09:38,900 --> 00:09:43,910 ثم يمكنك إنشاء المتغيرات نوع البيانات الذي هو سلسلة. 224 00:09:43,910 --> 00:09:46,160 الآن في وقت لاحق في الدورة، سنرى أيضا أن هذا 225 00:09:46,160 --> 00:09:47,752 ليست القصة بأكملها، إما. 226 00:09:47,752 --> 00:09:49,460 ونحن سوف تواجه الأشياء ودعا الهياكل، 227 00:09:49,460 --> 00:09:54,249 والتي تسمح لك لمجموعة ما قد يكون عدد صحيح وسلسلة في وحدة واحدة. 228 00:09:54,249 --> 00:09:56,290 ويمكننا استخدام ذلك ل بعض الأغراض، والتي قد 229 00:09:56,290 --> 00:09:57,750 تأتي في متناول اليدين في وقت لاحق في الدورة. 230 00:09:57,750 --> 00:09:59,500 >> ونحن سوف تتعلم أيضا حول أنواع محددة، 231 00:09:59,500 --> 00:10:01,720 والتي تسمح لك لخلق أنواع البيانات الخاصة بك. 232 00:10:01,720 --> 00:10:03,060 نحن لا داعي للقلق عن ذلك في الوقت الراهن. 233 00:10:03,060 --> 00:10:04,550 ولكن مجرد معرفة أن هذا شيء في الأفق، 234 00:10:04,550 --> 00:10:07,633 أن هناك الكثير لهذا كله نوع شيء مما أنا أقول لك فقط 235 00:10:07,633 --> 00:10:08,133 الآن. 236 00:10:08,133 --> 00:10:10,591 حتى الآن بعد أن تعلمنا قليلا عن البيانات الأساسية 237 00:10:10,591 --> 00:10:14,230 أنواع وأنواع البيانات CS50، دعونا الحديث عن كيفية التعامل مع المتغيرات 238 00:10:14,230 --> 00:10:18,530 وخلق لهم باستخدام هذه أنواع البيانات في برامجنا. 239 00:10:18,530 --> 00:10:22,670 إذا كنت ترغب في إنشاء متغير، كل ما عليك القيام به هو شيئين. 240 00:10:22,670 --> 00:10:24,147 >> أولا، تحتاج إلى إعطائها نوع. 241 00:10:24,147 --> 00:10:26,230 الشيء الثاني الذي تحتاجه القيام به هو إعطائه اسما. 242 00:10:26,230 --> 00:10:28,740 مرة واحدة كنت قد فعلت ذلك، وفرضت منقوطة في نهاية هذا الخط، 243 00:10:28,740 --> 00:10:29,830 قمت بإنشاء متغير. 244 00:10:29,830 --> 00:10:32,370 >> حتى هنا مثالين. 245 00:10:32,370 --> 00:10:35,744 عدد كثافة العمليات. الرسالة شار ؛. 246 00:10:35,744 --> 00:10:36,660 ماذا فعلت هنا؟ 247 00:10:36,660 --> 00:10:38,110 لقد خلق متغيرين. 248 00:10:38,110 --> 00:10:40,190 >> الأولى، والمتغير الاسم هو الرقم. 249 00:10:40,190 --> 00:10:44,830 وعدد غير قادرة على اجراء صحيح اكتب القيم، لأن نوعه غير صحيح. 250 00:10:44,830 --> 00:10:48,040 الرسالة هو متغير آخر التي يمكن أن تعقد الأحرف 251 00:10:48,040 --> 00:10:50,240 لأن نوع بياناته هو شار. 252 00:10:50,240 --> 00:10:51,772 >> جميلة واضحة، أليس كذلك؟ 253 00:10:51,772 --> 00:10:53,480 إذا وجدت نفسك في الحالة التي تكون فيها 254 00:10:53,480 --> 00:10:56,250 تحتاج إلى إنشاء متعددة المتغيرات من نفس النوع، 255 00:10:56,250 --> 00:10:58,740 تحتاج فقط إلى تحديد اسم نوع واحد. 256 00:10:58,740 --> 00:11:01,600 ثم قائمة فقط على العديد من المتغيرات من هذا النوع ما تحتاج إليه. 257 00:11:01,600 --> 00:11:04,230 >> حتى أتمكن على سبيل المثال، هنا في هذا الخط الثالث من التعليمات البرمجية، 258 00:11:04,230 --> 00:11:07,420 أقول ارتفاع كثافة ؛، سطر جديد. 259 00:11:07,420 --> 00:11:08,291 عرض الباحث ؛. 260 00:11:08,291 --> 00:11:09,290 والتي من شأنها أن تعمل أيضا. 261 00:11:09,290 --> 00:11:12,039 كنت لا يزال الحصول على اثنين من المتغيرات تسمى الطول والعرض، كل واحدة منها 262 00:11:12,039 --> 00:11:12,730 هو عدد صحيح. 263 00:11:12,730 --> 00:11:16,970 ولكن أنا سمحت ل، أشياء للجملة C، تدعيمه في سطر واحد. 264 00:11:16,970 --> 00:11:20,230 الباحث الطول، العرض، انها نفس الشيء. 265 00:11:20,230 --> 00:11:23,900 لقد خلق متغيرين، واحدة تسمى دعا عرض ارتفاع واحد، وكلاهما 266 00:11:23,900 --> 00:11:26,730 هي قادرة على عقد قيم نوع صحيحة. 267 00:11:26,730 --> 00:11:30,920 >> وبالمثل هنا، يمكنني إنشاء ثلاثة القيم النقطة العائمة في آن واحد. 268 00:11:30,920 --> 00:11:33,350 يمكنني ربما إنشاء متغير دعا الجذر التربيعي ل2-- 269 00:11:33,350 --> 00:11:35,766 والتي سوف يفترض في نهاية المطاف عقد point-- العائمة 270 00:11:35,766 --> 00:11:39,222 أن تمثيل الساحة جذور 2-- الجذر التربيعي 3، وبي. 271 00:11:39,222 --> 00:11:41,180 قد فعلت هذا على ثلاثة خطوط منفصلة. 272 00:11:41,180 --> 00:11:47,690 تعويم، الجذر التربيعي 2؛ تعويم الجذر التربيعي 3؛ تطفو بي. والتي من شأنها أن تعمل أيضا. 273 00:11:47,690 --> 00:11:50,590 >> ولكن مرة أخرى، لا أستطيع توطيد فقط هذا في سطر واحد من التعليمات البرمجية. 274 00:11:50,590 --> 00:11:54,050 يجعل الامور قليلا أقصر، وليس عالي الكعب كما. 275 00:11:54,050 --> 00:11:57,259 >> الآن بشكل عام، هو التصميم الجيد فقط تعريف متغير عندما كنت في حاجة إليها. 276 00:11:57,259 --> 00:11:59,050 وسنتحدث قليلا أكثر قليلا عن ذلك 277 00:11:59,050 --> 00:12:00,945 في وقت لاحق في الدورة عندما نناقش النطاق. 278 00:12:00,945 --> 00:12:03,320 لذلك لا تحتاج بالضرورة إلى خلق كل المتغيرات الخاصة بك 279 00:12:03,320 --> 00:12:05,990 في بداية البرنامج، الذي بعض الناس قد فعلت في الماضي، 280 00:12:05,990 --> 00:12:08,700 أو كان بالتأكيد شائع جدا قبل الترميز ممارسة سنوات عديدة 281 00:12:08,700 --> 00:12:11,700 عند العمل مع C. كنت للتو قد تريد إنشاء حق عندما متغير 282 00:12:11,700 --> 00:12:13,140 أنت تحتاجه. 283 00:12:13,140 --> 00:12:13,640 حسنا. 284 00:12:13,640 --> 00:12:15,150 لذلك قمنا بإنشاء المتغيرات. 285 00:12:15,150 --> 00:12:16,790 كيف نستخدمها؟ 286 00:12:16,790 --> 00:12:18,650 بعد نعلن متغير، نحن لسنا بحاجة 287 00:12:18,650 --> 00:12:21,237 لتحديد نوع البيانات هذا المتغير بعد الآن. 288 00:12:21,237 --> 00:12:24,070 في الواقع، إذا قمت بذلك، كنت قد في نهاية المطاف مع بعض النتائج غريبة 289 00:12:24,070 --> 00:12:25,490 أننا سوف نوع من يتستر على في الوقت الراهن. 290 00:12:25,490 --> 00:12:27,365 ولكن يكفي أن نقول، أشياء غريبة تسير 291 00:12:27,365 --> 00:12:30,740 لبدء يحدث إذا كنت غير قصد إعادة يعلن-المتغيرات بنفس الاسم 292 00:12:30,740 --> 00:12:32,210 مرارا و تكرارا. 293 00:12:32,210 --> 00:12:33,882 >> حتى هنا لدي أربعة أسطر من التعليمات البرمجية. 294 00:12:33,882 --> 00:12:36,090 ولدي بضع التعليقات هناك فقط مبينا 295 00:12:36,090 --> 00:12:37,840 ما يحدث في كل سطر فقط للمساعدة 296 00:12:37,840 --> 00:12:40,520 تحصل تقع في ما يجري. 297 00:12:40,520 --> 00:12:41,520 عدد كثافة العمليات حتى ؛. 298 00:12:41,520 --> 00:12:42,520 رأيت أنه في السابق. 299 00:12:42,520 --> 00:12:44,000 هذا هو تعريف متغير. 300 00:12:44,000 --> 00:12:46,670 >> لقد خلقت الآن متغير دعا عدد هذا 301 00:12:46,670 --> 00:12:48,970 قادرة على اجراء القيم عدد صحيح من نوع. 302 00:12:48,970 --> 00:12:50,210 لقد أعلن ذلك. 303 00:12:50,210 --> 00:12:53,770 >> السطر التالي أنا تعيين قيمة للعدد. 304 00:12:53,770 --> 00:12:54,992 عدد يساوي 17. 305 00:12:54,992 --> 00:12:55,950 ما يحدث هناك؟ 306 00:12:55,950 --> 00:12:58,880 أنا أضع عدد 17 داخل هذا المتغير. 307 00:12:58,880 --> 00:13:02,760 >> حتى لو كنت من أي وقت مضى بعد ذلك بطباعة ما محتويات العدد هي في وقت لاحق، 308 00:13:02,760 --> 00:13:04,030 سوف يقولون لي انها 17. 309 00:13:04,030 --> 00:13:07,030 حتى لقد أعلن متغير، ثم لقد تعيينه. 310 00:13:07,030 --> 00:13:10,570 >> يمكننا تكرار هذه العملية مرة أخرى بحرف شار ؛. 311 00:13:10,570 --> 00:13:11,640 هذا الإعلان. 312 00:13:11,640 --> 00:13:14,010 رسالة يساوي رأس المال H. هذا واجب. 313 00:13:14,010 --> 00:13:16,030 واضحة جدا، جدا. 314 00:13:16,030 --> 00:13:18,319 >> الآن ربما هذه العملية يبدو نوع من سخيفة. 315 00:13:18,319 --> 00:13:20,110 لماذا نفعل ذلك في سطرين من التعليمات البرمجية؟ 316 00:13:20,110 --> 00:13:21,401 هل هناك طريقة أفضل للقيام بذلك؟ 317 00:13:21,401 --> 00:13:22,250 في الواقع، هناك. 318 00:13:22,250 --> 00:13:24,375 في بعض الأحيان قد ترى هذا يسمى التهيئة. 319 00:13:24,375 --> 00:13:28,446 انها عندما تقوم بتعريف متغير وتعيين قيمة في نفس الوقت. 320 00:13:28,446 --> 00:13:30,320 هذا هو في الواقع جميلة الشيء المشترك للقيام به. 321 00:13:30,320 --> 00:13:32,870 عند إنشاء متغير، عادة تريد أن يكون لها بعض القيمة الأساسية. 322 00:13:32,870 --> 00:13:34,330 حتى لو كان 0 أو شيء من هذا. 323 00:13:34,330 --> 00:13:36,180 لك فقط لأنك تعطيه قيمة. 324 00:13:36,180 --> 00:13:38,360 >> يمكنك تهيئة متغير. 325 00:13:38,360 --> 00:13:42,320 الباحث عدد يساوي 17 هو نفس أول سطرين من التعليمات البرمجية حتى أعلاه. 326 00:13:42,320 --> 00:13:46,829 شار إلكتروني يساوي h غير نفس خطوط الثالثة والرابعة من التعليمات البرمجية أعلاه. 327 00:13:46,829 --> 00:13:49,620 الوجبات الجاهزة أهم هنا عندما نقوم إعلان وتعيين 328 00:13:49,620 --> 00:13:51,740 المتغيرات هي بعد أن قمت أعلن ذلك، لاحظ 329 00:13:51,740 --> 00:13:53,700 أنا لا تستخدم نوع البيانات مرة أخرى. 330 00:13:53,700 --> 00:13:57,916 انا لا اقول عدد الباحث يساوي 17 على السطر الثاني من التعليمات البرمجية، على سبيل المثال. 331 00:13:57,916 --> 00:13:59,290 أنا فقط أقول عدد يساوي 17. 332 00:13:59,290 --> 00:14:02,537 >> مرة أخرى، وإعادة يعلن-متغير بعد كنت قد أعلنت بالفعل أنها يمكن أن تؤدي 333 00:14:02,537 --> 00:14:03,620 لبعض نتيجة غريبة. 334 00:14:03,620 --> 00:14:05,950 بذلك فقط تكون حذرا من ذلك. 335 00:14:05,950 --> 00:14:06,660 >> أنا دوغ ويد. 336 00:14:06,660 --> 00:14:08,870 وهذا هو CS50. 337 00:14:08,870 --> 00:14:10,499