>> اسپیکر 1: ہیلو سب.
ہم شروع کرنے کے لئے جا رہے ہیں.
میں نے لوگوں کو اب بھی جا رہے ہیں لگتا ہے میں فلٹر کرنے کے لئے.
لیکن وقت کے مفاد میں، ہم کر سکتے ہیں تو وقت پر یہاں سے باہر لوگ آپ کو حاصل،
ہم شروع کرنے کے لئے جا رہے ہیں.
تو CS50 کوئز 0 جائزہ لینے کے لئے خوش آمدید.
احساس نہیں ہے جو تم میں سے ان لوگوں کے لئے ابھی تک، آپ نے بدھ کے روز ایک سوال ہے.
وو ہو.
>> آپ نے ابھی تک تعلیم حاصل کرنے شروع نہیں ہے یا اگر یہ ابھی تک موجود ہے اس بات کا احساس نہیں ہے،
ماضی quizzes اور سب کے بارے میں معلومات آپ کے کوئز cs50.net/quizzes پر ہیں.
کچھ بہت اچھی چیزیں وہاں پر نہیں ہے، 10 آخری سے ماضی میں quizzes
سال کے طور پر اچھی طرح سے کے طور پر کے بارے میں معلومات اس کوئز اور موضوعات کے بارے میں
کہ شامل کیا جائے گا.
تو شروع کرنے کے دو.
>> تو تم لوگ، سب سے پہلے یاد کر سکتے ہیں کلاس داؤد کے دن ان کے لیمپ پر تھا.
تو بنیادی طور پر، سب کچھ ہے کہ ایک کمپیوٹر کے ہڈ کے تحت پر
بائنری میں کیا.
ثنائی یہ لگتا ہے کیا مطلب ہے کی طرح، 0 اور 1 کی.
یہ دو اقدار ہے کہ نمائندگی کیا جا سکتا.
>> تو سیکشن کے پہلے دن کی طرح ڈیوڈ ایک روشنی پر دیا گیا ہے جب
بلب، ہمارے کمپیوٹر پر کی نمائندگی کرتے ہیں، یا 1 سمجھتا ہے 0 کے طور پر بائنری اور
1، یا بند.
ثنائی کے اصول.
ہر جگہ نمائندگی کی ہے بیس دو میں.
تو آپ 0 کے لئے 2 شامل 1 تمام طریقہ 2.
>> آپ بائنری کیا ہے شمار کرنے کے لیے دشملو، آپ کو صرف اس مساوات کو فالو کریں
قسم بات.
آپ کو ان جگہوں میں سے کسی میں 1 ہے، تو، آپ کی طرف سے ضرب ہے جو کچھ بھی
اس میں کی بنیاد، ممبر شامل کریں، اور آپ دشملو حاصل.
تو اس سے آپ کا شمار کس طرح ہے بائنری میں 5.
ہم پر کیا کر رہے تھے کی طرح آخری سلائڈ، اس کو کس طرح آپ گا ہے
5 کے ذریعے 1 کی نمائندگی کرتے ہیں.
>> اسی طرح، صرف آپ کو شامل کر سکتے ہیں پسند کرتے ہیں اور دشملو میں منہا یا 10 کی بنیاد، یا
واقعی کسی بھی بنیاد پر شامل کر سکتے ہیں اور بائنری میں منہا.
جب آپ کو آپ توقع کریں گے بالکل وہی جو یہ زیادہ سے زیادہ برابر ہے، دو کا اضافہ
1 سے، آپ کو ایک 1، یہ 0 بنا لے، اور صرف، اس کے علاوہ اس طرح کرتے ہیں
طرح آپ کو باقاعدگی سے توقع کریں گے دشملو یا کسی دوسرے کی بنیاد.
ڈاؤن لوڈ، اتارنا.
>> میں، سب سے پہلے نے کہا تو ہے کہ ہمارے کمپیوٹر کے ہڈ کے تحت پر جاتا ہے
0 اور 1 کے، یا بائنری میں کیا جاتا ہے.
تو ہم کا اظہار کرتے ہیں کہ کس طرح، مثال کے طور پر، خطوط، یا تعداد، یا حروف؟
اور اس کا جواب ASCII ہے.
>> ASCII حروف کے درمیان ایک میپنگ ہے ہم عام طور پر میں دیکھیں گے کہ
ایک کی، B کی طرح انگریزی زبان، C کی، ظاہر، ڈیش، اور
اس طرح کچھ.
اور یہ ایک ASCII قیمت پر کہ نقشے.
ایک ASCII قیمت صرف ایک نمبر ہے آپ کے کمپیوٹر کی طرف سے سمجھا جا سکتا ہے.
اور تم اس کے علاوہ کیا کر سکتے ہیں کی طرح اور تعداد کے ساتھ باقی نکالنا، آپ کر سکتے ہیں
ASCII اقدار کے ساتھ ان.
>> ، اس مثال میں تو کیا یہ باہر پرنٹ کرے گا؟
جی ہاں، تو صرف ایک جگہ B خلائی سی جگہ ڈی کہاں اپنے ماؤس گئے تھے؟
آپ 65 میں ایک int وضاحت کر سکتے ہیں نوٹس.
اور آپ کو استعمال کرتے ہوئے اس کو پرنٹ جب فیصد C، یہ ایک کے طور پر اس کی تشریح کریں گے
کردار اور A. پرنٹ
>> اسی طرح، اگر آپ اعلان کر سکتے ہیں یہ ایک چار کے طور پر.
اور تم فیصد کا استعمال کرتے ہوئے اسے باہر پرنٹ جب C، کے طور پر اس کی تشریح کریں گے
فیصد D. اور آپ کو ایک شامل کر سکتے ہیں کی طرح تعداد، آپ کو حروف ہیں شامل کر سکتے ہیں
اس معاملے میں ASCII اقدار،.
>> سب کے لئے تو ایک چھوٹی سی پوائنٹر.
5، ایک تار کے طور پر، نہیں ہے اصل میں 5 برابر.
تو ہم کس طرح تبدیل کر سکتے ہیں عددی 5 سٹرنگ 5؟
کوئی خیالات؟
جی ہاں.
>> تو ہم نے ایک تار کے طور پر 5 ہے تو، ہم 0 منہا کر سکتے ہیں.
اور یہ کہ ہمیں 5 دے دونگا.
اور اسی طرح، ہم نے ایک کے طور پر 5 ہے تو عددی، سٹرنگ 0 شامل ہے کہ.
اور یہ کہ ہم سٹرنگ 5 دیتا ہے.
ڈاؤن لوڈ، اتارنا.
>> اب، ایک ہے جہاں لیکچر واپس یاد ہم الگورتھم کے بارے میں بات.
تو ہم اصل میں ایک کمپیوٹر چاہتے ہیں کس طرح دلچسپ چیزیں کرنے کے لئے؟
انہوں نے مزید کہا اور تفریق، جانتے تعداد اور پرنٹنگ چیزوں کو باہر نہیں ہے
کہ دلچسپ.
عام طور پر، ہم ہمارے کمپیوٹر چاہتے ہیں الگورتھم کی کسی قسم کی کارکردگی کا مظاہرہ.
تھوڑا سا زیادہ پیچیدہ کچھ صرف سادہ ریاضی سے.
>> ایک الگورتھم قدم سیٹ کی طرف سے صرف ایک قدم ہے انجام دینے کے لئے کس طرح کے لئے ہدایات کے
ایک مخصوص task--
صرف ایک ہدایت کی طرح.
آپ کے پہلے دن یاد کر سکتے ہیں ڈیوڈ ہمیں ایک کمرے شمار تھے جہاں کلاس
لوگوں کی اور کس طرح بہت سے لوگوں کو کمرے میں تھے.
تم گنتی کے لئے استعمال کیا جا سکتا ہے ایک کے بعد ایک.
1، 2، 3، 4.
اس صورت میں، ایک لکیری وقت الگورتھم.
>> لیکن داؤد کے لئے ایک الگورتھم متعارف آپ کو کمرے میں لوگوں کو شمار کرنے کے لئے
سب کو کھڑا ہے جہاں، آپ کو آپ کا کہنا ہے کہ کسی دوسرے شخص کو تعداد، کہ شامل
تعداد، اور ایک شخص بیٹھ.
اور تم اس کا اعادہ.
اس الگورتھم کی ایک قسم ہے.
ہم کس طرح موثر ایک تجزیہ کر سکتے ہیں اس وقت چلانے پر الگورتھم کی بنیاد پر ہے.
لیکن ہم تھوڑا سا میں بات کریں گے اس کے بعد کے بارے میں مزید.
>> تو تمام الگورتھم بھی کر سکتے ہیں pseudocode میں لکھا جائے.
pseudocode کی طرح ایک انگریزی ہے نحو کی نمائندگی کے لئے استعمال کیا جاتا ہے
ایک پروگرامنگ زبان.
مثال کے طور پر، ایک صارف ہم چاہتے تھے تو پوچھنا میرا پسندیدہ تعداد کا اندازہ لگانا، ہم
اس طرح کے طور pseudocode کے ہو سکتا ہے.
>> صارفین کو لگتا ہے حاصل.
اندازہ درست ہے تو، ان سے کہو وہ درست ہیں، اور ان سے کہو
وہ درست نہیں ہیں.
اور pseudocode کی آسانی کا ایک طریقہ ہے ایک خیال یا ایک الگورتھم کی نمائندگی.
تو اب ہم اصل میں لکھنے کے لئے چاہتے ہیں کر سکتے اس زبان میں ہے کہ کمپیوٹر
تفہیم ہو سکتا ہے.
تو ہم اپنے pseudocode لکھ ​​سکتے تھے اور ماخذ کوڈ میں اس کی تشریح.
>> اب تک، منبع کوڈ پر عمل کرنا ضروری ہے کی ایک مخصوص نحو
ایک پروگرامنگ زبان.
اور اب تک، CS50 میں، ہم نے زیادہ تر سی کا استعمال کرتے ہوئے.
تو اس C کے لئے ماخذ کوڈ ہو سکتا ہے.
بعد میں کورس میں، آپ کو رات آئے دیگر پروگرامنگ کے ساتھ رابطے میں
پی ایچ پی کی طرح زبانوں.
یا آپ کو بھی، آپ کو دوسری کلاس لے تو جاوا، ازگر، یا اس سے بھی OCML کر سکتا ہے.
لیکن ہماری C پروگرام کی زبان میں، یہ ہے ہم کے لئے ماخذ کوڈ لکھ سکتا کس طرح
pseudocode کے الگورتھم ہے کہ میں صرف پہلے بیان.
>> تو اصل میں آپ کے کمپیوٹر کرتا ہے سمجھتے ہیں کہ؟
میں صرف سچ میں، اس سے پہلے نے کہا zeros اور سمجھتا ہے.
تو کس طرح اس کے ذریعہ سے حاصل کرتا ہے ہو سکتا ہے کہ کچھ کرنے کے لئے کوڈ
سمجھ؟
ٹھیک ہے، ہم کچھ ہے ایک سنکلک کہا.
>> آپ کے سب سے زیادہ میں واپس یاد ہے آپ کی psets میں، آپ کو پروگرام کے کچھ قسم کی تھی
ایک نقطہ C فائل میں لکھا.
اور پھر آپ ٹائپ کریں گے.
تو کیا کر رہا ہے؟
>> آپ مرتب کرنے کے لئے ٹائپ کر سکتے ہیں پروگرام someone-- کیونکہ
جو شخص اپنی P سیٹ لکھا؛ شاید David--
شرنگار فائل پیدا.
اور اس کو چلانے کے لئے پتہ کرنے کے لئے بنانے کے بتاتا ہے آپ سنکلک، بجنا کہا جاتا، کہ مرضی
تو اعتراض آپ کے منبع کوڈ کو مرتب zeros اور ہیں ہے جس کے کوڈ،
آپ کے کمپیوٹر سمجھتا ہے.
لیکن بعد میں ایک چھوٹا سا، ہم جائیں گے compilers کے بارے میں گہرائی میں زیادہ.
>> تو یاد 0 pset کے، where-- جی ہاں، آپ سے ایک سوال ہے؟
>> سامعین: [اشراوی]؟
>> اسپیکر 1: جی ہاں.
میں اصل میں وہ سوچتے ہیں آن لائن ہونا چاہئے.
جی ہاں.
>> سامعین: یہ [اشراوی] کی طرح ہے؟
>> اسپیکر 1: یہ نہیں ہے.
cs50.net/quizzes پر ہیں.
>> سامعین: سلیش quizzes ہے،، 2013 سلیش 0 سلیش، اور صرف کے ذریعے کلک کریں
quizzes کی 2013 اور کوئز 0، سیکشن سلائڈ کا جائزہ لینے کے.
>> اسپیکر 1: جی ہاں، تو تم لوگ چاہتے ہیں تو اسے اوپر ھیںچو اور اس پر نظر آپ
اپنے کمپیوٹر، وہ بھی ٹھیک ہے.
پھر سے کہو.
>> سامعین: [اشراوی].
>> اسپیکر 1: جی ہاں، [اشراوی] ڈمی متغیر ہے.
اوہ، جی ہاں؟
>> سامعین: [اشراوی]؟
>> اسپیکر 1: نہیں، حملے امتحان پر نہیں ہیں.
معذرت، تھا اس سوال، تھا امتحان پر حملوں.
اور یہ نہیں ہے.
تو pset 0، تم لوگ سب ہونا چاہئے سکریچ کا استعمال کرتے ہوئے کچھ لاگو.
اور ہم نے کچھ بنیادی پروگرامنگ سیکھا سکریچ کا استعمال کرتے ہوئے عمارت کے بلاکس.
>> تو کچھ پر ایک نظر ڈالیں ان کی عمارت کے بلاکس کی
ایک پروگرام ہے کہ قضاء.
پہلا بولین اظہار ہے.
بولین اظہار ہیں اور ہے کہ 0 یا کچھ
دو ممکنہ اقدار.
اس صورت میں، صحیح یا غلط، یا بند، اور ہاں یا نہ.
بہت آسان، ایک سادہ کی ایک مثال، ایک بولین استعمال کرتا ہے پروگرام
یہاں اظہار تک.
>> تو کو بولین اظہار کے لئے ترتیب میں مفید ہو، ہم بولین آپریٹرز ہے.
ان کا استعمال کیا جا سکتا ہے کہ آپریٹرز ہیں بعض اقدار کا موازنہ کرنے.
تو ہم ہیں اور یا نہیں کے برابر، کم زیادہ یا اس سے زیادہ، کے برابر یا
کے برابر، اور کے مقابلے میں کم زیادہ یا اس سے زیادہ.
لیکن ان آپریٹرز بہت مفید نہیں ہیں ہم میں ان کو اکٹھا کر سکتے ہیں جب تک کہ
حالات.
>> تو تم لوگ شروع سے یاد کر سکتے ہیں اور آپ P سے ہم اس کا تعین کرتا ہے
حالات تھے.
وہ میں فورکس طرح، بنیادی طور پر، ہیں آپ کے پروگرام کی منطق ہے کہ
یا نہیں پر منحصر executes ہے ایک حالت سے ملاقات کی ہے.
ہم نے اس کے حالات کی تو ایک اس کورس میں کئی بار استعمال کیا ہے
اور، تو، اور کچھ حالات، تو.
>> یہاں ہے کہ کس طرح کی ایک مثال ہے آپ اس کا استعمال کر سکتے ہیں.
کسی کے درمیان فرق جانتا ہے صرف بیانات اگر تمام کا استعمال کرتے ہوئے
تو، کچھ آیات کے نیچے راستہ، تو، اور کسی مشترکہ؟
جی ہاں؟
>> سامعین: [اشراوی].
>> اسپیکر 1: بالکل.
تو میں تھا تو اس کے نیچے تمام طریقے جس طرح، یہاں تک کہ اس شرط واپس
یہ سچ ہے، یہ اب بھی جاری رہے گا اگلے دو جانچ.
، جبکہ ایک اور اگر، ایک اور کے ساتھ بیان، ایک حقیقی واپس،
دوسروں کا تجربہ کیا نہیں کر رہے ہیں.
اس کے بارے میں کوئی سوال ہے؟
ڈاؤن لوڈ، اتارنا.
>> تو آپ کو ایک اور کی اگر کسی اور استعمال اگر تم جانتے ہو بیان ہے کہ یہ صرف کر سکتے ہیں
ان مقدمات میں سے ایک ہو.
X 0 سے کم ہے اگر ایسا ہے تو ہم یہ جانتے ہو، یقینی طور پر نہیں جا رہا
0 سے بڑا.
>> اگلا، ایک اور عمارت بلاک ہم نے سیکھا ہے کہ loops کے ہیں.
ہم loops کی تین اقسام ہیں.
loops کے لئے، جبکہ loops، اور loops جبکہ.
اور عام طور پر، جب آپ کو بیٹھ کچھ لکھنے، آپ کو فیصلہ کرنا ہے
آپ استعمال کرنا چاہتے تین ہے.
تو ہم کس طرح جو ایک فیصلہ کرتے ہیں؟
>> ہم جانتے ہیں تو ہم عام طور پر لوپ کے لئے ایک کا استعمال کرتے ہیں کتنی بار ہم iterate کرنا چاہتے ہیں
کچھ کے ذریعے یا کتنی بار ہم ایک کام کو انجام دینے کے لئے چاہتے ہیں.
ہم کچھ کی ضرورت ہے تو ہم جبکہ loops کا استعمال حالت چلانے رکھنے کے لئے سچ ہو.
اور ہم سے بہت ملتے جلتے ہیں جبکہ ہے استعمال جبکہ، لیکن ہم اپنے کوڈ کو چلانے کے لئے چاہتے ہیں
کم از کم ایک بار.
>> کیا میں جو کچھ بھی تو کرتے ہیں جبکہ، گے ہمیشہ کم از کم ایک بار چلانے کے.
، جبکہ جبکہ کے ساتھ، یہ بالکل تو نہیں کر سکتے ہیں
حالت مطمئن نہیں ہے.
اس کے ساتھ کوئی سوال ہے؟
>> لوپ کے لئے ایک تو ساخت.
تم لوگ یہ سب دیکھا ہے.
تم اس کی ابتدا.
تم شرط کے کچھ قسم ہے.
تو، مثال کے طور پر، ہم نے ابتدا کر سکتے ہیں کے طور پر میں 0 کے برابر ہے.
میں 10 سے بھی کم ہے.
اور میں + +.
ہم نے کیا ہے کہ بہت سادہ ہے.
>> تھوڑی دیر کے لوپ کے لئے، اسی طرح، آپ کے پاس ابتدا کے کچھ قسم کی ہے کرنے کے لئے،
حالت کسی قسم کا، اور اپ ڈیٹ کے کچھ قسم کی.
تو ہم نے بھی لوپ کے لئے ہمارے عملدرآمد کر سکتے ہیں تھوڑی دیر کے لوپ کے طور پر اس کا استعمال کرتے ہوئے.
اور اسی طرح ایک جبکہ لوپ کے ساتھ، ہم کچھ ابتدا ہو سکتا ہے،
، کچھ پر عمل اس کو اپ ڈیٹ، اور پھر حالت کی جانچ پڑتال.
>> تو اب کام کرتا ہے.
ہم ایک دوسرے کے ساتھ سب کچھ ڈال دیا.
ہم نے کچھ لکھنے کے لئے چاہتے ہیں کر سکتے تقریب کی قسم.
مشترکہ تقریب ہے کہ آپ کو ہو سکتا ہے پہلے سے ہی دیکھا ہے اہم ہے.
مین ایک تقریب ہے.
یہ ایک واپسی کی قسم، int ہے.
یہ اہم ایک تقریب کے نام، ہے.
اور یہ دلائل، argc اور argv ہے.
تو اہم صرف ایک تقریب ہے.
>> آپ نے استعمال کی ہے ہو سکتا ہے دیگر افعال، printf-- printf ایک تقریب ہے
میں GetInt، toupper کرتا ہے.
لیکن یہ کیا گیا ہے ہو کی طرف سے ہمارے لئے لاگو
لائبریری کے کچھ قسم کی.
آپ لوگ بھی شامل یاد ہے اس cs50.h لائبریری یا
معیاری لائبریری I / O.
جی ہاں، سوال؟
>> سامعین: C میں صرف موروثی اہم ہے؟
یہ صرف کی طرح [اشراوی] ہے؟
>> اسپیکر 1: سوال یہ ہے اگر اہم سی میں شامل ہے.
اور ہاں، تمام افعال ایک اہم تقریب ہے.
اس قسم کے کمپیوٹر کے لئے ضروری ہے شروع کرنے کے لئے جہاں معلوم کرنے
کوڈ چلانے.
>> سامعین: تو اگر نہیں کرے گا [اشراوی]؟
>> اسپیکر 1: نمبر
کوئی سوال؟
ڈاؤن لوڈ، اتارنا.
آپ کو ایک تقریب کا استعمال کر سکتے ہیں تو صرف کی طرح کہ آپ کے لئے لکھا گیا ہے، آپ کو بھی کر سکتے ہیں
آپ کی اپنی تقریب لکھیں.
یہ ہو سکتا ہے کہ کسی ایک تقریب ہے حجم کا حساب کرنے کے لکھا ہے
مثال کے طور پر (ق)، کے.
واپسی کی قسم اس صورت میں، یہاں ہے INT، ہماری تقریب کا نام (ق) اور ہمارے
پیرامیٹرز کی فہرست.
>> اور آپ کے اعداد و شمار لکھنے کے لئے ہے یاد رکھیں کہ آپ چاہتے ہیں پیرامیٹر کی قسم
استعمال کرتے ہیں یا کام نہیں کرتا اور کس قسم کی جانتے
پیرامیٹر میں قبول کیا جانا چاہئے.
تو، اس صورت میں، ہم چاہتے ہیں ہمارے ان پٹ کے طور پر ایک عددی.
تو ہم کیوں کام کرتا ہے استعمال کرنے کے لئے چاہتے ہو سکتا ہے؟
>> ، سب سے پہلے تنظیم کے لئے بہت اچھا.
وہ میں آپ کے کوڈ کو توڑنے میں مدد زیادہ مقدار منظم اور بنانے
یہ آسان کو پڑھنے کے لئے.
آسان بنانے.
یہ ڈیزائن کے لئے اچھا ہے.
آپ کے کوڈ کا ایک ٹکڑا پڑھ رہے ہیں جب اور اہم تقریب، واقعی ہے
واقعی طویل، اس کے لئے مشکل ہو سکتا ہے کیا چل رہا ہے کے بارے میں کی وجہ سے.
تو آپ کے افعال میں ٹوٹ تو، اس کو پڑھنے کے لئے آسان ہو سکتا ہے.
اور دوبارہ استعمال کرنے کی صلاحیت.
آپ کے کوڈ کا ایک حصہ ہیں، تو کیا جا رہا ہے کہ کہا جاتا ہے یا کئی بار کو چلانے،
بجائے اس کوڈ 10 بار دوبارہ لکھ کے آپ کی اہم تقریب میں، آپ کو ہو سکتا ہے
اسے دوبارہ استعمال کرنا چاہتے ہیں.
اور پھر ہر وقت آپ اس کا استعمال کرنے کی ضرورت ہے کوڈ کا ٹکڑا، تقریب کہتے ہیں.
>> تو اب ہم واپس سکریچ کرنے کے لئے یاد ہے، ہم نے بھی چند تصورات کے بارے میں بات
جن میں سے ایک تھریڈنگ ہے.
موضوع، فورم کے ایک سے زیادہ کا تصور ہے کوڈ کے انداز
ایک ہی وقت میں عمل.
داؤد تھا جہاں ایک دن میں واپس لگتا ہے تم لوگوں کی تعداد کی گنتی
کمرے میں لوگوں.
>> بنیادی طور پر، کیا جا رہا تھا پر آپ لوگوں میں سے ہے تھے
الگ الگ موضوعات چل رہا.
اور ان موضوعات کے ساتھ مل کر آ رہے تھے جواب کے کچھ قسم کی حاصل کرنے کے لئے.
اسی طرح، شروع میں، جب آپ کے پاس ایک سے زیادہ sprites، آپ ہو سکتا ہے
ایک بلی اور ایک کتا ہے.
اور وہ ایک ہی وقت میں ہو جائے گا ان کے اپنے سکرپٹ کو چلانے کے.
یہ تھریڈنگ کی ایک مثال ہے.
>> اور دوسرے تصور تھا کہ شروع میں متعارف واقعات تھا.
اور واقعات کی جب ایک سے زیادہ حصے ہیں اپنے کوڈ کو ایک دوسرے کے ساتھ بات چیت.
آپ استعمال کیا جب شروع میں، یہ تھا نشر کنٹرول اور جب میں
بلاکس حاصل.
>> اور بھی، مسئلہ 4 سیٹ میں، ہم نے دیکھا اس کے ساتھ ساتھ واقعات کا ایک تھوڑا سا.
تم لوگوں کو استعمال کیا جاتا ہے ہو سکتا ہے Gevent لائبریری.
اور ایک تقریب تھا waitForClick جس میں آپ کو انتظار کر رہے تھے
صارف کلک کریں کرنے کے لئے.
اور آپ پر کلک کریں، اس صورت میں، ہو جائے گا کلک کے لئے اہم واقعہ اور انتظار تمہارا ہے
ایونٹ ہینڈلر.
>> اور بھی، اپنے psets میں چل رہا ہے اور اپنے psets پر کام کر رہے، آپ
ساتھ رابطے میں آتے ہو سکتا ہے یہ حکم دیتا ہے میں سے کچھ.
اس سے آپ میں ٹائپ کیا ہے آپ ٹرمنل ونڈو یا جو کچھ بھی کھڑکی
کہ، کے لئے اپنے جی میں ترمیم پر ظاہر بنیادی طور پر، آپ کے کمپیوٹر کے لئے تشریف لے.
>> تو مثال کے طور پر، LS کی فہرست ایک ڈائریکٹری کے مواد.
ڈائریکٹری ایک نیا فولڈر تخلیق کرتا ہے بنائیں.
سی ڈی، تبدیلی کی ڈائریکٹری.
RM، کو ہٹا دیں، ایک فائل کو خارج یا کچھ ڈائریکٹری.
اور پھر ڈائریکٹری دور ایک ڈائریکٹری کو ہٹاتا ہے.
>> سامعین: [اشراوی]؟
>> اسپیکر 1: جی ہاں، اس بات کا یقین.
معذرت، سوال تھا اگر آپ یہ ڈال تجویز کرے گا
دھوکے باز شیٹ پر.
یہ مدد کر سکتے ہیں.
آپ کو کمرے ہے تو، آپ کو اس پر ڈال کر سکتے ہیں.
یہ بھی کافی عام طور پر اچھا ہے آپ اس کا استعمال کیونکہ جب یاد کرنے کے لئے
آپ کے لئے چاہتے ہو سکتا ہے صرف اسے حفظ ہے.
یہ آپ کی زندگی بہت آسان بنا دیں گے.
میں نے آپ کے سوال کا جواب ہے؟
>> تو اب، ہم تھوڑا سا بات کی تھی لائبریریوں کے بارے میں مختصر طور پر.
لیکن دو اہم ہیں ہم کیا گیا ہے کہ اب تک کے کورس میں ہیں کا استعمال کرتے ہوئے
معیاری I / O اور CS50.
چیزوں کو کس قسم کے شامل ہیں معیاری لائبریری I / O میں؟
>> جی ہاں، اب تک ہم printf کا استعمال کیا ہے.
CS50 میں، ہم GetInt استعمال کیا جاتا ہے اور GetString.
اور اعداد و شمار کی قسم سٹرنگ بھی ہوتا ہے یہ CS50 لائبریری میں اعلان کیا جائے گا.
ہم کے بارے میں گہرائی میں ایک چھوٹا سا زیادہ بات کریں گے کس طرح لائبریریوں کام کرتے ہیں اور وہ کس طرح
آپ کے کوڈ کے باقی کے ساتھ بات چیت.
لیکن ان دو اہم ہیں کہ ہم اب تک میں کے ساتھ رابطے میں آئے ہیں
کورس.
>> اقسام.
یہ کتنا یاد کرنے کے لئے اچھے ہیں ہر ایک قسم کے لئے کس طرح کی طرف سے یا نمائندگی کی ہے
بہت بائٹس کی قسم میں سے ہر ایک requires--
INT، 4 بائٹس؛ چار، 1 بائٹ.
فلوٹ 4 بائٹس ہے.
ایک ڈبل کیا ہے؟
>> سامعین: [اشراوی].
>> اسپیکر 1: جی ہاں، تو ایک فلوٹ لیکن سائز دوگنا.
کیا ایک طویل کے بارے میں؟
>> سامعین: [اشراوی].
>> اسپیکر 1: ٹھیک ہے.
ایک طویل کیا ہے؟
>> سامعین: [اشراوی].
>> اسپیکر 1: جی ہاں، ایک int دوگنا.
جی ہاں.
>> سامعین: [اشراوی].
>> اسپیکر 1: لانگ [اشراوی].
اور پھر ایک طویل طویل ہے کہ ڈبل ہے.
>> سامعین: نہیں، نہیں.
ایک طویل ایک int ہے.
یہ فن تعمیر پر انحصار کرتا ہے اس سے پہلے [اشراوی]
اور int ایک ہی سائز ہے.
[اشراوی].
>> اسپیکر 1: تو ایک طویل اور ایک int ایک ہی ہیں.
اور پھر ایک طویل طویل ڈبل int ہے.
ڈاؤن لوڈ، اتارنا.
اور پھر، گزشتہ قسم کیا ہے؟
>> سامعین: اشارہ.
>> اسپیکر 1: جی ہاں، تو ہم نے سیکھا اشارہ کے بارے میں تھوڑا سا.
اور قطع نظر ایک پوائنٹر ہے کیا اس to-- طرف اشارہ کرتے ہوئے ایک چار ستارہ ہو سکتا ہے
یا ایک int star--
یہ ہمیشہ ایک پوائنٹر 4 بائٹس ہے.
اس کے بارے میں سوالات؟
جی ہاں؟
>> سامعین: [اشراوی]؟
>> اسپیکر 1: تو ایک طویل اور ایک int ہیں اس CS50 آلات میں ایک ہی.
>> سامعین: کے آلے کو مکمل طور پر ہیں تبادلہ.
>> اسپیکر 1: جی ہاں.
تو پھر ایک طویل طویل ڈبل ایک int ہے.
>> سامعین: یہ 32 بٹ ہے؟
>> اسپیکر 1: 32 بٹ، جی ہاں.
>> سامعین: تو [اشراوی]؟
>> اسپیکر 1: جی ہاں، اگر ایسا نہیں ہوتا واضح طور پر، آپ کا کہنا ہے
32 بٹ فرض چاہئے.
>> سامعین: یہ کچھ کہیں گے ایک سنبھالنے کی طرح
آلات کی طرح فن تعمیر.
64 تھوڑا سا، صرف چیزوں کے لئے کہ تبدیلی چاہتا ہے اور اشارہ ہیں.
وہ دونوں [اشراوی].
>> اسپیکر 1: جی ہاں؟
>> سامعین: سوال.
پریکٹس quizzes میں سے ایک پر، یہ ایک int اہستاکشرت کے بارے میں پوچھتا ہے.
تو کس طرح کا تعین کیا جائے گا ایک int [اشراوی] ہے؟
>> اسپیکر 1: ایک اہستاکشرت میں 4 بائٹس ہے.
لیکن ایک دستخط کے بارے میں مختلف کیا ہے int اور ایک int اہستاکشرت؟
>> سامعین: [اشراوی].
>> اسپیکر 1: صحیح.
ایک منفی اقدار کی نمائندگی کر سکتے ہیں.
لیکن یہ کس طرح ہے کہ ہے؟
>> سامعین: [اشراوی].
>> اسپیکر 1: جی ہاں، یہ 1 بچاتا ہے سا علامت کی نمائندگی کے لئے.
پر دستخط ایک تھوڑا سا ہے کہ سائن ان کی نمائندگی کرتا ہے.
اور اہستاکشرت صرف مثبت ہے.
>> سامعین: ٹھیک ہے.
تو آپ کو ایک ڈبل کا کہنا ہے کہ ایک فلوٹ کی دو بار سائز؟
>> اسپیکر 1: ڈبل میں دو بار ہے ایک فلوٹ کے سائز، جی ہاں.
>> سامعین: پوائنٹر کرتا ہے کس طرح ایک طویل طویل [اشراوی]؟
>> اسپیکر 1: کس طرح کرتا ہے تو سوال یہ ہے ایک طویل long-- پوائنٹر
کس طرح صرف چار بائٹس ہے جب اس 8 بائٹس ایک طویل طویل.
تو ایک پوائنٹر ہے یاد، بنیادی طور پر، بہت بنیاد قیمت میں.
>> سامعین: [اشراوی].
>> اسپیکر 1: جی ہاں، تو پوائنٹر صرف ایک میموری جگہ ہے.
تو یہ کس طرح زیادہ سے زیادہ جگہ کوئی فرق نہیں پڑتا اس پوائنٹر اشارہ کر رہا ہے.
یہ صرف ٹریک رکھنے کے لئے کی ضرورت ہے 4 بائٹس اس میموری مقام.
کوئی سوال؟
ڈاؤن لوڈ، اتارنا.
>> تو آخری بات میں ہے معیاری پیداوار ہے.
آپ اکثر ان کا استعمال کرنا چاہئے آپ کو یاد کر سکتے ہیں کے لئے کافی.
ہم استعمال کرتے ہیں لیکن جب یہ ہے printf کے، مثال کے طور پر.
اور ہم نے ان جگہ دار ہے کہ شکل کوڈ کہا جاتا تھا.
>> تو int کے لئے فیصد سی چار، فیصد میں، اور ہم بھی فیصد ڈی استعمال کر سکتے ہیں.
یہ ایک ہی بات ہے.
لیکن، عام طور پر، میں CS50 ہم فیصد میں استعمال کرنے کی کوشش.
فلوٹ کے لئے فیصد ایف.
طویل طویل کے لئے فیصد LD اور سٹرنگ کے لئے فیصد کی.
>> اسی طرح، ہم میں سے چند ایک کا استعمال کرتے ہوئے کیا گیا ہے ان فرار انداز کی.
مثال کے طور پر، الٹا سلیش (ن) کے نئے لائن کے لئے.
یہ آپ فارمیٹنگ کر رہے ہیں جب کے لئے صرف ہے پرنٹ F کے لئے آپ کے کوڈ.
جی ہاں؟
>> سامعین: فیصد ڈی کیا ہے؟
>> اسپیکر 1: تو سوال فیصد D کے لئے کیا ہے؟
فیصد D ints کے لئے ہے.
فیصد ڈی اور فیصد میں ہی ہیں.
>> سامعین: کے درمیان فرق کیا ہے الٹا سلیش (ن) اور الٹا سلیش R؟
>> اسپیکر 1: تو سوال ہے کیا ہے ردعمل (ن) اور کے درمیان فرق
ردعمل R؟
میں الٹا سلیش R لگتا is--
>> سامعین: تو الٹا سلیش R صرف کا مطلب سطر کے شروع کرنے کے لئے واپس
اصل میں ایک نئی سطر میں جانے کے بغیر.
تو آپ کو ایک الٹا سلیش R پرنٹ اور اگر آپ سطر کے شروع کرنے کے لئے واپس جائیں
تو آپ ادلیکھت، زیادہ چیزیں پرنٹ پر پہلے سے ہی ہے کہ چیزیں
[اشراوی].
جبکہ، ن اصل میں ایک نئے کے لئے جاتا ہے لائن اور [اشراوی] کو جاتا ہے.
>> اسپیکر 1: ویسے، کوئی سوال؟
ٹھیک ہے.
میں اس سے دور کے حوالے کرنے جا رہا ہوں جاری رکھیں گے جو ڈین.
>> [تالیاں]
>> ڈین: تمام righty.
تو میں نے ایک اور وسیع کے بارے میں بات کی جائے گی ہیں کہ کلاس سے خیالات کی حد
تقریبا دو ہفتے کے نمائندے اور ہفتے میں تین کے آغاز شروع
کا صرف ایک طریقہ ہے جس میں معدنیات سے متعلق، کے ساتھ ایک خاص قسم کی قیمت کے طور پر علاج
ایک مختلف قسم کی قدر.
تو ہم کو حروف کے ساتھ یہ کر سکتے ہیں ints کے، ints کی floats، اور
طویل چاہتا ہے دگنا کرنے کے لئے.
>> ان تمام چیزوں کے طریقے کے طور پر استعمال کیا جا سکتا کچھ عددی قیمت کے علاج کے
کسی دوسرے کے طور پر مائنس چار عددی قیمت.
کچھ مسائل اس کے ساتھ ہیں تاکہ آپ ڈالا جب آتا ہے جس میں کورس کے،
ints کے فلوٹ کی طرح چیزوں.
تو یہ ایک چھوٹا سا عجیب ہے.
ہم 1.31 ہے کہ ایک فلوٹ ہے.
ہم 10،000 سے گنا.
اور پھر ہم ایک int کے طور پر پرنٹ.
اس کی پیداوار کرتا ہے؟
10،000 بار 1.31.
تو 13،000، لگتا ہے؟
>> سامعین: میں یہ 10،000 ہے.
>> ڈین: تو میں 10،000 کی طرف سے اس ضرب ہوں میں اس کے ڈال رہا ہوں اس سے پہلے کہ.
>> سامعین: اوہ.
وہاں ایک 9 نہیں ہو گا اور کچھ 0 تعداد؟
>> ڈین: آپ کو کچھ عجیب ہندسوں ہو سکتا ہے.
تو ٹھیک ہے، یہ 1.3 گنا 10،000 ہے.
تو ہے کہ 13،000 ہے.
اور اس اضافی weird--
>> سامعین: 13.100.
>> ڈین: 13.100.
، روب آپ کا شکریہ.
اور اس اضافی weirdness--
اس 9،9--
ہے صرف اس کاسٹنگ کیونکہ ختم نیچے جہاں پکڑ دھکڑ
یہ نہیں ہونا چاہئے.
جی ہاں.
>> سامعین: معدنیات سے متعلق ہوتا ہے کچھ اور ہے؟
>> ڈین: کیونکہ تو میں نے اسے، پرنٹ یہ ہے اس سے پہلے اس ضرب کرتا ہے
اس کاسٹنگ کرتا ہے.
>> سامعین: [اشراوی].
>> ڈین: میں، یہ سب سے پہلے ڈالا جائے گا لگتا ہے جی ہاں، 10،000 جس کے ہو جائے گا.
اور کچھ؟
ڈاؤن لوڈ، اتارنا.
تو اس 13.099 ہے.
یہ کیوں ہوتا ہے؟
گئی imprecision.
>> floats کے کامل نہیں ہیں.
وہ صرف ایک کی تعداد کی نمائندگی کر سکتے ہیں اہم اعداد و شمار کی مخصوص تعداد.
ہم پر 8 SIG انجیر پرنٹ تو اس فلوٹ، ہم نے ایک قسم کے حاصل
بدسورت لگ تعداد.
اور اس کی وجہ سے 1.31 درست نہیں کر سکتے ہیں سادہ کی طرف سے نمائندگی کیا جائے
مشین میں دو کے اختیارات.
یہ قریب ترین لینے ختم ہو جاتی ہے تو جس ختم ہوتا ہے، لگتا ہے
تھوڑا کم ہونے کی وجہ سے.
احساس ہے؟
ٹھیک ہے.
>> اب، تبدیل کی ایک مختلف طریقہ ہے مشروط بیانات جہاں تمام کر
ہم ایک متغیر ہے کے بارے میں پرواہ.
تو اس مخصوص مثال میں، ہم ہیں صارف کی طرف سے ایک عددی حاصل کرنے کے.
اور پھر ہم دیکھ رہے ہیں اس عددی کیا ہے.
شاید، یہ تعداد ہے ایک اور چار کے درمیان.
یہی ہے جو ہم کے لئے پوچھ رہے ہیں.
>> تو تم میں سے ایک سوئچ کرنا متغیر کے نام.
اس کے بعد آپ کو ممکن کے مقدمات قائم یہ ہو سکتا ہے اہمیت.
تو ایک کیس، یہ کم کا کہنا ہے کہ.
اور پھر آپ کو حاصل کرنے کے لئے توڑ سوئچ حالت کی تو
آپ جا رکھنے کے لئے نہیں.
>> اگلا صورت میں
تو کیس کے دو اور کیس three--
اس کیس کے دو ہے تو یہ صرف کرنے کے لئے نیچے گرتا اس کے ساتھ کے طور پر دیکھتا کوڈ کی پہلی لائن
یہ ایک وقفے کے دیکھتا ہے جب تک تین کیس.
تو اس کی وجہ سے آپ کو کیس کے ایک حاصل صرف پرنٹ کم ہے کیونکہ
یہاں اس وقفے.
میں تو، کا کہنا ہے کہ، اس break-- نظر انداز میں اس breakaway-- پھینک دیا تو
یہ کم پرنٹ گی، اور پھر یہ کریں گے مشرق پرنٹ، اور پھر اسے توڑ.
>> ٹوٹ ایک اہم حصہ ہیں تو کے حالات سوئچ اور
وہ وہاں ہونا چاہئے.
واضح طور پر بیان نہیں کر رہے ہیں کہ کسی بھی مقدمات ڈیفالٹ کی طرف سے نمٹا جاتا ہے
اور سوئچ میں کیس ڈالا جانا چاہئے.
>> سامعین: تو 1، 2، 3، اور 4 ن ہو گا؟
>> ڈین: N ہو سکتا ہے کہ اقدار.
جی ہاں.
جی ہاں؟
>> سامعین: تو آپ کے پاس جب [اشراوی]؟
>> ڈین: آپ تو کم پرنٹ، اور کرے گا یہ قرون پرنٹ، اور کرے گا
پھر اس کو توڑ.
>> سامعین کیوں پرنٹ گی مشرق تو [اشراوی]؟
>> ڈین: ایک کیس کے تحت تو سب کچھ ایک وقفے کے تحت آتا ہے سے پہلے.
تو کیس ایک پرنٹ کے نیچے معاملہ ہے کے طور پر اس میں مندرجہ ذیل پرنٹ ہے.
جی ہاں؟
>> سامعین: [اشراوی]؟
>> ڈین: تو یہ تعداد صرف ایک خاص ہے قیمت ہے کہ اس متغیر
حق، لے سکتا ہے؟
اس کا کوئی مطلب ہے؟
جی ہاں.
>> سامعین: [اشراوی]؟
>> ڈین: جی ہاں، کیس کے دو پرنٹ گی مشرق اور پھر توڑ.
>> سامعین: [اشراوی]؟
>> ڈین: میں کسی بھی ہے؟
کیا دیگر ڈیٹا کی اقسام تم پر سوئچ کر سکتے ہیں؟
>> سامعین: آپ کو تبدیل کر سکتے ہیں کسی بھی اعداد و شمار اقسام پر.
لیکن یہ صرف حروف پر کچھ کا مطلب ہے کہ اور ints اور اس طرح کی چیزیں، کیونکہ
آپ کو ایک پوائنٹر پر سوئچنگ رہے ہیں یہ واقعی، کوئی مطلب نہیں ہے
یہ بھی دو تو، بوجھ زیادہ سوئچنگ آپ کی وجہ سے چل نقاط کے، یہ کرتے
صحت سے متعلق میں، آپ کو واقعی نہیں کرے گا ویسے بھی ایسا کرنا چاہتے ہیں.
بہت خوبصورت، صرف ints اور اس طرح حروف اور سامان.
>> ڈین: آپ واضح ہے جب جی ہاں، یہ ہے آپ کو پتہ ہے کہ اقدار، مجھے لگتا ہے کہ، ہو سکتا ہے
کہ ایک سوئچ اصل میں مفید ہے.
اچھا؟
ٹھیک ہے.
>> گنجائش ایک اعلان ہے کہ رینج ہے متغیر توسیع.
میں نے کوڈ کا یہ تھوڑا سا حصہ میں تو، یہ غلطیوں سے بھری ہو گی.
اور وجہ سے میں اس int اعلان ہے میں لوپ کے لئے اس کے دائرہ کار کے اندر اندر.
اور پھر میں نے اس کے حوالہ کرنے کے لئے کوشش کر رہا ہوں میں لوپ کے دائرہ کار کے لئے اس سے باہر.
>> تو بنیادی طور پر، آپ کے دائرہ کار کے بارے میں سوچ کر سکتے ہیں آپ کا اعلان ہے کہ کچھ کے طور پر
گھوبگھرالی منحنی خطوط وحدانی کی ایک سیٹ کے اندر کے ساتھ صرف ان گھوبگھرالی منحنی خطوط وحدانی کے اندر اندر موجود ہے.
اور آپ کو کرنے کی کوشش کریں اور اس کے متغیر کا استعمال کرتے ہیں ان گھوبگھرالی منحنی خطوط وحدانی کے باہر، تمہیں
سنکلک کی طرف سے ایک غلطی ملتی ہے.
جی ہاں؟
>> سامعین: تو یہ ایک کام نہیں کرتا؟
>> ڈین: یہ جی ہاں، کام نہیں کرتا.
ڈور.
سلک ایک چار *.
وہ بالکل ایک جیسے ہیں.
وہ صرف حروف اشارہ ہیں.
اور آپ کے پاس ہے کہ کسی بھی ڈور ختم کرنا چاہئے صرف ہے جو الٹا سلیش صفر، کے ساتھ
سی کنونشن.
>> یہ نل ٹرمنیٹر کہا جاتا ہے.
اور شہوت انگیز null
دارالحکومت N، دارالحکومت یو، دارالحکومت L، دارالحکومت L--
کے طور پر ایک ہی نہیں ہے null مختتم.
یہ ایک پوائنٹر ہے.
یہ ایک کردار ہے.
وہ بہت واضح ہیں.
یہ یاد رکھیں.
شاید، کوئز پر ہو جائے گا.
میں کوئز نہیں دیکھا ہے.
جی ہاں؟
>> سامعین: تو نل پوائنٹر، کا کہنا ہے کہ، ہے؟
>> ڈین: جی ہاں.
>> سامعین: [اشراوی] ہے؟
>> ڈین:، کا کہنا ہے کہ، کی malloc کہا جاتا ہے جب آپ حاصل کرنے کے لئے کافی میموری نہیں ہے
جو کچھ بھی آپ کے لئے پوچھ رہے ہیں کے سائز، malloc نل واپس آ جائیں گے.
ایک تقریب ہے، جب بھی یہ، بنیادی طور پر، ہے پوائنٹر واپس کرنے کی توقع، آپ
نل کیونکہ خلاف چیک کرنے کی ضرورت نل ایک خوبصورت good-- ہے
اس، طرح کی، ردی کی ٹوکری کی قیمت ہے.
یہ اب تک اشارہ کے طور پر جانا ایک صفر ہے.
>> جب بھی آپ کو ایک تقریب کہتے ہیں، کہ ایک پوائنٹر واپس.
اگر آپ کو چیک کرنے کے لئے چاہتے ہیں کے لئے جا رہے ہیں وہ پوائنٹر نل نہیں ہے کہ اس بات کا یقین
نل بہت عام ہے کیونکہ.
یہ ردی کی ٹوکری کی واپسی کی طرح ہے.
کچھ ٹھیک نہیں کیا تو، صرف بجائے نل واپس.
>> سامعین: [اشراوی]؟
>> ڈین: جی ہاں، اور یہ کہ اس ہے.
>> سامعین: [اشراوی]؟
>> ڈین: یہ کے طور پر ہجے.
یہ null مختتم ہے.
یہ چھوٹے N-U-L-L اگر آپ کو اس کے ہجے کر رہے ہیں.
>> سامعین: اور میں صرف گیا واپس اور اس کا تجربہ کیا.
اور آپ کو ایک چل نقاط ڈال کرنے کی کوشش کرتا ہے تو ایک سوئچ میں قیمت، یہ تم پر چللاو گا
کہہ، بیان اظہار کی ضرورت ہے عددی قسم کی.
>> ڈین: تم وہاں جاؤ.
لیکن ہاں، سوال پھر کیا تھا؟
>> سامعین: [اشراوی]؟
>> ڈین تو دارالحکومت N، دارالحکومت یو، دارالحکومت L، دارالحکومت L ایک حقیقی سی بات ہے.
یہ null پوائنٹر ہے اور کرے گا صرف اس طرح کے طور پر علاج کیا جائے.
کیا تم نے کبھی کی کوشش کریں اور جادو نہیں کرے گا نل کردار اور کسی بھی دیکھیں
اس سے دوسرے طریقے سے.
جی ہاں؟
>> سامعین: تو زیادہ سے زیادہ چار کرنے کے لئے واپس لوٹنے یا نوٹوں میں کچھ، یہ کرے گا
ایک ہی تقریب ہنستے [اشراوی] ہے؟
>> سامعین: تو آپ حوالہ دے رہے ہیں GetChar کہ سے چار زیادہ سے زیادہ واپس لوٹنے، یا
جو کچھ بھی یہ ہے؟
>> سامعین: جی ہاں.
>> سامعین: جی ہاں، عام طور پر تو ان تمام چیزوں کے لئے مدت
پرہری اقدار ہیں.
تو GetInt سے int زیادہ سے زیادہ واپس آنے کی طرح اور GetChar سے چار زیادہ سے زیادہ، یہ ہے
تو، ٹھیک ہے، کی طرح ہونا چاہیے ان چیزوں کو، ہم سے واپس آ رہے ہیں
کچھ غلط ہو گیا.
>> اشارہ کے لئے، ہم صرف ہے ہو اس سینٹینل قدر ہے کہ سب
صلی اللہ علیہ وسلم سے اتفاق کرتے ہیں.
اور یہ آپ کو واپس بات ہے جب کچھ غلط.
لہذا کے چار، زیادہ سے زیادہ ہم استعمال کر رہے ہیں کیا ہے کچھ کی نمائندگی کرنے
نل یا GetChar کہ طرح.
>> سامعین: آپ GetChar کہ جانچ کر رہے ہیں اگر ایسا ہے تو، آپ کو صرف نل ڈال سکتے ہیں؟
کہ ایک فرق پڑے گا؟
>> ڈین: آپ صرف نل چیک نہیں کر سکتے ہیں.
آپ کی وجہ سے زیادہ سے زیادہ چار چیک کرنا پڑے گا تقریب سے واپسی کی قیمت ہے
ایک کردار نہیں پوائنٹر.
جی ہاں؟
>> سامعین: یہ سوال پوچھتا ہے سٹرنگ کی لمبائی کے لئے.
نل کردار شامل ہے کہ ہے؟
>> ڈین: نمبر
اور یہ کہ کس طرح سٹرنگ کی لمبائی اصل اس کے ذریعے جاتا ہے کیونکہ کو روکنے کے لئے جانتا ہے
حروف کی صف تک یہ شہوت انگیز null کردار دیکھتا ہے.
اور پھر یہ سب، کی طرح ہے ٹھیک ہے، میں کیا کر رہا ہوں.
>> سامعین: [اشراوی] پانچ؟
>> ڈین: ہیلو پانچ ہو جائے گی.
جی ہاں.
تو arrays مسلسل ہیں میموری کے بلاکس.
وہ کہہ کر فوری طور پر رسائی حاصل ہے گھوبگھرالی میں، صف کے نام اور اس کے بعد
آپ جانا چاہتے ہیں جو کچھ بھی انڈیکس منحنی خطوط وحدانی، ، وہ کے ذریعے صفر سے حساب سے ترتیب کر رہے ہیں کرنے کے لئے
1 مائنس صف کی لمبائی.
>> اور وہ کی قسم کی طرف سے اعلان کر رہے ہیں آپ میں ذخیرہ کرنے کر رہے ہیں کہ بات
سرنی، صف کے نام، اور پھر جو کچھ بھی سائز اس صف کی ہے.
تو اس کی لمبائی کی ایک چار صف ہے، ان اقدار ہے کہ چھ.
جی ہاں؟
>> سامعین: [اشراوی]؟
>> ڈین: جی ہاں.
>> سامعین: [اشراوی]؟
>> ڈین: آپ کیا جا رہا ہے ہے، تو صف میں پہلے ہی بنا دیا.
تو آپ اس کے بجائے اس کی وضاحت کر سکتے ہیں کے طور پر، کا کہنا ہے کہ، چار، جو بھی نام آپ
صف خالی بریکٹ گھوبگھرالی برابر، ہے H کوما ای کوما L کوما L کوما تیار
اے کوما نل کردار اور گھوبگھرالی منحنی خطوط وحدانی.
یہ بھی ایک اعلان کے طور پر کام کرے گا.
>> سامعین: [اشراوی]؟
>> ڈین: تو پھر آپ کو کرنے کی ضرورت ہے سائز پہلے ہی بنا دیا.
>> سامعین: [اشراوی]؟
>> ڈین: جی ہاں.
تمام righty.
کمانڈ لائن کے دلائل کا ایک طریقہ ہیں صارف کے طور پر سے ان پٹ
اہم دلائل.
مین دو دلائل لیتا ہے.
جا رہا ہے کہ دلائل کی تعداد کمانڈ لائن اور ایک ساتھ منظور
سٹرنگ ویکٹر یا ایک تار صف دلائل میں سے سب سے.
>> تو میں کہتا ہوں،، اس طرح کے طور پر ایک تقریب میں بلایا تو 1 خلائی، خلائی 2، تین ایک نقطہ،
جہاں argc 4 ہو جائے گا.
اور argv 0 باہر ایک نقطہ ہو جائے گا.
Argv1 1 ہو جائے گا.
argv2 2. argv3 ہو جائے گا ہو جائے گا 3، اس خاص معاملے میں.
جی ہاں؟
>> سامعین: [اشراوی]؟
>> ڈین: صف میں آخری عنصر صف کی لمبائی جہاں argc ہے کیونکہ اس کے علاوہ
argb میں سے ایک، آخری عنصر null پوائنٹر ہے.
یہ جہاں argc علاوہ 1 ہے.
میں نے صرف یہ کہا کہ اس صورت میں تو 0 میں argv کیا جائے گا باہر ایک نقطہ ہے.
argv کے 1 1. argv2 3 3 2. ہے argv ہے.
ایک بڑا ہے جس میں argv کے 4، جہاں argc سے نل ہو گا.
>> اور یہ کہ نل پوائنٹر ہے.
جی ہاں.
سٹرنگ ہے کیونکہ اور یہ کہ ہے ایک چار ستارہ پوائنٹر ہے.
تو یہ اسی قسم کا ہونا ضروری ہے.
جی ہاں؟
>> سامعین: دو سوالات.
تو ایک، فرق کے درمیان کیا ہے ایک قسم کے مقابلے میں دوسرے کو اس اور GetString
صارف کے انجن میں؟
اور دو، اس کے اندر اندر محفوظ کیا جاتا ہے آپ کے حالیہ میموری؟
تو طرح، GetString کے گے [اشراوی] ہے؟
>> ڈین: یہ کہاں ذخیرہ کیا جاتا ہے؟
یہ ذخیرہ ہے جہاں مجھے پتہ نہیں ہے.
>> سامعین: تو، اصل میں، آپ کو کس طرح کسی کو معلوم ہے آپ کو اس کے دلائل کی کال کی تقریب
اسٹیک میں محفوظ کیا جاتا ہے؟
تو argc اور argv دلائل اہم ہیں اور وہ اسٹیک پر ہیں، یا واقعی
صرف آپ کے طور پر لگتا ہے کہ کیا اوپر اسٹیک کے آغاز.
دوسرے حصہ کیا تھا سوال کا؟
>> سامعین: تو کیا ہے [اشراوی]؟
>> ڈین: جی ہاں، یہ صرف ایک مختلف طریقہ ہے کا صارف سے ان پٹ.
یہ ایک تھوڑا سا زیادہ موثر اور اس سکرپٹ کے لئے handier ہے آپ کی وجہ سے
صرف آپ کے اہم دلائل منتقل کر سکتی ہیں تقریب بلکہ انتظار کرنا ہونے سے
کے صارفین کے لئے آپ کو کسی بھی صارفین کی ضرورت نہیں ہے.
>> سامعین: اور ہاں، ڈور حاصل [اشراوی] ہو جائے گا.
یہ آپ کی ضرورت کی چیزیں جمع کریں گے.
>> ڈین: جی ہاں؟
>> سامعین: [اشراوی]؟
>> ڈین: جی ہاں، ہے argv 0 ہمیشہ شامل ہیں ڈاٹ تقریب کال کی کمی.
جی ہاں؟
>> سامعین: [اشراوی]؟
>> ڈین: جی ہاں، دلائل میں سے ہر ایک ہیں نل کردار میں ختم کیونکہ وہ
ڈور ہیں.
>> سامعین: [اشراوی]؟
>> ڈین: جی ہاں، argv کے جہاں argc ایک نل پوائنٹر ہے.
>> سامعین: [اشراوی]؟
>> ڈین: اوہ ہاں.
جی ہاں، معذرت.
>> سامعین: تو [اشراوی]؟
>> ڈین: آپ تھا تو سوال ہے تو کمانڈ لائن ڈاٹ، 2، 1 باہر ڈاٹ سلیش
گے کمانڈ لائن کی تعداد دلائل دو یا تین ہو جائے گا؟
>> سامعین: میں یہ نہیں ہے واقعی کوئی فرق.
میں اوہ، آپ کو منتقل نہیں کیا، کا کہنا ہے کہ کرنے کے لئے ہوتے جب کسی بھی کمانڈ لائن کے دلائل،
ظاہر ہے، آپ کی تقریب میں بلایا.
تو میں vocally میں خارج کرنے کے لئے کرتے ہیں کمانڈ لائن سے تقریب
یہ اگرچہ دلائل argv میں شامل.
>> ڈین: لیکن یہ test-- پر تھا تو
yeah-- اور بھی آپ کو کچھ کہنا ہے تو جہاں argc 3 برابر کی طرح،
آپ کو محفوظ حالت میں ہیں.
جی ہاں؟
>> سامعین: [اشراوی]؟
>> ڈین: میں نے تو اس کے بجائے اس بلا کے بارے میں سوچنا argc اور سٹرنگ argv بریکٹ میں
لیکن ایک ہی اقسام رکھا اور صرف ملاقات کی ایک طرح مختلف انہیں کچھ
اور B، یہ اب بھی کام کرے گا؟
اور یہ اب بھی کام کریں گے، آپ just-- گا
بجائے argc-- کا استعمال کرتے ہوئے آپ کو ایک اور B کا استعمال کروں گا.
جی ہاں؟
>> سامعین: [اشراوی]؟
>> ڈین: تو سوال ہے GetString ہے ڈھیر میں میموری کی دکان کے لئے جا
GetString کے چار ہے کیونکہ *.
یہ اس کی وجہ سے ڈھیر میں میموری اسٹورز اصل میں اب malloc کا مطالبہ
GetString کے نفاذ.
ٹھیک ہے، پر منتقل.
>> سیکورٹی.
تو واقعی محفوظ کرنے کے لئے، آپ کو کوئی پر انحصار کرتے ہیں ایک اور آپ کو کسی کی کوئی بھی رسائی کی اجازت
آپ کی معلومات، کی جس کیوں ہے سب، ان کے اپنے مشینوں بناتا ہے
ان کے اپنے آپریٹنگ سسٹمز، ان کے تمام شروع سے پروگراموں، اور ظاہر ہے
کسی بھی دیگر مشینوں سے مربوط نہیں ہے انٹرنیٹ کے ذریعے.
تو کمپیوٹر غیر محفوظ ہیں.
وہ واقعی ہیں.
ہم دوسرے لوگوں پر اعتماد کرنا ہوگا.
>> اور سلامتی کے خیال تم ہے کی رقم کو محدود کرنے کی کوشش
آپ کی ضرورت ہے اعتماد.
اور ذرائع میں سے ایک آپ ایسا خفیہ نگاری کے ذریعے ہے.
خفیہ نگاری، بنیادی طور پر، ہے ہم راز ہے.
>> کبھی کبھی ہم اپنے راز کو منتقل کرنے کے لئے ہے کے ساتھ ساتھ کے ذریعے، کا کہنا ہے کہ، انٹرنیٹ یا
دوسری چیزوں کے.
اور ہم لوگوں کو نہیں چاہتے یہ راز معلوم کرنے کے لئے.
تو ہم نے ایک طریقہ میں ہمارے راز خفیہ کہ ہم کوئی پتہ کر سکتے ہیں امید ہے.
>> تو ہم used--
اس class-- کے دوران کے ذریعے
کیسر صفر طرح چیزوں اور دونوں بہت، بہت ہیں جو [اشراوی]،
چیزوں کو خفیہ کاری کے غیر محفوظ طریقوں.
انہوں نے اعداد و شمار کرنے کے لئے آسان کر رہے ہیں کیا وہ ہیں اور آپ کے راز کیا ہیں.
حقیقی دنیا کے بہت زیادہ استعمال کرتا ہے پیچیدہ خفیہ کاری کے منصوبوں.
اور ہم میں نہیں ملے گا اس سے کہیں زیادہ.
>> ٹھیک.
GDB سب سے بہتر ہے.
میں نے ایک بار پھر اس پر زور کرنے کے لئے جا رہا ہوں.
GDB ہر وقت ہر استعمال وقت آپ کو کوئی مسئلہ ہے.
GDB میں مفید ہیں کہ حکم آپ کو ایک لائن یا تو گزر جس، توڑ
تعداد، ایک تقریب کے نام، بنیادی طور پر جہاں آپ کے کوڈ میں آپ کو روکنے کے لئے چاہتے ہیں،
اور کنٹرول کرنے کے قابل ہو.
>> پرنٹ ایک متغیر لیتا ہے اور پرنٹ کہ متغیر ہے کہ میں جو کچھ بھی ہے
آپ کے عمل میں نقطہ.
اگلا اپنے عملدرآمد چلتا ہے ایک قدم کے ساتھ ساتھ.
اور ایک تقریب کے اندر اقدامات قدم آپ کے عمل میں.
>> دوسری چیزوں کے لئے کس طرح ہے جس میں، چلاتے ہیں آپ اصل میں آپ کے کوڈ کو چلانے کے.
آگے کی ضرورت ہے تمام اقدامات اگلا بریک پوائنٹ حاصل کرنے کے لئے.
اور بہت سے، بہت سے دوسرے ہیں.
ان کو نظر آئے.
وہ عظیم ہیں.
جی ہاں؟
>> سامعین: [اشراوی]؟
>> ڈین: جی ہاں، ایک ٹھیک کرنے والا کھولتا ہے جو.
تو ٹھیک کرنے والا کھولتا ایک پروگرام ہے کہ آپ کو اپنے پروگرام ڈیبگ کی اجازت دیتا ہے.
اس کے لئے کیڑے پائے کہ ایک پروگرام نہیں ہے آپ، اگرچہ کہ بہت اچھا ہو گا.
>> اور تلاش کے میرے لئے آخری ہے.
ہم بات کہ تلاش کی اقسام تو اس کلاس میں کے بارے میں لکیری تلاش کر رہے ہیں،
جس سے آپ کو ہر ایک کے ذریعے نظر آتے ہیں کہ صرف ہے تلاش کی جگہ کے عنصر، ایک
ایک وقت میں عنصر، آپ کو تلاش تک آپ کے لئے یا آپ تک تلاش کر رہے ہیں
آپ کی تلاش کی جگہ کے اختتام ہے جس میں اگر آپ کو تلاش نہیں کر سکتے ہیں کا کہنا ہے کہ کی طرف اشارہ
آپ کے لئے تلاش کر رہے تھے کہ عنصر.
اور یہ، میں بہترین مسلسل وقت لیتا ہے جس 1 0 ہے اور سب سے زیادہ لکیری میں
ن 0 ہے جو وقت،.
>> ضرورت ہے جو بائنری تلاش کے، گھنونا عناصر.
آپ کو آپ کے عناصر کے درمیان جانا، دیکھیں تو آپ کے لئے تلاش کر رہے ہیں عنصر
عنصر سے بڑا یا چھوٹا ہے آپ درمیان میں ہیں.
یہ بڑا ہے، آپ نیچے کا کہنا ہے کہ آپ کی تلاش کی جگہ آپ کی ہے
موجودہ جگہ، مشرق، اور آپ کے عمل کو دوبارہ شروع.
یہ چھوٹا ہے تو، آپ کا کہنا ہے دیکھو جی ہاں، کیا ہو رہا ہے the-- ہے؟
>> سامعین: [اشراوی]؟
>> ڈین: جی ہاں.
میں سکھایا گیا ہے کہ اس طرح کی کسی بھی طرح کلاس ٹیسٹ کے لئے مناسب کھیل ہے.
>> [ہنسی]
>> ڈین: اور تم نہیں ہے حقیقت یہ ہے کہ ایک مسئلہ سیٹ کے لئے ایسا کرنے کے لئے، یہ مناسب ہے
ٹیسٹ کے لئے کھیل ہی کھیل میں.
>> سامعین: ہم اس پر کیسے جا سکتے ہیں to--
>> ڈین: یہ پر چلا جائے گا.
>> اسپیکر 2: کے لئے اصل کوڈ [اشراوی] study.cs50.net پر ہے.
آپ کی مشق کے مسئلہ پر نظر ڈالیں تو تو کے ضم طرح کے صفحے میں
study.cs50.net، کوڈ ہے ضم طرح لاگو کرنے کے لئے.
تو آپ کو لاگو کرنے کے لئے کی ضرورت نہیں ہے یہ اپنے آپ کو آج رات.
لیکن یقین ہے کہ آپ کی بجائے اس کو سمجھ سے صرف یہ یاد.
>> سامعین: [اشراوی]؟
>> اسپیکر 2: پر ضم طرح صفحہ study.cs50.net، ایک پریکٹس ہے
آپ کے ذریعے پر کلک کریں، اس مسئلہ مسئلہ، بہت آخر میں وہاں ایک
ضم ہے جس کا حل، ترتیب نفاذ.
لیکن اس بات کو یقینی بنانے کے آپ کو یہ سمجھنے بلکہ صرف یہ یاد سے
یا اس کے نیچے کاپی.
>> سامعین: اور ایک بالکل درست امتحان کے لئے مسئلہ ہو جائے گا
یہاں کی طرح کچھ کی ایک فہرست ہے.
اس فہرست کے بعد کی طرح لگتی ہے کیا انتخابات کی طرح ایک قدم یا
اندراج کی طرح یا جو کچھ بھی.
فہرست میں سے ایک مکمل iteration.
آپ کرنے کی ضرورت ختم نہیں کرتے تو یہاں تک کہ اگر اس کے لئے کوڈ، آپ کو یہ سمجھنے کی ضرورت ہے
یہ ہو رہا ہے کہ کس طرح جاننے کے لئے کافی اس صف میں تبدیلی کیا جائے گا.
>> ڈین: یہ میرے لئے ہے.
>> [تالیاں]
>> لوکاس: ارے سب.
میرا نام لوکاس ہے.
میں تمام، تکرار کے بارے میں بات کرنے کے لئے جا رہا ہوں ہم نے سیکھا ہے کہ قسم کے، اور ایک
تمام اشارہ تھوڑا سا.
ٹھیک ہے؟
تو سب سے پہلے، تکرار.
اس کا کہنا ہے کہ کیا مطلب ہے ایک تقریب پنراورتی ہے؟
>> سامعین: کہلاتی ہے.
>> لوکاس: ٹھیک ہے، جی ہاں، خود بلاتا.
تو مثال کے طور پر اس کی تصویر، کی طرح.
اس کے اندر کی تصویر کی طرح ہے ایک تصویر کے اور تو.
تو مثال کے طور پر، آپ کو عطیہ کے طور پر have-- کر سکتے ہیں بائنری تلاش کے بارے میں بات کر رہا تھا.
ایک طریقہ جس میں بائنری تلاش ہے پنراورتی تم یہ حقیقت ہے کہ
ایک بڑی تعداد کو تلاش کرنے کی کوشش کر رہے ہیں.
تو آپ درمیان میں جاؤ.
وہاں کی تعداد تو آپ کو چیک بائیں اور دائیں میں.
>> اور پھر آپ کو نمبر ہے باہر تو بائیں پر ہونے جا رہا، یہ ایک ہی ہے
پھر تلاش کر کے طور پر بات لیکن صرف فہرست کے بائیں طرف.
یہ لگتا ہے کس طرح ہے کہ کی طرح اس پنراورتی ہے.
تم لوگوں کو پنراورتی ہے یہی وجہ ہے کہ ضم طرح کے لئے حل.
>> ٹھیک ہے، تو یہاں ایک مثال ہے.
تو میں نے منتخب کرنے کے لئے چاہتے ہیں کا کہنا ہے کہ 1 سے ن تمام نمبر.
مجھے احساس کر سکتے ہیں کہ (ن) کی رقم تعداد ن کے علاوہ ن مائنس 1 1 کرنے کے لئے ہے.
لیکن اس وقت، میں (ن) مائنس 1 پر نظر ڈالیں تو اس کے علاوہ ن مائنس 2 کے علاوہ 1، کہ ایک ہی ہے
میزانی تعداد کے طور پر بات ن مائنس 1 تک.
تو میں نے ایک برابر رقم کی رقم کا کہنا ہے کہ کر سکتے ہیں ن مائنس 1 ن کے علاوہ رقم کے برابر ہے.
اس کا کوئی مطلب ہے؟
>> اور میں بھی کچھ اور ہوگا کہ ہے جو، بیس کیس کہا جاتا
اپ اعداد کا مجموعہ صفر صفر ہو جائے گا.
تو جیسے ہی میں تعداد حاصل کرنے کے لئے صفر، میں گنتی کو روکنے کے.
اس کا کوئی مطلب ہے؟
>> تو یہاں ہے کہ کس طرح کی ایک مثال ہے میں اس پر عملدرآمد کر سکتے ہیں.
تو میں نے کچھ میں اس تقریب ہے.
یہ ایک عددی ن لیتا ہے.
(ن) ہے تو میں یہاں سب سے پہلے چیک کم یا صفر کے برابر ہے.
تو یہ، صفر سے کم یا برابر ہے تو مجھے ہماری بنیاد کیس ہے، صفر کو واپس.
دوسری صورت میں، میں صرف واپس آ سکتے ہیں (ن) کے علاوہ تعداد کی رقم کی طرف سے
ن مائنس ون کی ایک.
احساس ہے؟
ٹھیک ہے.
>> تو یہاں اس کی طرح لگتا ہے.
آپ 2 برابر کی رقم ہے 2 کے علاوہ 1 کی رقم.
اور 1 میں سے کچھ اس کے علاوہ ہے 1 0 ہے جو 0 کی رقم،.
احساس ہے؟
ہم اسٹیک پر نظر ڈالیں تو تو آپ پروگرام، اس کی طرح لگتا ہے.
>> سب سے پہلے، ہم نے اہم تقریب ہے.
اور پھر اہم تقریب رقم 2 سے ملاقات کی.
اور پھر رقم 2 اوہ، کہنا جا رہا ہے، رقم 2 2 کے علاوہ ایک کی رقم کے برابر ہے.
تو میں اسٹیک 1 کی رقم شامل کریں.
اور 1 کی رقم کی رقم کو فون کرنے جا رہا ہے 0، جس میں بھی شامل کیا جا رہا ہے
اسٹیک.
اور ہیں کہ ان لوگوں کی تو ہر ایک دوسرے کے سب سے اوپر پر واپس کرنے کے لئے ہے
دوسرے لوگ جا رکھنے کے کر سکتے ہیں اس سے پہلے.
>> تو مثال کے طور پر، یہاں، 0 کی رقم، سب سے پہلے، 0 واپس جا رہا ہے.
اور پھر 1 کی رقم کریں.
پھر 1 کی رقم کی جا رہی ہے 2 کی رقم 1 واپس.
اور آخر میں، 2 کی رقم کی جا رہی ہے اہم 3 واپس کرنے کے لئے.
اس کا کوئی مطلب ہے؟
>> یہ کس طرح سمجھنے کے لئے بہت ضروری ہے اسٹیک کام کرنے اور کرنے کی کوشش ہے
یہ سمجھ میں آتا ہے تو دیکھنے کے.
ٹھیک ہے، تو چھانٹ رہا ہے.
تو کیوں، اہم چھانٹ رہا ہے سب سے پہلے؟
ہم کیوں دیکھ بھال کرنی چاہیے؟
کوئی ہے؟
مجھے ایک مثال دے؟
جی ہاں؟
>> سامعین: [اشراوی].
>> لوکاس: ٹھیک ہے، جی ہاں.
تو آپ کو زیادہ مؤثر طریقے سے تلاش کر سکتے ہیں.
یہ ایک اچھا طریقہ ہے.
تو، مثال کے طور پر، ہم نے ایک بہت ہے چیزیں، اصل میں، میں ہماری زندگی ہے کہ
حل کر رہے ہیں.
مثال کے طور پر، لغات.
>> یہ سب کے لئے بہت اہم ہے کے حکم کی کسی قسم میں الفاظ کہ ہم
آسانی سے تک رسائی حاصل کر سکتے ہیں.
تو ہے کہ وہ کہہ رہا تھا کیا ہے.
آپ کو زیادہ مؤثر طریقے سے تلاش کر سکتے ہیں.
یہ ایک ہے ہو جائے گا کتنا مشکل کے بارے میں سوچو الفاظ میں ہیں جس میں لغت
بے ترتیب ترتیب.
تم، بہت زیادہ، کو دیکھنے کے لئے کرنا پڑے گا ہر ایک لفظ آپ کو تلاش تک
آپ کے لئے تلاش کر رہے ہیں کہ لفظ.
>> تم نے بھی فیس بک استعمال کر رہے ہیں، جب آپ اپنے دوستوں کو تلاش کر رہے ہیں، تم
فیس بک ڈال دیا ہے کہ کو دیکھنے کے لئے جا رہا ہے آپ کی قریب دوست ہیں کے سب سے اوپر پر ہے
آپ زیادہ سے زیادہ اس سے بات نہیں ہے.
آپ کے سب سے نیچے کے لئے تمام طریقہ جاتے ہیں آپ کے دوست کی فہرست، آپ کو دیکھنے کے لئے جا رہے ہیں
شاید آپ بھی نہیں ہے کہ لوگوں آپ کے ساتھ دوست ہیں یاد رکھیں کہ.
اور یہ کہ فیس بک قسم کی وجہ سے ہے کس طرح کی بنیاد پر آپ کے دوستوں کے
تم ان سے ہیں بند.
>> تو ڈیٹا کو منظم کرنے.
علاوہ پوکیمون.
تو آپ سب Pokémons کی کہ دیکھیں تعداد ہے.
اور یہ کہ ایک آسان کی طرح ہے ڈیٹا تک رسائی حاصل کرنے کی راہ.
>> سامعین: پوکیمون تک رسائی.
>> لوکاس: جی ہاں.
>> سامعین: [اشراوی].
>> لوکاس: جی ہاں.
ٹھیک ہے، تو انتخاب کی طرح.
سلیکشن طرح منتخب کرنے کے لئے کی جا رہی ہے ایک فہرست کی سب سے چھوٹی ناچھانٹا ہوا قیمت ہر
ہر iteration میں وقت.
اس قسم کی آپ کیا اس طرح کی طرح ہے آپ کے سر میں آپ کے لئے کوشش کر رہے ہیں
ہاتھ پر ایک فہرست ترتیب.
>> بنیادی طور پر، آپ سب آپ کو نظر آتے ہے سب سے چھوٹی تعداد کے لئے.
آپ کے مطابق فہرست میں ڈال دیا.
اور پھر آپ کے لئے نظر اگلے سب سے چھوٹی تعداد.
اور پھر آپ کر رکھنے کہ اور تو.
>> تو انتخاب کی طرح آپ بنیادی طور پر ہے ہر وقت کی سب سے چھوٹی منتخب
ناچھانٹا ہوا قیمت.
حل کے آخر میں ڈال دیا فہرست کا حصہ.
اور یہ کہ کر رکھیں.
تو فوری طور پر دیکھتے ہیں کیا اس طرح لگ رہا.
تو یہاں کے مطابق ہے اور ناچھانٹا ہوا کی فہرست.
>> فہرست کے مطابق کے لئے، یہ ابتدائی طور پر خالی ہے.
اور پھر میں نے منتخب کرنے کے لئے جا رہا ہوں 2 ہے جو یہاں سب سے چھوٹی تعداد،.
تو میں نے 2 نمبر حاصل اور میں ڈال دیا فہرست کے سامنے.
اور پھر میں نے اگلے سب سے چھوٹی کے لئے نظر 3 ہے جس میں عنصر،.
تو میں نے آخر میں ڈال دیا مطابق کی فہرست کے.
اور پھر میں نے اس کے کر رکھیں.
میں نے 4 کی تلاش اور آخر میں ڈال دیا.
5 تلاش کریں اور آخر میں ڈال دیا.
>> اور ان اوقات میں کس طرح سب پر نظر ہے کہ میں، آخر ہے میں ڈال دیا یہ کہہ رہا ہوں
بنیادی طور پر، دو اقدار کو گماگمن.
ٹھیک ہے؟
اور پھر گزشتہ ایک، آپ کو صرف ایک اور عنصر ہے.
تو یہ پہلے ہی کے مطابق ہے.
>> ٹھیک ہے، تو اندراج کی طرح.
اندراج کی طرح آپ بھی جا رہے ہیں ایک کے مطابق ہونے کے اس کے بات اور
ایک ناچھانٹا ہوا کی فہرست.
صرف ایک ہی چیز ہے ہر وقت ہے کہ آپ کے مطابق کرنے کے لئے ایک عنصر کا اضافہ کر رہے
فہرست، آپ کو صرف عنصر لینے کہ ناچھانٹا ہوا کی فہرست کے سامنے ہے.
اور پھر آپ کیا تلاش کرنے کے لئے جا رہے ہیں پوزیشن اس کے مطابق میں ہونا چاہئے
فہرست کا حصہ.
>> یہ تو کیا دیکھتے ہیں یہ زیادہ سمجھ میں آتا ہے.
تو ابتدائی طور پر، مثال کے طور پر، میں کوشش کر رہا ہوں میں نمبر تین داخل کرنے
فہرست کے مطابق حصہ.
تو فہرست کچھ بھی نہیں ہے.
تو میں صرف نمبر 3 ڈال کر سکتے ہیں.
>> اب، میں 5 نمبر شامل کرنا چاہتے ہیں فہرست کے مطابق حصہ.
تو میں نمبر 5 پر نظر.
میں یہ 3 سے زیادہ ہے کہ محسوس.
تو میں نے اسے 3 کے بعد ہونا ضروری ہے جانتے ہیں کہ.
تو میں نے 3 اور 5 ڈال.
>> پھر میں نمبر 2 داخل کرنا چاہتے ہیں.
میں نمبر 2 اصل میں ہے کہ نوٹس پھر 3 اور 5 دونوں گزشتہ.
تو میں نے اصل میں یہ سب ڈال دیا ہے فہرست کے آغاز میں جس طرح.
تو میں قسم کے، تمام منتقل کرنے کے لئے ہے مطابق فہرست تو میں کر سکتے ہیں میں عناصر
نمبر 2 کے لئے کمرے بنانے.
>> پھر میں 6 نمبر دیکھیں.
میں نے اسے 5 کے بعد ہونا چاہئے کہ دیکھیں.
تو میں نے اس میں ڈال.
اور آخر میں، میں نمبر 4 پر نظر.
اور میں یہ ہونا چاہئے کے نوٹس 3 اور 5 کے درمیان ہو.
اور پھر میں نے اس کو ڈال دیا اور تبدیلی دیگر تمام عناصر.
احساس ہے؟
>> بلبلا طرح.
تو بلبلا طرح تم کیا بنیادی طور پر ہے جا ہم بلبلا یہ کہتے do-- کرنے
آپ list-- کے ذریعے جانا ہے کیونکہ ترتیب میں صرف دکھاتے ہیں تو یہ اصل میں بہتر ہے
آپ this-- پسند
اور آپ کا آپس میں موازنہ کرنے کے لئے جا رہے ہیں ملحقہ تعداد.
اور تم تبادلہ کرنے کے لئے جا رہے ہیں ان عہدوں وہ نہیں ہیں تو
صحیح ترتیب میں.
>> تو بنیادی طور پر، کیا جا رہا ہے یہاں ہے کیا ہو، مثال کے طور پر،
آپ 8 اور 6 ہے.
آپ کو اس کے مطابق ترتیب معلوم ہو جائے گا اصل 6 اور 5، ہو؟
تو، آپ کے احکامات تبادلہ کرنے کے لئے جا رہے ہیں.
پھر میں نے یہاں 8 اور 4 دیکھیں.
اور میں ایک ہی بات کرتے ہیں.
میں ایک بار پھر تبادلہ.
اور آخر میں، 2 اور 8.
میں نے بھی ان کے تبادلہ.
>> یہ بلبلا طرح کی وجہ سے کے بعد کہا جاتا ہے ان تکرار میں سے ہر ایک، اصل میں،
فہرست میں سب سے بڑی تعداد میں تمام ہو جاتا ہے فہرست کے آخر کرنے کا طریقہ.
اس کا کوئی مطلب ہے؟
یہ گماگمن رکھتا ہے کیونکہ اور دائیں منتقل.
>> ٹھیک ہے، تو یہ دوسری iteration ہے.
یہ وہی بات ہو گی.
میں ایک سویپ کریں گے اور تو گزشتہ ایک.
کوئی سویپ ہیں میں اس اور فہرست کے مطابق ہے.
بلبلا طرح میں، ہم بنیادی طور پر رکھنے کے فہرست کے ذریعے چل رہا ہے اور گماگمن
چیزوں میں نہیں کیا تھا کہ محسوس تک کہ ایک iteration کر کوئی سویپ، جس
فہرست پہلے ہی کے مطابق ہے، کا مطلب ہے کہ.
احساس ہے؟
>> چلو تھوڑا سا بات کرتے ہیں وقت چل رہا ہے کے بارے میں.
تو تم لوگ بڑی یاد ہے اے، ومیگا، اور تھیٹا؟
جی ہاں؟
ٹھیک ہے، بگ O سب سے پہلے، کیا ہے؟
>> سامعین: [اشراوی].
>> لوکاس: جی ہاں، یہ ایک بدترین کہا جاتا ہے صرف یہ ہے کہ جس کا مطلب ہے رن،
کتنا آپ کے پروگرام کی توقع کو چلانے کے لئے لے جانے کے لئے.
کی طرح، شرائط میں of--
اس صورت ن.
میں عناصر کی تعداد بدترین صورت میں فہرست.
کی طرح، ممکن بدترین صورت میں.
>> بلبلا طرح کے لئے، مثال کے طور پر، ہم (ن) مربع کے بڑے اے ہے.
ہم یہ کیوں ہے؟
کیوں بلبلا بڑی O (ن) مربع طرح کی ہے؟
>> سامعین: [اشراوی].
>> لوکاس: جی ہاں، تو بدترین ہو جائے گا کہ میں (ن) تکرار کرنا پڑے گا.
تو تکرار سے ہر ایک کے لئے جا رہا ہے ختم کرنے کے لئے سب سے بڑا عنصر لانے
فہرست کے.
تو بدترین صورت میں ہے بات یہ ہے کہ (ن) بار ایسا کرنے کی.
اور ان اوقات میں سے ہر ایک کے لئے، میں ہے میں موازنہ کرنے کے لئے ہے کیونکہ ن سویپ کرنا
ہر دو عناصر.
یہ مربع ن ہے یہی وجہ ہے کہ (ن) بار ن ہے کیونکہ.
>> اس کے بعد، انتخاب کی طرح بھی ن مربع ہے کیونکہ، ہر ایک iteration کے لئے، میں ہے
ہر ایک عنصر پر نظر فہرست میں.
اور پھر، سب سے چھوٹی تلاش جس میں کا مطلب ہے کہ
ن عناصر کے ذریعے تلاش.
اور میں نے اس کی وجہ سے (ن) بار کرنا ہے میں تمام ن عناصر کو منتخب کرنے کے لئے ہے.
>> ایک اندراج کی طرح بھی ن مربع ہے بدترین حالات گا کیونکہ
، ایک ہو، میں داخل کرنے کے لئے ہے (ن) کی تعداد، ٹھیک ہے؟
تو میں نے پہلے ہی میں جا رہا ہوں معلوم ہے کہ ن تکرار ہے.
لیکن میں نے ان کی تعداد میں سے ہر ایک کے لئے، تو کی تعداد کے سب میں نظر
کے مطابق کی فہرست اور اس کے تمام طرح ڈال سامنے، کہ ن مربع ہو جائے گا
(ن) بار (ن) ایک بار پھر ہو جائے گا کیونکہ.
احساس ہے؟
کیا ومیگا کے بارے میں؟
>> سامعین: [اشراوی].
>> لوکاس: یہ سب سے بہتر صورت ہے.
تو یہ وقت کی ایک بہت کے لئے میں، کی طرح ہے سب سے بہتر صورت ہے، چھانٹ رہا ہے
فہرست پہلے ہی کے مطابق ہے جب.
تو کیا تم واقعی نہیں ہے کچھ کرنے کی.
بلبلا طرح بہترین ہے (ن) کے حالات.
تم لوگ جانتے ہو کیوں؟
>> سامعین: [اشراوی].
>> لوکاس: جی ہاں، آپ کے ٹریک رکھنے کے تو ڈیٹا راشن کوئی سویپ تھا یا
آپ کو کچھ ہو تو نہیں، قائم کرنے کے لئے کی طرح ایک iteration کے تو، وہاں تھا تو سچ
فہرست پہلے ہی، بنیادی طور پر، کے مطابق ہے کیا ہونے جا رہا ہے، میں کرنے جا رہا ہوں
ہر دو کا تبادلہ کرنے کی کوشش کریں ملحقہ عناصر.
میں اس کو دیکھنے کے لئے جا رہا ہوں کوئی سویپ ہیں.
اور میں صرف فورا واپس.
>> تو اس میں صرف کرنے کے لئے تھا کا مطلب ہے کہ فہرست ایک وقت کے ذریعے جانا.
میں نظر آتے ہیں کیونکہ تو یہ ن ہے ن عناصر میں.
کیوں انتخاب کی طرح (ن) مربع؟
>> جی ہاں، فہرست کے مطابق ہے یہاں تک کہ اگر، کے لئے انتخاب کی طرح کے ہر iteration، میں
کم از کم عنصر کو منتخب کرنے کے لئے ہے.
تو اس میں دیکھنے کے لئے باہر کا مطلب ہے کہ ناچھانٹا ہوا میں تمام عناصر میں
فہرست اور کم از کم مل ہر iteration کے لئے.
اس کا کوئی مطلب ہے؟
>> اور اندراج تلوار کیونکہ (ن) ہے میں داخل کرنے کی کوشش کر رہا ہوں کہ یہ معاملہ
تعداد اور تعداد کے سب، جب میں ان میں داخل کرنے کی کوشش کریں، میں نے وہ دیکھیں
صحیح پوزیشن میں ہیں.
میں دیگر تمام چیک جانے کے لئے کی ضرورت نہیں ہے ناچھانٹا ہوا کی فہرست میں تعداد.
یہ ن ہو جائے گا یہی وجہ ہے کہ.
احساس ہے؟
اور تھیٹا کیا ہے؟
>> سامعین: [اشراوی].
>> لوکاس: کیا، معاف کیجئے گا؟
پھر سے کہو.
>> سامعین: [اشراوی].
>> لوکاس: بالکل.
تو آپ کو صرف انتخاب دیکھ سکتے ہیں ضم میں ذخیرہ ترتیب thetas ہے.
آپ کو صرف تھیٹا ہے کیونکہ اور یہ کہ بڑی O اور ومیگا دونوں ایک ہی ہیں.
ٹھیک ہے.
اور آخر میں، لاگ ان ن میں موجود ہے ضم.
>> ڈین کہہ رہا تھا کے طور پر اور پھر،، طرح ضم قسم کی اسی طرح کی طرح ہے کہ
آپ کو بائنری تلاش کرتے ہیں.
تو آپ کو فہرست حاصل.
اور آپ نصف میں کاٹا جا رہے ہیں.
اور پھر آپ ان میں کمی چھوٹے حصوں میں.
اور پھر آپ ان کو ضم.
تم لوگ حق، کہ یاد ہے؟
ٹھیک ہے، وہ کہہ رہا تھا کے طور پر.
>> ٹھیک ہے، اشارہ.
تو پوائنٹر کیا ہے؟
>> سامعین: [اشراوی].
>> لوکاس: ایک ایڈریس.
ٹھیک ہے.
میں داؤد کے ایک گروپ سے ظاہر ہوتا ہے جانتے ہیں کہ binky کے ویڈیوز اور چیزوں کی طرف اشارہ
ایک دوسرے کے.
لیکن میں اشارہ کے سوچنے کے لئے پسند صرف ایک ایڈریس کے طور پر.
تو یہ جا رہا ہے کہ ایک متغیر ہے پتہ ذخیرہ کرنے.
>> تو یہ صرف اس خصوصی متغیر ہے کہ چار بائٹس طویل ہے.
کچھ کرنے کے لئے کہ پوائنٹر ہے، یاد رکھیں ہماری 32 بٹ کے لئے طویل ہمیشہ چار بائٹس
مشین کے کیس کے ساتھ تو آلات.
اور یہ صرف جگہ ہے اس کے اندر ایک متغیر کی.
>> ٹھیک ہے، تو بنیادی طور پر، اس میموری ہے.
تو میموری کی ہر بلاک اصل میں ایک کا پتہ ہے جس کا لیبل،
slotty میموری.
تو ہے کہ میں کر سکتے ہیں کا مطلب ہے کہ پوائنٹر طرف اشارہ کرتے ہوئے
ان پتوں میں سے کسی.
تو ہم اشارہ کا استعمال کریں گے یہی وجہ ہے میں جگہ کو یاد کرنے کے لئے ہے
کہ ایک مخصوص متغیر ایک میموری ہے.
>> اور تم لوگ یاد ان میں سے ایک ہے کہ میں ایک تقریب ہے تو مقدمات تھا
میں اصل میں ہیں، تو آپ چاہتے ہیں reals لئے سویپ، میں اصل میں
ایک پوائنٹر بھیجنا ہے.
متغیر نہیں ہے.
تم لوگوں کو یاد ہے؟
فرق between--
نام کیا ہے؟
قیمت اور بلا کی طرف سے کالنگ ریفرنس کی طرف سے، ٹھیک ہے؟
>> جی ہاں، ٹھیک ہے.
تو قیمت کی طرف سے کال.
آپ کو صرف ایک متغیر بھیجتے ہیں تو آپ کو صرف ایک کی قیمت بھیج رہے ہیں کام.
تو آپ کو اصل میں بھیج رہے ہیں متغیر کی ایک کاپی.
اور آپ کے پروگرام کی پرواہ نہیں کر سکتے ہیں اصل میں ایک ہی متغیر تو کے بارے میں
ایک کاپی ہے.
>> اور ریفرنس کا مطلب ہے کہ کی طرف سے بلا میں واقعی میں اس کی ایک کاپی بھیج رہا ہوں
اس متغیر پوائنٹر.
تو اس میں بھیج رہا ہوں کا مطلب ہے کہ اس متغیر کی جگہ.
تو میں نے کی جگہ ہے احساس متغیر، میں فون جب تقریب
اشارہ کے ساتھ، میں اصل میں کرنے کے قابل ہوں اہم تھا کہ اعداد و شمار کو تبدیل.
احساس ہے؟
>> اگرچہ، پوائنٹر ایک کاپی ہے، پوائنٹر اب بھی کی اصل پتہ ہے
میں تبدیل کرنا چاہتے ہیں کہ متغیر.
احساس ہے؟
>> تو اشارہ کرنے.
ہمیشہ پوائنٹر ہے، یاد رکھیں اس کی طرف اشارہ ہے کہ اس قسم
ایک ستارہ اور پھر.
اور پھر آپ کا نام ڈال دیا.
تو آپ جب بھی یاد رکھیں کہ جو کچھ بھی ستارہ، اس کے لئے ایک پوائنٹر طرح ہے
جو کچھ بھی متغیر ہے کہ آپ نے اس قسم.
>> تو یہاں اسٹار میں، مثال کے طور پر، یہ ہے ایک پوائنٹر اور ایک عددی.
اور پھر چار ستارہ پوائنٹر ہے چار ستارہ اور تو آگے.
جی ہاں؟
>> سامعین: کیا ہم ہیں تو ایک ن پوائنٹر X سٹار کے لئے.
میں نے اس کے X کے لئے ایک پوائنٹر پیدا جانتے.
یہ بھی ایک عددی X اعلان ہے؟
>> لوکاس: ٹھیک ہے، تو آپ کو این اسٹار ایکس کہنا ہے کہ جب، آپ کو ایک پوائنٹر پیدا نہیں کر رہے ہیں
متغیر x.
آپ ایکس نامی ایک پوائنٹر پیدا کر رہے ہیں.
>> سامعین: [اشراوی].
>> لوکاس: میں (ن) اسٹار ایکس کہنا ہے کہ جب تو، میں ہوں ارے، کی یاد میں، میں جا رہا ہوں، یہ کہہ
ان تینوں خانوں میں سے ایک حاصل کرنے کے لئے.
اور میں اس کا کہنا ہے کہ جا رہا ہوں ہے جس میں، ایکس کی جا رہی ہے
جا پوائنٹر ہونے.
اور اشارہ کے بارے میں کچھ دلچسپ ہم نے کا کہنا ہے کہ یہ ہے کہ
ایک 32 بٹ مشین کے لئے 4 بائٹس.
اور اس کے لئے وجہ ہے 4 بائٹس 32 بٹس ہیں.
>> 64 بٹس اصل میں ہیں اور یہ کہ مشینیں اشارہ پتے
64 بٹس طویل ہو.
تو یہ صرف کا مطلب ہے کہ کے سائز مشین میں پتے مختلف ہے.
>> تو حوالہ اور محولہ لقب ضبطی.
دو آپریٹرز ہیں کہ تم لوگوں کو یاد رکھنا چاہیے.
پہلے ایمپرسینڈ ہے.
دوسرا ستارہ ہے.
کہ ستارہ اور اس کی طرف سے الجھن میں نہ ہو کیونکہ، یاد رکھیں کہ اسٹار
اس صورت، آپ ن ستارہ ہے.
>> یہ ایک ساتھ مل کر پوری بات کی طرح ہے.
کوئی ن خلائی سٹار ہے.
تو یہ قسم ہے کا مطلب ہے کہ.
آپ کے پاس جب کہ، یاد متغیر اسٹار، تم
قسم کے بارے میں بات.
>> آپ تو صرف اسٹار اور جب متغیر کے نام، اس کا مطلب ہے کہ
آپ پوائنٹر، محولہ لقب ضبطی رہے ہیں جس آپ دیکھ رہے ہیں کا مطلب ہے کہ
پوائنٹر، ایڈریس کی تلاش ہے ، کی طرف اشارہ کیا ہے کہ ایڈریس کے لئے جا رہا،
اور جب بھی میں تلاش تم وہاں ہے.
تو میں آپ کے پاس جب کہ میرے طالب علموں کو بتانا ستارہ، آپ کو یہ سوچنا چاہیے کہ
کے مواد کے مخفف.
>> آپ کو ایک پوائنٹر ہے تو اور آپ کو ستارہ پوائنٹر ہے، یہ ہے
پوائنٹر کے مواد.
تو آپ اس کی طرف اشارہ ہے جو کچھ بھی کرنے کے لئے جانا اور مسلسل مواد پر نظر.
اور ایمپرسینڈ ایک ہی ہے کے ایڈریس کے طور پر بات.
>> میں طرح a-- ایک متغیر ہے تو، چلو INT ایک برابر ہے میں نے کا کہنا ہے کہ 3--
میں نے اس کا پتہ تلاش کرنے کے لئے چاہتے ہیں تو متغیر میموری، میں صرف کر سکتے ہیں
ایک ایمپرسینڈ.
تو یہ ایک کا پتہ ہے.
احساس ہے؟
>> تو یہاں ایک مثال ہے.
اس int B اور int سی لاپتہ ہے.
3 اسباب برابر تو int ہے کہ مجھے یاد کرنے کے لئے جا رہا ہوں.
اور میں ایک سلاٹ کو تلاش کرنے کے لئے جا رہا ہوں اور یہاں نمبر 3 ڈال.
>> اور پھر INT B 4 کے برابر ہے.
میں ایک ہی بات کرنے جا رہا ہوں.
یاد کرنے کے لئے جاؤ اور ایک نمبر ڈال خانوں میں سے ایک میں 4.
اور int 5 برابر ہے.
ایک اور باکس کو تلاش کریں اور ایک بڑی تعداد 5 ڈال.
>> تو باہر کر اس لائن کیا ہے؟ ن اسٹار PA ایمپرسینڈ ایک برابر ہے.
تو سب سے پہلے، ن اسٹار PA.
یہ کیا کر رہی ہے؟
>> سامعین: [اشراوی].
>> لوکاس: جی ہاں، تو ن اسٹار PA، سب سے پہلے، PA نامی ایک پوائنٹر اعلان.
اور پھر اس کی قیمت مقرر ہے اس پوائنٹر ایک کا پتہ کرنے کے لئے.
تو ایک ایمپرسینڈ.
اس کے بعد، میں ستارہ PB کرتے ہیں تو، ایک ستارہ پی بی کیا ہے؟
>> اوہ، معاف کرنا.
یہ بھی غائب ہے. ن اسٹار PB.
میں اسٹار پی سی کا مطلب ہے.
مجھے بہت افسوس ہے.
یہ ایک ہی بات ہے.
لیکن اب میں ایک پوائنٹر پیدا AR اچھا ہوں پھر سی پوائنٹر B اور کرنے کے لئے.
جی ہاں؟
>> سامعین: [اشراوی]؟
>> لوکاس: جی ہاں.
تو آپ کو یاد کرنے کے لئے جانے کے لئے اور آپ کو جانا ہے اگر PA لئے designator ہے کہ باکس،
آپ اصل میں کرنے کے لئے جا رہے ہیں ایک کا ایڈریس دیکھیں.
ٹھیک ہے؟
جی ہاں؟
>> سامعین: [اشراوی]؟
>> لوکاس: جی ہاں، پوائنٹر ایک پتہ ہے.
کہ کبھی نہ بھولنا.
یہ سب سے زیادہ اہم کی طرح ہے اشارہ کے بارے میں حصہ.
ذخیرہ کرنے اور پتہ نہیں ہے کچھ متغیر.
اور کچھ؟
کوئی سوال؟
ٹھیک ہے.
>> تو نوٹیفائر اور arrays.
یاد رکھیں کہ میں صف 3 int کی جب، بنیادی طور پر، میں کیا کر رہا ہوں میں اس قسم، میں ہوں ہے
کے، ایک پوائنٹر میں اعلان.
تو صف قسم کی ایک پوائنٹر کی طرح ہے یاد میں مخصوص جگہ ہے جس میں میں
integers کے لئے تین سلاٹ مختص.
اس کا کوئی مطلب ہے؟
>> میں int صف 3 جب تو، میں کیا ہوں کر، بنیادی طور پر، تین پیدا کر رہا ہے
میموری میں دورانیے.
تو میں صرف یاد میں تین سلاٹ مل.
تو میں نے، اس کے بعد، ایک ستارہ سرنی، ایسا تو بنیادی طور پر صف کے مواد کا مطلب ہے،
جس میں جا، میں پوائنٹر مٹانے کا مطلب اس کی طرف اشارہ ہے کہ اس جگہ پر،
اور میں ایک نمبر ڈال.
>> اور پھر، میں ستارہ سرنی علاوہ 1 کرتے ہیں تو، اس صف کر کے طور پر ایک ہی بات ہے
بس میں کرنے کے لئے جانے کا مطلب ہے، ایک بریکٹ اس میں اشارہ ہے کہ جگہ.
اور پھر علاوہ 1 کرتا ہے مجھے ایک پوزیشن کو منتقل.
تو میں، اصل میں، اس کی پوزیشن کے لئے جانا اور دو نمبر ڈال.
>> اور پھر آخر میں، میں جب سرنی کے علاوہ 2، میں جہاں جانا
میں صف کی طرف اشارہ.
اور پھر میں نے میموری بلاکس میں منتقل.
اور پھر میں یہاں نمبر تین میں ڈال دیا.
جی ہاں؟
>> سامعین: تو ستارہ سرنی بس ہے بہت پہلے نقطہ کہہ.
اور آپ کو صرف اس وجہ سے، 1 کا اضافہ کر سکتے ہیں ہم صرف واقعی ہیں
کہ سب سے پہلے پتہ حوالہ.
>> لوکاس: جی ہاں.
ہم کیوں، مثال کے طور پر، صف کہتے ہیں 0، صف 1، اور صف 2؟
میں، تم کیوں 0 کرتے ہیں، کہہ رہا ہوں 1، 2، 3 کے بجائے 1، 2، 3؟
وجوہات میں سے ایک، ایک، کمپیوٹر ہے پروگرامرز شروع کرنے کے لئے ترجیح دیتے ہیں
0 سے گنتی.
آپ صف 0 جب کیونکہ دو، ہے یہ صف کر کے طور پر ایک ہی بات ہے
جس کا مطلب ہے کے علاوہ 0، میں جانا اس کی پوزیشن، اور میں نہیں
کسی بھی میموری کے بلاکس کو چھوڑ.
تو میں نے کسی بھی میموری بلاکس کو منتقل نہیں ہے.
جی ہاں؟
>> سامعین: [اشراوی]؟
>> لوکاس: تو وہ کیا ہے پوچھ رہا ہے کر کے درمیان فرق
اس یا malloc کر.
اختلافات میں سے ایک ہے int صف 3 ایک پیدا ہے
اسٹیک صف.
اور میں malloc ہے تو، یہ ڈھیر پر پیدا کرتا ہے.
اس کا کوئی مطلب ہے؟
>> تو malloc کا اصل کام کرتا ہے؟
تو کیوں نہ ہم بھی malloc کا استعمال کرنے کے لئے کی ضرورت ہے؟
اعداد و شمار کے آپ کے سنکلک کی قسم تمام آپ اعلان کہ متغیر.
اور وہ سب کے لئے خلا پیدا اسٹیک میں ان میں سے.
تو اپنے تمام متغیرات میں جا رہے ہیں کہیں اسٹیک میں ہو.
تو یہاں ماحول متغیر ہے.
>> ان متغیرات کے لئے تو بنیادی طور پر، جگہ میموری میں مختص کیا جاتا ہے
وقت مرتب.
تو یہ آپ کے کمپیوٹر ہے کا مطلب ہے کہ ان متغیرات میں سے سب جاننے کے لئے
پہلے.
یہ کس قدر معلوم کرنے کے لئے کی ضرورت نہیں ہے آپ کو ان میں ڈال کرنے کے لئے جا رہے ہیں.
لیکن یہ کس طرح پتہ کرنے کی ضرورت آپ کی ضرورت ہے زیادہ سے زیادہ میموری.
>> لیکن اب، مثال کے طور پر، کا کہنا ہے کہ دو آپ کو ایک صف کرنے یا لے جا رہے ہیں
آپ لے رہے ہیں کہ سٹرنگ صارف کی طرف سے.
تم نہیں جانتے کہ کس طرح طویل سٹرنگ مثال کے طور پر، ہو جا رہا ہے.
تو آپ کس طرح بہت سے نہیں جانتے میموری کے بلاکس آپ صحیح، مختص؟
>> تو یہ واقعی کے لئے کوئی مطلب نہیں ہے آپ کو 100 حروف ڈال کہنا.
اور پھر صارف 150 لکھتے ہیں تو؟
تم مصیبت میں جا رہے ہیں.
>> تو بنیادی طور پر، آپ کو کس طرح اس بات کا یقین نہیں ہو سکتا آپ مختص کرنے کی ضرورت زیادہ سے زیادہ میموری
جب آپ پروگرام مرتب.
آپ کو صرف چلانے کے وقت پر ہے.
آپ کو ڈھیر ہے یہی وجہ ہے کہ.
تو ڈھیر میموری کی جا رہی ہے آپ کے آونٹن کر رہے ہیں کہ
پروگرام چلانے کی مدت.
>> تو بنیادی طور پر، آپ malloc جب، کیا آپ کو میموری آونٹن ہے کر رہے ہیں
تم جس کا مطلب ہے رن، اس وقت صحیح فیصلہ ہے کہ آپ
کہ میموری ہونا چاہئے.
آپ کو اس کے آونٹن کر رہے ہیں تو جب ہے.
اس کا کوئی مطلب ہے؟
>> تو اسٹیک متغیر ہے، یاد کہ تالیف وقت پر پیدا کر رہے ہیں.
اور پھر ڈھیر متغیر ہے آپ کے طور پر پیدا کر رہے ہیں
مثال کے طور پر کے لئے malloc، کے ساتھ.
>> سامعین: [اشراوی]؟
>> لوکاس: تو GetString ہے malloc فون کرنے جا رہا.
مجھے malloc کے بارے میں بات کرتے ہیں، اور میں GetString کی وضاحت کریں گے.
تو malloc ایک ہی بات ہے میموری مختص طور پر.
تو یہ مختص کی جا رہی ہے ڈھیر پر میموری.
اور اس پر ایک پوائنٹر واپس جا رہا ہے جہاں کہ میموری میں مختص کیا گیا تھا.
>> تو آپ do-- جب
یہاں مثال کے طور پر کے لئے
ن ستارہ پوائنٹر.
اور پھر پوائنٹر malloc کے برابر انچ 10 گنا کے سائز.
میں نے ایک پوائنٹر پیدا کر رہا ہوں.
اور پھر میں اس پوائنٹر بتائے ہوں پوائنٹر کہ malloc کی قیمت
مجھے دے رہا ہے.
>> تو میں پوچھ رہا ہوں malloc کی آپ کو مختص کر سکتے ہیں 10 integers کے لئے جگہ.
یہ کہہ رہا ہے.
اور malloc مجھے واپس دیتا ہے اس جگہ پر ایک پوائنٹر ہے.
احساس ہے؟
ٹھیک ہے.
میں اور GetString، بنیادی طور پر، ایک کر رہا ہے آپ مختص کر سکتے ہیں تو malloc پر کال
رن ٹائم کے دوران میموری.
>> ہمیشہ اتارنا null کے لئے چیک کرنے کے لئے یاد malloc نل واپس جا رہا ہے کیونکہ
یہ میموری مختص نہیں کر سکتے ہیں.
آپ کو ایک مضحکہ خیز کے لئے دعا گو ہیں کہ کا کہنا ہے کہ میموری کی رقم.
آپ کے کمپیوٹر میں نہیں جا رہا ہے زیادہ مختص کرنے کے قابل.
>> تو malloc صرف کی جا رہی ہے شہوت انگیز null واپس کرنے کے لئے.
تو ہمیشہ تو چیک کرنے کے لئے یاد آپ malloc سے ہے کہ پوائنٹر ہے
شہوت انگیز null یا نہیں ہے تو، آپ کو ہو سکتا ہے، کیونکہ ایک پوائنٹر محولہ لقب ضبطی ہو اور
کی طرف گناہ کی وجہ سے.
اور آخر میں، نہیں بھولنا آپ مفت میموری.
>> malloc کے ڈھیر میں میموری تخلیق کر رہا ہے.
اور آپ کو میموری آزاد ہے پروگرام ختم ہونے سے پہلے.
ٹھیک ہے، کہ میرے لئے ہے.
معذرت، روب.
شکریہ.
>> [تالیاں]
>> لوکاس: کوئی آخری سوال روب کے آنے سے پہلے؟
نہیں؟
جی ہاں؟
>> سامعین: میں نہیں دیکھا یہ ایک آن لائن.
آپ ابھی تک اس کے اپ لوڈ کیا ہے؟
>> لوکاس: میں ڈیو ہے جلد ہی اپ لوڈ.
>> ڈیو: یہ پوسٹ کیا جائے گا.
>> لوکاس: یہ آن لائن ہو جائے گا.
>> سامعین: یہ منحصر ہے.
>> لوکاس: یہ کیا ہے؟
ٹھیک ہے.
جی ہاں؟
>> سامعین: [اشراوی]؟
>> لوکاس: جی ہاں، آپ مفت چاہئے ڈھیر میں ڈال دیا جاتا ہے کہ میموری.
>> سامعین: [اشراوی]؟
>> لوکاس: جی ہاں.
آپ کو ایک ثقافت malloc کی ہے کہ کسی بھی وقت، آپ مفت کی ثقافت ہونا چاہئے
آپ کے بعد کہ متغیر کا استعمال کرتے ہوئے کو روکنے کے.
تو malloc اور آزاد ہیں ہمیشہ ساتھ.
ان کے بہترین دوستوں.
جی ہاں.
روب؟
>> روب: میں نے جلدی سے جائیں گے.
اور ویڈیو کو ڈال دیا جائے گا.
میں مائک ہے.
>> ٹھیک ہے، تو ہفتے میں پانچ چیزیں.
ہم نے سب سے پہلے بات یہ ہے کہ اسٹیک ہے.
تو صرف ایک اسٹیک ہے کہ وہاں یاد فعال تقریب کال فی فریم.
ہم ایک دوسرے میں دیکھیں گے کہ.
اور بھی اصل میں کیا جاتا ہے یاد ہر اسٹیک فریم میں جا رہے ہیں
ہمارے افعال میں سے مقامی متغیر، میں منظور کیا جاتا ہے کہ دلائل ہمارے
ایک جوڑے کے ساتھ کام کرتا ہے، دوسری چیزوں کے آپ کو واقعی نہیں
کے بارے میں فکر کرنے کی ضرورت ہے.
>> تو یہاں ہے جہاں ایک مثال پروگرام ہے، نوٹس، اہم واپسی printfing ہے
FOO کو 4 کی قیمت.
FOO کو صرف واپس جا رہا ہے بار 4 کوما 6 کی قیمت.
اور بار کچھ مقامی قائم کرنے کے لئے کی جا رہی ہے 4 بار 6 کے برابر متغیر (ن).
اور پھر (ن) واپس.
>> تو بھر اسٹیک دیکھو اس پروگرام کی اصل iteration کے.
تو ہمارے اسٹیک کے سب سے نیچے ہے.
اسٹیک بڑا ہے یاد رکھیں کہ.
ہمارے اسٹیک کے سب سے نیچے میں تو، ہم اہم کے لئے ایک اسٹیک فریم ہے.
جب پروگرام شروع، اہم ہمیشہ میں ہونے جا رہا ہے
ہمارے اسٹیک کے سب سے نیچے.
>> اور کے اندر کیا ہے ہماری اہم کے لئے فریم کتابیں رکھی؟
تو کوئی مقامی ہیں اگرچہ اہم متغیر میں، میں نے پہلے کہا، طرح
ہم argc اور rgv جگہ لینے کی ہے اہم اسٹیک فریم کے اندر.
اب جا رہا ہے تو اہم تقریب FOO فون.
اور ہے کہ FOO کی جا رہی ہے کا مطلب ہے کہ اس کے اپنے اسٹیک فریم حاصل.
>> تو اب ہم اندر ہو تقریب FOO.
اور کیا میں جانے کے لئے کی ضرورت ہے FOO کو اسٹیک فریم؟
ویسے، FOO کو ایک دلیل ن ہے.
ہے کہ چونکہ ن 4 کے برابر ہے کیا اہم ہے FOO کی دلیل کے طور پر گزر رہا ہے.
>> تو اب FOO بار فون کرنے کے لئے کی جا رہی ہے.
کیا بار کے اندر کی جا رہی ہے اس کے اسٹیک فریم کے؟
یہ چھ کے برابر 4 Y کے برابر ایکس ہے.
کہ ہم جا رہے ہیں کہ تمام نہیں ہے بار کیونکہ اسٹیک فریم میں
بھی ایک مقامی متغیر (ن) ہے.
اور ن ہم نے 24 کے برابر مقرر کرنے جا رہے ہیں.
>> تو اب بار ن واپس جا رہا ہے.
تو بار 24 واپس آ رہا ہے اسٹیک فریم FOO کو.
اور بار ہے کہ اب، واپس آ رہا ہے کیونکہ ہم اسٹیک فریم پوپ آؤٹ کر رہے ہیں کا مطلب ہے کہ
اسٹیک کے بار کے لئے.
بار کیا گیا تھا تاکہ تمام میموری کا استعمال کرتے ہوئے اسٹیک ہے.
>> اب، FOO کو بھی کی جا رہی ہے اہم 24 واپس کرنے کے لئے.
تو اب ہے کہ FOO، میموری واپس آ رہا ہے کہ FOO اس میں استعمال کیا گیا تھا
اسٹیک فریم بھی کی گئی ہے.
اور اب، اہم printf کو فون کرنے جا رہا ہے.
تو printf صرف ایک تقریب ہے.
ہم printf کال کرتے ہیں، یہ ہونے جا رہا ہے printf کے لئے ایک اسٹیک فریم
تقریب کال.
>> کیا ہم printf گزر رہے ہیں؟
وہ جانے کے لئے جا رہا ہے اس کے اسٹیک فریم پر.
بہت کم سے کم، ہم گزر رہے ہیں کہ فیصد میں (ن) الٹا سلیش اور
دلیل 24.
یہ اسٹیک فریم ہے میں زیادہ ہو سکتا ہے printf کے کچھ کا استعمال ہوتا ہے
مقامی متغیر.
ہم نہیں جانتے.
>> لیکن سب کہ printf میں جاتا ہے فریم کتابیں رکھی.
یہ printf کے عمل کرنے کے لئے جا رہا ہے.
پھر printf کیا ہے.
یہ واپس آ جائیں گے.
آخر میں، اہم کیا جاتا ہے.
مین واپس آ جائیں گے.
اور پھر ہمارے پروگرام کیا جاتا ہے.
جی ہاں؟
>> سامعین: آپ دیکھ رہے ہیں [اشراوی]
دلائل [اشراوی]
پیرامیٹرز؟
>> روب: تو ایک ٹھیک ٹھیک فرق ہے دلائل اور پیرامیٹرز کے درمیان.
اور واقعی، عام بات میں، لوگوں کے لئے ہوتے ہیں صرف ہر وقت ان کے اختلاط.
لیکن پیرامیٹرز رسمی ہیں چیزوں کے نام.
>> تو argc اور argv ہیں اہم پیرامیٹرز.
دلائل جو آپ اصل میں ہیں ان پیرامیٹرز کے طور پر میں منتقل.
تو وہاں میں 4 FOO کے، 4 فون جب میں گزر رہا ہوں دلیل ہے.
اور کے اندر پیرامیٹر (ن)، FOO کو، قیمت 4 پر لیتا ہے
4 سے دلیل تھی.
>> سامعین: [اشراوی]؟
>> روب: N بار ایک مقامی متغیر ہے.
(ن)، اب بھی FOO کے لئے مقامی ہے، لیکن اسے FOO کرنے کے لئے ایک پیرامیٹر ہے.
یہ ایک مقامی متغیر نہیں ہے.
جی ہاں؟
>> سامعین: [اشراوی]؟
>> روب: FOO کو صرف بلا رہا ہے بار اور جو کچھ بھی بار منافع واپس آنے.
>> سامعین: [اشراوی]؟
>> روب: جی ہاں، صرف ایک سے زیادہ دیکھنے کے لئے فریم کتابیں رکھی.
جی ہاں؟
>> سامعین کیوں FOO کو بلایا گیا تھا printf کے پہلے؟
>> روب: کیوں FOO کو printf کے پہلے بلایا گیا تھا؟
میں ہو سکتا ہے تو، اس کے بجائے، کچھ int کی طرح ایکس 4 FOO کے برابر
اور پھر ایکس طباعت.
لیکن اس کے بجائے، میں تقریب مشترکہ printf کے دلیل میں کہتے ہیں.
>> نوٹس لیکن ہے کہ ہم اصل میں نہیں کر سکتے ہیں جب تک ہم printf کی کال کو پھانسی
4 FOO کو کیا پتہ.
تو ہم اس کا اندازہ کرنے کے لئے جا رہے ہیں.
اور یہ کہ کیا صرف ایک بار جا رہے ہیں واپس آنے اور اس کا اندازہ کرنے.
جی ہاں؟
>> سامعین: دونوں بار کے بعد [اشراوی]
قیمت، ہم کیوں [اشراوی] نہیں ہے؟
>> روب: وہ مکمل طور پر int کے ہونا چاہئے.
اس پر پکڑے نہیں کیا گیا تھا ایک سے زیادہ کے پاس.
تو یہ int بار اور int ہونا چاہئے ان میں سے دونوں سے ہے FOO
integers کے واپس آ رہے ہیں.
وہ نہیں جا رہے ہیں تو صفر ہے اصل اقدار واپس کرنے کے لئے.
جی ہاں؟
>> سامعین: آپ کو ایک لائن تھا تو اوپر واپس، [اشراوی]؟
>> روب: واپس اوپر ایک لائن؟
>> سامعین: جی ہاں.
طرح آپ printf اور [اشراوی] کیا تو، یہ دو مرتبہ پرنٹ کرے گا؟
>> روب: FOO کی اندر تو؟
ہم یہاں ایک printf تو؟
>> سامعین: جی ہاں.
>> روب: تو ہم ایک printf حق تھا یہاں، ایک بار پرنٹ گی.
ہم ایک بار صحیح FOO کو بلا رہے ہیں کے بعد سے یہاں، پھر ہم printf مار دونگا.
پھر ہم بار فون کروں گا.
اور پھر FOO واپس آ جائیں گے.
اور یہ بات ہے.
ہم صرف کبھی سامنا ایک بار printf کے.
جی ہاں؟
>> سامعین: [اشراوی]
ہم سب سے پہلے ہیں کیونکہ printf کے FOO کو بلا printf بلا اور پھر ہم گزر رہے ہیں
دلائل.
>> روب: اصول میں تو نہیں ہے، printf کے FOO کو بلا؟
تو کوئی.
C کرنے کے لئے جا رہا ہے کہ بس حکم ہم کر سکتے ہیں اس سے پہلے، ان چیزوں ہے پھانسی
، دلائل کے سب ایک تقریب کہتے ہیں تقریب میں کرنے کی ضرورت ہے
مکمل طور پر تعین کیا جائے.
تو یہ مکمل طور پر اندازہ کیا جاتا ہے؟
جی ہاں، یہ صرف ایک تار ہے.
یہ صرف ایک قیمت ہے.
>> پھر ہم مکمل طور پر کرنے کے لئے ہے اس کا اندازہ.
اب یہ سب سے، کیا جاتا ہے ایک بار اس کے دلائل کا تعین کر رہے ہیں.
اور اب ہم کر سکتے ہیں printf کی کال.
جی ہاں؟
>> سامعین: ایک سوال.
آپ کو ایک صفر کی تقریب ہے، تو ضروری ہے آپ کی واپسی نیم وقفہ ہے؟
>> روب: آپ کو ایک واپسی نیم وقفہ نہیں آپ کو ایک صفر کی تقریب ہے تو.
ٹھیک ہے.
تو اب کچھ ڈھیر چیزیں.
تو ڈھیر ہم نمٹنے کے لئے جا رہے ہیں کہ کس طرح ہے متحرک یاد داشت مینجمنٹ کے ساتھ.
اور یہ براہ راست کے ساتھ برعکس ہم خود کار طریقے سے فون کریں گے، جس میں اسٹیک
یاد داشت مینجمنٹ.
>> اسٹیک پر تو، آپ کو واقعی کبھی نہیں کس طرح مقامی متغیر کے ساتھ نمٹنے کے لئے
دھکیل دیا اور سب سے کھولے جا رہے ہیں ان اسٹیک فریم اور وہ سب چیزیں.
آپ اس کے بارے میں فکر کرنے کی ضرورت نہیں.
یہ خود کار طریقے سے ہے.
تو ڈھیر دستی ہے.
اور [اشراوی]
ان کے افعال میں سے آتا ہے malloc اور آزاد.
>> تو یہاں ایک اور پروگرام ہے.
ہم کر رہے ہیں تمام mallocing کے ہے ایک عددی.
ہم نے سٹار ایکس میں ذخیرہ کرنے کر رہے ہیں.
کورس کے، ہم چیک کرنے کے لیے X شہوت انگیز null ہے تو دیکھنے کے لئے.
پھر ہم صرف کیا قائم کرنے کے لئے جا رہے ہیں ایکس 50 کی طرف اشارہ ہے.
، کی طرف اشارہ کیا جاتا ہے ایکس پرنٹ پرنٹ ایکس، اور پھر مفت ایکس.
>> تو کس طرح یہ اصل میں دیکھنے کے لئے کی جا رہی ہے ہم ہمارے اسٹیک اور ڈھیر پر نظر ڈالیں تو؟
تو ہم پھر سے شروع کریں گے.
کے طور پر اس سے پہلے ہمارے اسٹیک کے سب سے نیچے.
تجھے براہ راست ڈھیر یاد رکھیں کہ اسٹیک کی مخالفت کرتا ہے؟
تو ہم جا رہے ہیں وہاں ہماری ڈھیر کے سب سے اوپر.
>> ہمارے اسٹیک کے سب سے نیچے تو، ہم اہم کے لئے ہمارے اسٹیک فریم.
یہ جہاں argc، argv کے لئے جگہ ہے، اور ہم اب ایک مقامی متغیر X، ہے جس میں
ایک int ستارہ ہے.
تو ہم iterate کرنے کے لئے جا رہے ہیں اس پروگرام کے ذریعے.
ہم نے سب سے پہلے بات یہ ہے malloc پر کال.
>> تو ہم malloc پر کال کرنے کر رہے ہیں.
malloc کی ایک تقریب ہے.
یہ ایک اسٹیک فریم حاصل کرنے کے لئے جا رہا ہے.
کیا ہم malloc پر گزر رہے ہیں؟
اس کے اندر جانے کے لئے جا رہا ہے اسٹیک فریم کے.
ہم 4 ہے جس میں (ن)، کے سائز گزر رہے ہیں.
تو اس malloc پر منظور کیا جاتا ہے.
>> malloc کا کیا کرتا ہے؟
یہ ہم ڈھیر پر کسی جگہ گرپس.
تو ہم ڈھیر پر جانے کے لئے جا رہے ہیں.
اور ہم پر قبضہ کرنے جا رہے ہیں ڈھیر سے 4 بائٹس.
تو صرف یہ ہے کہ دے دو ایک صوابدیدی ایڈریس.
0x123 بس ایک ہے دکھاوا ڈھیر پر ہے کہ ایڈریس.
>> تو اس کے اندر اصل میں کیا ہے ایڈریس Ox123 میں میموری کے علاقے؟
ردی کی ٹوکری.
تو ہم اس میں کچھ بھی محفوظ نہیں ہے.
تو جہاں تک ہم، یہ جانتے کے طور پر کچھ بھی ہو سکتا.
تم یہ صفر ہے فرض نہیں کرنا چاہیے.
یہ صفر نہیں سب سے زیادہ امکان ہے.
>> تو اب malloc کی واپسی.
اور ہم جب malloc کی واپسی کیا کروں؟
ہم اسے واپس کیا مقرر.
ہم برابر X قائم کیا یہ واپس آ رہا ہے.
تو کیا یہ واپس آ رہا ہے؟
ہے کے بعد سے یہ 0x123 واپس آ گیا ہے میموری کی بلاک کا پتہ یہ ہے کہ
صرف ڈھیر میں مختص.
>> تو 0x123 ایکس اب قائم کیا جا رہا ہے واپس 0x123 کے برابر ہے، جو pictorially کا،
ہم اکثر ایک حقیقی ہونے ایکس کے طور پر اپنی طرف متوجہ اس بلاک کی طرف اشارہ کرتے تیر.
لیکن ایکس صرف یہ ہے کہ پتہ ذخیرہ کرنے کا ہے.
تو اب ہم X شہوت انگیز null ہے تو چیک کرنے کے لئے ہے.
یہ شہوت انگیز null نہیں ہے.
ہم اس malloc کے کامیاب کہ دکھاوا.
>> تو اب اسٹار X 50 کے برابر ہے.
تو اس کا مطلب یہ ستارہ یاد اس ایڈریس پر جاؤ.
تو 0x123 ہم کرنے جا رہے ہیں اس ایڈریس پر جاؤ.
تو ہے کہ ہمیں لاتا ہے.
ہم اس پتے پر کیا کر رہے ہیں؟
ہم 50 ذخیرہ کرنے کر رہے.
>> تو اس لائن کے بعد، وہ کیا ہے چیزوں کی طرح دیکھنے کے لئے جا رہے ہیں.
تو اب یہ اب کوئی ہے وہاں ردی کی ٹوکری.
اب ہم 50 اس میں ہے مخصوص ایڈریس کی وجہ سے
ہم نے اس کے لئے مقرر.
ٹھیک ہے؟
تو اب ہم F پرنٹ کرنے کے لئے جا رہے ہیں.
>> تو سب سے پہلے ہم نے سٹار ایکس پرنٹ کرنے کے لئے جا رہے ہیں.
تو اسٹار ایکس کیا ہے؟
ایک بار پھر، ستارہ ایکس کرنے کے لئے جانے کا مطلب ہے کہ ایکس اشارہ کر رہا ہے کہ بات.
تو ایکس کہ 0x123 جاؤ ذخیرہ کرنے کا ہے.
ہم 50 حاصل.
تو یہ F پرنٹ.
اور یہ کہ یہ 50 پرنٹ جا رہا ہے کا مطلب ہے.
اور پھر واپس.
>> اور پھر ہم دوسری printf ہے.
اب ہم فیصد P ہیں.
آپ نے اسے دیکھا نہیں ہے، کہ ہے صرف آپ کو ایک پوائنٹر پرنٹ کے لئے کس طرح.
تو ہم، فیصد میں ہے F، اور پہلے ہی ان میں سے سب.
تو فیصد P، ایک پوائنٹر پرنٹ.
>> تو ایکس ایک پوائنٹر ہے.
تو ہم نے خود کو ایکس پرنٹ کرنے کے لئے جا رہے ہیں، ہم اندر اصل میں کیا چھپائی رہے ہیں
تو سب سے پہلے 0x123 ہے جو ایکس، پرنٹ F 50 پرنٹ کرنے کے لئے کی جا رہی ہے.
دوسری پرنٹ F کی جا رہی ہے جی ہاں 0x123 پرنٹ کرنے کے لئے؟
>> سامعین: آپ فیصد استعمال کرتے ہیں X پوائنٹر پرنٹ کرنے کے لئے؟
>> روب: تو آپ فیصد استعمال کرتے ہیں X پوائنٹر پرنٹ کرنے کے لئے؟
تو، آپ کر سکتے ہیں، لیکن فیصد ایکس صرف ہے عام طور پر، کے لئے اگر آپ کو کچھ ہے تو
عددی اور آپ کو پرنٹ کرنے کے لئے چاہتے ہیں یہ ایک شش اعشاری کے طور پر.
آپ ایسا کس طرح صرف ہے کہ.
>> جبکہ، فیصد D گے دشملو کے طور پر پرنٹ.
ہم فیصد حاصل کیا گیا ہے کہ ہے ڈی. میں صرف عدد صحیح ہے.
فیصد P خاص طور پر ہے اشارہ کے لئے.
>> تو ایکس ایک پوائنٹر ہے.
ہم فیصد P استعمال کرنا چاہتے ہیں.
لیکن فیصد ایکس کام کر سکتے ہیں.
جی ہاں؟
>> سامعین: [اشراوی]؟
>> روب: جی ہاں.
اس کے لئے تو کم از کم call-- میں یہاں اس میں شامل نہیں کیا.
لیکن ان دو دلائل ضروری ہیں اس اسٹیک فریم کے اندر
کسی بھی مقامی متغیر کے ساتھ printf کا استعمال کرتے ہوئے کرنے کے لئے ہوتا.
اور پھر اگلے کال اب printf سے printf کی کے اندر اسٹیک فریم ہے
فیصد P الٹا سلیش (ن) اور جو کچھ بھی X کی قدر 0x123 ہے، ہے.
جی ہاں؟
>> سامعین: [اشراوی]؟
>> روب: یہ کچھ پرنٹ کریں گے ہے کہ اس طرح لگ رہا ہے.
>> سامعین: [اشراوی].
>> روب: تو اس ایڈریس شکل میں پرنٹ.
یہ پتہ کی طرح لگتا ہے.
جی ہاں؟
>> سامعین: [اشراوی]؟
>> روب: کیوں کیا ہے؟
>> سامعین: [اشراوی]؟
>> روب: کیوں اس پوائنٹر 4 بائٹس ہے؟
تو ایک پوری چڑھانے ہیں اس کے سامنے میں 0 کی.
تو یہ واقعی 0x0000000123 ہے.
ایک 64 بٹ نظام پر، وہاں ہو جائے گا زیادہ سے zeros کی ایک پوری چڑھانے.
جی ہاں؟
>> سامعین: [اشراوی].
>> روب: تو پہلے printf کے print-- جا رہا ہے
>> سامعین: [اشراوی].
>> روب: جی ہاں، اس کو پرنٹ کرنے کے لئے جا رہا ہے کیا ایکس اشارہ کر رہا ہے.
سٹار یہ کیا ہے کا کہنا ہے کہ بات کی طرف اشارہ.
اسے پکڑو.
تو اس کی طرف اشارہ کیا ہے؟
50.
اسے پکڑو.
کہ ہم پرنٹ کرنے کے لئے جا رہے ہیں.
اگلے ایک، جبکہ، ہم ہیں صرف خود ایکس پرنٹنگ.
ایف کے اندر کیا ہے؟
0x123.
ٹھیک ہے.
>> اور پھر آخر میں، ہم مفت ہے.
کیا ہم آزاد کرنے کے لئے گزر رہے ہیں؟
ہم ایکس گزر رہے ہیں.
میں واقعی میں ظاہر ہے کہ وقت اس اسٹیک فریم میں.
>> تو ہم نے قیمت گزر رہے ہیں 0x123 آزاد کرنے کے لئے.
تو اب جانتا مفت، ٹھیک ہے، میں ڈھیر کرنے کے لئے جانے کے لئے ہے
اور یہ کہ میموری مفت.
اب یہ استعمال کرتے ہوئے ہے ایڈریس 0x123 ہے.
>> مفت کے جاری کرنے کے لئے کی جا رہی ہے ڈھیر سے.
اب ہماری ڈھیر پھر خالی ہے.
ہم کوئی میموری لیک ہے.
اب مفت واپس آ جائیں گے.
کہ ایکس بھی 0x123 ہے توجہ.
لیکن ہے کہ اب درست میموری نہیں ہے.
اب ہم dereference ہے ایکس چاہئے.
جی ہاں؟
>> سامعین: 0 فالتو واپسی ہے؟
>> روب: 0 فالتو returen ہے؟
جی ہاں.
ہم صرف کیونکہ وہاں ڈال ہم ہوائی جہاز کے لئے کی واپسی سے ایک ہے.
تو یہ جی ہاں، کی اجازت دیتا ہے، کی طرح ہے واپسی 0 شامل.
جی ہاں؟
>> سامعین: [اشراوی]؟
>> روب: تو مفت ایکس کے بعد، کیا تو کیا ہوتا ہم پوائنٹر dereference کی کوشش؟
یہ کچھ غلط ہو جاتا ہے ممکن ہے کہ.
ہم اب بھی 50 ملے گا کہ یہ ممکن ہے.
>> یہ کہ میموری ہے کہ، بھی، ممکن ہے اب کچھ اور کے لئے استعمال کیا جا رہا ہے.
تو یہ جانچ رویہ ہے.
اور جانچ کچھ کا مطلب ہو سکتا ہے.
جی ہاں؟
>> سامعین: [اشراوی]؟
>> روب: نہیں، تو آپ کو تفویض کچھ ایکس.
تو یہاں تو ہم ایکس کے برابر ہے نے کہا کچھ malloc else--
malloc کے سائز ایونٹ
اس کے بعد اس کی اصل بلاک میموری کی آزاد نہیں ہے.
اور ہم نے باضابطہ طور پر اس کو کھو دیا ہے.
یہ ایک میموری لیک ہے.
ہم تمام حوالہ جات کو کھو دیا ہے میموری کے اس بلاک کرنے کے لئے.
تو ہم نے کبھی یہ آزاد کر سکتے ہیں کوئی راستہ نہیں ہے.
ٹھیک ہے، تو پھر کیا 0 کا مطلب ہے واپس.
>> ٹھیک ہے، تو اسٹیک اتپرواہ.
یہاں خیال کیا ہے؟
تو یاد، ڈھیر نیچے جا رہا ہے.
اسٹیک ہو رہا ہے.
تو اس لیکچر سے مثال کے طور پر، تھا میں جہاں اہم صرف کی جا رہی ہے، لگتا ہے
جا رہا ہے جس میں اس تقریب FOO، فون پر تکراری طور پر خود کو فون کرنے کے لئے اور
پھر سے.
>> تو فریم جا رہے ہیں ڈھیر لگانا بالکل اسی کام.
تو ہم بنیادی کے ساتھ شروع کرنے کے لئے جا رہے ہیں پایان اسٹیک فریم کے طور پر.
پھر سب سے اہم، FOO کو فون کرنے جا رہا ہے جس میں ایک اسٹیک فریم حاصل کرنے کے لئے کی جا رہی ہے.
>> پھر FOO FOO کو فون کرنے جا رہا ہے پھر، جس کے حاصل کرنے کے لئے کی جا رہی ہے
دوسرے اسٹیک فریم.
اور پھر، اور پھر، اور پھر، اور پھر جب تک، آخر میں، ہم کو چلانے کے
ڈھیر میں.
تو یہ ہم کس طرح ہے ایک اسٹیک اتپرواہ.
اور اس وقت، آپ کو seg غلطی.
یا آپ واقعی سگ پہلے غلطی کروں گا اس نقطہ لیکن ہاں.
>> سامعین: کور ڈمپ ہے seg غلطی کے طور پر ہی؟
>> روب: تو آپ انقطاع دیکھیں گے غلطی کور پھینک دیا.
آپ کو ایک بنیادی ڈمپ جب حاصل آپ seg غلطی.
اور اس کے سب سے ایک ڈمپ کی طرح ہے آپ کی موجودہ میموری کا مواد تو
آپ کوشش کریں اور شناخت کر سکتے ہیں کیوں آپ کو مؤرد الزام ٹھہرایا SEG.
جی ہاں؟
>> سامعین: [اشراوی]؟
>> روب: تو ایک انقطاع غلطی کا مطلب ایک اسٹیک اتپرواہ نہیں ہے.
تو ضروری نہیں.
ایک انقطاع غلطی تم کا مطلب ہے کہ ایک طرح سے چھونے میموری
آپ کو اجازت نہیں.
تو ہے کہ کیا ہو رہا کا ایک طریقہ، جب آپ کو ہم چھونے شروع، اتپرواہ ڈھیر لگانا
ہم نہیں ہونا چاہئے کہ ایک طرح سے میموری.
جی ہاں؟
>> سامعین: [اشراوی]؟
>> روب: ایک لامحدود لوپ کے اندر تو.
کی طرح، یہ ایک پنراورتی لامحدود کی طرح ہے لوپ اور ہم ایک دوسرے کے حاصل
اسٹیک ہر وقت کی حد.
لیکن صرف ایک باقاعدہ کے اندر لامحدود one-- جبکہ
ٹھیک ہے، یہاں تک کہ نہیں پرنٹ f--
کچھ کرنا.
جو کچھ بھی.
>> ہم ہو رہی کرنے کے لئے نہیں جا رہے ہیں دوسرے اسٹیک فریم.
ہم صرف looping کے رکھنے کے لئے جا رہے ہیں اس ایک ہدایات پر.
اسٹیک نہیں بڑھ رہا ہے.
یہ ہر پنراورتی کہ حقیقت ہے کال ہمیں ایک اسٹیک فریم دے رہا ہے.
ہم ایک اسٹیک اتپرواہ یہی وجہ ہے کہ.
جی ہاں؟
>> سامعین: تو اگر آپ کو حاصل کرنے کے لئے کہا جبکہ لوپ اور پھر [اشراوی]؟
>> روب: تو دیر لوپ کے اندر تو ایک printf تھا، اگر آپ اب بھی کریں گے
سگ نہیں غلطی.
میں صرف چیزوں کو الجھانے کے لئے نہیں کرنا چاہتا تھا.
یہ لوپ گا.
آپ کو ایک سنگل اسٹیک ملے گا printf کے لئے فریم.
>> پھر printf واپس آ جائیں گے.
پھر آپ دوبارہ لوپ تھا.
آپ کو ایک سنگل اسٹیک ملے گا printf کے لئے فریم.
اس کو واپس کریں گے.
سنگل اسٹیک فریم.
تو آپ کو یہ لامحدود نہیں مل رہے اسٹیک فریم بڑھ.
>> سامعین: [اشراوی]؟
>> روب: جی ہاں.
تو یہ اسٹیک اتپرواہ ہوتا ان میں سے کوئی بھی وجہ
FOO کو کالز واپس آ رہے ہیں.
ہم واپس، تو ہم کریں گے تو اسٹیک فریم کو کھونے شروع.
اور پھر ہم اتپرواہ ڈھیر لگانا نہیں کریں گے.
آپ کو ایک بنیاد کیس کی ضرورت ہے اور اس وجہ سے ہے ذاتی افعال کے لئے.
جی ہاں؟
>> سامعین: ممکنہ سائز اور ہے ڈھیر کے لئے ایک ہی کے لئے اسٹیک
تمام پروگراموں؟
>> روب: تقریبا.
اسٹیک کے ممکنہ سائز اور تمام پروگراموں کے لئے ایک ہی ڈھیر؟
تقریبا.
کچھ randomization کرنے کے لئے ہے جہاں اسٹیک شروع ہوتا ہے اور
جہاں ڈھیر شروع ہوتا ہے.
آپ کی ایک پوری بہت ہے ہو تو عالمی متغیر اور چیزیں، آپ کو ہو سکتا ہے
کچھ جگہ سے دور لے آپ کے ڈھیر کے لئے.
>> ایک 64 بٹ نظام پر، آپ کو عملی طور لامحدود میموری ہے.
صرف اتنا نہیں ہے.
32 بٹس اور 64 بٹس، کے درمیان ایک اہم فرق ہے.
>> آپ کو ایک پوری بہت حاصل کرنے کے لئے جا رہے ہیں ایک 64 بٹ پر اسٹیک، اور ڈھیر جگہ
نظام صرف زیادہ ہے کیونکہ وہ استعمال کر سکتے ہیں کہ خطاب.
لیکن ایک فرد کے نظام پر، یہ اسٹیک کے تقریبا ایک ہی رقم ہو
اور ڈھیر جگہ.
ٹھیک ہے.
>> تو آخری بات تالیف ہے.
تو آپ اس عمل کو پتہ ہونا چاہیئے.
چار بڑے اقدامات ہیں.
تو سب سے پہلے کرنا چاہئے یاد کرنے کے لئے آسان ہو جائے.
پری پروسیسنگ.
اس میں پہلے سے سابقہ ​​ہے.
تو یہ سب کچھ سے پہلے آتا ہے.
>> یاد کرنے کی بات یہ ہے کہ ہیش ہے.
تو ہیش کی وضاحت کرتا ہے اور ہیش شامل ان سب میں.
ان تمام پری پروسیسر ہیں ہدایات.
یہ چیزیں ہیں پری پروسیسر کا خیال رکھتا ہے.
>> تو ایک پری پروسیسر کیا کرتا ہے؟
یہ واقعی ایک گونگا بات ہے.
اس کے قابل ہے یہ سب کے سب کاپی، اور کٹ، اور پیسٹ آپریشن.
>> تو ہیش سٹینڈرڈ I0 ڈاٹ ایچ بھی شامل ہے.
کر یہ کیا ہے؟
یہ معیاری I0 ڈاٹ ایچ پکڑ ہے فائل اور سب سے اوپر میں چسپاں
جہاں کہیں بھی ہیش شامل کہنا ہے کہ سٹینڈرڈ I0 ڈاٹ ایچ.
>> اور کسی بھی ہیش ہم ہے کہ کی وضاحت دیکھا، کیا کر رہا ہے؟
اس ہیش قدر ہے کہ کاپی اور کے طور پر چسپاں کی جاتی ہے وضاحت کی ہے کہ
جہاں بھی آپ کی قیمت کا استعمال کرتے ہوئے کر رہے ہیں.
تو پریپروسیسر صرف واقعی کرتا ہے سادہ متن کی بنیاد پر آپریشن.
یہ ہوشیار کچھ نہیں کرتا.
تو سب کچھ ہے زیادہ پیچیدہ.
>> تو اب ہے کہ پریپروسیسر ہے کیا، ہم اصل میں مرتب.
تو انتخاب کیا مطلب ہے؟
اب ہم C کوڈ سے جا رہے ہیں اسمبلی کوڈ.
جی ہاں؟
>> سامعین: [اشراوی]؟
>> روب: جی ہاں، ہم اس کو پکڑ لیا.
تو انتخاب.
ہم C سے اسمبلی میں جا رہے ہیں.
تو یہ ایک اصل زبان تبدیل ہے.
خود مرتب سے جانے کا مطلب ہے کہ کرنے کے لئے ایک اعلی سطح کی زبان
ایک کم سطح کی زبان.
>> اور C ایک اعلی سطح کی زبان ہے اسمبلی کے مقابلے میں.
اسمبلی کیا ہے؟
ہیں کہ اس کی ہدایات، خوبصورت زیادہ سے زیادہ، آپ کی CPU کے لئے بنایا.
لیکن آپ کے کمپیوٹر اب بھی کرتا ہے اسمبلی کی سمجھ میں نہیں.
یہ صرف ہیں اور zeros سمجھتا.
تو اگلے قدم، جمع ہے جس ان ہدایات سے ہمیں لاتا ہے کہ
اپنے CPU سمجھتا ہے اور اصل کرنے کے لئے، ان کا ترجمہ
ہیں اور zeros.
>> بائنری اسمبلی C تو.
لیکن میں ابھی تک ایک executable کی ضرورت نہیں ہے.
تو CS50 لائبریری کے بارے میں سوچنا.
ہم ایک بائنری کے ساتھ آپ کی فراہم کردہ GetString کی ہے جس میں یہ CS50 لائبریری،
اور GetInt اور تمام ہے کہ.
>> لیکن CS50 لائبریری
میں اور خود کی کارکردگی نہیں ہے.
یہ ایک اہم تقریب نہیں ہے.
یہ بائنری کے ایک گروپ ہے آپ استعمال کر سکتے ہیں.
تو منسلک ہم سب کو ایک ساتھ لانے کے لئے کس طرح ہے ان مختلف بائنری فائلوں کے
ایک حقیقی کارکردگی میں.
آپ ٹائپ کر سکتے ہیں کہ ایک نقطہ ایک نقطہ سے باہر سلیش.
>> تو اس فائل کی طرح ہے کہ آپ کو ، لکھا ہے - جو کچھ بھی آپ کے پروگرام is--
Ceaser کی ڈاٹ سی.
لیکن اب یہ مرتب کیا گیا ہے ثنائی کے نیچے.
تو Ceaser کی ڈاٹ اے.
اور یہ ہماری CS50 ثنائی لائبریریوں ہے.
اور وہ مل کر کیا جا رہا ہے کر رہے ہیں ایک executable میں.
جی ہاں؟
>> سامعین: [اشراوی]؟
>> روب: تو سب سے پہلے شامل،، یاد شامل اصل میں ایک ہے ہیش
پری پروسیسر قدم.
لیکن یہ الگ ہے.
آپ کو کسی بھی کام کرتا ہے کا استعمال کرتے ہوئے کر رہے ہیں کہ تو آپ ایک فائل سے باہر ہیں،
نہیں، تم کچھ بھی منسلک کرنے کے لئے کی ضرورت نہیں ہے آپ کو سب کچھ ہے کے بعد سے.
>> کہ نے کہا کہ، printf میں منسلک کیا جا رہا ہے.
تم نے کبھی printf استعمال کرتے ہیں تو، کہ کچھ ہے کہ میں منسلک کرنے کی ضرورت ہے
آپ لکھتے ہیں کہ نہیں تھا کیونکہ.
اور، حقیقت میں، printf کے خود کار طریقے سے ہے میں منسلک.
تم جانتے ہو کس طرح کمانڈ لائن پر یا جب آپ یہ کر دیکھیں، ٹائپ
لنک ہے جس میں ڈیش L CS50، CS50 لائبریری میں؟
اس طرح printf کا، اور سامان، جا رہا ہے خود کار طریقے سے منسلک کیا جائے گا.
کسی بھی چیز پر کوئی سوال؟
>> سامعین: [اشراوی]؟
>> روب: ربط؟
ہم کی ایک پوری چڑھانے ہے مختلف بائنری فائلوں.
یہ وہیت مثال ہے ہم استعمال کرتے ہیں کہ CS50 لائبریری ہے.
ہم مرتب کیا ہے اور آپ کو دیا ہے یہ CS50 لائبریری کے لئے ثنائی.
>> آپ GetString استعمال کرنا چاہتے ہیں آپ کے پروگرام میں.
تو تم جاؤ اور GetString استعمال.
لیکن میرے بائنری کوڈ کے بغیر GetString کے، آپ اپنے کوڈ کو مرتب جب
نیچے، آپ اصل میں چلانے کے لئے نہیں کر سکتے ہیں پروگرام GetString کے تار ہے
ابھی تک مکمل وضاحت نہیں.
>> آپ میرے بائنری میں منسلک جب یہ صرف ہے کہ تمام، کہ اب GetString کے پر مشتمل ہے
ٹھیک ہے، میں اصل میں کر سکتے ہیں GetString کے پھانسی.
میری فائل مکمل ہے.
اور میں اس کو چلا سکتے ہیں.
جی ہاں؟
>> سامعین: تبدیل منسلک ہے بائنری کارکردگی کرنے کے لئے؟
آپ کو دوسرے کی ضرورت نہیں ہے یہاں تک کہ اگر لائبریریوں، یہ اب بھی نہیں ہو گا
ترجمہ کرنے کے لئے ضروری [اشراوی]؟
>> روب: تو ایک executable بائنری میں اب بھی ہے.
یہ صرف ایک پورے امتزاج ہے binaries کے گروپ.
>> سامعین: آپ کا بہت بہت شکریہ.
>> روب: کوئی مسئلہ نہیں ہے.
کوئی سوال؟
دوسری صورت میں، ہم سب کو سیٹ ہو.
ٹھیک ہے.
شکریہ.
>> [تالیاں]
>> سامعین: آپ کا شکریہ.
>> روب: جی ہاں.