>> [عزف الموسيقى]
المتحدث: جميع الصحيح.
لذلك دعونا نتحدث عن آخر الشيء هذا النوع من فريدة من نوعها لC،
وهو أنواع البيانات والمتغيرات.
عندما أقول فريدة من نوعها لC، وأنا حقا يعني فقط في سياق،
إذا كنت قد تم مبرمج لفترة طويلة حقا،
كنت قد ربما لا عملت مع أنواع البيانات
إذا كنت قد استخدمت الحديث لغات البرمجة.
اللغات الحديثة مثل PHP وجافا سكريبت،
ونحن سوف نرى أيضا قليلا في وقت لاحق في الدورة،
لم يكن لديك فعلا لتحديد نوع البيانات متغير
عند استخدامه.
>> أنت فقط نعلن ذلك والبدء في استخدامه.
اذا كان عدد صحيح، فإنه أعلم أنه صحيح.
اذا كان حرف، انها يعرف انها شخصية.
اذا كان كلمة، فهو يعرف انها سلسلة، ما يسمى ب.
>> ولكن في C، وهو اللغة القديمة، ونحن بحاجة
لتحديد البيانات نوع كل متغير
أن نخلق أول مرة التي نستخدمها هذا المتغير.
هكذا C يأتي مع بعض المدمج في أنواع البيانات.
ودعونا الحصول على دراية مع بعض من هؤلاء.
ثم بعد ذلك سنقوم أيضا التحدث قليلا عن بعض أنواع البيانات
أننا قد كتبت لك، حتى تتمكن من استخدامها في CS50.
>> الأول هو كثافة العمليات.
يتم استخدام نوع البيانات عدد صحيح للمتغيرات التي من شأنها أن تخزين قيم صحيحة.
حتى 1، 2، 3، سلبية 1، 2، 3، وهلم جرا.
الأعداد الصحيحة، وهو ما كنت يجب أن نضع في اعتبارنا للمسابقة،
دائما تناول أربعة بايت من الذاكرة، والذي هو 32 بت.
هناك ثمانية بت في البايت.
>> ولذلك فإن هذا يعني أن مجموعة من تقدر أن عدد صحيح يمكن تخزين
محدود بسبب ما يمكن أن يصلح داخل 32 بت بقيمة المعلومات.
الآن كما اتضح، ومنذ فترة طويلة تقرر
أننا سوف تقسيم أن مجموعة من 32 بت
في الأعداد الصحيحة السالبة والأعداد الصحيحة الموجبة،
كل شوط الحصول النطاق.
لذلك مجموعة من القيم التي نمثلها مع مجموعة من صحيح سلبي 2
إلى قوة ال31 إلى 2 ل قوة ال31 ناقص 1،
تسبب لك أيضا في حاجة إلى بقعة ل0.
>> وذلك أساسا نصف القيم الممكنة أنت يمكن أن يصلح في الباحث هي سلبية،
ونصف إيجابية.
وتقريبا هنا، وهذا هو حول سلبية 2000000000 نحو إيجابي 2 مليار دولار.
يعطي أو يأخذ بضعة مئات من ملايين.
وهذا ما يمكن أن يصلح لك في متغير عدد صحيح.
الآن لدينا أيضا شيئا دعا عدد صحيح غير موقعة.
الآن [إينتس] غير الموقعة ليست نوع منفصل من متغير.
بدلا من ذلك، غير موقعة ما يسمى تصفيات.
عدلت البيانات نوع عدد صحيح قليلا.
>> وفي هذه الحالة، ما غير موقعة means-- ويمكنك أيضا
استخدام أنواع البيانات الأخرى غير الموقعة، صحيح ليس الوحيد.
ماذا يفعل فعال غير الزوجي مجموعة من القيم الإيجابية
هذا صحيح ويمكن أن تتخذ على على حساب لم يعد يسمح
لك أن تأخذ على القيم السلبية.
حتى إذا كان لديك أرقام أن تعرف سوف تحصل على أعلى من 2 مليار لكن أقل
من 4 مليار دولار، لexample-- وهو 2 إلى 32 power--
قد ترغب في استخدام عدد صحيح غير موقعة إذا كنت
أعرف قيمتك لن يكون سلبيا.
>> سيكون لديك بعض الأحيان تستخدم للمتغيرات غير الموقعة
في CS50، والذي هو السبب في أنني أذكر ذلك هنا.
ولكن مرة أخرى، ومجموعة من القيم التي يمكن أن تمثل مع عدد صحيح غير موقعة
كما لر صحيح العادية، هي 0 ل2 إلى قوة 32 ناقص 1،
أو ما يقرب من 0-4000000000.
لذلك كنت قد تضاعفت بشكل فعال مجموعة الإيجابي الذي يمكن أن يصلح لك،
ولكن كنت قد تخليت عن كل القيم السلبية.
>> الآن بوصفها جانبا، غير موقعة ليس التصفيات المؤهلة الوحيدة
أننا قد نرى ل أنواع البيانات المتغيرة.
هناك أيضا أشياء تسمى قصيرة وطويلة وCONST.
CONST سنرى قليلا قليلا في وقت لاحق في الدورة.
القصير والطويل، ونحن ربما لا.
>> ولكن أعرف فقط أن هناك هي صفات أخرى.
غير موقعة ليست واحدة فقط.
لكنه واحد فقط نحن بصدد الحديث عن الوقت الحالي.
لذلك كل الحق.
لذلك نحن قد غطت أعداد صحيحة.
ماذا بعد؟
>> حرف.
وهكذا يتم استخدام حرف للمتغيرات التي سيتم تخزين أحرف واحدة.
شار قصيرة لحرف.
وأحيانا قد تسمع الناس نطق أنها سيارة.
>> من الشخصيات دائما يستغرق فترة تصل احدة بايت من الذاكرة، وهو بت فقط 8.
ولذلك فإن هذا يعني أنها يمكن أن يصلح فقط القيم في نطاق سلبي 2
إلى قوة السابعة، أو سلبية 128، ل2 إلى قوة 7TH ناقص 1، أو 127.
>> بفضل ASCII، كان عليه منذ فترة طويلة قررت وسيلة
لتعيين هذه الأرقام الإيجابية من 0-127 لمختلف الشخصيات
أن كل موجود على لوحة المفاتيح لدينا.
لذلك كما سنرى لاحقا في وبطبيعة الحال، وعليك ربما
تأتي لحفظ في بعض نقطة عاصمة A، لexample--
العاصمة الطابع A-- خرائط لعدد 65.
والسبب في ذلك هو لأن هذا هو ما انها
تم تعيينه من قبل معيار ASCII.
>> صغيرة A هو 97.
الطابع 0 لعند في الواقع كتابة الحرف، وليس
يمثل الرقم صفر، هو 48.
ستعرف زوجين هذه كما تذهب.
وسوف تأتي بالتأكيد في حاجة إلى في وقت لاحق قليلا في CS50.
>> نوع البيانات الرئيسي التالي وأرقام النقطة العائمة.
حتى أرقام الفاصلة العائمة هي المعروف أيضا باسم الأعداد الحقيقية.
انهم فى الاساس الأرقام التي لديك نقطة العشرية في نفوسهم.
القيم النقطة العائمة مثل الأعداد الصحيحة أيضا
الواردة في 4 بايت من الذاكرة.
الآن ليس هناك مخطط هنا.
ليس هناك خط الأعداد، ل تصف مجموعة من تعويم
ليس واضحا بالضبط أو بديهية.
>> ويكفي أن نقول لكم لدينا 32 بت للعمل مع.
وإذا كان لديك عدد مثل باي، التي لديها
جزءا صحيحا 3، والعائمة نقطة جزئيا، أو الجزء العشري 0.14159،
وهلم جرا، تحتاج إلى أن يكون قادرة على تمثيل كل من it--
الجزء صحيح والجزء العشري.
>> فما رأيك قد يعني؟
شيء واحد هو أنه إذا كان العشري جزء يحصل أطول وأطول،
إذا كان لدي كبير جدا الجزء الصحيح، وأنا لا ربما
تكون قادرة على أن تكون دقيقة مع الجزء العشري.
وهذا هو حقا الحد من عدد عشري.
>> العوامات لديها مشكلة الدقة.
لدينا 32 بت فقط عمل مع، ولذا فإننا لا يمكن إلا أن
يكون دقيقا جدا مع هذا الجزء العشري.
ونحن لا يمكن أن يكون بالضرورة عشري جزء الدقيق إلى 100 أو 200 أرقام،
لأن لدينا فقط 32 بت للعمل مع.
لذلك هذا هو وجود قيود على عدد عشري.
>> الآن لحسن الحظ هناك نوع بيانات آخر يسمى
المزدوج، والتي إلى حد ما تتعامل مع هذه المشكلة.
الزوجي، مثل العوامات، وتستخدم أيضا ل تخزين الأعداد الحقيقية، أو النقطة العائمة
القيم.
والفرق هو أن الزوجي هي الدقة المزدوجة.
ويمكن أن تناسب 64 بت من البيانات، أو ثمانية بايت.
ماذا يعني ذلك؟
حسنا، هذا يعني أننا يمكن أن يكون أكثر بكثير دقيقة مع العلامة العشرية.
بدلا من الاضطرار بي إلى سبعة الأماكن ربما، مع تعويم،
فإننا يمكن أن يكون ربما إلى 30 الأماكن.
إذا كان هذا هو المهم، قد ترغب لاستخدام مزدوج بدلا من تعويم.
في الأساس، إذا كنت العمل على أي شيء حيث
وجود مكان عشري طويلة حقا والكثير من الدقة مهم،
ربما كنت ترغب في استخدام overfloat مزدوجة.
الآن بالنسبة لمعظم عملك في CS50، يجب تعويم تكفي.
ولكن أعرف أن زوجي توجد باعتباره طريقة للتعامل بعض الشيء مع دقة
المشكلة عن طريق إعطائك مبلغ إضافي 32 بت للعمل مع لأرقامك.
>> الآن هذا ليس نوع البيانات.
هذا هو نوع.
ويسمى ذلك الفراغ.
وأنا أتحدث عن ذلك هنا لأننا ربما
رأيت ذلك عدة مرات بالفعل في CS50.
وكنت قد يكون التساؤل ما يدور حول كل شيء.
>> الفراغ حتى هو نوع.
فإنه لا وجود لها.
ولكنها ليست من نوع البيانات.
>> لا يمكننا إنشاء متغير من نوع باطلة وتعيين قيمة له.
ولكن وظائف، على سبيل المثال، يمكن أن يكون لها نوع إرجاع الفراغ.
في الأساس، إذا كنت ترى وظيفة الذي يحتوي على نوع عودة الفراغ،
فهذا يعني أنها لا ترجع قيمة.
يمكنك التفكير في شيوعا الوظيفة التي استخدمناها حتى الآن
في CS50 التي لا ترجع قيمة؟
>> Printf واحد.
Printf لا فعلا يعود أي شيء لك.
فإنه يطبع شيئا لل الشاشة، وانها في الاساس
من الآثار الجانبية لماذا يفعل printf.
لكنها لا تعطيك القيمة مرة أخرى.
كنت لا التقاط وتخزين النتيجة في بعض متغير لاستخدامها في وقت لاحق.
انها مجرد يطبع شيء ل الشاشة وأنت القيام به.
>> لذلك نحن نقول ان printf هي وظيفة الفراغ.
تقوم بإرجاع أي شيء.
>> قائمة محيط يمكن أيضا أن تكون وظيفة باطلة.
وكنت قد رأيت أيضا أن لا بأس به في CS50 جدا.
الفراغ الرئيسي كثافة العمليات.
يفعل ذلك قرع جرس؟
أساسا ما يعنيه ذلك هو أن الرئيسية لا يأخذ أية معلمات.
ليس هناك حجة أن الحصول على تمرير إلى الرئيسية.
الآن في وقت لاحق سنرى أن هناك وسيلة لتمرير الوسائط إلى الرئيسية،
ولكن حتى الآن ما كنا شهدت هي باطلة الرئيسي كثافة العمليات.
الرئيسية فقط لا تأخذ أية وسائط.
ولذا فإننا تحديد ذلك بقوله الفراغ.
نحن مجرد كونها جدا صريحة عن حقيقة
أنه لا يأخذ أية وسائط.
>> حتى الآن، يكفي أن أقول هذا الفراغ الأساس
ينبغي أن تكون فقط كعنصر نائب بالنسبة لك في التفكير في لا شيء.
انها ليست حقا القيام بأي شيء.
ليس هناك قيمة الإرجاع هنا.
ليس هناك المعلمات هنا.
انها باطلة.
انها أكثر تعقيدا قليلا من ذلك.
ولكن هذا ينبغي أن يكون كافيا ل أفضل جزء من الدورة.
ونأمل الآن لديك قليلا أكثر قليلا من مفهوم ما هو باطل.
>> حتى تلك هي خمسة أنواع عليك اللقاء التي تم إنشاؤها في لC.
ولكن في CS50 ايضا لدينا مكتبة.
CS50.h، والتي يمكن أن تشمل.
والتي سوف توفر لك مع نوعين إضافية
عليك أن تكون على الأرجح قادرة لاستخدامها في المهام الخاصة بك،
أو مجرد عمل عموما البرمجة.
>> وأول هذه العناصر هو منطقي.
حتى نوع البيانات المنطقية، منطقي، ويستخدم للمتغيرات
التي سيتم تخزين قيمة منطقية.
إذا كنت قد سمعت من أي وقت مضى هذا المصطلح من قبل، كنت
يمكن أن نعرف أن قيمة منطقية القيمة هي القادرة فقط
عقد قيمتين متميزة مختلفة.
صح وخطأ.
الآن هذا يبدو جدا أساسي، أليس كذلك؟
انها نوع من المفاجأة أن هذا غير موجود في C كما انها بنيت في ذلك.
وفي العديد من اللغات الحديثة، وبطبيعة الحال، القيم المنطقية
هي نوع البيانات الافتراضي القياسية.
ولكن في C، وانهم في الواقع لا.
ولكن قمنا بإنشاء لانها لكم.
حتى إذا كنت في حاجة من أي وقت مضى لخلق متغير نوعه غير منطقي،
من المؤكد أن مجرد # تضمين CS50.h في بداية البرنامج،
وعليك أن تكون قادرا على خلق المتغيرات من نوع منطقي.
>> إذا كنت قد نسيت ل# تضمين CS50.h، و البدء في استخدام منطقية من نوع المتغيرات،
قد تواجه بعض المشاكل عندما كنت تجميع البرنامج.
بذلك فقط تكون على اطلاع على ذلك.
وربما يمكنك فقط إصلاح المشاكل التي جنيه بما في ذلك CS50.h.
>> نوع البيانات الرئيسية الأخرى التي نحن تقدم لك في المكتبة CS50
هو السلسلة.
فما هو سلسلة؟
سلاسل هي في الواقع مجرد كلمات.
انهم مجموعة من الأحرف.
انهم الكلمات.
انهم الجمل.
انهم الفقرات.
قد تكون الكتب كلها، حتى.
>> قصيرة جدا لفترة طويلة جدا سلسلة من الأحرف.
إذا كنت بحاجة إلى استخدام الجمل، على سبيل المثال، لتخزين كلمة واحدة،
من المؤكد أن مجرد تشمل CS50.h في بداية البرنامج
بحيث يمكنك استخدام نوع السلسلة.
ثم يمكنك إنشاء المتغيرات نوع البيانات الذي هو سلسلة.
الآن في وقت لاحق في الدورة، سنرى أيضا أن هذا
ليست القصة بأكملها، إما.
ونحن سوف تواجه الأشياء ودعا الهياكل،
والتي تسمح لك لمجموعة ما قد يكون عدد صحيح وسلسلة في وحدة واحدة.
ويمكننا استخدام ذلك ل بعض الأغراض، والتي قد
تأتي في متناول اليدين في وقت لاحق في الدورة.
>> ونحن سوف تتعلم أيضا حول أنواع محددة،
والتي تسمح لك لخلق أنواع البيانات الخاصة بك.
نحن لا داعي للقلق عن ذلك في الوقت الراهن.
ولكن مجرد معرفة أن هذا شيء في الأفق،
أن هناك الكثير لهذا كله نوع شيء مما أنا أقول لك فقط
الآن.
حتى الآن بعد أن تعلمنا قليلا عن البيانات الأساسية
أنواع وأنواع البيانات CS50، دعونا الحديث عن كيفية التعامل مع المتغيرات
وخلق لهم باستخدام هذه أنواع البيانات في برامجنا.
إذا كنت ترغب في إنشاء متغير، كل ما عليك القيام به هو شيئين.
>> أولا، تحتاج إلى إعطائها نوع.
الشيء الثاني الذي تحتاجه القيام به هو إعطائه اسما.
مرة واحدة كنت قد فعلت ذلك، وفرضت منقوطة في نهاية هذا الخط،
قمت بإنشاء متغير.
>> حتى هنا مثالين.
عدد كثافة العمليات. الرسالة شار ؛.
ماذا فعلت هنا؟
لقد خلق متغيرين.
>> الأولى، والمتغير الاسم هو الرقم.
وعدد غير قادرة على اجراء صحيح اكتب القيم، لأن نوعه غير صحيح.
الرسالة هو متغير آخر التي يمكن أن تعقد الأحرف
لأن نوع بياناته هو شار.
>> جميلة واضحة، أليس كذلك؟
إذا وجدت نفسك في الحالة التي تكون فيها
تحتاج إلى إنشاء متعددة المتغيرات من نفس النوع،
تحتاج فقط إلى تحديد اسم نوع واحد.
ثم قائمة فقط على العديد من المتغيرات من هذا النوع ما تحتاج إليه.
>> حتى أتمكن على سبيل المثال، هنا في هذا الخط الثالث من التعليمات البرمجية،
أقول ارتفاع كثافة ؛، سطر جديد.
عرض الباحث ؛.
والتي من شأنها أن تعمل أيضا.
كنت لا يزال الحصول على اثنين من المتغيرات تسمى الطول والعرض، كل واحدة منها
هو عدد صحيح.
ولكن أنا سمحت ل، أشياء للجملة C، تدعيمه في سطر واحد.
الباحث الطول، العرض، انها نفس الشيء.
لقد خلق متغيرين، واحدة تسمى دعا عرض ارتفاع واحد، وكلاهما
هي قادرة على عقد قيم نوع صحيحة.
>> وبالمثل هنا، يمكنني إنشاء ثلاثة القيم النقطة العائمة في آن واحد.
يمكنني ربما إنشاء متغير دعا الجذر التربيعي ل2--
والتي سوف يفترض في نهاية المطاف عقد point-- العائمة
أن تمثيل الساحة جذور 2-- الجذر التربيعي 3، وبي.
قد فعلت هذا على ثلاثة خطوط منفصلة.
تعويم، الجذر التربيعي 2؛ تعويم الجذر التربيعي 3؛ تطفو بي. والتي من شأنها أن تعمل أيضا.
>> ولكن مرة أخرى، لا أستطيع توطيد فقط هذا في سطر واحد من التعليمات البرمجية.
يجعل الامور قليلا أقصر، وليس عالي الكعب كما.
>> الآن بشكل عام، هو التصميم الجيد فقط تعريف متغير عندما كنت في حاجة إليها.
وسنتحدث قليلا أكثر قليلا عن ذلك
في وقت لاحق في الدورة عندما نناقش النطاق.
لذلك لا تحتاج بالضرورة إلى خلق كل المتغيرات الخاصة بك
في بداية البرنامج، الذي بعض الناس قد فعلت في الماضي،
أو كان بالتأكيد شائع جدا قبل الترميز ممارسة سنوات عديدة
عند العمل مع C. كنت للتو قد تريد إنشاء حق عندما متغير
أنت تحتاجه.
حسنا.
لذلك قمنا بإنشاء المتغيرات.
كيف نستخدمها؟
بعد نعلن متغير، نحن لسنا بحاجة
لتحديد نوع البيانات هذا المتغير بعد الآن.
في الواقع، إذا قمت بذلك، كنت قد في نهاية المطاف مع بعض النتائج غريبة
أننا سوف نوع من يتستر على في الوقت الراهن.
ولكن يكفي أن نقول، أشياء غريبة تسير
لبدء يحدث إذا كنت غير قصد إعادة يعلن-المتغيرات بنفس الاسم
مرارا و تكرارا.
>> حتى هنا لدي أربعة أسطر من التعليمات البرمجية.
ولدي بضع التعليقات هناك فقط مبينا
ما يحدث في كل سطر فقط للمساعدة
تحصل تقع في ما يجري.
عدد كثافة العمليات حتى ؛.
رأيت أنه في السابق.
هذا هو تعريف متغير.
>> لقد خلقت الآن متغير دعا عدد هذا
قادرة على اجراء القيم عدد صحيح من نوع.
لقد أعلن ذلك.
>> السطر التالي أنا تعيين قيمة للعدد.
عدد يساوي 17.
ما يحدث هناك؟
أنا أضع عدد 17 داخل هذا المتغير.
>> حتى لو كنت من أي وقت مضى بعد ذلك بطباعة ما محتويات العدد هي في وقت لاحق،
سوف يقولون لي انها 17.
حتى لقد أعلن متغير، ثم لقد تعيينه.
>> يمكننا تكرار هذه العملية مرة أخرى بحرف شار ؛.
هذا الإعلان.
رسالة يساوي رأس المال H. هذا واجب.
واضحة جدا، جدا.
>> الآن ربما هذه العملية يبدو نوع من سخيفة.
لماذا نفعل ذلك في سطرين من التعليمات البرمجية؟
هل هناك طريقة أفضل للقيام بذلك؟
في الواقع، هناك.
في بعض الأحيان قد ترى هذا يسمى التهيئة.
انها عندما تقوم بتعريف متغير وتعيين قيمة في نفس الوقت.
هذا هو في الواقع جميلة الشيء المشترك للقيام به.
عند إنشاء متغير، عادة تريد أن يكون لها بعض القيمة الأساسية.
حتى لو كان 0 أو شيء من هذا.
لك فقط لأنك تعطيه قيمة.
>> يمكنك تهيئة متغير.
الباحث عدد يساوي 17 هو نفس أول سطرين من التعليمات البرمجية حتى أعلاه.
شار إلكتروني يساوي h غير نفس خطوط الثالثة والرابعة من التعليمات البرمجية أعلاه.
الوجبات الجاهزة أهم هنا عندما نقوم إعلان وتعيين
المتغيرات هي بعد أن قمت أعلن ذلك، لاحظ
أنا لا تستخدم نوع البيانات مرة أخرى.
انا لا اقول عدد الباحث يساوي 17 على السطر الثاني من التعليمات البرمجية، على سبيل المثال.
أنا فقط أقول عدد يساوي 17.
>> مرة أخرى، وإعادة يعلن-متغير بعد كنت قد أعلنت بالفعل أنها يمكن أن تؤدي
لبعض نتيجة غريبة.
بذلك فقط تكون حذرا من ذلك.
>> أنا دوغ ويد.
وهذا هو CS50.