JASON هيرشهورن: أهلا، الجميع، لأسبوع 10. هذا هو الاسبوع مثيرة ل غدا هو اختبار 1، والتي سوف نحصل لفي الثانية. اليوم في القسم، ونحن في سبيلنا للذهاب على بعض الموارد لهذه المسابقة، و ثم سأجيب أي وجميع أسئلة يا رفاق لديهم. ونحن سوف ينتهي أخيرا مع بعض المشاكل الممارسة. نحن يمكن أن تنفق الجزء كامل الإجابة على الأسئلة. نحن يمكن أن تنفق الجزء كامل تخطى المشاكل الممارسة. سوف نتوسع فقط لملء المكان والزمان لدينا. لذلك أنا وضعت هذه القائمة في كل أسبوع، ولكن من المهم بشكل خاص هذا الاسبوع. لدراسة، إذا كان لديك لا بدأت بالفعل، يا صبي. ولكن نأمل كنت قد بدأت بالفعل. وأنت ذاهب من خلال المواد والموارد المذكورة هنا. سأكون في غاية يوصي عدد من هذه. على وجه الخصوص، هي مذكرات محاضرات مهم للغاية ومفيدة. يوفر study.cs50.net كبير التمهيدي على الكثير من المواضيع غطينا. كما أن لديها بعض عظيم ممارسة المشاكل. ومن ثم، وجوجل هو عظيم أيضا. أنا لا أعرف ما كنت تستخدم من أجله. ولكن استخدام جوجل، كذلك. وصول إلى لي إذا كان لديك أي أسئلة أو تعليقات، أو مخاوف. نظر أكثر من دورة الاستعراض الشرائح من الليلة الماضية. أو، إذا كان لديك بعض الوقت، مشاهدة الفيديو. لأنها توفر الكثير من مفيدة المواد والمعلومات. ومحاولة تغطية إن لم يكن كلها، وكثير من الموضوعات أننا قد غطت وأنك قد نرى في هذه المسابقة. الحديث عن هذه المسابقة، التي سيكون غدا. انها 75 دقيقة طويلة. كثير من كنت تأخذ ذلك في 1 صباحا، وبعض من كنت الاستيلاء عليها في الساعة 5:30. للمرة كنت لك أخذه و موقع كنت تتناولين ذلك، تأكد من قمت بسحب الوثيقة على الصفحة الرئيسية CS50.net. تذكر أنه يمكنك الحصول على واحد 8 1/2 بنسبة 11 ورقة لتأخذ معك. في كثير من الأحيان، والناس لا تستخدم هذا ورقة على الإطلاق خلال هذه المسابقة. ولكن في الحقيقة، هو لا يصدق مفيدة أداة الدراسة. لذلك تجميع تلك الورقة هو ما قضيت ربما ثلاث أو أربع ساعات به عندما كنت أدرس لCS50، و التي كانت مفيدة للغاية وبسهولة طريقة أتمكن من الدراسة لهذه المسابقة. لذلك حتى لو كان لديك بعض الآخر من الناس دراسة أدلة للنظر في و استخدام كمراجع، وأنا أوصي جعل دليل الدراسة الخاصة بك، ووضع الاشياء التي معا. التي تساعد حقا كنت تعلم جميع المواد. أخيرا وليس آخرا في هذا القسم، بعد مسابقة غدا هناك واحد المزيد محاضرة - يوم الاثنين المقبل. هناك واحد أكثر قسم، وليس المقبل الثلاثاء قبل عيد الشكر، ولكن الثلاثاء بعد ذلك. سنكون معا من أجل تلبية النهائي حفلة وداع والقيام أيضا بعض باردة الأمور لتحصل على الرجال متحمسون مزيد من الدراسات في علوم الكمبيوتر. هناك واحد أكثر المشروع، أكثر واحد عادلة، واحد اكثر hackathon. ونحن نقترب من نهاية CS50، وهي مثيرة - ولكن أيضا، إذا كنت مثل لي، حزين قليلا. قبل أن ننتقل، هل لديها أي أسئلة حول ما ما ناقشناه حتى الآن؟ حسنا، حسنا دعونا نذهب أكثر من بعض الأسئلة أن يكون لديك لهذه المسابقة والموضوعات نحن يمكن أن تغطي. لذلك هذا هو القائمة التي وضعت معا. انها ليست بأي حال شاملة، ولكن نأمل تنبيه ذاكرتك إذا كنت لديك بعض الأسئلة حول أي من هذه الموضوعات، أو إذا كان لديك أسئلة حول مشاكل الممارسة من المسابقات في السنوات الماضية. كان لدي أسئلة الزوجين التي كانت عبر البريد الالكتروني لي، ولكن أريد أن تأجيل على تلك لفترة ثانية. هل لدى أي شخص أي أسئلة، المشاكل التي لم يفهم، الأجوبة أنهم لم يفهموا للحصول على الولايات المتحدة بدأ؟ افي. الحضور: هل يمكن أن تذهب فقط على DOM واياكس سريعة حقا؟ مثل، ما نحتاج إلى معرفته أو ينبغي فهم عنهم؟ JASON هيرشهورن: أنا ذاهب للرد عموما هذه مسألة، ماذا يمكنني تحتاج لمعرفته حول موضوع معين س؟ لأن لدي شعور الكثيرين منكم ذاهبون إلى أن يسألني، أو هي غريبة عن ذلك. ذلك إلى حد أن هذا الموضوع كان تغطيتها في المحاضرة، أو القسم، أو على study.cs50.net، مشكلة مجموعة، كنت يجب أن تكون على دراية به. لذلك أنت لا تحتاج إلى معرفة كل نوع من العلامة التي تتوفر في HTML أو كل نوع من السمة أو الخاصية يمكنك ان تعطي شيئا في CSS. ولكن إذا رأيت ذلك في محاضرة سبيل المثال، إذا رأيت ذلك في مشكلة مجموعة، ربما يجب عليك أن تكون على دراية مع ذلك، لا سيما الأشياء التي رأيت في المحاضرة. لذلك ناقشنا الوثيقة طراز كائن قليلا في القسم، أكثر من ذلك في المحاضرة. يجب أن تكون على دراية مع أن الكثير من ذلك. ويجب أن يكون على دراية اياكس بالقدر نفسه. نحن لم ير تقدما لا يصدق أو الأمثلة تعقيدا من اياكس، لذلك كنت لن يطلب القيام شيء معقد بشكل لا يصدق. ولكن قد يطلب منك، كيف يمكنني إجراء مكالمة باستخدام اياكس مسج؟ وهو ما كنت قد رأيت عددا من المرات من قبل، سواء في مراجعة في الدورة والمحاضرات، و انها فقط خطوط العش اثنين من التعليمات البرمجية. لذلك هذا شيء يجب عليك أن يكون على دراية. ولكن مرة أخرى، لجميع هذه المواضيع، إذا كنت قد رأيت ذلك من قبل، فمن لعبة عادلة. ويمكن أن نطلب منك - من الواضح، ونحن سوف يطلب منك الأشياء التي لم أر من قبل. الترميز شيء لديك لا مثيل من قبل. الذي لا يعني لديك لا شهدت الوسائل لحل هذه المشكلة من قبل. كنت قد رأيت تلك الأدوات. على سبيل المثال، في مسابقة 1، وإذا تحتاج إلى رمز strlen. نحن لم مشفرة strlen قبل. لكنك تعلم كيفية استخدام لحلقة، كنت تعرف كيفية استخدام إذا كانت الظروف. أنت تعرف كيف تكتب المتغيرات في C. انها سوف تكون نفس الشيء هنا. كنت لن يطلب منك القيام أي شيء كنت لم أر من قبل، ولكن قد يطلب منك ل، مثل، وضع شيء معا بطريقة الرواية، أو حل نوع مختلف من المشاكل. آسف، لم يكن لديك محددة ل السؤال، ولكن لا أستطيع الإجابة عن كل موضوع واحد ما أو لا تحتاج إلى معرفته. ولكن أيضا، آسف، شيء آخر على ذلك. لقد أمضينا أكثر كثيرا من الوقت على قوائم الارتباط من لدينا على اياكس. لم تستخدم أياكس في مجموعة المشكلة. واحدة من السمات المركزية لتلك تعيين المشكلة التي كانت قوائم الارتباط. وقضينا الكثير من الوقت في محاضرة والقسم استخدامه. لذلك، هناك احتمال سيأتي القائمة رابط يصل المزيد في كثير من الأحيان على هذه المسابقة من اياكس الإرادة. أو الأسئلة التي لها علاقة مع الرابط وسوف يكون من المفيد قائمة المزيد من النقاط. حتى تتمكن من التركيز وبالتأكيد ضيقة في على الأشياء التي هي أكثر من المرجح أن يأتي لأن لدينا تنفق المزيد من الوقت عليها. موافق أي أسئلة أخرى؟ نعم. الحضور: هل نذهب على استخدام وظائف المجهول في جافا سكريبت؟ أنا في حيرة قليلا عن ذلك. JASON هيرشهورن: حتى في جافا سكريبت - أنا أحاول أن نفكر كيف يمكن أن يكتب هذا على - لذلك دعونا فتح فعليا حتى هذا الرمز. لذلك هذا هو الرمز الذي قمنا به الأسبوع الماضي. وكنت قد رأيت هذا من قبل إذا كنت كانت هنا في القسم الاسبوع الماضي. أو كنت قد رأيت شيئا مشابهة لهذه من قبل. ولكن يمكنك أن تبحث في هذا السطر الأول. هذه هي الطريقة التي تبدأ - لقد رأيت هذا من قبل الجميع. إذا كنت تريد أن تضع بعض شفرة جافا سكريبت، يمكنك وضعه داخل هذا، على افتراض كنت تستخدم مسج. هذا يقول، لا تفعل أي شيء حتى تحميل المستند. وبعد ذلك، كيرت، تشاهد هنا نحن نفعل شيئا من هذا القبيل - وظيفة PAREN مفتوحة، مغلقة PAREN. لذلك نحن لا يعطي هذا تعمل اسما. نحن لن تحدد هذه الوظيفة من المفترض أن تشغيل ثم يطلق عليه حفنة من الأوقات. نحن فقط أقول هذه الوثيقة يأخذ بالفعل وظيفة. زوجان من الأشياء للقيام به. ونحن لا نريد لتمضية الوقت ويعطيها اسما أو حفظه ل الأبد. نحن نريد فقط لتشغيل بعض الأشياء. لذلك فإن وظيفة نوع مجهول من يخدم هذا الغرض. عندما كنت لا تنوي استخدام شيء مرارا وتكرارا، لذلك لا تحتاج لإعطائه اسما - أنت فقط ترغب في استخدامه مرة واحدة - كنت أقول وظيفة، ل سبيل المثال، في هذه الحالة، وكنت للتو تحديد شيء هل يمكن أن تعطي اسما. مثل، فإننا لا يمكن سحب هذه الوظيفة من وإعطائه اسما ثم نسمي ذلك تعمل هنا. ولكن نحن لسنا بحاجة إلى لأننا لا تريد أن تضيع الوقت ويعطيها اسما أو إضاعة شيء في الفضاء اسمنا. وسترى أن الكثير. على سبيل المثال، نرى أن الكثير في هذا رمز، ولكن كنت قد رأيت هذا من قبل عندما النقر فوق شيء - تشغيل هذا النوع من التعليمات البرمجية. أننا يمكن أن تحدد التعليمات البرمجية التي نريد لتشغيل عندما كنا فوق، في هذه الحالة، هذا الرقم، بوصفها وظيفة منفصلة ثم قم بتشغيل تلك الوظيفة. ولكن في هذه الحالة، نحن فقط تخطي هذه الخطوة ونقله إلى هنا و فقط لتحديد كل شيء أننا نريد أن يحدث و لا يعطيها اسما. التي لا تزال قد لا يكون أجاب على سؤالك. الحضور: لا، لا. أعني، أعتقد أنني فقط لا حقا لماذا يحصل ذلك سيكون تعمل في كل شيء، على الرغم من. لأنه ليس حقا أن يطلق عليه. أنها لا تملك اسما حقا. JASON هيرشهورن: انها وظيفة في بمعنى انها سلسلة من الخطوات، كأنك وضعت في وظيفة. ثم وهذا هو السبب نسميه انها وظيفة مجهول. نحن لن تعطيه اسما. نحن لن نضيع تحاول على سبيل المثال، ولكن استطعنا. وظائف مجهولة، كنت يمكن أن تعطي اسما دائما. ذلك على سبيل المثال، هذا الرمز هنا، يمكننا أن نضع هذا الرمز داخل وظيفة ومن ثم استدعاء هذه وظيفة هنا. بدلا من ذلك، نقول، ونحن لن لعناء مع ذلك. نحن ذاهبون لمجرد الكتابة كل شيء هنا. انها مثل بعض الأحيان عندما كنت تكتب حلقة أربعة في C - يا رفاق لقد رأيت هذا من قبل - ربما كنت بالتكرار من خلال forloop في ط يساوي 0. أنا أقل من strlen. أو كنت ترغب في الذهاب إليه من خلال بعض مجموعة، يمكنك حفظ مجموعة مؤشر ط في بعض متغير. ويمكنك استخدام هذا المتغير. لذلك لا تحتاج لإعادة كتابة مجموعة قوس ط مرارا ومرارا وتكرارا. وهذا هو نوع من مثل متغير وهمية. انها لا تخدم الكثير من الأغراض الأخرى من لجعل التعليمات البرمجية الخاصة بك قليلا أكثر نظافة وأسهل للقراءة. وظيفة مماثلة هنا. فقط يجعل من أسهل قليلا، ولكن وظيفيا وليس هناك فرق. لا أن أجيب على سؤالك؟ الجمهور: نعم. JASON هيرشهورن: OK .. ماريو؟ الحضور: يوم أمس أنها غالبا ما تضع وظيفة الأقواس الحدث. هل يعني ذلك شيئا؟ أم أنها لأشياء مثل أنهم سيفعلون document.ready الحدث ظيفة. JASON هيرشهورن: لقد رأيت هذا، و مرة أخرى، وهذه هي الأشياء الصغيرة التي ربما أنا لا أريد ل تنفق الكثير من الوقت على. لأن في بعض الأحيان أنا لا أريد الناس الحصول استثنائي خارج أن لديهم لا سمعت عن هذه الأمور كثيرا. ولكن تحدثنا قليلا عن معالجات الأحداث. حتى يحدث شيء، ثم يتم تنفيذ هذه المهمة. ومن ثم نحن نريد أيضا أن نعرف بعض التفاصيل حول ما حدث في هذا الحدث. اعتقد ذلك يعود إلى مشكلة تعيين 4. وهذا ربما كان أسهل طريقة ل نفهم أن في الخروج. كان هناك بعض التعليمات البرمجية - مثل هذا الحدث يمكن أن يحدث، ولكن الحدث يمكن أن تعني أشياء كثيرة. إذا يمكن أن يعني النقر على الفأرة، فإنه قد يعني أنك ضربت مفتاح سهم، وآخرون إلى ذلك، وهلم جرا. لكنه حفظ جميع في هذا العام شيء يسمى الأحداث. ومن ثم يمكننا القول، هو هذا الحدث هذا الشيء؟ أم أن هذا الحدث هذا الشيء؟ أو أي نوع من حدث مع هذا الحدث؟ ولهذا السبب قمت بإنشاء هذا المتغير هناك لحفظ هذه المعلومات الإضافية حول ما حدث بالضبط أن كنت تريد الذهاب الى استخدام في الدالة. ولكن مرة أخرى، وهذا هو الارجح واحدة من أشياء أقل أهمية أن يكون السوبر دراية. حسنا، ما هي الأسئلة الأخرى لها الناس كان، أو حجر عثرة انهم صادف أثناء مراجعة؟ سنقوم بالرد تلك القائمة. ماذا عن الاختبارات خلال الممارسة، إذا وقد اتخذت تلك الناس بالفعل؟ ما هي بعض المشاكل التي تعثرت يا رفاق ما يصل؟ وأنا أعلم عن حقيقة أن العام الماضي وكان الاختبار الصعب حقا. الحضور: هل يمكن ان توضح ما هجوم حقن SQL هو؟ JASON هيرشهورن: OK، عظيم. لذلك نحن تحدثنا عن هذا قليلا. هناك محاضرة عن الأمن. ومرة أخرى، وكما ذكرت في وقت سابق، هذا هو جانبا. ولكن سوف تكون محبطة في هذه المسابقة عندما تقرأ بعض نقطة صغيرين السؤال، وكنت مثل، عندما لم أكن في أي وقت تعلم ذلك؟ كل تلك الأشياء في تلك المحاضرات أنك لم تعتقد أنك بحاجة إلى تعرف، أو هل يمكن أن يتستر على ل لم يكن لديهم علاقة مع مجموعة المشكلة، ومن المرجح أن تلك الخروج مرة أخرى على هذه المسابقة. لذلك، وبارد، وأشياء المتعة التي كنت للتو يعتقد ديفيد وأقول لك ل التمتع، وقال انه كان يقول لكم بالنسبة لك ل والتمتع بها وجعل لكم أن مجرد سوبر متحمسون تعلم كل شيء هناك هو أن نتعلم حول علوم الكمبيوتر. تأتي تلك الأشياء أيضا على المسابقات. لذلك، حتى هذه الأشياء الصغيرة التي لم تتصل مباشرة لمشكلتك مجموعة، كما كنت معتادا على الرجال من مسابقة 0، وربما تأتي. وهذا هو مثال جيد لشيء ما. لذلك حقن SQL الهجمات هو عندما كنت الحصول على بعض المعلومات من المستخدم و تريد إدراجه في جدول باستخدام ادخال SQL البيان، ولكنك لم تطهير مدخلات في وقت مبكر. لذلك، من الواضح رأيناه عبارات SQL. أنا مجرد فتح - دعنا نذهب - سنذهب إلى استعراض - أعتقد، الذي غطى ذلك؟ أعتقد فعل Samala. حتى نتمكن من الحصول على - الجمهور: أين تجد هذا؟ JASON هيرشهورن: حتى إذا ذهبت إلى CS50.net، ومسابقات، وبعد ذلك يمكنك انتقل مرارا والحصول على الشرائح من دورة الاستعراض. ولكن يمكنك أن ترى هذا هو مثال جيد من هجوم حقن SQL. نأخذ بعض المعلومات من المستخدم وأنها تعطينا سلسلة، ومن ثم نحن تريد إدراج هذه السلسلة في قاعدة بيانات. عموما نحن نذهب إلى أن تطهير المدخلات، مما يعني أن هناك بعض الأحرف التي تشكل خطرا. على سبيل المثال، في سلاسل SQL، هذه الاقتباسات - علامات الاقتباس المفردة أو علامات الاقتباس المزدوجة - يعني شيئا. أنها تعني نهاية هذه السلسلة هنا. وحتى إذا كان المستخدم يمنحك احد أو اقتباس مزدوجة، فإنها يمكن أن تكون في محاولة لتصل الرحلة الاستعلام SQL الخاصة بك و إدراج بعض الاشياء السيئة فيه. وإذا فعلوا ذلك، فإنها يمكن أن تكسب السيطرة على قاعدة البيانات الخاصة بك أو القيام ببعض الأشياء التي كنت لا تريد منها أن تفعل. ولهذا السبب كلما أخذنا SQL استفسارات، ونحن تطهير المدخلات قبل وضعه في قاعدة البيانات، والتي يعني أننا تهرب من تلك الشخصيات. سنتحدث عن ذلك في الثانية. ولكن قصة قصيرة طويلة، وحقن SQL الهجوم هو إذا كنت لا تفعل ذلك - إذا كنت لا تأخذ الرعاية من المدخلات قدموا لك قبل وضع الخاص بك قاعدة البيانات، فإنها يمكن، وكما ترون أسفل هنا، تشغيل استعلام الذي، في الواقع - وضعوا في التعليمات البرمجية الخاصة بهم إلى هنا و وحدد هذا الخط إلى هنا حدد كل شيء من الجدول بغض النظر ما يتم إعطاء كلمة المرور. لأن لديك أو يساوي 1 1. لذلك في الاساس، قصة قصيرة طويلة، وسيلة للسيطرة على قاعدة البيانات. السؤال، إذن، ليا رفاق، هو حيث في مجموعات ص 7 هل تطهير جميع المدخلات على الاستفسارات SQL الخاصة بك؟ حيث لم يحدث هذه الخطوة؟ أين منع حقن SQL الهجمات من الحدوث في ع تعيين 7؟ نعم. الجمهور: القبو؟ JASON هيرشهورن: لذا لم يكن سرداب عليه. نحن لم تجعلك تفعل هذا لهذا مشكلة خاصة مجموعة، لكنه يحدث في وظيفة الاستعلام. كتبنا فعلا بالنسبة لك، وأخذنا رعاية التعقيم المدخلات بالنسبة لك. ولكن في السنوات الماضية، وكان الطلاب لكتابة المدخلات من تلقاء نفسها. في ع مجموعة 7، والكثير منكم - اسمحوا لي أن فتح ملف واحد الآخر. لذلك ستلاحظ هنا الكثير من الناس، في مشكلة تعيين 7، لم يدع هذه الوظيفة على الاوتار. هذه الوظيفة، htmlspecialchars، مرة أخرى - هذه السلسلة قد يكون بعض الأشياء أنه في HTML يعني شيئا آخر. مثل قوس، مربع، أو زاوية قوس يعني شيئا في HTML. وحتى إذا قمت بطباعة أنه من أصل ل الشاشة أو إذا كنت تأخذ مجرد أن و طباعة هذا إلى HTML الخاص بك، أن القوة نفعل شيئا لا تتوقع. حتى htmlspecialchars يذهب على كل تلك الشخصيات التي لديها خاصة الاجتماعات ويهرب منهم. حتى يحصل على طباعته خارج كنص كنت تريد أن ترى، بدلا من الشد حتى HTML الخاص بك. كنا نسمي ذلك وظيفة في الرأس. والكثير من الناس نسيت أن استدعاء هذه الدالة في كود كنت تكتب. لذلك، على سبيل المثال، إذا كان اسم الأسهم و قوس الزاوية فيه، وكنت قد نسيت استدعاء هذه الدالة، تلك الزاوية قوس يمكن أن خلعت ما بدا HTML الخاصة بك مثل. لكن استدعاء هذه الوظيفة سوف الهروب أن ذلك يطبع فعلا بوصفه قوس الزاوية وليس رمي قبالة كود HTML الخاص بك. نفس السبب رأيناه، في بعض الأحيان، مائلة قبل التنصيص في خط printf لأننا لا نريد لل علامات اقتباس مزدوجة أسفل السلسلة. نحن نريد لطباعتها إلى الشاشة. لذلك كل هذا هو نفس الفكرة. لا أن أجيب على سؤالك؟ الجمهور: نوع. JASON هيرشهورن: هل لديها المتابعة؟ الجمهور: أعتقد أن حقن SQL الهجوم له علاقة مع ذلك؟ أنا لا أفهم كيف وهما ذات الصلة. لماذا كنت تفعل specialchars؟ JASON هيرشهورن: موافق، وبالتالي فإن SQL هجوم الحقن عند حقن بعض السلاسل الخبيثة إلى شخص ما البرنامج، وأنها تأخذ فقط من تشغيل و الاستعلام SQL مع سلسلة أعطيته لهم. كما ترون أسفل هنا، أن يمكن أن يكون مشكلة. وبالتالي فإن الطريقة التي تمنع ضد ذلك هو كنت تأخذ سلسلة لها أنها تعطي كنت - حتى هذه السلسلة هنا - وكنت تطهير ذلك. كنت أهرب من كل الأشياء التي يحتمل أن تكون إشكالية. لذلك لم يكن تفسيرها على أنها شيء وهذا يعني شيئا. ومثالا على ذلك مع HTML هي هذه الوظيفة. حتى انها نفس الفكرة هنا. وأنا كنت فقط يظهر لك أخرى أمثلة عندما قمت شهدت هذه الفكرة من قبل. الهروب إدخال المستخدم قبل الطباعة بها إلى الشاشة أو وضعه داخل عبارة SQL. الجمهور: حتى في هذه الحالة، المستخدم يتم العبث مع مبرمج. JASON هيرشهورن: نعم. مع كل هذه الهجمات الأمنية، هذا هو دائما عموما المستخدم، أو شخص ما، يحاول فوضى معك، مبرمج. وهذه هي الطرق التي يمكن منع ضدهم. الجمهور: لذا لدي سؤال عن وظائف التجزئة. في مسابقة 1 من عام 2011، وهناك نوعان أسئلة حول التجزئات من جانب واحد. وأنا أتساءل فقط ما يعني ذلك. JASON هيرشهورن: OK، الذي مسابقة؟ 2011؟ الجمهور: نعم. الحضور: 1 مسابقة؟ الحضور: [غير مسموع]. هذا مثل تجزئة كلمة مرور. هذا ليس وضع الأشياء - JASON هيرشهورن: ما الصفحة كان ذلك؟ الجمهور: أعتقد أنه كان 9 أو 10، أو كليهما. JASON هيرشهورن: كل الحق، المضي قدما، وكيرت. يمكنك الإجابة حين ننظر. الجمهور: أعتقد أنه يتحدث حول تجزئة كلمة مرور. مثل، عندما يقوم شخص ما يدخل كلمة السر، كنت تحويلها إلى شيء المشفرة. هذا هو كلمة السر البعثرة، والذي هو مختلفة من دالة البعثرة التي يضع شيئا في جدول تجزئة. JASON هيرشهورن: دعونا نرى. اسمحوا لي سحب ما يصل ما كما تعطي الجواب. ثم سنقوم المشي من خلال ذلك. لذلك أعطى كيرت مثال عظيم من تجزئة في اتجاه واحد. عندما شاهدنا هذا من قبل، ونحن تأخذ كلمة وبدوره - نتذكر، في ع مجموعة 7، قد شخص لديك كلمة مرور هذا السر فقط، ولكن بعد ذلك يحصل تشفيرها في بعض الشيء طويل حقا. التجزئة في اتجاه واحد يعني أنه من السهل جدا للانتقال من طريقة واحدة إلى أخرى، ولكن انه من الصعب جدا أن تذهب من في الاتجاه الآخر إلى الخلف. ولكي تعرف، عند يتحققون كلمات السر الناس في المشكلة ضبط 7، هل تأخذ بها - لذلك، على سبيل المثال، يقولون انهم يريدون ل تغيير كلمة المرور الخاصة بهم، كنت أطلب منهم عن كلمة السر القديمة. كنت أخذت كلمة المرور الخاصة بهم العمر. كنت تشفيرها. ومن ثم مقارنة التشفيرات اثنين بدلا من unencrypting الأصلي واحد، لأنه حقا من الصعب أن يذهب بهذه الطريقة. نعم. الحضور: كيف يفعل في عمق لدينا فهم التلنت يجب أن تكون؟ JASON هيرشهورن: إذا أشير لفترة وجيزة في محاضرة، مجرد وجيزة التفاهم. مرة أخرى، والعودة إلى الجواب على سؤال لافي - أكثر الأشياء تأتي، والأرجح أنها يجب أن تكون فائقة دراية بها. إذا كانت قد وصلنا فقط حتى في المحاضرة، هذا مجرد مكان واحد. ولكن إذا أنها تأتي في المحاضرة، القسم، ومشكلة تعيين، فإنك ربما يجب أن تكون فائقة دراية بها. لذلك كان لي سؤال من في وقت سابق عن - كان غير خريف عام 2010 - مسابقة 1، دعونا سحب ما يصل - هذا سؤال حول مداخن وقوائم الانتظار، وهذا ما فعلناه قضاء عادلة قليلا من الوقت في الحديث عن المحاضرة، حتى على الرغم من أننا لم أكن حقا من أي وقت مضى عصفت به في القسم. لذلك هذا السؤال هو إعطائك سلسلة من الأوامر ويطلب منك ما يحصل المطبوعة في هذه الحالة. لذلك هذا هو سؤال معقول تماما التي يمكن أن يطلب منكم الرجال، ومن ثم يجب عليك الرجال تكون قادرة على الإجابة عليه. لذلك لماذا لا ننظر في الأمر لمدة 30 ثانية، ثم إذا كان أي شخص يريد أن تقترح إجابات للي، و ثم سنقوم المشي من خلال ذلك. كل الحق، الذي لديه الجواب السؤال 27؟ نعم. الحضور: هل من 1، 2، 3، 3؟ JASON هيرشهورن: هذا صحيح. 27 هي 1، 2، 3، 3. لذلك دعونا ننظر كيف وصلنا ذلك. أولا، نحن نقول، إذا هو ق طابور، ما يحصل المطبوعة؟ لذلك ف هو الأول في، أولا خارج. شاهدنا ذلك من قبل. رأينا صورة الشعب الانتظار في أبل تخزين لشراء بعض المنتجات. أول الناس في و أول الناس. أول الأشياء في طابور هي الأشياء لأول مرة. حتى إذا ندفع شيئا في طابور، تضغط على 1، ثم نحن البوب ​​1. البوب ​​يعني فقط تأخذ بها. في هذه الحالة، تأخذ فقط شيئا. نحن إخراج أول شيء، وهذا هو 1. ولذا فإننا سوف نضع الأمور علينا طباعة أسفل أكثر من هنا. هذا لم يعد لدينا في قائمة الانتظار. ثم ندفع على 2 و 3، و نحن انصرف أول شيء. مرة أخرى، لأنها قائمة انتظار. حتى نحصل على 2، ثم وضعنا على أخرى 3 واستدعاء البوب ​​مرة أخرى. لدينا 3 هو الأول. ومن ثم كان لدينا مجموعة كاملة من أمور أخرى ودعوة البوب. ولكن مرة أخرى، لأن هذا هو طابور، لأول مرة في، أولا. نحن إخراج أول شيء الذي وضعت فيه من أي وقت مضى هذا هو لدينا 3. و، في هذه الحالة، فإننا لا تقلق عن كل تلك الأشياء الأخرى. ولهذا إذا كان هذا هو طابور. أي أسئلة حول قائمة انتظار؟ A كومة المختلفة. ما هي اختصار لدينا لفهم كومة؟ الحضور: تستمر في، لأول مرة. JASON هيرشهورن: LIFO، على ما أعتقد. آخر في، أولا خارج. حتى رأينا مثالا على كومة الصواني في قاعة الطعام. أيا كان هو على رأس صينية يحصل التقطت. ثم إذا الصواني الجديدة تأتي في، والحصول على وضع على القمة. ثم كل ما هو على أعلى يحصل التقطت. حتى تلك الصواني على القوة السفلي البقاء هناك لحظة. في هذه الحالة، مرة أخرى، وسوف نقوم رسم هذا. نحن على دفع واحدة، حتى واحد هي في الخط الأول. ونحن البوب ​​شيء خارج. وهناك شيء واحد فقط في هناك، لذلك نحن نتحرك 1 إلى هنا. ثم وضعنا في 2 و 3 و نحن البوب ​​شيء خارج. ولكن مرة أخرى، لأن هذا هو طابور - أو هذا هو كومة، إلى حد ما - ونحن نأخذ كل ما كان في الماضي. كل ما هو في آخر يخرج أولا. و 3 في الماضي. لذلك وضعنا 3 الى هناك، ثم وضعنا على 3 أخرى، ونحن البوب ​​شيء مرة أخرى. أخيرا، وضعنا على 4، 5، 6، و 7، وهنا نحن البوب. ولأنه كومة، ونحن نأخذ مهما وضعت في الماضي وكتابة أن إلى هنا. لذلك نحن في نهاية المطاف مع 1، 3، 3، 7. هل لدى أي شخص أي أسئلة حول المداخن أو قوائم الانتظار، أو هذا المثال؟ موافق. دعونا نعود إلى قائمة المواضيع. لا بهذه الطريقة، وبهذه الطريقة. أسئلة أخرى ما لم الناس لديهم؟ الجمهور: أنا لا أعرف مدى أهمية هذا هو، ولكن كنت الخلط من جانب الفرق بين أنواع مختلفة من لغات مثل العلامات، وقد تم تجميعها، تفسير. JASON هيرشهورن: هذا سؤال جيد. وأعتقد أن من المهم إلى حد ما، لذلك دعونا نذهب أكثر من ذلك بسرعة. لغات كبيرة رأيناه حتى الآن هي C، PHP، وجافا سكريبت، من حيث من لغات البرمجة. HTML، كما ذكرتم، ليس لغة البرمجة. انها لغة الترميز. ومن ثم لدينا المغلق، الذي هو أيضا ليس لغة البرمجة. رأيناه أيضا SQL، وهي ليست لغة البرمجة سواء. بحيث SQL يسمح لك لكتابة استفسار عن قاعدة البيانات. HTML هي لغة العلامات. أنها تحدد كيفية هيكلة الأشياء. وCSS تسمح لك أسلوب الأشياء. وهذا ربما لمدى ما تحتاج لمعرفته حول هؤلاء الثلاثة. ولكن من المثير للاهتمام أن الرقم أكثر من الاختلافات بين C، PHP، وجافا سكريبت. لذلك واحدة من أكبر الاختلافات، كما ذكرت، هو كيف انهم المترجمة، أو أيا كان أي ما يعادل هو. بحيث يتم تصنيف C. كنا دائما تشغيل مترجم. ثم أين هي الأخطاء الخاصة بك عند تشغيل المترجم C؟ حيث أنها لا تظهر لك أخطاء في التعليمات البرمجية الخاصة بك؟ كيف يمكنك أن تعرف هناك على خطأ في التعليمات البرمجية في C؟ الجمهور: وهو يبين لك في المحطة. JASON هيرشهورن: وهو يبين لك في محطة كما كنت تجميع. وإذا كان هناك أخطاء، فإنه لن تجميع فعلا. حتى تعرف أن هناك أخطاء الحق بعيدا، في وقت مبكر، قبل أن حتى تشغيل التعليمات البرمجية. بطبيعة الحال، قد تشغيل التعليمات البرمجية و الحصول على خطأ تجزئة، ولكن ذلك كان ربما لأنك لم بعض الشيء منطق سخيف. ولكن من الناحية الفنية مع التعليمات البرمجية الخاصة بك كلها صحيحة ويمكن تشغيل. حتى يحصل على كود C جمعت في وقت مبكر. ماذا عن كود PHP؟ حيث كانت الأخطاء في برامجك؟ كيف تعرف أنك زيارتها أخطاء في برامجك؟ الحضور: تشغيل الوقت؟ JASON هيرشهورن: نعم، عندما كنت سوف تشغيله، يمكنك تشغيل كود PHP في الظهر. وعندئذ يمكنك عرض الشاشة. قد ترى بعض الأشياء على القمة، ولكن بعد ذلك كنت انظر، مثل، بعض البرتقال، الجدول قبيحة. وسوف أعطيك رقم السطر و ويقول وكذا وكذا وكذا وهذه الاشياء لم تنجح. بحيث يتم تفسير PHP سطرا سطرا وتنفيذها على الخادم. ومن ثم فإن النتيجة هي إرسالها عبر لك. عظيم. أعدم في خط الخادم عن طريق خط وأرسلت ثم على لك. وإذا كان هناك خطأ، وأنها سوف ترسل لك الخطأ، ولكن قد تكون لديكم حصلت بعض الاشياء في وقت مبكر. وحتى بعض من قد عملت، ولكن في وقت لاحق، قد لا يكون بعض الاشياء لا يعمل. ماذا عن جافا سكريبت؟ حيث لم تشاهد أخطاء جافا سكريبت؟ في ع تعيين 8، عندما حصلت على الخطأ، وكيف عرفت؟ حيث سوف تظهر؟ الحضور: في وحدة التحكم، في الجزء السفلي. JASON هيرشهورن: في وحدة التحكم، على الجزء السفلي. ومن شأنه أيضا أن تعطيك رقم السطر، وأنه سيكون تظهر في الجزء السفلي. ولم ينفذ جافا سكريبت على الخادم. تم إرسال جافا سكريبت لجهاز الكمبيوتر الخاص بك، ثم عندما حان الوقت لتشغيل جافا سكريبت، كان جافا سكريبت تشغيل سطرا سطرا على العميل، على الجانب الخاص بك. لا الخادم، جانب العميل. وبالمثل، كان تشغيل سطرا سطرا. وبعد ذلك عندما كنت تحصل على خطأ، انها تظهر في الجزء السفلي. على نحو مماثل لPHP، بعض منها قد تنفيذ، ومن ثم قد تحصل على خطأ في وقت لاحق. أيضا، على عكس PHP قليلا، إذا كنت حصلت على خطأ جافا سكريبت - نقول لكم لم يفعل الحق رمز لمربع تنبيه - هل يمكن الحفاظ على تشغيل البرنامج. سوف مربع التنبيه لا يعمل، ولكن سيكون البرنامج يكون على ما يرام. فقط ربما سوف تفشل تلك الوظيفة. لذلك هناك بعض من أكبر الفرق من حيث كيف يمكن لهذه لغات، أو كيف رمز البرمجة تكتب يتم تقييم الواقع. هناك أيضا اختلافات أخرى في حيث - أكبر الفرق رأيناه من حيث المتغيرات في لغات مختلفة. لذلك أي شخص يمكن أن تعطيني الفرق بين المتغيرات في اللغات الثلاث؟ نعم. الحضور: في C، وانهم كتبته بدقة. في الأخريين، وانهم كتبته فضفاضة. JASON هيرشهورن: و ماذا يعني ذلك؟ الحضور: وهذا في C، عليك أن تعلن نوع المتغير عندما قمت بتعريف المتغير، مثل interbool أو شار. JASON هيرشهورن: ممتاز. في C، كان لدينا دائما لوضع نوع من متغير. ونحن لا يمكن خلط أنواع حقا. أنت لا تستطيع أن تفعل عدد صحيح بالإضافة إلى سلسلة. ولكن كما رأينا في هذه الأخرى لغات، كنت في الواقع يمكن خلط أنواع، ولست مضطرا ابدا حقا لإعطاء شيء نوع، من أي وقت مضى. فكيف لنا أن نعرف أشياء هي المتغيرات في PHP وجافا سكريبت؟ الحضور: في PHP، فإنها تبدأ مع علامة الدولار. في جافا سكريبت، عندما تقوم بتعريف منهم، أن يكون لديك بار. JASON هيرشهورن: الحق. حتى في PHP، فإنها تبدأ مع علامة الدولار. في جافا سكريبت، لديهم لديك شريط، على الرغم من أن في بعض الأحيان أنها لا فعلا أن يكون لديك شريط. ولكن هذا الصحيح. ولهذا فرق كبير بين المتغيرات. اعتقد ان هذه هي على الأرجح، قبالة قمة رأسي، أكبر اثنين الاختلافات بين هذه ثلاث لغات. ولكن، نعم. الحضور: ونطاق المتغيرات C يقتصر على الأقواس المتعرجة، حيث بعضها الآخر، انها مجرد مثل، يموت اذا كان في وظيفة فقط، ولكن على خلاف ذلك، هو - JASON هيرشهورن: الحق. حتى نطاق يختلف قليلا في C. كما تتذكر، الأقواس المتعرجة تعريف نطاق المتغيرات. حتى إذا تم تعريفه داخل إذا الشرط، الذي هو داخل لحلقة، المتغير موجود فقط هناك. في جافا سكريبت، ويعرف إذا متغير داخل اذا كان الشرط - داخل حلقة for - أنه سوف توجد ل أن وظيفة، ولكن ذلك غير موجود خارج تلك الوظيفة. حتى نطاق قليلا أكثر مرونة في جافا سكريبت و PHP. أن الإجابة على السؤال؟ OK، أي أسئلة أخرى؟ يمكننا القيام به أربع دقائق أكثر من الأسئلة، ثم سنقوم القفز الى الترميز. الحضور: هل نذهب الى اياكس والحديث عن ما هو؟ JASON هيرشهورن: تحدث إلى آفي بعد. سأل هذا السؤال في وقت سابق. الحضور: بلدي سيئة. JASON هيرشهورن: لا تقلق. الحضور: ما هو بالضبط جسون؟ JASON هيرشهورن: ما هو جسون؟ ما هو سؤالك؟ الحضور: فقط بسرعة حقا، الفرق بين الطباعة وصدى في PHP. JASON هيرشهورن: لماذا لا كنت جوجل الفرق بين الطباعة والصدى؟ اختلاف طفيف. ليس كبيرا في التوصل الى اتفاق. ولكن يجب أن جوجل بالتأكيد، والتي سوف أعطيك إجابة جيدة. جسون، وربما أكبر من التوصل الى اتفاق. لتقف على جافا سكريبت تدوين كائن. وعندما شهدنا جسون تستخدم؟ عندما هل رأيت - ماذا تعرف حتى كلمة جسون؟ عندما هل رأيت ذلك؟ الحضور: عندما كنا نحصل يقتبس مخزون للتمويل. JASON هيرشهورن: هكذا رأيت عندما كنت الحصول على يقتبس مخزون للتمويل. ولماذا ترى ذلك؟ الجمهور: عندما كنا استرجاع جميع المعلومات التي وجاء في هذا الشكل. JASON هيرشهورن: إذن سوف تحصل - نعم. المضي قدما. الحضور: [غير مسموع] المعلومات من كائن؟ JASON هيرشهورن: كل من تلك وضعت معا هو الجواب نحن نبحث عن. تريد معلومات عن هذه صفحة ويب أخرى. وكنت آمل أنه عندما كنت الحصول على تلك المعلومات، سيكون من قدمت لكم في نوع من شكل موحد. الجميع هو على الارجح مألوفة مع قيم مفصولة بفواصل. يمكنك تصدير جداول البيانات إكسل أو أي نوع من البيانات كقائمة قيم مفصولة بفواصل. والفواصل تقسيم جميع مجالات مختلفة. جافا سكريبت تدوين كائن - جسون - هو نوع آخر من موحدة تخطيط من الأشياء. وهذا هو في كثير من الأحيان كيف يمكننا استرداد المعلومات من استفسارات اياكس لدينا. حتى في هذه الحالة، ونحن حصلت عليه من موقع ياهو. أنها تعود الأمور ل لنا في كائن JSON. ومن ثم نعلم، لأنه معيار، ما هو عليه الذهاب لتبدو وكأنها. حتى نتمكن من تكرار خلال مجموعة وهذا ما عاد إلينا، ومجموعة من الكائنات التي يتم إرجاعها بالنسبة لنا. نحن لا ربما تحتاج إلى معرفة مفاتيح، ولكنها تعطي عموما لك وثائق في الموقع عندما كنت جلب بعض جسون التدوين بالنسبة لهم. وبالمثل، يمكنك جسون ترميز كائن. لذلك هناك وظيفة جسون تؤكد ترميز. وهكذا يمكنك أن تأخذ كائن التي قمت بإنشائها، جسون صياغته، و ينقل هذا لشيء آخر، إذا كنت ترغب في ذلك. ويوجد أيضا JSON فك ل غرض مماثل، أو ل الغرض المعاكس. الحضور: هل نحن بحاجة إلى معرفة الترميز للجداول التجزئة ويحاول؟ أو هل نحن بحاجة فقط لفهم كيف كنت تستخدم، من الناحية النظرية؟ JASON هيرشهورن: وهكذا، ورفع يدك إذا كنت فعلت جدول تجزئة لع تعيين 4 مع قائمة الارتباط. أو مجموعة ص 5. لذلك كان على أن الغالبية العظمى من الناس. تعيين P 5، 6، من يدري. منذ زمن طويل. وبالتالي فإن الغالبية العظمى من فعلتم تجزئة الجداول مع القوائم الارتباط. ولأن هذا هو على الأرجح أكثر نهج مشترك، ولأن قضينا الكثير من الوقت في القيام قوائم الارتباط والتجزئة الجداول، ربما يجب عليك أن تكون مألوفة جدا مع كيفية رمز جدول تجزئة وقائمة الارتباط. وإذا كنت تعتقد أن العودة لهذه المشكلة مجموعة، لم يكن حقا من الصعب كما كنت تتوقع. وكان هناك الكثير أقل كود مما كنت متوقعا. وأود أن أقول يجب أن نعرف كيفية رمز جدول تجزئة أو قائمة الارتباط. ان كنت لا يطلب ذلك، بالضرورة، ولكن يجب عليك بالتأكيد أعرف ذلك. أيضا، إذا كنت تنظر من خلال المسابقات الماضية، كان هناك الكثير من أسئلة حول كتابة وظائف على قوائم الارتباط أو القوائم المرتبطة على نحو مضاعف. ويبدو أن الخروج كل سنة واحدة. إدراج الحق على القائمة رابط، والحق حذف من قائمة الارتباط، إدراج الحق للحصول على قائمة مرتبطة على نحو مضاعف، وهلم جرا. بحيث، أشعر براحة جميلة قائلا يجب أن نعرف أن. لمحاولة، وأود أن أقول يجب عليك نعرف بالتأكيد كيف يعمل، وربما إعطاء بعض شبة الكود لكيفية لأنه رمز وإعداده. لكنه لن يكون أسوأ شيء في العالم إذا كنت لا تعرف كيفية رمز في C. سيكون أمرا رائعا إذا كنت عرف كيفية رمز في C، ولكن أعتقد ربما شبة الكود لمحاولة شأنه يكون أكثر كنت في حاجة لمعرفة المحاولة. الجمهور: الائتمان الزائد؟ JASON هيرشهورن: ونفس الشيء مع، وإذا كنا انتقل إلى أشجار البحث الثنائية، وكنت قد تحتاج - وكنت قد رأيت في الماضي، لقد فعلت الكثير من - كنت أعرف كيف يعمل شجرة البحث الثنائية. ربما يجب عليك أن تكون قادرا على مجموعة واحدة في التعليمات البرمجية الزائفة. ولكن لأن الغالبية العظمى من الناس لم نفعل ذلك على المشكلة مجموعة، وانا اقول انها ربما أقل المهم أن تعرف كيفية رمز وانشاء شجرة من هذا القبيل. أي أسئلة أخرى؟ أيضا، يمكننا أن نطلب منهم طوال ونحن نمضي من خلال بعض المشاكل. موافق، ونحن في طريقنا للمضي قدما. تخطي تلك الشريحة في الوقت الراهن. الحديث عن الأشجار، وهذا هو أول لدي سؤال ليا رفاق. لأن هذه مشكلة. وأود أن أقول أنه من المرجح جدا عليك الحصول على مشكلة مثل هذه في اختبارك يطلب منك رمز نوع من إدراج، حذف، والبحث، لنوع واحد هيكل البيانات رأيناه. التي تأتي كل عام وقضينا الكثير من الوقت في النصف الثاني من هذا الفصل الدراسي تسير على هذه الأنواع من البيانات. حتى الآن، لقد تعريف العقدة في شجرة البحث الثنائية. وما كنت أود القيام به هو إعطاء شجرة البحث الثنائي الذي يبدأ في هذا الجذر نجمة عقدة، واستكمال تنفيذ وظيفة أدناه، الذي يحدث أن تكون وظيفة البحث. وتفعل ذلك مع وبدون recursions. لذلك أريد منك أن تكتب وظيفتين. واحد القيام بذلك مع العودية، واحد القيام بذلك دون العودية. و لا نفترض أن وسوف يكون الجذر غير الصفرية. لذلك نحن نبحث عن عدد صحيح ط في شجرة ابتداء من الساعة الجذر، ونحن بحاجة لكتابة هذا بشكل متكرر وتكرارا. نعم. الحضور: وهكذا كنت تريد منا أن العودة الحقيقية إذا وجدنا ذلك، وإذا كنا كاذبة لا تجد ذلك. JASON هيرشهورن: كيف عرفت؟ كيف عرفت ذلك؟ الحضور: كنت طالبا الأولى، لكني لم اكن على افتراض، لأنها تقول منطقي في بداية الدالة. JASON هيرشهورن: الحق. تقول منطقي، لذلك أنا لا تحتاج حتى ل اقول لكم ما أتوقع لك بالعودة لأنها تقول الحق هناك. ولكن هذا الحق. العودة، صحيحة أو خاطئة. حتى قبل أن تبدأ، أود أن أوصي، إذا كنت غير معتاد على أشجار البحث الثنائية، الرسم بسرعة صورة منه للحصول على الخاص فهم، والحق. وأن تساعدك أيضا عند كتابة التعليمات البرمجية الخاصة بك والتحقق من ذلك. مرة أخرى، أنت أيضا لم يكن لديك أن الكثير الوقت على مسابقة للقيام بكل الأشياء أن نطلب منك أن تفعل. حتى كتابة التعليمات البرمجية الزائفة مفيد جدا. وعموما نعطي عنها - إذا كانت شبة الكود هو تماما الصحيح، وهذا عموما 50٪ على السؤال. حتى انها ليست قاعدة جامدة وسريعة، ولكن إذا كنت مجرد كتابة شبة الكود وانها صحيح، انها عموما 50٪. لذلك أنصح دائما - إذا كنت ضغط الوقت، أو حتى لو كنت مجرد محاولة لمعرفة ذلك - بدءا من شبة الكود. وأخيرا، إذا كنت يمكن أن يكتب هذا كل ما في C، من شأنها أن تكون رائعة. لذلك دعونا نلقي ثلاث دقائق للعمل على هذا البرنامج. ثم نحن نذهب لكتابة شبة الكود لمرة واحدة فقط، ومن ثم ونحن في طريقنا إلى رمز ذلك بشكل متكرر ثم تكراري. إذا كان لديك أي أسئلة، لا الحرة ترفع يدك. سعيدة ليتجول والإجابة عليها قبل أن نبدأ كمجموعة. دعونا استئناف، ونحن في طريقنا لل شبة الكود النسخة العودية هذا، وبعد ذلك سوف ترميزه. لذلك وظيفة العودية يحتاج أمرين. قد يكون هذا السؤال الذي هل يمكن أن يكون طلب. يحتاج أمرين. الذين يستطيعون رفع أيديهم ويقول لي ما الأشياء اثنين العودية يحتاج وظيفة؟ بحكم التعريف فقد اثنين من الأشياء. ما هي تلك الأشياء اثنين؟ يد جديدة. نعم، الدن. الحضور: لذلك أنا لست متأكدا بالضبط إذا هذه هي المصطلحات، ولكن - JASON هيرشهورن: أنا سعيد كنت رفع يدك. الجمهور: انها تحتاج الى الحالة الأساسية، ويحتاج خطوة العودية. JASON هيرشهورن: ممتازة. فإنه يحتاج إلى الحالة الأساسية و خطوة العودية. فما هو الحال لدينا قاعدة هنا؟ الجمهور: F يساوي الجذر يساوي فارغة. آسف، فقط في شبة الكود، اذا كان لاغية. إذا الجذر فارغة. JASON هيرشهورن: إذا الجذر فارغة. هذا ممتاز. هذا هو الحال قاعدتنا. هذا ما نحن ذاهبون للتحقق في كل مرة. والقضية الأساسية هي أول شيء يجب القيام به. إذا كنت أصاب القضية الأساس، الانتهاء من ذلك. الآن نحن بحاجة المكالمة العودية لدينا، وكنت تكون على استعداد للمراهنة نحتاج زوجين عودي يدعو هنا. لأنها شجرة، ونحن يمكن أن تذهب بطرق متعددة. حتى إذا الجذر هو باطل، نحن في حالة جيدة. ماذا تقترح؟ والآن أنا ذاهب لبدء ينادي على يا رفاق، لأنني أعرف يا رفاق جميعا نعرف هذا. لكن آني، ما ينبغي يكون السطر التالي؟ ماذا لو وجدنا ذلك؟ ماذا نفعل؟ الحضور: إذا وجدنا ذلك؟ JASON هيرشهورن: أو ما وينبغي أن يكون ذلك - تعطيني شبة الكود ل السطر حيث وجدنا أنه. الحضور: إذا ط ط يساوي الجذر؟ JASON هيرشهورن: و ثم ماذا نفعل؟ الحضور: العودة الحقيقية. JASON هيرشهورن: العظمى. حتى لو كنت غير ط - أوه، انهم يسمى ط حد سواء. أن يحصل مربكة. ولكن إذا كنت لا أعود صحيح. هذا هو على الارجح المقبل شيء يتعين علينا القيام به. من المنطقي. حسنا، الآن نحن لم تفعل العودية لدينا استدعاء حتى الآن، ورغم ذلك، لأن العودية سيدعو استدعاء هذه الدالة مرة أخرى. وذلك ما ينبغي المقبل خط شبة الكود يكون؟ آنا. الحضور: الجانب الأيسر. JASON هيرشهورن: أن تكون محددة، وإن كان. هذه هي شجرة البحث الثنائية، وذلك ما لا فحص الجانب الأيسر يستتبع؟ الحضور: وهكذا عقدة - أنا آسف، وجذر. ثم سهم اليسار. عقدة، عقدة، آسف. أنا لا قراءته بشكل صحيح. انه دعا عقدة، أليس كذلك؟ JASON هيرشهورن: سيتم يطلق عليه الجذر في تلك الوظيفة، ولكن في اي من الاتجاهين. الجانب الأيسر - نعم؟ الحضور: إذا كان لا يساوي ط، ثم نحن في طريقنا للاتصال وظيفة مرة أخرى؟ JASON هيرشهورن: هذا صحيح. إذا كان لا يساوي ط، ونحن في طريقنا لاستدعاء الدالة مرة أخرى. ولكن ما الجانب من شجرة نحن ذاهبون لاستدعاء الدالة مرة أخرى؟ الجمهور: على الجانب الأيسر. JASON هيرشهورن: نحن لسنا دائما سوف يطلق عليه اليسار، إذا كان لا يساوي ذلك. الحضور: أوه، آسف. ندعو الحق. JASON هيرشهورن: نريد أن نعرف على وجه التحديد، على الرغم - تذكر، في شجرة البحث الثنائية، كل شيء ل الجانب الأيسر هو أصغر. كل شيء إلى اليمين الجانب هو أكبر. حتى انها مجرد لا - نعم، والمضي قدما. الجمهور: لو كان أقل مما كنت، ثم - اذا كان على اليسار - JASON هيرشهورن: حتى إذا ري أقل من - إذا كان الأمر كذلك لدينا عدد أقل من ط، ما الجانب الذي نريد أن تذهب إلى؟ الحضور: نريد أن نذهب إلى الجانب الأيمن. JASON هيرشهورن: نريد أن نذهب - اسمحوا لي أن رسم شجرة سريعة. إذا كان هذا هو 5، وهذا سوف يكون 3. إذا كان الأمر كذلك ري أقل من خمسة، ما الجانب لا نريد أن نذهب إليه؟ الجمهور: عذرا، ما هي؟ JASON هيرشهورن: لدينا عدد هو أقل من عدد نحن تبحث في الوقت الحالي. الحضور: أوه، ثم نريد للذهاب إلى الجانب الأيسر. نعم. آسف. JASON هيرشهورن: بالضبط. لا تقلق. في ثنائي شجرة البحث، كل شيء أقل هو إلى اليسار، أكبر هو الحق. إذا كان الأمر كذلك لدينا عدد أقل من ط نحن فحص - لأنك ترى في عقدة، ولديه ط - ثم كنت تريد أن تذهب إلى اليسار. وهذا هو سهلة. ما هو الخط الآخر من شبة الكود نحن بحاجة إلى الكتابة؟ كارلوس؟ الحضور: نفس الشيء، يمكنك التبديل فقط انها لعلامة أكبر من وانتقل إلى اليمين. JASON هيرشهورن: هل لك أقول ذلك واحد لمزيد من الوقت؟ الحضور: إذا لدينا عدد أكبر من أنا، انتقل إلى اليمين. JASON هيرشهورن: ممتاز العمل على شبة الكود. دعونا نفعل هذا في التعليمات البرمجية الحقيقية. ومرة أخرى، فإن هذا شبة الكود ربما تحصل، لأنه الصحيح، و 50٪ على هذه المسألة. ولكن هذا شبة الكود يترجم واحد أيضا إلى واحد، أساسا، إلى رمز. لذلك دعونا نفعل هذا في C. المتواجدون يمكن أن تعطي لي السطر الأول من التعليمات البرمجية؟ في الواقع، أولا، قبل أن أفعل ذلك، اسمحوا لي أن سحب أكثر - الجمهور: لدي سؤال. لماذا البادئة أعطى خط لك؟ JASON هيرشهورن: لأن لم أتمكن من الكتابة. لا أعرف. أنت على حق. وينبغي أن يكون هذا الخط أكثر من هناك. حسنا، هنا هو وظيفتنا. واسمحوا لي أن سحب أكثر، أيضا، تعريفنا للعقدة. ماذا يحدث إذا لم نكن إرسال الرموز المميزة ل typedef؟ لا أحد يعرف؟ الحضور: لن تجميع. JASON هيرشهورن: ومن شأنه تجميع، نعم. الجمهور: هل هو مجرد إعلان واحد المثال بدلا من جعله جديدة اكتب هل يمكن أن تعلن متعددة حالات؟ JASON هيرشهورن: لذلك لن أعرف - أنه لن تعلن فقط نوع واحد. هل يمكن أن لا تزال تجعل الكثير من العقد. الحضور: ولكن لن يتعين علينا أن إرسال عقدة البنية في كل مرة؟ JASON هيرشهورن: هذا صحيح. سيكون لديك لكتابة عقدة البنية في كل مرة، بدلا من عقدة فقط. ولكن مع الرموز المميزة ل typedef، يمكنك فقط إرسال عقدة في كل مرة واحدة. موافق، الذي لم يعط - نعم، Avica. الحضور: إذا الجذر يساوي يساوي لاغية، والعودة كاذبة. JASON هيرشهورن: ممتاز، و هذا هو الحال قاعدتنا. السطر التالي من التعليمات البرمجية. شخص لم تعط لي سطر من التعليمات البرمجية حتى الآن؟ نعم. الجمهور: جذر السهم ط يساوي يساوي ط. ثم العودة الحقيقية. JASON هيرشهورن: العظمى. السطر التالي؟ نعم. شخص آخر؟ ومن ثم يمكن أن تذهب المقبل. الجمهور: آخر إذا الجذر السهم ط أقل من ط العودة وظيفة تسمى الجذر الاكتشاف - JASON هيرشهورن: آسف. الحضور: عودة تجد الجذر ويشير إلى اليسار فاصلة ط. JASON هيرشهورن: حتى إذا ري أكبر من الشيء في شجرة، ونحن نريد ل انتقل إلى اليسار؟ الجمهور: لا، كان لي أن انتقل. JASON هيرشهورن: أي واحد؟ الجمهور: كلا، نعم. لدي أقل من توقيع هناك. JASON هيرشهورن: الحق، إذا هو ري أقل من ما هو في جذر - الجذر الحالي لدينا - فإننا أريد أن أذهب إلى اليسار. وما هو السطر الأخير، وأنت؟ الحضور: في الأساس نفس الشيء، باستثناء التبديل أكبر من أو يساوي أقل من واليسار إلى اليمين. JASON هيرشهورن: ممتاز. هل لدى أي شخص أي أسئلة حول هذا الموضوع؟ وحتى بعض الأشياء الأخرى التي من شأنها أن كان الصحيح هو أن يمكن أن يكون ltiff. أعتقد، من الناحية الفنية، فإن أيا من هذه حقا بحاجة أيضا لتكون ltiff. أيضا، هناك على الارجح فقط حالة واحدة هنا. ذلك أن الحالة الأخيرة على الأرجح. أنت لا تحتاج حتى أن-ltiff. ولكن ربما جيدة لكتابة ذلك، أن تكون واضحة. نعم. الحضور: وهكذا كنت لا أعتقد أن هذه المسابقة - إذا جعلنا أخطاء، على سبيل المثال، في جملة - أخطاء في بناء الجملة قليلا - كيف يمكن أن تحصل على اتخاذها في هذه المسابقة؟ JASON هيرشهورن: عموما على هذه المسابقة، صغيرة أخطاء في بناء الجملة أو صغيرة أخطاء نمط لا تخسر نقطة. لذلك إذا كنت قد نسيت فاصلة منقوطة هنا، سيكون من موافق. إذا كنت قد نسيت لإغلاق هذا قوسين، التي ستكون على ما يرام. أخطاء في بناء الجملة ضخمة من شأنها أن تغير معنى الوظيفية من التعليمات البرمجية بشكل كبير، قد تحصل اقلعت نقطة ل. أو عموما، فقط كنت الدرجات حول ما إذا كان أو لم يكن لديك وظائف متاحة، حتى - لا تصميمه كثيرا، وليس اسلوبه. دعونا الآن رمز تكرارية نسخة من البحث. لذلك ستكون مشابهة جدا، ولكن هناك بالتأكيد ستكون بعض الاختلافات الرئيسية. ومع ذلك، لدينا شبة الكود ربما يمكن أن تذهب - لا يزال بوسعنا أن تأخذ سطر واحد من شبة الكود ومعرفة ما الخط هو في هذه الحالة. حتى في إصدار متكررة، ما هل تعتقد، جوليا، ينبغي يكون السطر الأول؟ الحضور: مرة أخرى، في منطقية متكررة، تحتاج إلى إعداد لحلقة، أليس كذلك؟ JASON هيرشهورن: OK. الحضور: لذلك مثل، ك، ل x يساوي 0، x هو أقل من ط. أو لا، x هو أقل من حجم الشجرة. JASON هيرشهورن: الشجرة. لذلك نحن لا نعرف حقا حجم شجرة، ونحن لا نعرف حقا ل كم مرة يمكن أن نذهب، لذلك ما هو ل نوع مختلف من حلقة التي قد تكون أفضل في هذه الحالة؟ الحضور: إذا آخر؟ JASON هيرشهورن: إذا آخر لا يمكن أن يكون حلقة. فما هو نوع من حلقة في وسعنا فقط يذهب حتى يتحقق بعض الحالات؟ ما هو نوع آخر من حلقة فقط في C بالإضافة لحلقة؟ الحضور: على الرغم من. JASON هيرشهورن: في حين، بالضبط. في حلقة من الوقت، لا بحاجة الى معرفة كيفية - حلقة while وحلقة يمكن أن تفعل نفس الشيء بالضبط، ولكن الشيء الجميل حول حلقة بينما هو لا نحتاج لمعرفة كيفية كبيرة شجرة دينا هو. لذلك نحن في طريقنا للذهاب حتى ماذا؟ الحضور: حتى أنه يساوي حجم - JASON هيرشهورن: حسنا، انها جدا مماثلة لحالة العودية لدينا. لذلك - الحضور: على الرغم من الجذر أنا لا أنا على قدم المساواة. JASON هيرشهورن: هذا هو حقا قريبة. بينما الجذر ط - دعونا نحاول ذلك. لا أعتقد أن [غير مسموع] حيث ط الجذر لا يساوي ط. قد نحتاج إلى تغييره في قليلا قليلا، ولكن هذا يبدو وكأنه انها جميلة جيدة، في الوقت الراهن. ولذا فإننا سوف نفعل ذلك. أيضا، تذكر، ونحن لا يمكن أن نفترض في هذه المسألة. كنت لا نفترض أن وسوف يكون الجذر غير الصفرية. فما رأيكم في جدا أول شيء يتعين علينا القيام به هو؟ الحضور: فقط تفعل الشيء نفسه شيء كما كان من قبل. إذا كان الجذر يساوي يساوي لاغية، والعودة كاذبة. JASON هيرشهورن: العظمى. لذلك يمكن أن تكون فارغة. لذلك نحن نريد أن نتخلص من ذلك على الفور. ثم نحن سوف الاختيار إذا الجذر ط ط يفعل لا يساوي. لذلك، نقول إننا تبحث في هذه الشجرة ل3، جذر ط لا تساوي ط، الآن نحن في حلقة في حين لدينا. ماذا نريد أن نفعل؟ ومرة أخرى، انها سوف تكون جميلة مماثلة لدينا نسخة العودية. نعم. الحضور: لذلك كنت ترغب في تكرار، أو الاستمرار أسفل الشجرة طالما الجذر هو لا يساوي فارغة. JASON هيرشهورن: طالما أن الجذر هو لا يساوي فارغة؟ الحضور: واندفاعة الجذر ط لا تساوي فارغة. مجرد جذر، نعم. باعتبارها طالما الجذر هو لا تساوي قيمة خالية. JASON هيرشهورن: إذن أنت تريد لتغيير هذا في الجذر لا فارغة لا تساوي؟ الجمهور: نعم. الحضور: نحن يمكن الجمع بين هذه، أليس كذلك؟ نحن لسنا بحاجة إلى إذا، في البداية. JASON هيرشهورن: موافق، لذلك إذا كنا لا - إذا كان لنا أن الجمع بينهما، لذلك نحن في طريقنا للقيام بينما الجذر يفعل فارغة لا تساوي، و إذا كان الجذر يحدث أن تكون فارغة في بداية، ماذا نفعل هنا؟ الجمهور: عودة كاذبة. JASON هيرشهورن: العظمى. حتى في كلا الاتجاهين ربما كانت لتنجح. هذا هو وسيلة مختلفة، وهذا يجمع عليه. ولكن مرة أخرى، إذا كنت فعلت في اي من الاتجاهين، ونحن لن تقلع التصميم ويشير في هذه المسابقة. ولكن هذه تبدو جيدة. وذلك في حين لا يساوي الجذر فارغة، ما هو أول الشيء الذي تريد أن تحقق؟ شخص آخر؟ فارغة، ما هو أول شيء؟ الحضور: إذا ري أقل من - أوه، أعتقد، إذا كنا بالفعل وجدت أنه في الجذر. حتى إذا الجذر السهم ط تساوي ط - JASON هيرشهورن: عذرا؟ الحضور: إذا الجذر السهم ط يساوي يساوي ط - JASON هيرشهورن: ماذا نفعل؟ الحضور: العودة الحقيقية. JASON هيرشهورن: العظمى. وما هي الخطوة التالية؟ جيف، ما هو السطر التالي من التعليمات البرمجية؟ الحضور: إذا أنا أقل من الجذر السهم ط، ثم الجذر يساوي الجذر السهم الأيسر. JASON هيرشهورن: يساوي الجذر الجذر السهم الأيسر. ولهذا على الارجح اكبر الفرق هنا في هذه التكرارية نسخة تعارض فيما يتعلق نسخة العودية. النسخة العودية، ونحن استدعاء الدالة مرة أخرى. سنقوم بتحديث الجذر عندما نسميه وظيفة جديدة. نحن هنا لا ندعو وظيفة جديدة. نحن ببساطة مجرد تحديث الجذر في هذه الوظيفة. هذا ممتاز. وما هو السطر الأخير من التعليمات البرمجية؟ نعم، ماريو؟ الجمهور: يساوي الجذر آخر الجذر السهم الأيمن. JASON هيرشهورن: عذرا؟ يساوي الجذر: إستماع الجذر السهم الأيمن. JASON هيرشهورن: هل يمكنك أيضا أكتب شيئا من هذا القبيل؟ الجمهور: ليس لدي فكرة. JASON هيرشهورن: لا يمكنك ذلك. لا يمكنك أن تفعل يساوي زائد. حسنا، هذا يبدو جيدا. لماذا لا نفعل ذلك تماما لتنظيفه. هذا يبدو رائعا، وهذا من شأنه أن يعمل. ونود أن تندلع. إذا كان الجذر اليسرى فارغة أو الجذر الحق لاغ، كنا نخرج هنا. أن الجذر يكون مساويا لاغية. كنا الخروج من حلقة لدينا، وكنا عودة كاذبة. حتى عندما والخروج من حلقة، نعود كاذبة. ومرة أخرى، كان حلقة في حين مثالية هنا لأننا لا نعرف كيف شجرة كبيرة لدينا. حاولنا أن يكتب للحلقة، لكننا أدركت كنت قد حصلت لمعرفة كيفية انها كبيرة في وقت مبكر. نعم. الحضور: وإذا كان هذا ليس ثنائي شجرة البحث، فإنه يكون حقيقيا الرياضيات ص لأنه يكتب تكرارا، أليس كذلك؟ مثل، إذا كان شجرة، ولكن ليس بالضرورة - لذلك لم يكن كل أصغر على اليسار، وجميع أكبر على اليمين. سيكون من الصعب حقا تكرار أكثر من ذلك، أليس كذلك؟ سيكون لدينا لإنقاذ ما كان في وقت سابق على في شجرة والعودة، وأشياء من هذا القبيل. JASON هيرشهورن: إذا لم يكن ثنائي شجرة البحث، إذا كان مجرد كانت الشجرة وأشياء لا فرز مثل هذا - وأدركنا في وقت سابق عندما آنا كان يساعد لنا أن يجعل من فرزها تساعدنا كثيرا - كنا بحاجة إلى ذلك، نعم، دائما حفظ حيث كنا في السابق. ولكن يمكن أن يكون هناك الكثير من حيث كنا previouslys. يمكن أن يكون هناك الكثير من العقد الأصلي. ربما أفضل طريقة للقيام بذلك من شأنه يكون للحفاظ على دفع الأمور إلى بعض نوع مكدس أو طابور. لن تحتاج أبدا إلى رمز هذا لأنها مشكلة صعبة. ولكن يمكنك دفع بعض الأشياء على كومة أو قائمة الانتظار ومن ثم موسيقى البوب ​​لهم قبالة، و ثم تقييمها. وبعد ذلك بعض الشيء الآخر حيث أنك تضع في الواقع العقد، و ثم خلق هذا، ثم البحث من خلال ذلك. قد يكون ذلك أفضل وسيلة للقيام بذلك. موافق، على أية أسئلة حول هذه المشكلة؟ الحضور: هذا هو على المذكرة ذات الصلة. سوف يتعين علينا أن مقارنة أوقات تشغيل للجداول البعثرة، ثنائي البحث الأشجار، وهلم جرا؟ JASON هيرشهورن: ربما. لذلك دعونا نفعل ذلك بسرعة حقا. تشغيل الوقت لجدول التجزئة - ما هي غيرها؟ شجرة ثنائية؟ الحضور: قوائم ارتباط. JASON هيرشهورن: موافق، دعونا نفعل إدراج. ما هو يا كبير من إدراج على جدول تجزئة؟ ما هي الافتراضات كنت صنع؟ الحضور: أنت إدراج في ابتداء من القائمة رابط. JASON هيرشهورن: ربما أول الافتراض هو أنه لا توجد الاصطدامات. إذا كان هناك أي اصطدام، ثم الوقت الإدراج واحد. إذا كان هناك اصطدام، وكنت القيام تسلسل منفصلة وإدراج في بداية القائمة رابط، ثم الإدراج هو أيضا ثابت. إذا كنت تفعل جدول تجزئة لكنك لديهم طريقة مختلفة للتعامل مع الاصطدامات، ما هو طريقة مختلفة؟ ما هي طريقة مختلفة التعامل مع تصادم في جدول تجزئة؟ الجمهور: البرمجة الخطية. JASON هيرشهورن: البرمجة الخطية. لذلك نحن ذاهبون الى مواصلة البحث للبقعة مفتوحة المقبل. التي ليست ثابتة وقت الإدراج. هل يمكن أن يكون من خلال الذهاب الى الجدول بأكمله، بحيث يمكن أن تكون كبيرة يا ن. نعم. الحضور: وإلا مجرد تسلسل؟ JASON هيرشهورن: فعلنا تسلسل منفصلة. كان هذا أول واحد. هذا ما لائحة الارتباط. اسم يتوهم هو تسلسل منفصلة. يمكن أن يكون أي نوع من بنية القائمة يحدث لأننا نفعل في القائمة رابط. ذلك مرة أخرى، الإدراج على جدول تجزئة قد يكون الوقت قد حان ثابتة. ماذا عن الإدراج على طابور الجوالة؟ الحضور: أليس هذا ثابت؟ JASON هيرشهورن: لقد حان الوقت مستمر. كنت مجرد دفع عليه. موافق. الإدراج، ما كانت تلك الأخرى؟ على المحاولة؟ ما هو يا كبير من الإدراج على المحاولة؟ الجمهور: طول ثابت. طول أطول - طول الكلمة كنت إدراج. JASON هيرشهورن: عذرا؟ الانتظار، وذلك ما لم أسمع؟ قلت - ماذا قلت؟ ما كان جوابك، ماركوس؟ الجمهور: طول الكلمة كنت في إدراج أحرف، على افتراض انها محاولة حرف. JASON هيرشهورن: حسنا، طول الكلمة. اننا سنحقق افتراض أن انها سلسلة من الأحرف. قال لك شيئا مختلفا، وإن كان. قلت طول أطول كلمة. الحضور: وهذا مجرد ثابت، أليس كذلك؟ JASON هيرشهورن: لماذا أن تكون ثابتة؟ الحضور: مثل، إذا كنت تستخدم يا كبير التدوين، ثم أنها لا تختلف على عدد من الأشياء التي هي بالفعل في المحاولة. JASON هيرشهورن: لذا فإننا ويقول ان الوقت قد حان ثابتة. فمن الإدراج المستمر، و ذلك لأن هذه الفكرة - نقول لدينا كلمة واحدة وهذا 45، أو كلمة وهذا 60، وهذا لديه عدد ثابت. وسوف يكون مجرد إدراجها في وقت ثابت. في الممارسة العملية على الرغم من أنه لن يكون، من الواضح، أن يحدث في ميلي ثانية واحدة واحدة، على سبيل المثال. ولكن علينا أن نقول يا كبير هو المستمر لمحاولة. وهذا واحد من ل أكبر مزايا. ماذا عن الإدراج في القائمة رابط؟ مجرد العامة، القائمة رابط فرزها؟ نعم. الجمهور: كان لي سؤال. في الاختبار، فإنها من أي وقت مضى نسأل لنا الوقت هذا الإدراج أربع خطوات، أو شيء من هذا؟ أم أنها مجرد - عندما تقول وقت الإدراج واحد، هذا يعني فقط وقت ثابت؟ JASON هيرشهورن: نعم، لو كانوا دائما أسأل، هل هو يا كبير من ن؟ يا كبير من سجل ن؟ N المربعة ثابتة. تلك هي الحقيقة فقط تلك التي تحتاج إلى معرفته. ماذا عن الإدراج على فرز قائمة الارتباط؟ الجمهور: كان لي سؤال - سؤال - JASON هيرشهورن: ما هو الجواب على هذا السؤال، على الرغم من؟ الحضور: الانتظار، ماذا تسأل؟ JASON هيرشهورن: ما هو يا كبير من الإدراج في القائمة رابط فرزها؟ الحضور: واحد؟ لا انتظر، لا الانتظار، ن. JASON هيرشهورن: N. إلى جانب قائمة الارتباط. وماذا كان سؤالك؟ الحضور: وهكذا سوف تكتب س من ك أو س 1 لل- JASON هيرشهورن: أوه. أود أن أكتب س 1، على الأرجح. وكان هناك هيكل واحد البيانات الأخرى التي كانت جيدة. شجرة، شجرة البحث الثنائية. ما الإدراج على شجرة البحث الثنائي؟ الحضور: تسجيل الدخول. JASON هيرشهورن: إذن، ما هو أسوأ الحالة في شجرة البحث الثنائي؟ حتى إذا كنا يحدث أن تبدأ في 5، وعلى كل عدد أكبر من 5، ثم لدينا 5، 7، 9، 11، وهلم جرا. في هذه الحالة، انها في الاساس مجرد وجود صلة قائمة، ونحن بحاجة إلى إدراج جميع الطريق في نهاية المطاف. لذلك فمن يا كبير من ن. يمكن أن يكون أسوأ حالتنا على شجرة البحث الثنائية. من الواضح، وكنت بناء أبدا شجرة البحث الثنائي مع 5 في المتوسطة، مع العلم أن 5 أن يكون أقل عدد. ولكن يمكن أن يكون، إذا كنت البدء من نقطة الصفر. أي أسئلة حول هذا قبل أن ننتقل إلى سؤال آخر؟ كان هذا سؤال جيد. أود أن أعرف يا كبير من - الحضور: وماذا عن البحث لهؤلاء الأربعة؟ JASON هيرشهورن: بالتأكيد نحن لم البحث والفرز. فعلنا كل تلك الخوارزميات، والحق. الانتظار، وكان ذلك لاختبار 1؟ والتي غطت - هل لديك بالفعل أن سؤال حول مسابقة 1؟ يا وقت كبير من البحث الثنائي، نوع الإدراج، فقاعة نوع؟ الجمهور: نعم. JASON هيرشهورن: إذا كان لديك أن سؤال حول مسابقة 0، الاحتمالات هي أنك لن الحصول على نفس السؤال المحدد على اختبار 1. قد تكون لا تزال جيدة لمعرفة تلك. يجب أن نعرف نأمل غ بالفعل. ولكن لوغاريتمي أوقات التشغيل الأخرى وربما من الجيد أن نعرف. الأشياء التي لم تكن مشمولة في مسابقة 0. مثل كل هذه العوامل على هذه الأنواع من البيانات مجردة. حسنا، دعنا ننتقل. وينبغي أن يكون هذا واحد سريع جدا. وهذه هي لغة جديدة ليس لدينا ترميز الواقع في قبل. هذا هو السؤال المطلوب إلى رمز في PHP. حتى النظر في مجموعة بي إتش بي أدناه. إرسال PHP و / أو رموز HTML بحيث إخراج جدول عمودين مع TFS أسماء والمنازل. كنت قد فعلت ذلك من قبل أبدا، هذه المشكلة بالتحديد. ولكن هذا يجب أن تكون مألوفة جدا ل ماذا فعلت في مشكلة تعيين 7. لذلك أود أن تكون على استعداد للمراهنة سوف تكون طلب إلى رمز PHP شيء في أن هي مشابهة جدا لماذا أنت فعلت في مشكلة تعيين 7. أولا، مجموعة ليست محددة. ما هو نوع من مجموعة هذا؟ الجمهور: النقابي. JASON هيرشهورن: انها مجموعة النقابي. وما هو الفرق بين مجموعة النقابي وكائن؟ الحضور: مجموعة كائن يحتوي فهرس من الأعداد الصحيحة، ومجموعة النقابي هو مؤشر من سلسلة، أو شيء من هذا القبيل. JASON هيرشهورن: إذن مجموعة من سيكون لديهم الأجسام مؤشرات أعداد صحيحة، ولكن كائن يحتوي على حقول. كان لديه تلك الأسماء مجالات مثل اسم، بيت، طالب. هل لديك فكرة؟ الحضور: حسنا، النقابي مجموعة في PHP، أليس كذلك؟ والهدف من ذلك هو في جافا سكريبت؟ JASON هيرشهورن: بصراحة، ليس هناك الفرق الحقيقي بين البلدين. لديهما سلاسل كما المفاتيح، ويمكن في الأساس أي شيء كقيمة. لغات مختلفة استدعاء واحد مجموعة الشيء النقابي، شيء واحد كائن. لذلك بصراحة، لا يوجد حقيقية الفرق، ولكن هناك بالتأكيد بعض الخلافات النحوية بين البلدين. نعم. الحضور: وهكذا يتم ترميز الكائن أيضا في إطار هود كجدول التجزئة، ثم؟ JASON هيرشهورن: ماذا تفعل أنت يعني مشفرة تحت غطاء محرك السيارة؟ الحضور: وقيل لنا أن النقابي وكان مجموعة من الناحية الفنية تجزئة الجدول. ذلك هو الكائن أيضا من الناحية التقنية جدول تجزئة؟ JASON هيرشهورن: أنا لا أذهب للإجابة على هذا السؤال. سوف نعود اليكم على ذلك. ولكن لا أعتقد إما تلك من هذا القبيل. ولكن، بأي شكل من الأشكال، مجموعة النقابي و وجوه، وعموما، الناس استخدام تلك حيث بالتبادل. في هذه الحالة، فإن الجزء بارد هو أن تتمكن من استخدام المفاتيح. سلاسل كمفاتيح، بدلا من أرقام بسيطة فقط. حتى لقد تم الحديث عن هذه لحظة. نأمل، بعض الناس لديهم حصلت المكتوبة في هذا الشأن. ونحن في طريقنا إلى كتابة بعض PHP و HTML رمز، بحيث نحصل على عمودين الجدول مع أسماء TFS والمنازل. حسنا، أنا أيضا أود رأس الصف في هذا الجدول. لذلك أنا ذاهب الى الحصول على التوالي في هذا. ونحن في طريقنا إلى ملف، الجديد، ونحن في طريقنا لل- موافق. كيف يمكنني بدء الجدول؟ ما هي العلامة، مايكل، لبدء الجدول؟ الحضور: الجدول. JASON هيرشهورن: الجدول. وإذا كنت فتح علامة، ما أحتاج؟ الجمهور: A الرأس؟ أو، أعتقد، والطبقة. JASON هيرشهورن: لذا، آسف. نفترض أن لدينا كتب بالفعل doctab، HTML، كل الاشياء. ولكن إذا كنت فتح هذا علامة الجدول، ما أحتاج أن أكتب؟ للتحقق من صحة HTML؟ الجمهور: أغلق عليه. JASON هيرشهورن: إغلاق علامة. كيف يمكنني إرسال علامة طاولة قريبة؟ الجمهور: دوت خفض الجدول. JASON هيرشهورن: خفض الجدول، عظيم. ربما من المنطقي أن يكتب على حد سواء تلك معا ل كنت قد حصلت على القيام بذلك. حسنا، إذا كنت ترغب في صف الرأس، كيف أنا أكتب صف الرأس مع الألقاب؟ الحضور: هل من أقل وثيقة من 10 ساعة - TR، نعم. JASON هيرشهورن: TR؟ الحضور: ثم نفس الشيء، مائل، نعم. JASON هيرشهورن: موافق، و أعطني عمودين. الحضور: T D؟ JASON هيرشهورن: OK. أريد عمودين. يعني هذا أن تعطيني عمودين؟ عدد الأعمدة هو هذا؟ واحد. لذلك دعونا نسخ ولصق هذا. ذلك في الواقع، على هذه المسابقة، كل هذا الرمز أننا قد كتبت حتى الآن كان نظرا فعلا لك. ولكن يجب عليك ربما لا تزال تعرف كيف تكتب عليه. نعم. الجمهور: بيتك هو بين الاثنين. JASON هيرشهورن: بوم. ينبغي أن يسير في الاتجاه الصحيح هناك، أليس كذلك؟ الكلمة الطيبة. ذلك مرة أخرى، كل هذا الرمز هو في الواقع نظرا للكم على هذه المسابقة الفعلية. ولكن انها متعة لأنه يكتب، وكنت يجب أن تعرف كيفية كتابتها. لذلك هذا هو المكان الذي يجب لبدء التعليمات البرمجية. ماذا نحتاج لكتابة الحق هنا؟ آسف، أنا بحاجة إلى تغيير اسم هذا الملف. ولذا فإننا حفظه في ملف HTML.، ليس في ملف PHP. فإن هذه الأمور لا تعني شيئا في ملف PHP. لذلك نحن في ملف HTML. ما هو أول شيء ولست بحاجة إلى الكتابة؟ أريد أن أضع بعض PHP التعليمات البرمجية في HTML. الجمهور: PHP، مثل الجزرة أخرى وعلامة الاستفهام PHP، أليس كذلك؟ JASON هيرشهورن: العظمى. وكيف يمكنني أن تنتهي؟ الحضور: مع علامة استفهام. JASON هيرشهورن: هذا أمر عظيم. هذا هو أول شيء أنا بحاجة إذا أريد لوضع بعض التعليمات البرمجية PHP هنا. الحضور: فكرت PHP الملف يمكن أن HTML. JASON هيرشهورن: نعم. ملف PHP. يمكن أن يستغرق بعض HTML ويتم عرضها. كان هذا بلدي سيئة. كنت مجرد محاولة لتقليد ما كان عليه في هذه المسابقة. موافق، آسف لإرباك لك. نعم، practice.HTML. الآن ونحن في طريقنا إلى وضع بعض رمز PHP فيها. ما هو السطر الأول من كود PHP أود أن أكتب؟ انا ذاهب للذهاب من خلال هذه المجموعة وجعلها في جدول. نعم. الحضور: يمكنك إما استخدام وللH حلقة أو حلقة for. JASON هيرشهورن: OK، ما هل تريد استخدام؟ الحضور: وأود أن استخدام للحلقة. ل، ثم تفعل علامة الدولار ط يساوي 0 منقوطة الدولار توقيع ط أقل من 2. ثم منقوطة ط الدولار توقيع ط زائد زائد. JASON هيرشهورن: كيف تعلمون لاستخدام 2؟ الحضور: لأن هناك اثنين صفائف النقابي داخل أكبر مجموعة النقابي. JASON هيرشهورن: إذن الشيء الكبير ل لا مجموعة الزميلة. الشيء الكبير مجرد مجموعة العادي. ولكن كنت على حق، هناك اثنين من صفائف النقابي داخل مجموعة أكبر لدينا. لهذا السبب كنت تستخدم اثنين. أشعر بعدم الارتياح على افتراض أن انهم 2، لذلك ما هو وسيلة لإرسال هذا دون افتراض انهم 2؟ الحضور: [غير مسموع]؟ JASON هيرشهورن: OK، كيف لا تكتب ذلك؟ الجمهور: علامة الدولار فورياش TFS أو مثل الدولار علامة فريق العمل. JASON هيرشهورن: موافق، لذلك لكل كما TFS TFS، اريد، الآن مرة أخرى، لديها مائدتي. حتى الذين يمكن أن تعطيني السطر التالي من التعليمات البرمجية؟ الجمهور: طباعة، ثم في الاقتباسات، نهاية قوس آر قوس، نهاية الاقتباس. أقواس النهاية، منقوطة. JASON هيرشهورن: موافق، و ما الذي تنوي القيام به؟ الجمهور: انه ذاهب الى القول، صف جديد. انها تسير لوضع علامة لصف جديد. JASON هيرشهورن: الحق، وهذا PHP، مثل تحدثنا عنها في وقت سابق - وهذا PHP سوف يتم تقييمها، ومن ثم انها سوف تطبع لهذا الملف الجدول السحب، وبعد ذلك وسيتم تقييم HTML. نحن فقط نسخ هذا HTML كان لدينا هنا. نعم. الحضور: [غير مسموع]؟ JASON هيرشهورن: عذرا؟ انها هنا. سقوط 2012. لا ننظر الى الأجوبة، دعونا حلها معا. لذلك نحن طباعة صف الجدول. لذلك ربما كنت في التحول من الأشياء. ما هو السطر التالي من كود نحتاج إلى الكتابة؟ ولاية اسام، أعطني السطر التالي من التعليمات البرمجية. الجمهور: تحتاج إلى اسم فريق العمل ل. فريق العمل قوسين علامة اقتباس مفتوحة اسم أقواس مغلقة. JASON هيرشهورن: أعطني باسمهم. الجمهور: تحتاج لطباعة ذلك. [VOICES فاصلة] JASON هيرشهورن: OK، كيف يمكنني طباعته؟ [VOICES فاصلة] JASON هيرشهورن: أنا في عداد المفقودين شيئا الآن. ما أنا في عداد المفقودين؟ الحضور: كنت في حاجة الى علامة الدولار. JASON هيرشهورن: ما آخر أنا في عداد المفقودين؟ كل ما قد طبع حتى الآن هو آر. الجمهور: أغلق آر بعد ذلك. JASON هيرشهورن: لذلك نحن بحاجة لإغلاق آر بعد. الذي يرى ما نفتقده على خط 16؟ نعم، آنا. الحضور: أنت بحاجة إلى فتح والدفتيريا والأقواس المتعرجة. JASON هيرشهورن: وأين لا نضع الأقواس المتعرجة؟ الجمهور: حول اسم فريق العمل. JASON هيرشهورن: مثل هذا؟ الجمهور: نعم. ثم قم بإغلاق الدفتيريا. JASON هيرشهورن: أحب ذلك؟ الحضور: هل تحتاج إلى اقتباس مزدوجة علامات بجانب الأقواس المتعرجة؟ JASON هيرشهورن: الحق هنا؟ لا، أنت لا تفعل ذلك. ولهذا صحيح تماما. نعم. الحضور: وبالتالي فإن الفرق بين أن وencatenating مع نقاط هو، إذا استخدام النقاط، وكنت قد لديك علامات اقتباس مزدوجة، ثم نقطة، ثم نقطة - JASON هيرشهورن: صحيح. حتى أنت تقول هناك على النهائي طريقة كتابة هذا القبيل. ما المشغل سلسلة في جافا سكريبت؟ الحضور: إشارة زائد. كنت قد نسيت لوضع متعرج الظهر. JASON هيرشهورن: العظمى. وهناك سطر واحد أكثر من التعليمات البرمجية في عداد المفقودين. الذين يمكن أن تعطيني السطر الأخير من التعليمات البرمجية نفتقده؟ الحضور: فقط نفس الشيء بالضبط، فقط مع البيت بدلا من الاسم. عظيم JASON هيرشهورن: العظمى. وجملة الخاص بك هو صحيح تماما ل الحصول على الأشياء في مجموعة الزميلة. وذلك في مسابقة الفعلي، كنت نظرا الواقع حتى هنا. لذلك أعطيت هذا الرمز لك. كل ما عليك أن تكتب كانت هذه أربعة خطوط وتذكر ل إغلاق علامة الجدول. لم يا رفاق الواقع كل ذلك وأكثر. نعم. الحضور: لذلك سيكون وظيفيا نفس الشيء إذا كان لديك فقط أن كل ما في و دعوة الطباعة واحدة كبيرة، أليس كذلك؟ ثم متصلا فقط على، وهلم جرا؟ JASON هيرشهورن: أحب ذلك؟ الجمهور: نعم. انها فقط لا تبدو جيدة لو كنت تبحث في ذلك عندما كنت التفتيش العنصر على موقع الويب الخاص بك، أليس كذلك؟ JASON هيرشهورن: أوافق. إذا أنا حملت صفحة الويب هذه، وأود أن يكون قادرا على رؤية هذا الرمز PHP، من أي وقت مضى؟ الحضور: رقم JASON هيرشهورن: رقم وفعلا، وأنا لن. الحضور: هذا ليس HTML، أليس كذلك؟ لذلك قد تكون قادرة على - JASON هيرشهورن: لذا سيكون هذا PHP يتم تقييم جانب الملقم. يتم تقييم PHP دائما جانب الخادم، لذلك كنت أبدا قادرا على رؤية كود PHP. الحضور: ولكن يهمني أن تكون قادرا على نرى النتيجة من المطبوعات. JASON هيرشهورن: الحق. وأنه قد لا بصراحة وضع كل ذلك على خط المرمى. قد تهيئته بشكل جيد بالنسبة لك، أو أنه قد وضعها على سطر واحد. غير واضح. ولكن نعم، نقطة جيدة. الجمهور: كيف يكون هناك لا تسليط الضوء على النص ل أي من الأوامر PHP؟ لأنني أتذكر رؤية ذلك. JASON هيرشهورن: لأن انها . ملف HTML هنا في الأعلى. هناك تذهب. الحضور: إذا فعلنا الأسلوب الأولي مع لحلقات، والحق، وإذا كنا أراد الوصول إلى TFS، فإننا القيام قوس TFS 0 قوس، ثم [غير مسموع]؟ JASON هيرشهورن: أنت شأنه - حتى أنت تقول لللحلقة، وكنت ستفعل في علامة الدولار TFS قوس 1 أو أنا، أليس كذلك. أو علامة الدولار ط إغلاق قوس ثم قوس مربع علامات اقتباس مزدوجة، نعم. موافق، ممتاز. لدينا واحدة أكثر واحد سريع. سبع دقائق، لذلك أريد ليذهب أكثر من هذا واحد. هذا هو مثال آخر. نحن الآن بلغة أخرى تماما. لدينا بعض رمز HTML. انها نوع من صغيرة على الشاشة، ولكن أريدك أن ننظر من خلال ذلك حقا بسرعة، ويمكن للشخص أن يقول لي، إذا كان لي أن تحميل صفحة الويب هذه، ما أود أن أرى؟ وصف كل شيء عن هذه الصفحة. نوح؟ ما الذي أرى؟ الجمهور: كود في الواجهة الأمامية لل جوجل مع إحساس للنص و زر الإرسال. JASON هيرشهورن: وماذا أن أقول الزر؟ الحضور: تقدم. أوه، البحث. أنا آسف. JASON هيرشهورن: ويقول البحث. تذكر اسم. ماذا نستخدم اسم ل؟ هذه السمة اسم، ما هو التي تستخدم ل؟ [VOICES فاصلة] الحضور: هذا هو اسمها لأنه عندما يتم النقر فوقه؟ JASON هيرشهورن: وهذا يمكن أن يكون. ولكن ماذا نرى عموما - لماذا نحن إعطاء اسم قائمة الانتظار هذه؟ لماذا لا نرى ذلك؟ نعم. الحضور: لا مؤشر أن تصبح المتغير السوبر العالمية؟ JASON هيرشهورن: نعم، عموما عندما وهذا من شأنه تقديم نموذج، ومن ثم حيث هذا من شأنه أن يقدم إلى؟ ما الصفحة؟ نوح، وهذا من شأنه الصفحة ما يقدم إلى؟ الجمهور: لست متأكدا. JASON هيرشهورن: أين قد يمكننا العثور عليه؟ أين تجد ما الصفحة تقدمه إلى؟ ما سطر من التعليمات البرمجية؟ الجمهور: عمل نموذج. JASON هيرشهورن: بالضبط. العمل. لذلك يقدم إلى صفحة البحث. البحث مائل. ولهذا صحيح تماما. ما الطريقة؟ الحضور: احصل على. JASON هيرشهورن: احصل على. بالضبط. لذلك نقرأ هذا. هذا سيكون نموذج. أنت على حق تماما. شيئين في النموذج، عنوان صفحة والجزء العلوي سيكون جوجل. حتى هنا سؤالان يجب عليك أن يكون قادرا على الإجابة عن هذه الصفحة. إذا يعيش هذا HTML في هذا الموقع و المستخدم المدخلات علة في هذا النص المجال هنا، سوف ما URL المستخدم تجد نفسها على تقديم النموذج؟ لذلك لدينا هذا الحق هنا. انا ذاهب الى العودة الى هذه الصفحة، وإن كان. أنا أكتب عن هذا الجزء الأول. يمكن أن نرى الجميع هنا؟ موافق، ماريو، كنت تعتقد أنك تعرف؟ ما الصفحة؟ الجمهور: البحث عكسي. JASON هيرشهورن: أنا ذاهب للانتقال إلى هنا. موافق، مائل مسألة البحث علامة يساوي ف الشوائب. أي شخص لديك اقتراح مختلف؟ نعم. فكيف نحصل على هذا؟ حسنا، لقد رأيت هذا من قبل. وجاء لك حتى مع هذا في وقت سابق. كنت على حق، ونوح، أن والعمل تقول لنا ما الصفحة نحن في طريقنا لل. نحن أيضا نعرف ما الأسلوب. نقوم به GET. والفرق بين الحصول على وظيفة والتي تحصل يعرض في URL وآخر لا. حتى إذا كتبت آخر هناك حق في الأسلوب، ما من شأنه أن يكون مختلفا؟ الحضور: إنه سيكون فقط يكون البحث مائلة. JASON هيرشهورن: ومن شأنه يكون مجرد خفض البحث. لا شيء أكثر من هنا يحدث. ولكن لأنها تحصل، عنوان URL يتم عرض على النحو التالي. أولا نرى علامة استفهام و ونحن نرى اسم وقيمة. ويقول كان هناك حقل النص الآخر و أعطيته اسما من ص وأنا إدخال القيمة، اليرقة. ما يمكن أن تبدو الآن مثل هذا؟ لقد احدة حقل النص أكثر من ذلك، أعطي تسمية من ص وقيمة كاتربيلر. الحضور: بعد شريط وكنت قد كاتربيلر العطف. JASON هيرشهورن: هذا لا العطف. الجمهور: أو مجرد أيا كان لوالرمز. JASON هيرشهورن: نعم، لا. كنت على حق، كنت على خطأ. هذا هو مثل ز. الجمهور: كاتربيلر. ص يساوي كاتربيلر، آسف. JASON هيرشهورن: هل هناك لا ص هناك؟ الجمهور: لا، لا يوجد. JASON هيرشهورن: سنتحدث عن ذلك بعد انتهاء اليوم الدراسي. هذا صحيح تماما. وبالتالي فإن وغير الصحيح. ثم هل يمكن أن يكون العديد من هذه، وكانوا جميعا متصلا مع ذلك، و. ولهذا صحيح تماما. هناك سؤال واحد أكثر من ذلك. رسم DOM HTML هذا، وتبدأ مع الوثيقة. يمكننا أن نفعل ذلك في دقيقتين. سنفعل ذلك أكثر من هنا. سأذهب الى هذه الصفحة. موافق، ونحن نبدأ مع الوثيقة. ما هي الخطوة التالية؟ لذلك عندما كنت تقرأ من خلال - الجمهور: HTML. JASON هيرشهورن: HTML هو القادم. ونحن في طريقنا للذهاب علامة من قبل العلامة. ما بعد HTML؟ الحضور: رئيس. JASON هيرشهورن: رئيس. ما بعد الرأس؟ الحضور: العنوان. JASON هيرشهورن: العنوان. وعنوان يحتوي على قيمة جوجل، ولكن أنا لا أذهب ل إرسال أنه في الوقت الراهن. حسنا، أين تذهب الجسم؟ الحضور: تأتي أيضا الخروج من HTML. JASON هيرشهورن: بالضبط. ويأتي الجسم الخروج من هنا. لا أرى لماذا الجميع هذا هو الحال؟ ربما يجب عليك أن تكون قادرا على معرفة هذا، أيضا، حتى لو لم يكن لدي هذه المسافة البادئة لطيفة. المسافة البادئة نوع من يعطيها بعيدا، ولكن يمكنك أن ترى أن العلامة رئيس له أغلقت، وهو ما يعني أننا ربما لا يمكن أن تذهب إلى هنا. نحن بحاجة إلى العودة إلى ما كان على حق قبل رئيس العلامة، أو في إطار ذلك. نحن حتى مع علامة الرأس. وتحت الجسم تذهب النموذج. تحت شكل، وهناك اثنين من المدخلات. موافق. هذا كل ما حصل. مسابقة 1 غدا. أنا متحمس جدا ليا رفاق. انها ستكون الانفجار. إذا كان لديك - الحضور: [تصفيق] JASON هيرشهورن: أوه توقف، توقف. ولكن لا، أنا أمزح. إذا كان لديك أي أسئلة، والحق بعد القسم، سأكون خارج. إذا كان لديك أي أسئلة الليلة، لا تتردد في الاتصال، والبريد الإلكتروني، gchat، الحمام الزاجل لي. حظا سعيدا غدا. لديك عطلة عيد الشكر رائعة، إذا أنا لا أراك قبل ذلك. وأنا لن أراك بعد عيد الشكر يوم الثلاثاء عن هدفنا النهائي قسم الحزب من أي وقت مضى. الحضور: [غير مسموع]. JASON هيرشهورن: العظمى. حسنا، سوف نرى يا رفاق المقبل الأسبوع، أو في غضون أسبوعين. وحظا سعيدا غدا.