>> [موسیقی بجانے]
>> DAVID J. MALAN: ٹھیک ہے.
یہ CS50 ہے اور یہ ہے ہفتہ 2 کا آغاز ہے.
اور تم اس سے زیادہ یاد کریں گے گزشتہ چند ہفتوں کے،
ہم کمپیوٹر متعارف کروا دیا گیا ہے سائنس اور، کے نتیجے میں، پروگراموں.
>> اور ہم نے کی راہ کی طرف سے کہانی شروع کر دیا سکریچ، جو کہ گرافیکل زبان
ایم ائی ٹی کی میڈیا لیب سے.
اور پھر سب سے حال ہی میں، گزشتہ ہفتے، ہم نے کیا
ایک higher-- ایک متعارف کرانے نچلے درجے زبان پر جانا
C، خالصتا ٹیکسٹ کا ہے کہ کچھ کے طور پر.
اور، یقینا، پچھلی بار ہم نے کہ تناظر میں جائزہ لیا
تصورات کی ایک بڑی تعداد.
>> یہ، یاد، بہت تھا پہلا پروگرام ہم پر نظر ڈالی.
اور اس پروگرام، بہت صرف، پرنٹ، "ہیلو، دنیا."
لیکن اتنا زیادہ نہیں ہے بظاہر ماجک پر جا رہا.
اس # شامل نہیں ہے ان زاویہ بریکٹ کے ساتھ.
INT ہے.
(باطل) ہے.
قوسین، گھوبگھرالی منحنی خطوط وحدانی ہے، سیمی کولون، اور اتنا زیادہ.
>> اور اگر ایسا ہے، یاد ہے کہ ہم نے شروع سے متعارف کرایا
تاکہ ہم، مثالی طور پر، ماضی دیکھ سکتے تھے کہ نحوی، واقعی نہیں ہے کہ چیزیں
تمام ہے کہ ذہنی دلچسپ لیکن ابتدائی تاریخ
، بالکل، تھوڑا سا مشکل ہے آپ کے دماغ کے ارد گرد لپیٹ.
اور، یقینا، سب سے زیادہ عام میں سے ایک ایک پروگرامنگ کی کلاس میں جلد چیزیں،
خاص طور پر ان کم کے لئے آرام دہ اور پرسکون، کی طرف سے مایوس کرنے کے لئے ہے
اور بعض نحوی طرف فسل گیا غلطیاں، منطقی غلطیوں کا ذکر کرنا نہیں.
اور ہمارے مقاصد کے درمیان اتنی آج، اصل میں، گے
کچھ کے ساتھ آپ کو لیس کرنے کی ہو کس طرح کے لئے مسائل کو حل کرنے کی تکنیک
بہتر مسائل خود حل کرنے کے ٹھیک کرنا کی شکل میں.
اور تم بھی، یاد کریں گے، کہ ماحول ہم متعارف کرایا
آخری بار CS50 IDE بلایا گیا تھا.
یہ ویب کی بنیاد پر سافٹ ویئر ہے کہ آپ کلاؤڈ میں پروگرام کی اجازت دیتا،
کے تمام رکھتے ہوئے، تو بات کرنے کے لئے اپنے ، ایک دوسرے کے ساتھ فائلوں کے طور پر ہم آج پھر کرے گا.
اور یہ کہ ہم کو یاد یہاں ان موضوعات پر نظرثانی،
ان کے درمیان کام کرتا ہے، اور loops، اور متغیر، اور بولین اظہار،
اور شرائط.
اور اصل میں ایک سے زیادہ چند کہ ہم سکریچ کی دنیا سے ترجمہ
C. کی دنیا
>> لیکن بنیادی عمارت بلاکس، تو بات کرنے
واقعی اب بھی وہی گزشتہ ہفتے تھے.
ایک سچ تو یہ ہے، ہم واقعی صرف پڑا مختلف پہیلی ٹکڑا، اگر آپ.
کہ جامنی رنگ کے بجائے بلاک کے بچانے کے، ہم اس کی بجائے
ہے جو printf کا تھا، C میں اس تقریب ہے کہ
تم سے کچھ پرنٹ کرنے کے لئے کی اجازت دیتا ہے اور سکرین پر اس کی شکل.
CS50 ہم متعارف کرایا لائبریری، جہاں آپ
آپ کو ضائع کرنے get_char میں اب ہے، اور get_int، اور get_string،
اور کے طور پر چند دیگر افعال ٹھیک ہے، جس کے ذریعے آپ کو ان پٹ حاصل کر سکتے ہیں
صارف کے اپنے کی بورڈ سے.
اور ہم بھی چیزوں پر ایک نظر لیا these- bool کے، اور چار کی طرح،
اور ڈبل، فلوٹ، INT، long_long سٹرنگ.
اور سی میں بھی دیگر ڈیٹا کی اقسام وہاں ہے
>> دوسرے لفظوں، آپ کا اعلان کرتے وقت میں ایک متغیر کچھ قدر ذخیرہ کرنے کے لئے،
یا آپ کو ایک تقریب کو لاگو کرتے وقت کہ کچھ قدر واپس،
تم کیا وضاحت کر سکتے ہیں قیمت ہے کہ جس قسم.
ایک کی طرح، یہ ایک تار ہے حروف کی ترتیب کے؟
ایک عددی طرح، یہ ایک نمبر ہے؟
یہ ایک چل نقاط ہے قدر، یا جیسے؟
لہذا سی میں، سکریچ برعکس، ہم اصل اعداد و شمار کو کس قسم کی وضاحت کرنے کے لئے شروع کر دیا
واپس لوٹنے یا استعمال کر رہے تھے.
>> لیکن، کورس کے، ہم بھی اس سے ٹکرا گئے کمپیوٹنگ کے کچھ بنیادی حدود.
اور خاص طور پر، اس زبان C، یادآوری
ہم پر ایک نظر لیا ہے کہ عددی اتپرواہ، حقیقت
آپ کو صرف ایک ہے کہ اگر میموری کی محدود رقم
یا، خاص طور پر، ایک محدود تعداد بٹس کی، آپ کو صرف اتنا زیادہ اعتماد کر سکتے ہیں.
اور اس طرح ہم یہاں اس مثال میں دیکھا جس کے تحت ایک ہوائی جہاز میں ایک کاؤنٹر،،
اصل میں، کافی وقت تک چل رہا ہے تو کرے اتپرواہ اور ایک سافٹ ویئر کے نتیجے
ایک حقیقی جسمانی ممکنہ خرابی.
>> ہم نے بھی سچل کی طرف دیکھا نقطہ گئی imprecision، حقیقت
کہ صرف ایک محدود تعداد کے ساتھ بٹس کی، جو 32 یا 64 ہے یا نہیں،
آپ صرف اتنے سارے نمبرز وضاحت کر سکتے ہیں ایک اعشاریہ کے بعد جس کے بعد آپ
imprecise حاصل کرنے کے لئے شروع.
تو مثال کے طور، میں ایک تہائی یہاں دنیا، ہماری انسانی دنیا میں،
جانتے ہیں کہ ہم صرف ایک لامحدود تعداد ہے دشملو نقطہ کے بعد 3S کی.
لیکن ایک کمپیوٹر ضروری نہیں کر سکتے ہیں اعداد کی ایک لامحدود تعداد کی نمائندگی کرتے ہیں
آپ کو صرف اجازت دیتے ہیں تو اس میں کچھ معلومات کی محدود رقم.
>> تو نہ صرف ہم نے تم کو لیس کیا شرائط میں زیادہ سے زیادہ طاقت کے ساتھ
آپ کو اپنے آپ کا اظہار ہو سکتا ہے کہ کس طرح پروگرامنگ کے لحاظ سے ایک کی بورڈ،
ہم بھی محدود کیا آپ اصل میں کیا کر سکتے ہیں.
اور بے شک، کیڑے اور غلطیوں سکتے مسائل کے ان قسم سے پیدا ہو.
اور یقینا، موضوعات میں آج ٹھیک کرنا جیسے موضوعات جا رہے ہیں
اور اصل میں ہڈ کے نیچے دیکھ چیزیں متعارف کرایا گیا ہے کہ کس طرح گزشتہ ہفتے اوپر
اصل میں لاگو کیا جاتا ہے آپ بہتر ہے تاکہ
سمجھنے دونوں کی صلاحیتوں اور C. طرح ایک زبان کی حدود
>> اور حقیقت میں، ہم واپس چھیل لیں گے تہوں آنکڑا ڈھانچہ کی آسان کی،
ایک صف کہا جاتا ہے کچھ، جس سکریچ ایک فون کرنے کے لئے ہوتا ہے "فہرست".
یہ تھوڑا سا ہے اس تناظر میں مختلف.
اور پھر ہم بھی میں سے ایک ملواتا ہوں ہمارے ڈومین کے مخصوص مسائل کے پہلے
CS50 میں، کی دنیا خفیہ نگاری، دوڑ دھوپ کا فن
یا اس معلومات کے ciphering میں آپ کو خفیہ پیغامات بھیج سکتے ہیں
اور خفیہ پیغامات کو وضاحت دو افراد، اور بی کے درمیان
>> تو ہم نے اس سے پہلے منتقلی کہ نئی دنیا میں،
چلو کچھ کے ساتھ آپ کو لیس کرنے کی کوشش کرتے ہیں جس کے ساتھ تکنیک آپ کو ختم کر سکتے
یا کم از کم کچھ کو کم محرومیوں کا
آپ کو شاید سامنا ہوا ہے کہ صرف گزشتہ ہفتے کے دوران.
سچ تو یہ ہے، آپ کے آگے کے کچھ such-- رہے ہیں C. اور مشکلات میں آپ کی پہلی مسائل، ہیں
آپ میری طرح ہیں تو سب سے پہلے وقت آپ کو ایک پروگرام سے ٹائپ کرنے کی کوشش کریں،
آپ کو منطقی سوچ بھی اگر پروگرام، بہت آسان ہے
آپ کو بہت اچھی طرح سے ایک دیوار مارا، اور ہو سکتا ہے سنکلک تعاون کرنے نہیں جا رہا ہے.
بنائیں یا بجنا نہیں جا رہا ہے اصل میں آپ کی بولی کے عمل کرنے کے لئے.
>> اور یہی وجہ ہے کہ ہو سکتا ہے؟
ویسے،، کے طور پر ایک نظر ڈالیں ہیں شاید، ایک سادہ پروگرام ہے.
میں آگے بڑھو اور میں اس کو بچانے کے لئے جا رہا ہوں ایک فائل کو جان بوجھ کر buggy0.c بلایا،
کیونکہ میں نے یہ جانتے ایڈوانس میں ناقص ہونے کے.
لیکن میں یہ ہے کہ اگر اس کا احساس نہیں ہو سکتا پہلی یا دوسری یا تیسری پروگرام ہے
کہ میں واقعی اپنے آپ کو بنا رہا ہوں.
تو میں نے آگے جانے کے لئے جا رہا ہوں اور ٹائپ، int اہم (باطل).
اور پھر میری گھوبگھرالی منحنی خطوط وحدانی کے اندر، ایک بہت واقف ( "ہیلو، world--
الٹا سلیش، N ") - اور ایک نیم بڑی آنت.
>> میں نے فائل محفوظ کر لیا ہے.
اب میں نیچے جانے کے لئے جا رہا ہوں میرے ٹرمنل ونڈو پر
اور قسم کا میک buggy0، کیونکہ، ایک بار پھر، آج کی فائل کے نام buggy0.c ہے.
تو میں نے، buggy0 دکھانے درج ٹائپ.
>> اور، اوہ، ارے، پچھلی بار سے یاد کوئی خرابی کے پیغامات کہ ایک اچھی بات ہے.
لہذا کوئی پیداوار ایک اچھی بات ہے.
لیکن یہاں میں واضح طور پر ہے غلطیوں کی کچھ تعداد.
>> پیداوار کی پہلی لائن تو buggy0 دکھانے ٹائپ کرنے کے بعد، یاد،
بجنا کی منصفانہ شبدبہل پیداوار ہے.
ہڈ کے نیچے، CS50 IDE ترتیب دیا گیا ہے
کی ایک پوری چڑھانے استعمال کرنے کے لئے اس سنکلک ساتھ اختیارات
تاکہ آپ کی ضرورت نہیں ہے ان کے بارے میں سوچنے کے لئے.
اور یہ کہ تمام ہے کہ پہلی سطر ہے اسباب بجنا کے ساتھ شروع ہوتا ہے کہ.
>> لیکن اس کے بعد، مسائل ان کے ظہور بنانے کے لئے شروع.
لائن 3، کردار پر Buggy0.c 5، ایک بڑا، سرخ خامی ہے.
وہ کیا ہے؟
لپیٹ لائبریری تقریب اعلان ساتھ قسم int (CONST چار * printf کے،
...) [کے Werror].
میں نے بہت جلد اس کا مطلب، بہت جادو ہو جاتا ہے.
اور بیشک، میں سب سے پہلے نظر، ہم نہیں کریں گے
آپ کو سمجھنے کی امید رکھتے ہیں اس پیغام کے مکمل.
اور اس لئے سبق میں سے ایک آج ہو رہا ہے کے لئے
محسوس کرنے کی کوشش کرنے کے لئے ہو پیٹرن، یا اسی طرح کی چیزیں،
غلطیوں کی آپ کو ہو سکتا ماضی میں سامنا.
تو چلو صرف علاوہ چڑھاو دو ان الفاظ واقف ہیں کہ دیکھو.
بڑی، سرخ غلطی کو واضح طور پر ہے کسی چیز کا علامتی غلط ہونے.
>> لپیٹ اعلان لائبریری تقریب printf کے.
تو میں نے کافی سمجھ نہ بھی ہو تو کیا لپیٹ لائبریری تقریب اعلان
اسباب، یقینا مسئلہ کسی نہ کسی طرح printf کے سے متعلق ہے.
اور اس مسئلے کا ذریعہ یہ اعلان کے ساتھ کیا ہے.
>> اعلان ایک تقریب ہے پہلی مرتبہ یہ ذکر.
اور ہم اصطلاحات گزشتہ ہفتے کا استعمال کیا ایک تقریب کے پروٹوٹائپ اعلان کی،
یا تو کے سب سے اوپر ایک لائن کے ساتھ آپ کے اپنی فائل یا ایک نام نہاد ہیڈر فائل میں.
اور کیا میں فائل ہم کہتے ہیں کیا گزشتہ ہفتے printf کا اقتباس ہے کہ،
unquote جو، کا اعلان کر دیا؟
کیا فائل میں اس کے پروٹوٹائپ ہے؟
>> اگر تو آپ کو سب سے پہلی بات مجھے یاد، ٹائپ، تقریبا ہر پروگرام آخری بار
اور اتفاقی طور پر ایک لمحے قبل شروع کیا myself-- ٹائپنگ اس میں سے ایک یہاں تھا
hash-- # شامل <stio-- لئے ان پٹ / آؤٹ پٹ ڈاٹ H اور یقینا،
اب میں یہ فائل محفوظ ہے تو، میں جا رہا ہوں آگے بڑھو اور میری سکرین صاف کرنے کے،
آپ ٹائپ کر کے ایسا کر سکتے ہیں جس میں صاف، یا آپ کو، کنٹرول L پکڑ سکتا
صرف آپ کے ٹرمنل ونڈو کو صاف کرنے صرف کچھ بے ترتیبی کو ختم کرنے کی.
>> میں آگے جانے کے لئے جا رہا ہوں اور دوبارہ ٹائپ میک buggy0، درج.
اور voila، میں اب بھی اس دیکھیں بجنا سے طویل کمانڈ،
لیکن کوئی غلطی پیغام اس وقت وہاں ہے.
اور یقینا، میں نے ./buggy0 کرتے ہیں تو، صرف گزشتہ بار کی طرح،
جہاں ڈاٹ اس کا مطلب ڈائرکٹری، سلیش صرف، کا مطلب ہے کہ
یہاں پروگرام کا نام آتا ہے اور پروگرام کے اس نام، buggy0 ہے
، درج کریں "ہیلو، دنیا."
>> اب، آپ کو کس طرح کو ہو سکتا ہے اس حل خفیہ معلومات کے
بغیر ضروری کئی کے طور پر الفاظ کو تسلیم
میں نے کے طور پر، یقینی طور پر، ہونے اس نے اتنے سالوں کے لئے کیا کیا؟
ویسے، سب سے پہلے مسئلہ فی کا احساس سیٹ، ہم ایک کمانڈ لئے آپ کو متعارف
CS50 اپنے عملے ہے کہ کہا جاتا help50 لکھا.
اور یقینا، C کے لئے تصریح کرتا ہے مسئلہ اس کا استعمال کرنے کے لئے کس طرح کے طور پر مقرر.
>> لیکن help50 بنیادی طور پر ہے ایک پروگرام ہے کہ CS50 کا عملہ
کہ اجازت دیتا لکھا آپ کو چلانے کے ایک کمانڈ یا، ایک پروگرام چلائیں
اور آپ کو نہ سمجھتے ہوں تو اس کی پیداوار،، help50 کے لیے اپنی پیداوار کو منتقل کرنے کی
سافٹ ویئر کے جس موڑ پر کورس کے عملے نے لکھا ہے کہ
آپ کے پروگرام کی پیداوار میں نظر آئے گا لائن کی طرف سے لائن، کردار کی طرف سے کردار.
اور اگر ہم، عملے، کو تسلیم خرابی کا پیغام آپ کا سامنا کر رہے ہیں کہ،
ہم نے کچھ کے ساتھ آپ کو اکسانے کی کوشش کریں گے کچھ مشورہ کے ساتھ بیان بازی سوال،،
ایک TF یا ایک CA یا اپنے جیسے بہت کچھ دفتر کے اوقات میں ذاتی طور پر کریں گے.
>> آپ ایسا نہیں کرتے تو help50 کرنے کے لئے نظر ضروری نہیں کہ ایک مسئلہ کو تسلیم.
لیکن یہ پر انحصار نہیں کرتے ایک بیساکھی کے طور پر بہت زیادہ.
یقینی طور پر سمجھنے کی کوشش کریں اس کے پیداوار اور پھر اس سے سیکھنا
لہذا صرف ایک یا دو بار تم کرتے ہو کبھی کسی خاص غلطی کے لئے help50 چلانے
پیغام.
اس کے بعد، آپ کو ہونا چاہئے بہتر اپنے آپ کو لیس
کیا یہ اصل میں ہے پتہ کرنے کے لئے.
>> چلو یہاں ایک دوسرے کا کرتے ہیں.
مجھے آگے بڑھو، اور دوسرے میں دو فائل ہم اس buggy1.c کے فون کروں گا.
اور اس فائل میں میں ہوں deliberately-- کے لئے جا
لیکن میں ایسا نہیں کرتے کہ دکھاوا سمجھنے میں کیا غلطی ہوئی ہے.
>> میں آگے بڑھو اور اس کے کیا کرنے جا رہا ہوں # شامل، کے بعد سے میں نے
ایک لمحے سے پہلے اپنا سبق سیکھا.
int اہم (باطل)، کے طور پر پہلے.
اور پھر یہاں میں جا رہا ہوں سٹرنگ کرنا - get_string.
اور آخری وقت سے یاد ہے کہ اس کا مطلب ہے، ارے، کمپیوٹر،
مجھے، ایک متغیر دے جو کی کال، اور اس متغیر ایک تار کی قسم کی بنانے
تاکہ میں اس میں ایک یا ایک سے زیادہ الفاظ کے محفوظ کر سکتے.
>> اور پھر دائیں ہاتھ پر برابر علامت کے ضمنی
ایک ہے جو، get_string جاتا ہے CS50 لائبریری میں تقریب
کہ بالکل اس کرتا ہے.
یہ ایک تقریب اور ہو جاتا ہے تو بائیں ہاتھ کو اس کا حق سے.
تو یہ برابر علامت کا مطلب یہ نہیں "برابر" کے طور پر ہم نے ریاضی میں سوچ سکتا ہے.
اس سے دائیں سے بائیں سے اسائنمنٹ کا مطلب ہے.
تو اس کا مطلب، سے سٹرنگ لے صارف اور ایس کے اندر یہ ذخیرہ.
>> اب اس کا استعمال کرتے ہیں.
مجھے ایک دوسرے کے طور پر اب اور آگے چلتے ہیں لکیر، مجھے آگے بڑھو اور "ہیلو" کہنے دو -
نہیں "دنیا،" لیکن "ہیلو،٪ s-- جس میں ہمارے پلیس ہولڈر، کوما کی ہے،
جو ہمارے متغیر ہے، اور پھر ایک نیم بڑی آنت.
تو میں بہت زیادہ بگاڑ نہیں کیا تو یہاں، یہ درست کوڈ کی طرح لگتا ہے.
>> اور میرے instincts اب اسے مرتب کرنے کے لئے ہیں.
فائل کی buggy1.c کے کہا جاتا ہے.
تو میں نے، buggy1 بنا درج کرنے جا رہا ہوں.
اور خوفناک-یہ، نہیں ہے تو پہلے سے بھی زیادہ غلطیاں.
میرا مطلب ہے، وہاں زیادہ ہے خرابی کے پیغامات یہ کرے گا
اس پروگرام میں اصل لائنوں کے مقابلے میں لگ رہے ہو.
>> لیکن takeaway ہے یہاں، ہے آپ ابیبھوت رہے یہاں تک کہ اگر
دو یا تین یا کے ساتھ چار مزید خرابی کے پیغامات،
بہت پر ہمیشہ توجہ مرکوز ان پیغامات کے پہلے.
سب سے ضروری ایک کو دیکھ کر، بیک اپ کے طور طومار کر کی ضرورت ہو جائے.
تو یہاں میں میک چلانے buggy1 ٹائپ.
یہاں کے طور پر توقع ہے کہ بجنا پیداوار ہے.
>> اور یہاں پہلے سرخ خامی ہے.
اگھوشیت شناخت کنندہ کا استعمال سٹرنگ، I میں معیاری مطلب تھا؟
لہذا سٹینڈرڈ میں ہے اصل میں کچھ اور.
یہ صارف کے سے مراد کی بورڈ، بنیادی طور پر.
>> لیکن میرا یہ مطلب نہیں ہے.
میں سٹرنگ کا مطلب، اور میں get_string مراد.
تو یہ کیا ہے جو میں اس وقت کیا کرنے کو بھول گئے؟
کیا اس وقت لاپتہ ہے؟
میں نے اپنی # شامل ہے، اتنے میں printf تک رسائی حاصل ہے.
>> لیکن میں کیا ضرورت نہیں ہے ابھی تک تک رسائی؟
ویسے، صرف گزشتہ بار کی طرح، I سنکلک بتانے کی ضرورت
ان افعال کیا ہیں بجنا.
Get_string نہیں آتی C. کے ساتھ اور خاص طور پر، یہ
میں نہیں آتی ، فائل ہیڈر.
اس کے بجائے میں آتا ہے کچھ کے عملے نے لکھا،
جس میں ایک مختلف فائل ہے نام لیکن aptly نام.
>> تو بس ایک ہی لائن میں شامل کرکے آخری وقت سے code-- یاد کے
جب بجنا چلاتی ہے، جو ہو رہا ہے نیچے تک میرا کوڈ سب کو دیکھنے کے لئے،
بائیں سے دائیں.
یہ محسوس کرنے کے لئے جا رہا ہے اوہ، آپ چاہتے ہیں.
مجھے جانے اور اس کو تلاش کرتے ہیں، اسے سرور پر ہے جہاں کہیں بھی،
کاپی اور پیسٹ، بنیادی طور پر، اپنی خود کی فائل کے سب میں
تو کہانی میں اس وقت کہ، لائن 1، پروگرام کے باقی
، یقینا، کے افعال میں سے کوئی بھی استعمال کر سکتے ہیں اس میں، ان کے درمیان get_string.
تو میں نے نظر انداز کرنے جا رہا ہوں ان غلطیوں میں سے باقی،
میں کیونکہ، بے شک، کہ صرف شبہ سب سے پہلے ایک اصل بات.
اور میں، آگے اور دوبارہچلانے جانے کے لئے جا رہا ہوں میری فائل کو بچانے کے بعد buggy1 بنا.
اور voila، جو کام بھی کرتے تھے.
اور میں ./buggy1 کرتے ہیں اور اگر، میں ٹائپ مثال کے طور پر، کیا Zamyla، اب میں ہیلو، ملے گا
کیا Zamyla، بجائے ہیلو دنیا.
>> بالکل ٹھیک.
تو یہاں takeaways میں پھر جانا ہے، ایک، جتنا آپ کر سکتے ہیں جیسا بیننا کرنے کی کوشش کریں
اکیلے خرابی کے پیغامات سے، تلاش شناخت کے قابل الفاظ میں سے کچھ میں.
کہ مانع، فی help50 کا استعمال مسئلہ سیٹ تصریح.
لیکن اس کو چھوڑ کر، بھی، ہمیشہ نظر آئے سب کی خرابی پر صرف، کم از کم
ابتدائی طور پر، کو دیکھنے کے لئے کیا معلومات یہ اصل میں برآمد ہو سکتا ہے.
لیکن یہ بدل جاتا ہے وہاں اس سے بھی زیادہ فعالیت بنایا
CS50 لائبریری میں مدد کرنے کے لئے سمسٹر میں ابتدائی پر آپ
اور پروگرامنگ میں جلد پتہ لگا کہ کیا غلط ہو رہا ہے.
لہذا یہاں کی ایک اور مثال دیتے.
I، جس میں اس buggy2 فون کرنے جا رہا ہوں، ایک بار پھر، باہر ناقص ہونے کے لئے جا رہی ہے
ڈیزائن کی طرف سے شہر کے دروازے، کے.
>> اور میں آگے جانے کے لئے جا رہا ہوں اور # شامل.
اور پھر میں نے int اہم (باطل) میں کیا کرنے جا رہا ہوں.
اور پھر میں لوپ کے لئے ایک کرنے جا رہا ہوں.
کے لئے ہے (int _ 0.
میں سے کم یا 10 کے برابر ہے.
میں + +، اور پھر گھوبگھرالی منحنی خطوط وحدانی میں، میں جا رہا ہوں یہاں صرف ایک ہیش ٹیگ علامت باہر پرنٹ کرنے کے
اور ایک نئی سطر کردار.
>> اس کے ساتھ اپنے ارادے تو پروگرام بہت آسانی ہے
10 بار iterate کرنے اور ہر iteration پر
اس لوپ کے ہر بار کی سائیکل کے ذریعے،
ایک hashtag باہر پرنٹ، ایک hashtag، ایک hashtag.
میں کیونکہ ایک فی لائن وہاں نئی ​​لائن ہے.
اور اس کے لئے یاد کرتے ہیں گزشتہ ہفتے فی لوپ،
اور آپ کو زیادہ ملے گا نحو سے واقف
پریکٹس کے ساتھ اس کا استعمال کر کے طویل عرصے سے پہلے اس نے مجھے دیتا ہے
ایک متغیر میں بلایا اور یہ 0 سے تعین کرتا ہے.
>> یہ میں پر ہے increments 1 کی طرف سے ہر iteration.
تو میں نے 3 2 میں سے 1 کو جاتا ہے.
اور پھر اس حالت میں سیمی کولون کے درمیان درمیان
بنانے کے لئے ہر iteration پر چیک کیا جاتا ہے یقین ہے کہ ہم حد کے اندر اندر اب بھی ہیں کہ.
لہذا میں 10 بار iterate کرنا چاہتے ہیں، تو میں نے پاس چھانٹیں کا بہت intuitively پر صرف
وہاں میرا پابند بالائی طور پر 10 ڈال.
>> اور ابھی تک، میں نے اس کو چلانے کے بعد جب، میک کے ساتھ اس کی تالیف buggy2--
اور یہ ٹھیک مرتب کرتا.
تو میں نے ایک کی ضرورت نہیں ہے نحو کی خرابی اس وقت.
اب مجھے آگے جانے دو اور buggy2 چلانے، درج.
اور اب تک سکرال.
اور مجھ میں اضافہ کر دیں ونڈو کا سائز.
>> مجھے ہے لگ رہے ہو 1، 2، 3، 4، 5، 6، 7، 8، 9، 10، 11.
تو وہاں اگرچہ، 11 hashtags کے مطابق ہے میں واضح طور پر اس لوپ کے اندر 10 ڈال.
اب، تم میں سے بعض کو فوری طور پر نظر آ سکتے ہیں کیا غلطی کو کیونکہ، بے شک، یہ وہ جگہ ہے
بنانے کے لئے ایک بہت مشکل غلطی نہیں ہے.
لیکن یہ بہت عام ہے پر بہت جلد بنا دیا.
>> اگر میں باہر کی طرف اشارہ کرنا چاہتے ہیں، اگرچہ، ، کس طرح میں نے یہ پتہ لگا سکتا ہے؟
ٹھیک ہے، یہ پتہ چلا ہے کہ CS50 لائبریری آتا
نہ صرف get_string اور get_int ساتھ اور get_float اور دیگر افعال.
یہ بھی ایک خصوصی تقریب کے ساتھ آتا ہے کہا جاتا eprintf، یا، کی خرابی printf کے.
اور اسے بنانے کے لئے مکمل طور پر موجود ہے یہ آپ کے لئے تھوڑا سا آسان
صرف اپنے کوڈ کو ٹھیک کرنا کب سکرین پر ایک غلطی پیغام کو پرنٹ
اور جانتے ہیں کہ یہ کہاں سے آیا.
>> تو مثال کے طور، ایک بات میں شاید کیا اس تقریب کے ساتھ this-- ہے یہاں کیا
eprintf، اور پھر میں نے آگے جانے کے لئے جا رہا ہوں اور اب میں فیصد ہے میں، الٹا سلیش، ن کہتے ہیں.
اور میں میں کی قدر میں پلگ کرنے کے لئے جا رہا ہوں.
اور اپ کے سب سے اوپر، اس کی وجہ سے ، CS50 لائبریری میں ہے
میں آگے جانے کے لئے جا رہا ہوں اور میں شامل
تو میں نے اس تقریب تک رسائی حاصل ہے.
لیکن غور کریں کیا لائن 9 کر کیا جائے گا سمجھا جاتا ہے.
میں نے آخر میں اس کو حذف کرنے جا رہا ہوں.
یہ کوئی تعلق نہیں ہے میری اولین اور بنیادی مقصد کے ساتھ.
لیکن eprintf، غلطی printf کے، صرف مراد ہے مجھے کچھ تشخیصی معلومات دینے کے لئے.
میں نے اپنے پروگرام چلاتے ہیں، میں چاہتا ہوں عارضی طور پر سکرین پر اس کو دیکھنے کے
کے ساتھ ساتھ صرف سمجھنے کی کیا ہو رہا ہے.
>> اور، یقینا، پر ہر یہاں لکیر سے 9 تکرار
میں دیکھنا چاہتی ہوں، میں کی قدر کیا ہے؟
میں کی قدر کیا ہے؟
اور، امید ہے کہ، میں صرف کرنا چاہئے اس پیغام، بھی، 10 بار دیکھیں.
>> تو مجھے آگے بڑھو اور میرے پروگرام recompile،
میں کسی بھی وقت کیا کرنا ہے کے طور پر میں نے ایک تبدیلی. ./buggy2.
اور now-- OK.
زیادہ چل رہا ایک بہت ہے.
تو مجھے میں سکرال اس سے بھی بڑی کھڑکی.
>> اور تم میں سے ہر ایک کو نظر آئے گا کہ ہیش ٹیگز اب بھی پرنٹنگ ہے.
لیکن درمیان میں ان میں سے ہر اب یہ ہے مندرجہ ذیل کے طور پر تشخیص کی پیداوار فارمیٹ کیا.
یہاں اپنے پروگرام کا نام buggy2 ہے.
فائل کا نام buggy2.c ہے.
لائن نمبر ہے جس سے اس چھپا تھا لکیر 9 ہے.
اور پھر اس کے دائیں کرنے کے لئے ہے غلطی پیغام میں امید کر رہا ہوں کہ.
>> اور اچھا یہ ہے کہ کے بارے میں کیا ہے اب میں ضروری نہیں کہ شمار کرنے کی ضرورت نہیں ہے
میرے سر میں اگر میرا پروگرام کر رہا ہے.
میں پر دیکھ سکتے ہیں کہ پہلے iteration میں ہے 0،
تو 1، پھر 2، پھر 3، پھر 4، پھر 5 اور پھر 6، پھر 7، پھر 8، پھر 9 تب،
10.
تو ایک منٹ انتظار کرو.
یہاں کیا ہو رہا ہے؟
میں اب بھی گنتی کرنے لگتے ہیں کے طور پر 10 تک ارادہ.
>> لیکن میں کہاں سے شروع کیا؟
0، 1، 2، 3، 4، 5، 6، 7، 8، 9 | 10.
پس 0، 1، 2، 3، 4، 5، 6، 7، 8، 9، 10-- کی 11th انگلی
مسئلے کی نشاندہی ہے.
میں شمار ہے لگ رہے ہو غلط طریقے سے میرے لوپ میں.
10 تکرار جانے کی بجائے، I، 0 سے شروع ہوں
مجھے اور 10 کے ذریعے ختم ہونے والے ہوں.
لیکن کیونکہ، ایک کمپیوٹر کی طرح، I، 0 میں گنتی شروع کر رہا ہوں
I تک گنتی کی جانی چاہئے کرنے کے لئے، لیکن کے ذریعے نہیں، 10.
>> اور اس طرح طے کر، میں نے آخر یہاں احساس ہوا، دو چیزوں میں سے ایک ہے.
میں نے بہت صرف کہہ سکتے سے بھی کم 10 تک شمار.
پس 0، 1، 2، 3، 4، 5، 6، 7، 8، 9، جس میں کچھ شک نہیں کہ ہے، درست،
یہاں تک کہ یہ ایک چھوٹی سی غلط لگتا ہے اگرچہ.
یا پھر میں ایسا کر سکتا ہے سے زیادہ یا برابر بھی کم 9 تک، جب تک میں 0 میں شروع کے طور پر.
یا اگر آپ واقعی ہے کہ پسند نہیں ہے تو، آپ کو 10 شمار لیکن اس کی 1 میں شروع کر سکتے ہیں.
لیکن پھر، یہ صرف نہیں ہے کہ عام ہے.
پروگرامنگ سہی میں Scratch-- میں اتنا نہیں
لیکن میں پروگرامنگ میں C اور دیگر زبانوں میں،
جاوا اسکرپٹ اور جیسی ازگر اور دوسروں، یہ ہے
کے لئے صرف بہت عام ہمارے بائنری کی بحث
بس گنتی شروع کرنے کے لئے آپ کر سکتے ہیں سب سے کم تعداد، 0 ہے جو.
بالکل ٹھیک.
تو ہے کہ eprintf ہے.
اور پھر، اب میں نے سوچا ہے کہ میری مسئلہ، اور میں 0 سے واپس جانے کے لئے جا رہا ہوں
سے بھی کم 10، میں جا رہا ہوں میں جاؤ اور eprintf حذف کرنا.
>> جب میں اسے نہیں ہونا چاہئے میرا کوڈ جہاز یا اپنے کوڈ کو جمع کرانے
ورنہ کسی کو دکھانا.
یہ واقعی صرف کا مطلب ہے عارضی طور پر استعمال کیا جائے گا.
لیکن اب میں اس طے کر دی اس کے ساتھ ساتھ خاص طور پر مسئلہ.
>> ٹھیک ہے، یہاں ایک اور مثال دیتے میں نے مندرجہ ذیل کے طور کوڑا لئے جا رہا ہوں کہ.
میں آگے جانے کے لئے جا رہا ہوں اور # شامل. $ 50
اور میں آگے جانے کے لئے جا رہا ہوں اور # شامل.
>> اور مجھے بچانے کے لئے جا رہا ہوں buggy3.c طور پر اس فائل.
اور میں آگے جانے کے لئے جا رہا ہوں اور اعلان int اہم (باطل).
اور پھر وہاں کے اندر I میں int کرنے جا رہا ہوں _ -
میں نے ایک پروگرام کو لاگو کرنے کے لئے چاہتے ہیں ایک get_negative_int ساتھ.
یہ ایک تقریب ابھی تک موجود ہے کہ نہیں ہے.
تو ہم کو لاگو کرنے کے لئے جا رہے ہیں یہ صرف ایک لمحے میں.
لیکن ہم کیوں دیکھنے کے لئے جا رہے ہیں یہ سب سے پہلے پاس پر چھوٹی گاڑی ہے.
اور میں ہو گیا ہے ایک بار صارف کی طرف سے ایک int،
میں نے ابھی ابھی میں نے پرنٹ کرنے کے لئے جا رہا ہوں ایک منفی ہے عددی، الٹا سلیش، ن، کوما، میں نے.
دوسرے الفاظ میں، تمام میں ایسا کرنے کے لئے اس پروگرام چاہتے ہیں
سے ایک منفی int حاصل کیا جاتا ہے صارف اور پھر باہر پرنٹ
کہ فلاں فلاں منفی int ہے.
>> اب میں اس تقریب کو لاگو کرنے کی ضرورت ہے.
تو بعد میری فائل میں، میں جا رہا ہوں آگے اور نام سے ایک تقریب کا اعلان
get_negative_int (باطل) - اور ہم کر لیں گے اس لائن کو دوبارہ کا مطلب کیا کے پاس واپس آئے
ایک لمحے int ن میں؛ do-- کرو مندرجہ ذیل printf کا (ن) ہے :.
، get_int - اور پھر میں ن کرنے جا رہا ہوں اور یہ دیر ن 0 سے بڑا ہے ایسا.
اور پھر این کو واپس؛
>> تو میں کیا چل رہا ایک بہت ہے اس کے سوا کسی کی جن میں سے ہم نے نہیں کیا
کم از کم کچھ دیر کے آخری ہفتے میں نظر آتے ہیں،.
تو اوپر 10 یہاں پر میں نے اعلان کیا ہے ایک get_negative_int ملاقات کی تقریب،
اور میں ان (باطل) کو رکھا ہے، قوسین، وجہ یہ کیا جا رہا ہے
ایک ان پٹ نہیں لے کرتا ہے.
میں نے کچھ بھی نہیں گزر رہا ہوں اس تقریب کے لیے.
میں نے صرف اس سے کچھ واپس ہو رہی ہوں.
>> اور میں کیا کیا امید کر رہا ہوں واپس حاصل ایک عدد صحیح ہے.
میں کوئی ڈیٹا کی قسم ہے C negative_int بلایا.
یہ صرف int ہے، تو یہ جا رہا ہے اس بات کا یقین کرنے کے لئے ہمیں پر ہونا
کہ اصل میں ہے کہ قیمت واپس نہیں کیا صرف ایک int ہے
لیکن یہ بھی منفی ہے.
>> 12 لائن پر میں ایک متغیر اعلان کر رہا ہوں (ن) اور قسم int بنانے بلایا.
اور پھر 13 میں 18 کے ذریعے میں ہوں کچھ کر کچھ سچ ہے جبکہ.
میں آگے اور پرنٹنگ جا رہا ہوں (ن) ہے، بڑی آنت، اور اس کے بعد ایک کی جگہ،
صارف کے لئے ایک فوری طور پر کی طرح.
>> میں نے تو get_int بلا رہا ہوں اور اس کے نام نہاد واپسی کی قیمت ذخیرہ کرنے
اس متغیر (ن) میں.
لیکن میں کر رکھنے کے لئے جا رہا ہوں یہ بات این 0 سے بڑا ہے.
دوسرے الفاظ میں، صارف مجھے ایک دیتا ہے تو int اور اس نمبر 0 سے بڑا ہے،
لہذا، مثبت، میں جا رہا ہوں صرف صارف کی reprompting ہے رکھنے،
انہیں مجبور کر، reprompting ہے رکھنے تعاون اور مجھے ایک منفی INT دے.
>> اور ایک بار این اصل negative-- ہے صارف فرض آخر اقسام -50،
پھر اس جبکہ لوپ درست نہیں ہے -50 0 سے بڑا نہیں ہے کیونکہ.
تو ہم اس سے باہر کو توڑنے لوپ منطقی طور پر اور (ن) کو واپس.
>> لیکن دوسری نہیں ہے بات یہ ہے کہ مجھے کیا کرنا ہے.
اور میں تو صرف یہ کر سکتے ہیں کاپی اور چسپاں کر
فائل کے سب سے اوپر کے کوڈ کا ایک لائن.
I، بجنا سکھانے کی ضرورت یا بجنا کے لئے وعدہ،
واضح طور پر میں چاہتا ہوں کہ، بے شک، جاؤ اور عمل درآمد
اس تقریب get_negative_int.
یہ صرف فائل میں کم ہو سکتا ہے.
ایک بار پھر، یاد ہے کہ بجنا ، سب سے نیچے کے لئے چیزیں پڑھتا
بائیں سے دائیں، تاکہ تم نہیں کر سکتے اگر بجنا ایک تقریب کہتے
پتہ نہیں ہے اس کا کوئی وجود کرنے جا رہا ہے.
>> اب بدقسمتی سے، اس پروگرام، کے طور پر آپ کے کچھ محسوس کیا ہے ہو سکتا ہے،
پہلے سے ہی چھوٹی گاڑی ہے.
مجھے آگے بڑھو اور buggy3 کہا بنانے کے ہیں.
لہذا میرا مسئلہ اب نہیں ہے، یہ، آگاہ کریں ایک نحوی خامی، ایک ٹیکسٹ غلطی کی طرح،
یہ اصل میں ایک منطقی ہونے جا رہا ہے کہ میں نے جان بوجھ کر ہے کی خرابی
کے لئے ایک موقع کے طور پر بنایا کیا ہو رہا ہے کے ذریعے قدم.
>> میں آگے جانے کے لئے جا رہا ہوں اب اور buggy3 کہا چلانے.
اور میں جا رہا ہوں آگے اور نہ تعاون.
میں نے اسے 1 نمبر دینے جا رہا ہوں.
اس سے اسے پسند نہیں کیا، لہذا اس سے مجھے ایک بار پھر فورا ہی ہے.
>> کس طرح کے بارے میں 2؟
3؟
50؟
ان لوگوں میں سے کوئی بھی کام کر رہے ہیں.
گانے -50 کے بارے میں؟
اور پروگرام کام کرنے لگتا ہے.
>> مجھے اسے ایک بار اور کوشش کرتے ہیں.
مجھے کوشش -1 دو، کام کرنے لگتا ہے.
مجھے کوشش -2 دو، کام کرنے لگتا ہے.
مجھے کوشش کرنے دو 0.
ہہ، جو کہ غلط ہے.
اب، ہم یہاں ایک چھوٹا سا pedantic ہو رہے ہو.
لیکن یہ بات یقینا، صورت کہ 0 نہ تو مثبت اور نہ ہی منفی ہے.
اور اس طرح یہ حقیقت ہے میرا پروگرام یہ ہے کہ ، کہہ رہے ہیں کہ 0 منفی عدد صحیح ہے
کہ تکنیکی اعتبار سے درست نہیں ہے.
>> اب، یہ ایسا کیوں کر رہا ہے؟
ویسے، یہ واضح ہو سکتا ہے.
اور، یقینا، پروگرام ہے کافی آسان ہونا مراد
تو ہم دریافت کے لئے کچھ ہے.
>> لیکن ایک تیسری ٹھیک کرنا متعارف کرانے تکنیک یہاں debug50 بلایا.
تو یہ ایک پروگرام ہے ہم صرف پیدا کیا ہے کہ
اس سال کہا جاتا debug50 کہ آپ کو اجازت دے گا
ایک بلٹ میں کہا جاتا ہے استعمال کرنے کے لئے CS50 IDE میں گرافیکل ٹھیک کرنے والا کھولتا.
اور اگر ایک ٹھیک کرنے والا کھولتا صرف ایک پروگرام ہے کہ عام طور پر آپ کو آپ کے پروگرام کو چلانے کی اجازت دیتا ہے
لیکن قدم، لائن کی طرف سے قدم بہ قدم لائن کی طرف سے لائن کی طرف سے، روک، poking ہے
کے ارد گرد، متغیر کی طرف دیکھ کہ اتنی پروگرام صرف آپ ماضی اڑا نہیں ہے
اور فوری طور پر کچھ پرنٹ یا کچھ پرنٹ نہیں.
اس میں، آپ کو ایک موقع فراہم کرتا ہے انسانی رفتار، اس کے ساتھ بات چیت کے لئے.
>> اور ایسا کرنے کے لئے، آپ کو بس مندرجہ ذیل کام کریں.
اپنا کوڈ تالیف کے بعد، جو میں نے پہلے ہی کیا، buggy3 کہا،
تم آگے بڑھو اور debug50 ./buggy چلانے.
بہت پسند help50 آپ چلاتے ہیں help50 اور پھر کمانڈ،
debug50 آپ debug50 ختم ہو گیا ہے اور تو کمانڈ کے نام.
>> اب میری سکرین پر کیا ہوتا ہے دیکھتے ہیں، خاص طور پر دائیں ہاتھ کی طرف پر.
میں چلائیں، کی تمام مارا اچانک اس دائیں ہاتھ کے پینل
سکرین پر کھولتا ہے.
اور جا ایک بہت ہے پہلی نظر میں تاریخ.
لیکن وہاں بھی نہیں ہے ابھی تک کے بارے میں فکر کے لئے بہت کچھ.
>> یہ مجھے سب کچھ دکھا رہا ہے کہ اپنے پروگرام کے اندر کیا ہو رہا ہے
ٹھیک ہے اب اور ان کے ذریعے بٹن کے اوپر اس کے بعد ہے
مجھے میرا کوڈ کے ذریعے قدم رکھنے کی اجازت دی بالآخر قدم کی طرف سے قدم بہ قدم.
لیکن نہ صرف ابھی تک.
کیا ہوتا نوٹس.
میرے ٹرمنل ونڈو میں، میں (ن) کے لئے حوصلہ افزائی کی جا رہی ہوں.
اور میں آگے جانے کے لئے جا رہا ہوں اور اس وقت اور -1 میں ٹائپ تعاون.
اور اگرچہ ایک چھوٹی سی ہیں cryptically، -1 ایک منفی عدد صحیح، توقع کے مطابق ہے.
>> اور پھر بچے کے ساتھ باہر ہو اسٹیٹس 0 GDBserver باہر نکلنے.
GDB، GNU ٹھیک کرنے والا کھولتا، اور نام ہے بنیادی سافٹ ویئر کی
کہ یہ ٹھیک کرنے والا کھولتا لاگو کرتی ہے.
لیکن یہ سب واقعی مطلب، ٹھیک کرنے والا کھولتا میرے پروگرام چھوڑ کر چلے گئے ہیں کیونکہ
اور سب کچھ ٹھیک تھا.
میں واقعی اپنے پروگرام ڈیبگ کرنا چاہتے ہیں تو، I، اس preemptively debug50 بتانا ہے
جہاں میں شروع کرنے کے لئے چاہتے ہیں میرا کوڈ کے ذریعے نکلنے؟
>> اور شاید آسان ترین طریقہ مندرجہ ذیل کے طور یہ ہے کہ ایسا کرنے کی.
میں نے اوپر ہوور تو یہاں میری ایڈیٹر کی گٹر،
تو واقعی صرف یہاں سائڈبار میں، لائن نمبر کے بائیں،
نوٹس ہے کہ میں نے صرف پر کلک کریں تو ایک بار، میں نے تھوڑا سرخ نقطہ ڈال.
اور اس چھوٹی سی سرخ ڈاٹ، ایک سٹاپ نشانی کی طرح، جس کا مطلب ہے، ارے،
debug50، میری کوڈ کے توقف پر عملدرآمد وہیں میں نے اس پروگرام چلاتے ہیں.
>> تو یہ کرتے ہیں.
مجھے آگے بڑھو اور اپنے پروگرام کو چلانے دوبارہ debug50 ./buggy3 ساتھ، درج.
اور اب، نوٹس، کچھ نہ کچھ مختلف ہوا ہے.
میں نے حوصلہ افزائی کی جا رہی نہیں کر رہا ہوں ابھی تک میرے ٹرمنل ونڈو میں
کسی چیز کے لئے، کیونکہ میں نہیں ہے میرے پروگرام میں ابھی تک موجود ہو گیا.
8 لائن پر کہ نوٹس اب روشنی ڈالی ہے،
اور ایک چھوٹا سا تیر کا نشان میں موجود ہے بائیں کہاوت، آپ کو یہاں روک دیئے گئے ہیں.
کوڈ، سطر کی یہ لائن 8، ابھی تک سزائے موت نہیں دی.
>> اور کیا میں نظر آتے ہیں تو، میں جاننا ہے دائیں ہاتھ کی طرف یہاں پر،
میں ایک مقامی ہے کہ متعلقہ متغیر، اس معنی میں مقامی
کہ یہ موجودہ تقریب کے اندر ہے.
اور اس کی قیمت، بظاہر ڈیفالٹ کی طرف سے، اور اس طرح کی سہولت، 0 ہے.
لیکن میں 0 ٹائپ نہیں کیا.
یہ صرف ہونا ہوتا ہے اس کی اس وقت طے شدہ قیمت.
>> تو مجھے آگے بڑھو اور اب یہ کرتے ہیں.
مجھ سے آگے اور پر جانے دو سب ٹھیک ہے یہاں، میں ہوں
آگے جانے کے لئے جا رہا ہے اور یہ پہلا آئیکن پر کلک کریں جس
جس پر قدم پر نہیں ہے کا مطلب کا مطلب یہ لیکن کوڈ کے اس لائن پر قدم،
راستے میں اسے عملی جامہ.
>> اور اب،، محسوس میری فوری طور پر صرف تبدیل کر دیا گیا.
ایسا کیوں ہے؟
I debug50 بتا دیا، کوڈ کے اس لائن کو چلانے کے.
کوڈ کے اس لائن کیا کرتا ہے؟
ایک int کے لئے مجھے اشارہ.
ٹھیک ہے.
مجھ سے تعاون کرتے ہیں.
اب مجھے آگے بڑھو اور ٹائپ -1، درج کریں.
اور اب کیا بدل گیا ہے محسوس کریں.
دائیں ہاتھ کی طرف، میرے مقامی متغیر میں
ہونے -1 اب کے طور پر نشاندہی کی جاتی ہے.
اور اس قسم int کے اب بھی ہے.
>> اور نوٹس، بھی، میرا نام نہاد اسٹیک کو فون، میں کہاں موقوف کیا؟
ہم کے بارے میں مزید بات کریں گے مستقبل میں اس.
لیکن کال اسٹیک صرف سے مراد کیا افعال حرکت میں ہیں.
ٹھیک ہے اب یہ صرف اہم ہے.
اور اب صرف مقامی متغیر 1 کی قیمت کے ساتھ میں ہے.
>> اور میں نے آخر اس لائن پر قدم جب یہاں، سب سے اوپر دائیں ہے کہ اسی کا آئکن کے ساتھ،
-1 ایک منفی عدد صحیح ہے.
اب یہ ہے کہ گھوبگھرالی تسمہ سے زیادہ روک کر رہا ہے.
چلو اس کا اپنا کام کرتے ہیں کی اجازت دینا.
میں نے اس لائن کو، اور voila پر قدم.
>> لہذا تمام نہیں اس بہت روشن کیں،
لیکن یہ میرے موقوف دیا اور منطقی طور پر کے ذریعے لگتا ہے
اس پروگرام کیا کر رہا ہے.
لیکن یہ غلط معاملہ نہیں تھا.
مندرجہ ذیل کے طور چلو پھر یہ کرتے ہیں.
>> میں نے اس کے توڑ مقام کو چھوڑنے کے لئے جا رہا ہوں سرخ نقطہ کے ساتھ 8 لائن پر.
I debug50 rerun کرنے جا رہا ہوں.
یہ خود کار طریقے سے یہاں روک دیا گیا ہے.
لیکن اس وقت، بجائے اس لائن پر قدم رکھ،
مجھے اصل کے اندر چلتے ہیں get_negative_int اور اعداد و شمار،
کیوں یہ ایک درست جواب کے طور پر قبول کیا جاتا ہے 0؟
>> اس سے زائد مرحلہ پر کلک کرنے کے بجائے.
میں آگے جانے کے لئے جا رہا ہوں اور میں قدم پر کلک کریں.
اور 8 لائن ہے کہ محسوس کریں اب اچانک اب روشنی ڈالی
لائن 17 بن جاتا ہے.
>> اب، یہ ٹھیک کرنے والا کھولتا ہے کہ نہیں ہے لائنوں 14 اور 15 اور 16 کو نظر انداز کردیا گیا ہے.
یہ صرف کچھ بھی نہیں ہے ہے وہاں آپ کو دکھانے کے لئے.
وہ صرف متغیر کا اعلان کر رہے ہیں، اور پھر وہاں کے کلام کرو
اور پھر ایک کھلی گھوبگھرالی تسمہ.
ہے کہ صرف فعال کی لکیر رسیلی واقعی یہاں اس میں سے ایک، 17 ہے.
ہم کہاں گیا ہے اور وہ ہے خود کار طریقے سے روک دیا گیا.
>> تو printf ( "n.is:") ؛، تاکہ جو ابھی تک نہیں ہوا ہے.
تو آگے بڑھو اور قدم پر کلک کریں.
اب میری فوری طور پر، بے شک، کرنے کے لئے تبدیل ( "ن ہے:").
اب، get_int میں نہیں جا رہا ہوں میں قدم رکھ پریشان کرنے کے لئے،
اس تقریب تھا کیونکہ لائبریری میں CS50 کی طرف سے بنایا.
یہ شاید صحیح ہے.
>> تو میں نے آگے جانے کے لئے جا رہا ہوں اور چھانٹیں کے دے کر تعاون کریں
ایک int، لیکن ایک منفی INT.
تو مجھے آگے بڑھو اور ہٹ 0 بتائیں.
اور اب کیا یہاں کیا ہوتا جب میں نیچے حاصل 21 لائن کے لئے؟
میں نے پھر اعادہ نہیں کیا ہے.
میں نے اس لوپ میں پھنس جائے لگتا نہیں ہے.
دوسرے الفاظ میں، یہ پیلے رنگ بار، کے ارد گرد جا نہیں رکھ کیا
اور ارد گرد، اور ارد گرد.
>> اب، یہ کیوں ہے؟
ویسے، ن، ابھی کیا (ن) ہے؟
میں نے مقامی میں دیکھ سکتے ہیں ٹھیک کرنے والا کھولتا میں متغیر.
ن 0 ہے.
ٹھیک ہے، میری حالت کیا تھی؟
>> 20-- لائن 20، اچھی طرح، 0 0 سے بڑا ہے.
یہ سچ نہیں ہے.
0 0 سے بڑا نہیں ہے.
اور اس طرح میں اس سے باہر توڑ دیا.
>> اور تو ہے کہ کیوں لائن پر ہے 21، میں واقعی میں جاری ہے تو،
میں نے بھی، واپس کرنے کے لئے جا رہا ہوں 0 میں نے مسترد کر 0 ہونا چاہئے تھا، اگرچہ
کے طور پر نہیں اصل وجہ منفی.
تو اب، میں واقعی میں بھی نہیں ٹھیک کرنے والا کھولتا کی پرواہ.
یہ، میں نے کرنے کی ضرورت نہیں کیا گیا کیا چل رہا ہے معلوم ہے.
>> تو میں نے آگے جانے کے لئے جا رہا ہوں اور صرف کھیل کے بٹن پر کلک کریں،
اور اس کے ختم تک کی اجازت نہیں.
اب، میں اس بات کا احساس کر لیا ہے میری بگ سطر 20 پر بظاہر ہے.
یہ میری منطقی خامی ہے.
>> اور تو کیا مجھے چاہتے ہو اس کو تبدیل کرنے کے لئے کیا ہے؟
مسئلہ یہ ہے کہ میں نہیں ہوں تو پکڑنے 0، یہ صرف ایک منطقی غلطی ہے.
(ن) ہے، جبکہ اور میں کہہ سکتے سے زیادہ یا 0 کے برابر،
بار بار صارف نے فورا رکھنے.
>> لہذا، ایک بار پھر، سادہ غلطی، شاید جب تم نے مجھے دیکھا بھی واضح
صرف چند منٹ پہلے یہ لکھ.
لیکن یہاں takeaway ہے ہے ڈبگ 50 کے ساتھ کہ،
اور ٹھیک کرنا کے ساتھ سافٹ ویئر کے زیادہ عام طور پر،
آپ کے لئے اس نئے پایا طاقت ہے اپنا خود کا کوڈ ذریعے چل، نظر آتے ہیں
کہ دائیں ہاتھ کے پینل کے ذریعے کیا آپ کے متغیر اقدار ہیں.
تو آپ کو لازمی طور پر ایسا نہیں کرتے کسی چیز کو استعمال کرنا ہے
جیسے آپ کو ان اقدار پرنٹ کرنے eprintf.
تم واقعی میں انہیں دیکھ سکتے ہیں ضعف کی سکرین پر.
>> اب، اس کے پرے، یہ نوٹنگ کے قابل ہے ہے کہ ایک اور تکنیک ہے کہ وہاں
اصل سپر عام.
اور تم یہ کیوں تھوڑا تعجب ہو سکتا ہے یہاں آدمی کو اسٹیج پر بیٹھے کیا گیا ہے.
تو عام طور پر، اس ٹیکنالوجی موجود ہے ربڑ کی بتھ ٹھیک کرنا کے طور پر جانا،
جو واقعی صرف ایک ہے حقیقت یہ ہے کہ عہد نامہ
اکثر جب پروگرامرز کوڈ لکھ رہے ہیں،
وہ ضروری نہیں ہیں دوسروں کے ساتھ تعاون،
یا ایک مشترکہ ماحول میں کام.
>> وہ گھر پر قسم کی ہو.
شاید یہ رات کو دیر ہو چکی ہے.
وہ جاننے کی کوشش کر رہے ہیں ان کے کوڈ میں کچھ مسئلے باہر.
اور انہوں نے صرف اسے دیکھ کر نہیں کر رہے ہیں.
>> اور کوئی روممیٹ نہیں ہے.
کوئی TF ہے.
کے ارد گرد کوئی CA نہیں ہے.
وہ ان کی شیلف پر ہے تمام اس چھوٹی سی ربڑ ducky ہے.
>> اور اس لئے ربڑ کی بتھ ٹھیک کرنا صرف اس دعوت ہے
طور پر پاگل کچھ سوچنا ، ایک حقیقی مخلوق کے طور پر اس کے طور پر
اور اصل میں آپ کے کوڈ کے ذریعے چلنے زبانی طور پر اس اچیتن اعتراض کرنے.
لہذا، اگر یہ میری مثال ہے یہاں
اور یہ کہ اس سے قبل یاد کرتے ہیں مسئلہ، یہ تھا
میں نے کوڈ کی اس پہلی سطر حذف کرتے ہیں تو اور میں آگے بڑھو اور ایک بار پھر چھوٹی گاڑی 0 بنانے،
میں نے ان کو یاد تھا کہ یہاں خرابی کے پیغامات.
تو یہاں خیال، اگرچہ میں مضحکہ خیز اس وقت محسوس عوامی طور پر یہ کر رہے،
اس غلطی کی ہے.
>> ٹھیک ہے، تو میرا مسئلہ یہ ہے کہ میں ہے ہے لپیٹ ایک لائبریری تقریب کا اعلان کر دیا.
اور یہ کہ لائبریری تقریب printf کا ہے.
OK اعلان، اعلان prototypes کی یاد دلاتی ہے.
>> کہ میں واقعی کرنے کی ضرورت ہے کا مطلب ہے کہ پیشگی سنکلک بتا کیا
تقریب کی طرح لگتا ہے.
ذرا رکو.
میں معیاری io.h. نہیں تھا
بہت بہت شکریہ.
>> آپ of-- تو صرف اس عمل اصل میں ایک بطخ کے پاس کرنے کی ضرورت نہیں.
مگر چلنے کے اس خیال آپ کے اپنے کوڈ کے ذریعے اپنے آپ کو
لہذا آپ کو اس سے بھی سنا ہے کہ اپنے آپ کو، تو آپ کو اس
آپ کے اپنے میں بھول چوک کا احساس ریمارکس، عام طور پر خیال ہے.
>> اور، شاید زیادہ منطقی طور پر، نہیں تو کہ نہیں لیکن زیادہ ملوث ساتھ زیادہ سے زیادہ
مثال ہم صرف چھوٹی گاڑی 3.c میں کیا تھا، آپ اس کے ذریعے اپنے آپ چل سکتا ہے
کے طور پر مندرجہ ذیل ہے.
تو ٹھیک ہے، ربڑ Ducky کی، DDB، اگر آپ.
یہاں ہم اپنے اہم تقریب میں ہے، میں منفی int حاصل بلا رہا ہوں.
>> اور میں نے واپسی کی قیمت ہو رہا ہوں.
میں نے بائیں ہاتھ کی طرف پر ذخیرہ کرنے کر رہا ہوں ایک متغیر میں 8 لائن پر مجھے بلایا.
ٹھیک ہے، لیکن انتظار، کس طرح کہ قیمت حاصل؟
مجھ لائن 12 میں تقریب بھی جائزہ لیں.
>> لائن 12 میں، ہم منفی int حاصل ہے.
کوئی بھی آدانوں لے نہیں ہے، ، ایک int واپس کرتا ہے OK.
میں نے 14 ایک متغیر (ن) پر اعلان.
اس سے ایک عددی ذخیرہ کرنے کے لئے جا رہا ہے.
یہی تو میں چاہتا ہوں.
>> ن دو is-- جبکہ تو مندرجہ ذیل کام کریں مجھ سے طے کر میں نے پہلے ہی بنا دیا کیا رد.
ن سے بڑا ہے جبکہ سو 0، (ن) ہے باہر پرنٹ، OK.
اور پھر int ن میں ذخیرہ حاصل کال.
(ن) ہے، تو 0 اور پھر چیک، این not-- وہاں ہے ہے.
لہذا، ایک بار پھر، آپ ایسا نہیں کرتے اصل بتھ ضرورت.
لیکن صرف اپنے آپ کے ذریعے چلنے ایک دانشورانہ مشق کے طور پر آپ کے کوڈ
اکثر آپ کی مدد کرے گا کیا ہو رہا ہے کا احساس،
صرف کچھ کرنے کی مخالفت کے طور اس طرح، اسکرین گھور،
اور اپنے آپ کے ذریعے بات نہیں ایمانداری سے نہیں ہے جس سے یہ،
تقریبا ایک مؤثر ٹیکنالوجی کے طور پر.
تو وہاں آپ کے پاس یہ ایک مختلف تراکیب کی تعداد
اصل میں آپ کے کوڈ ٹھیک کرنا کے لئے اور، نقص جن میں سے سب
آپ کی ٹول کٹ میں اوزار ہونا چاہئے ، یہ ہے کہ آپ رات کو دیر نہیں ہو تا
خاص طور پر، آپ کو کھانے میں ہیں ہال، یا دفتری اوقات میں،
کے خلاف اپنے سر پیٹنے دیوار، کچھ مسئلہ کو حل کرنے کی کوشش کر.
سافٹ ویئر کے اوزار موجود ہیں کہ احساس.
ربڑ کی بتھ کے اوزار ہیں.
اور ایک پورے عملے وہاں ہے ایک ہاتھ قرضے دینے کے لئے انتظار کر رہے ہیں کی حمایت کرتے ہیں.
>> تو اب، مسئلہ پر ایک لفظ سیٹ، اور ہم آپ کے لئے امید کر رہے ہیں پر
ان میں سے باہر حاصل، اور کس طرح ہم جائزہ لینے کے بارے میں جانا.
کورس کے نصاب کے مطابق، CS50 کی مسئلہ سیٹ
چار بنیادی محور پر اندازہ کیا جاتا ہے، لہذا، دائرہ کار speak-- کرنے، درست، ڈیزائن،
اور سٹائل.
اور گنجائش میں کس قدر سے مراد ٹکڑا آپ کو کاٹ لیا کیا ہے؟
تم کس طرح ایک مسئلہ کی زیادہ کوشش کی ہے؟
ممکن کوشش کی کیا سطح آپ ظاہر کر دیا ہے؟
>> درست، ہے کے طور پر پروگرام کام کرتا ہے یہ CS50 ہے تفصیلات کے مطابق کرنا ہے
آپ بعض آدانوں فراہم جب یا کچھ خاص نتائج واپس آ رہا؟
ڈیزائن ان میں سے اکثر ساپیکش ہے.
اور یہ ایک ہے کہ مرضی ہے سیکھنے کے لئے سب سے طویل لے
اور سب سے طویل میں، سکھانے کے لئے اب تک یہ فوڑے کے طور پر،
آپ کے کوڈ کو کتنی اچھی طرح لکھا ہے؟
>> یہ صرف صحیح پرنٹ کرنے کے لئے ایک بات ہے نتائج یا دائیں اقدار کو واپس.
لیکن آپ کے یہ کام کر رہے ہیں مؤثر طریقے سے ممکن ہو سکے کے طور پر؟
آپ اسے تقسیم کر رہے ہیں اور فتح، یا بائنری
ہم جلد ہی دیکھیں گے کے طور پر ہم نے کیا ہے کہ تلاش دو ہفتے پہلے فون بک کے ساتھ؟
کو حل کرنے کے بہتر طریقے ہیں مسئلہ آپ اس وقت یہاں ہے کے مقابلے میں؟
یہ بہتر ڈیزائن کے لئے ایک موقع ہے.
>> اور پھر کس طرح style-- خوبصورت آپ کے کوڈ ہے؟
تمہیں پتہ ہے میں خوبصورت ہوں کہ محسوس کریں گے میرا کوڈ پوٹ کاری کے بارے میں خاص طور پر،
اور یقین ہے کہ میری متغیر بنانے معقول حد نامزد کر رہے ہیں. ن،
جبکہ مختصر، ایک کے لئے ایک اچھا نام ہے نمبر، ایک گنتی عددی کے لئے، میں،
ایک سٹرنگ کے لئے ایس.
اور ہم اب بھی ہو سکتا ہے متغیر کے نام طرز.
انداز صرف کس طرح اچھا ہے اپنا کوڈ نظر آئے ہے؟
اور یہ کہ کس طرح پڑھنے کے قابل ہے؟
>> اور وقت کے ساتھ، کیا آپ کے TAS اور کی TFs کورس میں کیا کریں گے
اس کے ساتھ آپ کو فراہم کیا جاتا ہے گتاتمک رائے کی قسم
آپ بہتر ہو تا کہ ان لوگوں کے مختلف پہلوؤں پر.
اور ہم کس طرح کی شرائط میں ، ان میں سے ہر ایک محور کا اندازہ
یہ بہت کم کے ساتھ عام طور پر ہے بالٹیاں آپ نے پہلے ہی، عام طور پر،
آپ کیا کر رہے ہیں کس طرح کا احساس حاصل.
اور، یقینا، آپ پر ایک سکور حاصل کرتے ہیں تو ان لوگوں axes-- درست، ڈیزائن کے کسی بھی
اور سٹائل especially-- اس نمبر عام طور پر 1 اور 5 کے درمیان ہو گا.
اور، لفظی، آپ کو ہو رہی ہے تو سمسٹر کے آغاز میں 3،
یہ ایک بہت اچھی بات ہے.
یہ اب بھی وہاں ہے کا مطلب بہتری کی گنجائش،
تم میں کے لئے امید کریں گے جس پہلی بار کے لئے ایک کلاس لینے.
چھت کی کچھ تھوڑا سا امید نہیں ہے جس سے آپ تک پہنچنے کے خواہشمند رہے ہیں.
اور اس طرح 3 پر ہو رہی ہے جلد ٹکڑے ٹکڑے،
اگر نہیں کچھ 2 کی اور 4 کی، ، واقعی ایک اچھی بات ہے،.
اس کی حد کے اندر اندر ٹھیک ہے، ساتھ ساتھ توقعات کے اندر اندر.
>> اور اپنی عقل دوڑ رہا ہے، تو انتظار کرو ایک منٹ، پانچ میں سے تین باہر.
یہ واقعی 10 کا ایک 6 باہر ہے.
یہی وجہ ہے کہ 60 فی صد ہے.
ایک F. ہے کہ میرے خدا،
>> یہ نہیں ہے.
یہ، حقیقت میں، نہیں ہے کہ.
بلکہ، یہ بہتر بنانے کے لئے ایک موقع ہے سمسٹر کے دوران.
اور آپ کو کچھ حاصل کر رہے ہیں تو poors، ان کا موقع ہیں
دفتر کے اوقات کا فائدہ اٹھا کر، یقینی طور پر حصوں اور دیگر وسائل.
>> اتارنا، واقعی، ایک موقع ہے آپ کو صرف کس حد تک ہے میں فخر کرنے کے
سمسٹر کے دوران آئے.
تو احساس کرتے، تو کچھ بھی نہیں ورنہ، تین اچھی ہے.
اور یہ وقت کے ساتھ ترقی کے لئے کمرے کی اجازت دیتا ہے.
>> ان لوگوں کے محور ہیں کس طرح بارت، حقیقت پسندانہ تم ہو
ہو رہی ہے اپنے وقت کے سب سے زیادہ خرچ کرنے کے لئے جا کام پر چیزیں، صحیح چھوڑ دو.
اور اس لئے درست کرنے کے لئے جاتا ساتھ کے طور پر، سب سے زیادہ بارت جائے
تینوں میں سے اس ضربی عنصر.
ڈیزائن، یہ بھی ضروری ہے لیکن آپ کو ضروری نہیں ہے کہ کچھ
پر ان لوگوں گھنٹے کے تمام خرچ چیزیں صرف کام کرنے کے لئے حاصل کرنے کی کوشش.
>> اور اس طرح یہ بارت ہے زیادہ ہلکے سے ایک چھوٹا سا.
اور پھر طرز از کم بارت ہے.
یہاں تک کہ یہ کم نہیں ہے اگرچہ بنیادی اہمیت کا حامل،
یہ صرف، شاید، حق سب سے آسان چیز،
ترجمہ ہم نقل لیکچر اور سیکشن میں ایسا،
اچھی طرح چیزوں کے ساتھ پوٹ دار، اور تبصرہ،
اور تو آگے سب سے آسان کے درمیان ہے باتیں کرتے ہیں اور حق حاصل کرنے کے.
تو جیسا کہ، اس بات کا احساس ان نکات ہیں کہ
کہ سمجھنے کے لئے نسبتا آسان ہے.
>> اور اب ایک لفظ پر تعلیمی ایمانداری this--.
کورس کے مطابق تو نصاب، آپ دیکھیں گے
کورس کی ہے کہ کافی اس کے ارد گرد کی زبان کا سا.
اور ظاہر ہے مسئلہ لیتا ہے بہت سنجیدگی علمی دیانت داری.
>> ہم امتیاز ہے، بہتر کے لئے یا برے کے لئے،
بھیجی سے ہر سال زیادہ تادیبی کارروائی کے لئے کے طالب علموں
کسی دوسرے کے سب سے زیادہ سے کورس کے، کہ میں جانتی ہوں.
یہ ضروری نہیں ہے حقیقت کی نشاندہی
CS طالب علموں، یا CS50 طالب علموں، ہو کوئی کم اپنے ہم جماعتوں کے مقابلے میں ایماندار.
لیکن حقیقت یہ ہے کہ میں اس دنیا، الیکٹرانک، ہم صرف
ٹیکنالوجیکل ہے اس کا پتہ لگانے کے اسباب.
>> اس لئے ہمارے لئے اہم ہے کلاس کے اس پار جانبداری
اس کا پتہ لگانے کے، اور بلند ہم کرتے ہیں کہ ہم چیزوں کو دیکھتے ہیں تو مسئلہ.
اور صرف ایک تصویر پینٹ کرنے، اور واقعی میں اس کے سنک کی طرح کچھ مدد کرنے کے لئے،
ان کی تعداد میں ہیں گزشتہ 10 سال کے دوران طالب علموں کو
کچھ میں ملوث کیا گیا ہے کہ تعلیمی ایمانداری کے اس طرح کے مسائل،
کچھ 32 طلباء کے ساتھ زوال 2015، جس
ہم لیتے ہیں یہ کہنا ہے معاملہ بہت سنجیدگی سے.
اور، بالآخر، ان کی تعداد تحریر، سب سے زیادہ حال ہی میں، کے بارے میں 3٪، 4 فیصد یا اس
کلاس کے.
>> طالب علموں کی سپر اکثریت کے لئے تو ایسا لگتا ہے کہ لائنز واضح ہیں.
لیکن میں یہ رہتے ہو کوئی بات، خاص طور پر دیر سے
رات کے وقت کے ساتھ جدوجہد کر جب ایک مسئلہ سیٹ کا کوئی حل،
میکانزم نے اپنے آپ کو بہتر حاصل کرنے کے لئے
تم سے زیادہ حمایت کر سکتے ہیں لگتا ہے کہ، یہاں تک کہ وقت.
ہم وصول کریں جب کہ اس کا احساس طالب علم گذارشات، ہم کراس
اس سال ہر جمع کرانے کا موازنہ گزشتہ سال ہر جمع کرانے کے خلاف،
2007 سے ہر جمع کرانے کے خلاف، اور، کی طرف دیکھ کے طور پر ساتھ ساتھ، کے بعد سے،
کوڈ رپاجٹری آن لائن، مباحثے فورمس، کام سائٹس.
اور ہم نے اس کا ذکر، واقعی خاطر سب،
مکمل انکشاف کے، کہ اگر کسی اور آن لائن تلاش کر سکتے ہیں،
یقینی طور پر، تو ہم نے کورس کر سکتے ہیں.
لیکن، واقعی، روح کورس فوڑے کے
نصاب میں اس شق کے لیے.
یہ واقعی صرف، مناسب ہونا ہے.
>> اور یہ کہ کی وضاحت کرنا پڑا تو ہم نے صرف تھوڑا سا زیادہ زبان کے ساتھ،
احساس ہے کہ سب کا نچوڑ آپ کو اس کورس میں جمع کرائیں کہ کام
اپنا خود کا ہونا ضروری ہے.
لیکن اس کے اندر اندر، یقینی طور پر موجود ہیں مواقع، اور حوصلہ افزائی،
اور کرنے کے لئے تبدیل کرنے میں تدریسی قدر اپنے آپ others-- TFS، سی اے ایس،
TAS، اور کلاس میں دوسروں، کی حمایت کے لئے، اکیلے دوستوں بتائیں
اور کمرے میں رہتے مطالعہ کیا ہے جو اس سے پہلے CS اور پروگرامنگ کی.
اور تو اس کے لئے ایک الاؤنس ہے.
اور انگوٹھے کا عام اصول this-- جب مدد کے لئے پوچھ رہا ہے،
تم نے دوسروں کو اپنا کوڈ دکھائے جا سکتے ہیں، لیکن آپ ان کو دیکھنے نہیں کر سکتے.
لہذا اگر آپ کو دفتری اوقات میں ہیں یہاں تک کہ اگر، یا D ہال، ورنہ کہیں میں
کچھ سیٹوں پر کام کر رہے، ایک دوست، کے ساتھ کام جس
میں، مکمل طور پر ٹھیک ہے آپ کے کام کے دن کے آخر
بالآخر ہر ایک سے تعلق رکھتے ہیں چاہئے تم میں سے بالترتیب، اور نہ
کچھ مشترکہ کوشش ہو، حتمی منصوبے جہاں کے لئے سوائے
اس کی اجازت اور حوصلہ افزائی کی ہے.
>> اگر آپ اس بات کا احساس کچھ کے ساتھ جدوجہد
اور اپنے دوست صرف ہوتا پھر اس میں بہتر بننے کی،
یا تم سے اس مسئلہ میں بہتر، یا دور آگے آپ کے مقابلے میں تھوڑا،
تبدیل کرنے کے لئے مکمل طور پر مناسب ہے آپ کے دوست کے لئے اور، کا کہنا ہے کہ ارے،
آپ یہاں اپنے کوڈ کو دیکھ سکتا ہوں، مجھے بتا مدد کر میرا مسئلہ کیا ہے؟
اور، امید ہے کہ، میں تعلیمی قدر کی دلچسپی
اس دوست نہیں صرف کرتا ہے ، کا کہنا ہے کہ اوہ، ایسا، بلکہ،
کیا آپ کو لائن پر یاد کر رہے ہیں 6، یا اس طرح کچھ؟
لیکن حل نہیں ہے آپ کے لئے اگلے کے دوست کے لئے
کہنے کے لئے، اوہ، ٹھیک ہے، یہاں، مجھے ھیںچو اس اپ، اور آپ کو اپنی حل دکھائیں.
تو یہ لکیر ہے.
تم آپ کے کوڈ کو ظاہر دوسروں، لیکن آپ نہیں کرسکتے ہیں
، ان کو دیکھنے دوسرے سے مشروط کورس کے نصاب میں رکاوٹوں.
>> تو ذہن اس میں رہتے ہو افسوس کی شق نام نہاد
اس کے ساتھ ساتھ کورس نصاب میں، کہ آپ کو کچھ کا ارتکاب کریں تو یہ کہ
مناسب نہیں ہے، لیکن اسے لانے کے کورس کے سر کی توجہ
72 گھنٹے کے اندر، کورس مقامی پابندیاں عائد ہو سکتی ہے کہ
ایک غیر اطمینان بخش شامل ہو سکتے ہیں یا جمع کرائی کام کے لئے میں ناکامی کے گریڈ.
لیکن کورس کی طرف رجوع نہیں کریں گے کی مزید تادیبی کارروائی کے لئے کوئی فرق،
بار بار کی کارروائیوں کے مقدمات میں سوائے.
دوسرے الفاظ میں، اگر آپ ایسا کرتے کچھ بنانے بیوکوف، خاص طور پر رات کو دیر سے، فیصلے
کہ اگلی صبح یا دو دن بعد میں، آپ جاگ اور احساس،
میں کیا سوچ رہا تھا؟
آپ ایک دکان ہے CS50 میں کیا اس مسئلہ فکسنگ کے لئے
اور یہ تک مالک، تاکہ ہم نصف آپ سے ملنے اور نمٹنے گا
کہ دونوں ہے جو ایک معاملے میں کے ساتھ تعلیمی اور آپ کے لئے قابل قدر،
لیکن پھر بھی کسی طرح سے تادیبی.
اور اب، اس سے دور کنارے لینے کے لئے،.
>> [ویڈیو پلے بیک]
>> [موسیقی بجانے]
>> [END پلے بیک]
DAVID J. MALAN: ٹھیک ہے، ہم واپس آ گئے ہیں.
اور اب ہم میں سے ایک کی طرف دیکھو ہماری حقیقی دنیا ڈومینز کے پہلے
CS50 میں، خفیہ نگاری کا فن، بھیجنا اور وصول کرنے کا فن
خفیہ پیغامات، مرموز اگر آپ کے پیغامات،
اگر آپ کے پاس ہے کہ صرف ہے deciphered کیا جا سکتا کچھ اہم جزو مرسل ہے کہ
اس کے ساتھ ساتھ.
ہم لے لیں گے تو اس کی حوصلہ افزائی کرنے یہاں اس بات پر نظر ڈالیں،
جس میں ایک کی ایک مثال ہے خفیہ کوٹواچک کی انگوٹی ہے کہ
یہ اعداد و شمار کرنے کے لئے میں استعمال کیا جا سکتا کیا ایک خفیہ پیغام اصل میں ہے.
سچ تو یہ ہے، پیٹھ میں گریڈ اسکول میں دن،
اگر آپ کبھی خفیہ پیغامات بھیجے تو کچھ دوست یا کلاس میں کچھ چاہنے والوں،
آپ نے سوچا کہ ہو سکتا ہے آپ کو ہوشیار ہونے کی وجہ سے کر رہے تھے
کی طرف سے کاغذ کو تبدیل کرنے کی آپ ٹکڑے پر، کی طرح، ایک بی، اور بی سی پر، اور سی ڈی،
علی هذا القیاس.
لیکن آپ کو اصل میں خفیہ کاری کر رہے تھے آپ کی معلومات، یہاں تک کہ
یہ ایک چھوٹی سی معمولی تھا، نہیں تھا کہ مشکل کا احساس کرنے کے اساتذہ کے لئے،
ساتھ ساتھ، آپ کو صرف کو تبدیل کرتے ہیں بی اے اور سی بی،
آپ اصل میں یہ اعداد و شمار پیغام کیا تھا،
لیکن آپ کی معلومات کو ciphering میں تھے.
>> آپ کو صرف یہ کر رہے تھے بس، یہاں Ralphie طرح زیادہ سے زیادہ
ادا کرتا ہے کہ ایک مشہور فلم میں بہت زیادہ اشتھاراتی nauseum ہر موسم سرما.
[ویڈیو پلے بیک]
یہ سب اس کے لئے جانا جاتا آرہے رالف پارکر اس طرح ہے
لٹل کے ایک رکن مقرر یتیم بچوں اینی خفیہ سرکل
اور تمام اعزازات کا حقدار ہے اور فوائد (مذہب) پر واقع ہونے.
>> -Signed، لٹل یتیم بچوں اینی، انسداد دستخط کئے سیاہی میں پیری آندری،.
اعزاز اور فوائد، پہلے سے ہی نو سال کی عمر میں.
>> [چللا]
-چلو بھئی.
چلو اس کا ساتھ ملے ہیں.
میں نے سب جاز کی ضرورت نہیں ہے اسمگلروں اور قزاقوں کے بارے میں.
>> کے لئے مدد کل رات اختتامی ساہسک
سیاہ سمندری ڈاکو جہاز کے.
اب، اس کے لئے وقت ہو گیا ہے ینی کے خفیہ پیغام
خفیہ سرکل آپ کے ارکان کے لئے.
یاد رکھیں، بچوں، صرف اراکین ینی کے خفیہ سرکل کے
ینی کے خفیہ پیغام وضاحت کر سکتے ہیں.
>> یاد رکھیں، ینی آپ پر منحصر ہے.
B2 کے لئے آپ کے پنوں پر مقرر کریں.
یہاں پیغام ہے.
12، 11--
>> -میں میں اپنے ابتدائی خفیہ میٹنگ میں ہوں،.
>> -14، 11، 18، 16.
>> -Pierre آواز آج رات عظیم میں تھا.
میں سمجھتا ہوں کہ آج رات کے بتا سکتا ہوں پیغام بہت ضروری تھا.
>> -3، 25، کہ ایک پیغام ہے ینی خود سے.
یاد رکھیں، کسی کو مت بتانا.
>> -90 سیکنڈ بعد، میں صرف میں ہوں گھر میں کمرہ جہاں نو کے ایک لڑکے
پرائیویسی اور وضاحت کرنا میں بیٹھ سکتا ہے.
آہا، B!
میں نے اگلے، E. کے لئے گئے تھے
>> پہلا لفظ ہے.
S، جو اب آسان آ رہا تھا، U، 25--
>> اوہ، سے Ralphie چلو،، مجھے جانا ہے!
>> دائیں نیچے -I'll، ما!
جی whiz ہے!
>> -T، O، ضروریات کو کس بات کا یقین ہو اس بات کا یقین؟
لٹل یتیم کیا تھا ینی کہنا چاہ؟
کیا اس بات کا یقین؟
>> -Ralphie، اینڈی گیا ہے جاؤ، آپ مہربانی کرکے باہر آ جائے گی؟
>> -ٹھیک ہے، ماں!
میں نے صحیح سے باہر ہو جائے گا!
>> میں قریب ہو رہا کیا گیا تھا.
کشیدگی خوفناک تھا.
وہ کیا تھا؟
سیارے کی قسمت توازن میں پھانسی پر لٹکا سکتے.
>> -Ralphie!
اینڈی جانا!
>> بلند آواز سے رونے کے لئے، صحیح باہر ہو -I'll!
>> وہاں -تقریبا، میری انگلیاں اڑ گئے، میرے دماغ اسٹیل کے نیٹ ورک تھا، ہر تاکنا vibrated کے.
یہ جی ہاں، ہاں، ہاں، تقریبا واضح تھا.
>> آپ Ovaltine پینے کے لئے اس بات کا یقین ہونے.
Ovaltine؟
A کے crummy تجارتی؟
کتیا کا بیٹا.
[END پلے بیک]
DAVID J. MALAN: ٹھیک ہے، تو کہ ایک بہت طویل راستہ تھا
خفیہ نگاری متعارف کرانے کے، اور بھی ovaltine.
اصل میں، اس کی عمر کے اشتہار سے یہاں، ovaltine اتنا اچھا کیوں ہے؟
یہ پکا ہوا کے ایک توجہ نکالنے ہے جو malt، خالص کریمی گائے کے دودھ،
اور خاص طور پر ایک دوسرے کے ساتھ، کوکو تیار کی گئی قدرتی phosphatides کے اور وٹامن کے ساتھ.
یہ مزید کے ساتھ قلعہ بند کر رہا ہے اضافی وٹامن بی اور ڈی، یم.
اور تم اب بھی،، اسے حاصل کر سکتے بظاہر ایمیزون پر، ہم یہاں کیا کے طور پر.
>> لیکن حوصلہ افزائی یہاں میں تھا ، خفیہ نگاری متعارف کرانے خاص طور پر
نام سے جانا جاتا خفیہ نگاری کی ایک قسم خفیہ کلید خفیہ نگاری کے طور پر.
اور نام، پوری پتہ چلتا ہے ایک خفیہ کلید خفیہ نظام کی حفاظت،
، ایک طریقہ کار اگر آپ صرف دوڑ دھوپ کے لئے
دو افراد کے درمیان معلومات، ہے صرف مرسل اور صرف وصول کنندہ
ایک خفیہ چابی کچھ قدر جانتے ہیں، کچھ خفیہ جملہ، کچھ خفیہ نمبر، کہ
ان دونوں کو خفیہ کرنے کے لئے کی اجازت دیتا ہے اور معلومات بےرمز.
اور خفیہ نگاری، واقعی، صرف اس ہفتے 0 سے ہے.
>> یہ جہاں آدانوں وہاں ایک مسئلہ ہے، انگریزی میں اصل پیغام کی طرح
یا جو کچھ بھی زبان آپ کو اس کے کلاس میں کسی کو بھیجنا چاہتے ہیں،
یا انٹرنیٹ کے اس پار.
کچھ پیداوار، جس جا رہا ہے وہاں ہے scrambled کے پیغام کو ہونے کے لئے آپ کو اس کے
وصول کنندہ موصول کرنا چاہتے ہیں.
اور اگر میں کسی کو مشرق، اسے بھی حاصل کرتا ہے
آپ کے لئے انہیں نہیں کرنا چاہتا ضروری نہیں کہ یہ بےرمز کرنے کے قابل ہو،
اس کے اندر کی وجہ بلیک باکس، یا الگورتھم،
کچھ طریقہ کار، قدم کی طرف سے کچھ قدم ہے کہ ان پٹ لینے کے لئے دی گئی ہدایات پر،
اور میں تبدیل پیداوار، امید ہے کہ ایک محفوظ طریقے سے.
>> کچھ اور، اصل میں، وہاں ہے اس دنیا میں ذخیرہ الفاظ کے طور پر مندرجہ ذیل ہے.
سادہ متن لفظ ایک ہے کمپیوٹر سائنسدان گے
ان پٹ کو بیان کرنے کے لیے استعمال کرتے ہیں پیغام، انگریزی کی طرح
یا جو کچھ بھی زبان آپ اصل کچھ دیگر انسانی کے لئے بھیجنا چاہتے ہیں.
اور پھر ciphertext کے جدوجہد ہے enciphered کرنے، یا مرموز،
ورژن اسکی.
>> لیکن یہاں ایک دیگر اجزا موجود ہے.
کرنے کے لئے ایک دوسرے ان پٹ نہیں ہے خفیہ کلید خفیہ نگاری.
اور یہ کہ چابی خود ہے، جس میں عام طور پر، ہے،
ہم دیکھیں گے کے طور پر، ایک بڑی تعداد، یا خط، یا لفظ، جو بھی
الگورتھم یہ اصل میں ہے توقع رکھتا ہے.
>> اور تم معلومات کس بےرمز کرتے ہیں؟
تم اسے کس طرح سلجھائیں کرتے ہیں؟
ویسے، آپ کو صرف ریورس اخراج اور آدانوں.
>> دوسرے الفاظ میں کسی نے ایک بار، آپ خفیہ کردہ پیغام، وصول کرتا
وہ یا وہ بس ہے کہ ایک ہی چابی کو جاننے کی.
انہوں ciphertext کے موصول ہوئی ہے.
اور ان دونوں plugging کی طرف سے خفیہ نظام میں آدانوں،
الگورتھم، یہ بلیک باکس، باہر اصل سادہ متن آنا چاہئے.
اور تو ہے کہ بہت ہی اعلی سطح ہے کیا خفیہ نگاری اصل میں ہے کے نقطہ نظر
سب کے بارے میں.
>> تو وہاں حاصل کرنے کی اجازت.
اب نیچے نظر کرتے ہیں کسی چیز کے ڈاکو
حاصل کی جاچکی کے لئے ہم لے جا رہا ہوں گزشتہ ہفتے، اور اس کے لئے اس سیشن
سٹرنگ یہاں.
دن کے آخر میں ایک سٹرنگ صرف حروف کا ایک تسلسل ہے.
>> یہ خوش دنیا ہو، یا ہو سکتا ہے ہیلو کیا Zamyla، یا جو کچھ بھی.
لیکن اس کا کیا مطلب ہے حروف کی ترتیب ہو جائے؟
سچ تو یہ ہے، CS50 لائبریری دیتا ہے ہمارے سٹرنگ کے نام سے ایک ڈیٹا کی قسم.
>> لیکن کوئی اصل نہیں ہے سی میں ایک تار کے طور پر ایسی چیز
یہ واقعی میں سے صرف ایک ہی تسلسل ہے کردار، کردار، کردار،
کردار، واپس، کرنے، واپس کرنے کے لئے واپس، اس کے اندر واپس کرنے کے لئے واپس کرنے کے لئے
آپ کے کمپیوٹر کی میموری، یا RAM کی.
اور ہم میں ہے کہ میں گہری نظر کروں گا مستقبل ہم میموری خود پر نظر ڈالیں تو،
اور استعمال، اور دھمکیوں ملوث ہیں.
>> لیکن سٹرنگ کیا Zamyla پر غور کرتے ہیں.
کا تو صرف نام یہاں انسانی، کیا Zamyla،
اس کی ایک ہی تسلسل ہے حروف، Z-A-M-Y-L-A.
اور اب فرض کرتے ہیں کہ کیا Zamyla کا نام ایک کمپیوٹر کے اندر ذخیرہ کیا جا رہا ہے
پروگرام.
>> ٹھیک ہے، یہ ہمیں چاہئے کہ وجہ سے کھڑا ہے ان حروف کو دیکھنے کے لئے کے قابل ہو جائے
انفرادی طور پر.
تو میں صرف ایک چھوٹا سا اپنی طرف متوجہ کرنے کے لئے جا رہا ہوں یہاں کیا Zamyla کا نام ارد گرد کے باکس.
اور یہ سی میں معاملہ ہے جب تم نے اس Zamyla-- اور شاید کی طرح، ایک تار ہے
اس سٹرنگ سے واپس آ گیا ہے، حاصل سٹرنگ طرح ایک تقریب،
آپ اصل میں جوڑتوڑ کر سکتے ہیں کردار کی طرف سے اس کے کردار.
>> اب، اس کے لئے germane ہے ہاتھ میں، کیونکہ گفتگو
خفیہ نگاری میں آپ کو تبدیل کرنا چاہتے ہیں A B کرنے کے لئے، اور B C کرنے کے لئے، اور ڈی سی،
اور تو آگے، آپ کے قابل ہونے کی ضرورت ہے انفرادی حروف کو دیکھنے کے لئے
ایک تار میں.
آپ کو تبدیل کرنے کے قابل ہو جائے کرنے کی ضرورت ہے کچھ اور، A سے Z
کچھ اور، M کرنے ورنہ، اور اسی طرح کی کوئی چیز.
اور اس طرح ہم ایک طریقہ کی ضرورت، پروگرام، تاکہ
، بات کرنے کے لئے C میں تبدیل کرنے کے قابل ہو جائے کرنے کے اور انفرادی خطوط میں نظر آتے ہیں.
مندرجہ ذیل کے طور پر اور ہم ایسا کر سکتے ہیں.
>> مجھے CS50 IDE میں واپس سربراہ چلتے ہیں.
اور مجھے آگے جانے دو اور ایک نئی فائل بنانے
کہ میں اس وقت string0 بلاتا ہوں، ہماری پہلی مثال کے طور پر، سی ڈاٹ.
اور میں آگے جانے کے لئے جا رہا ہوں اور مندرجہ ذیل کے طور پر اس کی تحریک دیں.
>> تو cs50.h شامل ہیں، اور پھر معیاری io.h شامل،
جس میں تقریبا ہمیشہ کے لئے جا رہا ہوں کم از کم، میری پروگراموں میں استعمال کیا جائے
ابتدائی طور پر.
اہم باطل int کی، اور پھر یہاں ہوں ڈور کیا کرنے جا تار حاصل ہو جاتا ہے.
اور پھر میں جا رہا ہوں آگے بڑھو اور اس کے کیا.
میں آگے جانے کے لئے چاہتے ہیں اور، وویک چیک کے طور پر،
صرف اتنا کہنا، ہیلو، فیصد ے، نیم بڑی آنت، سٹرنگ 0 ہوتا ہے.
افوہ، میں یہاں کیا کیا؟
اوہ، میں نے اس میں پلگ نہیں کیا.
تو سبق، معلوم ہوا ہے کہ جان بوجھ کر نہیں کیا گیا تھا.
>> تو غلطی، زیادہ فیصد اعداد و شمار کے دلائل سے زیادہ تبادلوں کو.
اور اس میں، کہاں ہے لکیر 7-- ٹھیک ہے، تو میں نے کیا،
unquote جو اقتباس، کہ ہے printf کے کرنے کے لئے میری سٹرنگ.
میں نے ایک فیصد کی علامت ہے مل گیا ہے.
لیکن میں دوسری دلیل یاد آ رہی ہے.
>> I کوما ایس، یاد آ رہی ہے جس میں میں نے پچھلے مثالوں میں ضرورت تھی.
لہذا ایک اچھا موقع کو ٹھیک کرنے ایک اور غلطی، اتفاقی طور پر.
اور اب مجھے چلانے کے کیا Zamyla میں string0، قسم.
ہیلو، OK کیا Zamyla.
>> تو ہم نے اس پروگرام کی اس قسم کو چلائے گئے اب چند مختلف اوقات.
لیکن کچھ کرنے دو اس وقت تھوڑا مختلف.
اس کی بجائے صرف کیا Zamyla کی پرنٹنگ کے printf کے ساتھ باہر پورے نام،
کے کردار کی طرف سے اس کردار کو کرنے دو.
>> میں لوپ کے لئے ایک استعمال کرنے کے لئے جا رہا ہوں.
اور میں اپنے آپ کو دینے کے لئے جا رہا ہوں ایک گنتی متغیر، میں نے بلایا.
اور میں iterating کو رکھنے کے لئے جا رہا ہوں، تو جب تک میں ے کی لمبائی سے بھی کم ہے کے طور پر.
>> یہ پتہ چلا ہے، ہم نے نہیں کیا یہ آخری وقت کرتے ہیں،
کہ سی ایک کے ساتھ آتا ہے تقریب سٹرلنگ بلایا.
دن میں واپس، اور میں جنرل اب بھی افعال پر عمل درآمد کرتے وقت،
انسان اکثر بہت منتخب کریں گے succinct کے ناموں آواز کی اس طرح
آپ کیا چاہتے ہیں، یہ ہے کہ اگرچہ طرح چند سر یا حروف لاپتہ.
لہذا سٹرلنگ ہے ایک تقریب کے نام کہ
کے درمیان ایک دلیل لیتا ہے قوسین ایک تار ہونا چاہئے.
اور یہ صرف ایک عددی واپس، کہ سٹرنگ کی لمبائی.
>> 7 لائن پر لوپ کے لئے یہ کتنا ہو رہا ہے میں نے برابر میں 0 گنتی شروع کرنے کے لئے.
یہ اضافہ کرنے جا رہا ہے ہر iteration پر مجھے
1 کی طرف سے، ہم چند بار کر رہا ہوں کے طور پر.
لیکن یہ صرف کیا جا رہا ہے یہ نقطہ تک
میں لمبائی ہے جب سٹرنگ خود کی.
>> تو یہ بالآخر، کا ایک طریقہ ہے، کرداروں پر iterating
تار میں کے طور پر مندرجہ ذیل.
میں نے ایک باہر پرنٹ کرنے کے لئے نہیں جا رہا ہوں پورے سٹرنگ، لیکن فیصد C،
ایک کردار ایک نئی سطر کے بعد کیا.
اور پھر میں جا رہا ہوں آگے بڑھو، اور مجھے اس کی ضرورت
میں پرنٹ کرنا چاہتے ہیں کہنے کے لئے ے کی ith کردار.
>> میں متغیر کی طرف اشارہ کرتا ہے اگر تو سٹرنگ، جہاں کی انڈیکس
آپ اس میں، میں نے کرنے کے قابل ہونے کی ضرورت ہے کر رہے ہیں مجھ ے کے ith کردار دے، کہتے ہیں.
اور C کرنے کا ایک طریقہ ہے مربع بریکٹ کے ساتھ اس.
آپ کو صرف کے نام کا کہنا ہے کہ سٹرنگ، اس معاملے میں کی ہے جس میں.
تو پھر تم مربع بریکٹ، جو ہیں کا استعمال کرتے ہیں عام طور پر صرف آپ کی واپسی یا درج مندرجہ بالا
کی بورڈ پر کلید.
اور پھر آپ کے انڈیکس ڈال آپ کو پرنٹ کرنا چاہتے ہیں کہ کردار.
تو انڈیکس ایک ہونے جا رہا ہے نمبر کا 0، یا 1، یا 2، یا 3، یا ڈاٹ،
ڈوٹ، ڈوٹ، کچھ دوسرے نمبر.
>> اور ہم یقینی بنائیں کہ یہ جا رہا ہے کہ ، صحیح تعداد ہو کیونکہ میں
0 میں گنتی شروع.
اور ڈیفالٹ کی طرف، سب سے پہلے کردار ایک تار میں کنونشن 0 کی طرف سے ہے.
اور دوسرا کردار بریکٹ 1 ہے.
اور تیسرا کردار بریکٹ 2 ہے.
اور تم بھی جانے کے لئے نہیں کرنا چاہتے اب تک، لیکن ہم ہیں کیونکہ نہیں ہوں گے
صرف یہ کہ جب تک میں اضافہ کرنے کے لئے جا تار کی لمبائی کے برابر ہے.
اور جس موڑ پر، لوپ کے لئے اس کو روک دے گا.
>> تو مجھے آگے بڑھو اور اس کو بچانے کے پروگرام، اور رن سٹرنگ 0 بنانے.
لیکن میں مصیبت.
لپیٹ لائبریری تقریب اعلان قسم طرح ساتھ سٹرلنگ اور اب such--،
اس واقف لگتا.
لیکن یہ printf نہیں ہے.
اور یہ تار حاصل نہیں ہے.
>> میں اندر بگاڑ نہیں تھا اسی طرح سے اس وقت.
لیکن نیچے ایک چھوٹا سا یہاں نیچے نوٹس اس کے علاوہ، ہیڈر string.h کے شامل ہیں،
واضح طور پر فراہم کرتے ہیں سٹرلنگ لئے ڈیکلریشن.
تو اصل میں وہاں ایک اشارہ ہے.
>> اور یقینا یہ پتہ چلتا ہے ایک اور ہیڈر فائل موجود ہے
ہم نے استعمال نہیں کیا ہے کہ کلاس میں ابھی تک، یہ بلکہ ہے
آپ ان لوگوں میں شامل آپ کے لئے، کہا جاتا string.h کو.
اور وہ فائل، string.h کے میں سٹرلنگ قرار دے دیا ہے.
تو مجھے آگے بڑھو اور اس کو بچانے کے، سٹرنگ بنانے
0-- اچھا، کوئی خرابی کے پیغامات اس وقت.
>> ./string0 کیا Zamyla، اور I، درج کریں مارا والا ہوں
جس میں نقطہ GetString کے لئے جا رہی ہے سٹرنگ واپس کرنے، ے میں ڈال.
لوپ کے لئے iterate کرنے جا رہا ہے پھر اس ایک وقت میں سے زیادہ S کے کرداروں میں سے ایک،
اور ان کو ایک لائن میں ایک پرنٹ، کیونکہ میں نے آخر میں ہے کہ (ن) تھا.
تو میں نے الٹا سلیش ترک کر سکتا ہے N، اور پھر صرف کیا Zamyla تمام پرنٹ
ایک ہی لائن میں، مؤثر طریقے reimplementing
printf کے، جس میں تمام کہ مفید نہیں ہے.
لیکن اس معاملے میں، میں نے کر دیا ہے نہیں.
میں نے اصل میں ایک چھپی ہوئی کیا ہے ایک وقت میں کردار، فی سطر ایک،
تو ہم اصل اثر دیکھتے ہیں کہ.
>> لیکن میں یہاں ایک بات نوٹ کرنا چاہئے.
اور ہم واپس آ جائیں گے ایک مستقبل ہفتے میں یہ.
یہ اس کہ باہر کر دیتا کوڈ ممکنہ طور پر چھوٹی گاڑی ہے.
>> واضح رہے کہ حاصل سٹرنگ باہر کر دیتا ہے اور زندگی میں کچھ دیگر افعال
ضروری نہیں کہ ہمیشہ ایسا نہیں کرتے آپ توقع کر رہے ہیں کیا واپس آ جائیں.
ہم نے گزشتہ کلاس سے جانتے یہ حاصل ہے کہ میں وقت
سٹرنگ ایک تار واپس کرنے کی توقع کی جاتی ہے.
لیکن کیا اس طرح باہر صارف اقسام تو ایک طویل لفظ، یا پیراگراف، یا مضمون
صرف کافی نہیں ہے کہ وہاں کمپیوٹر میں میموری فٹ ہونے کے لئے.
>> کی طرح، کیا کچھ ہو جاتا ہے تو ہڈ کے نیچے غلط؟
یہ اکثر ایسا نہیں ہو سکتا لیکن یہ ایک بار ہو سکتا ہے
تھوڑی دیر میں، بہت بہت کم ہے.
چنانچہ جب حاصل سٹرنگ باہر کر دیتا ہے اور اس طرح کے افعال ضروری نہیں کہ ایسا
ہمیشہ ڈور واپس.
انہوں نے کچھ غلط قدر واپس کر سکتے ہیں، کچھ پرہری قدر تو بات کرنے
کہ اشارہ کرتا ہے کچھ غلط چلا گیا ہے.
اور اگر تم صرف اس سے پتہ چلے گا اب یہ کلاس میں سیکھا ہے،
یا کچھ مزید دستاویزات پڑھ کر.
واضح رہے کہ حاصل سٹرنگ باہر کر دیتا ہے شہوت انگیز null کے نام سے ایک قدر واپس کر سکتے ہیں.
شہوت انگیز null ایک خاص قدر ہے کہ ہم کریں گے ایک مستقبل ہفتے میں پر واپس آنا.
لیکن اب کے لئے، صرف میں چاہتا ہوں کہ اگر جانتے آگے بڑھنے میں بہت مناسب ہونے کا
حاصل سٹرنگ کا استعمال کرتے ہوئے، میں نے صرف اسے فون نہیں کرنا چاہئے،
اور آنکھ بند کر کے اس کی واپسی قیمت کا استعمال، بھروسہ کرنے یہ ایک تار ہے.
>> میں نے پہلی، کہنا چاہئے ارے، صرف، ایک منٹ انتظار کرو
ے برابر نہیں کرتا ہے تو آگے بڑھنے کے شہوت انگیز null، جہاں کالعدم، دوبارہ،
صرف کچھ خاص قدر ہے.
اور یہ صرف خصوصی قیمت ہے آپ کو حاصل سٹرنگ کے بارے میں فکر کرنے کی ضرورت ہے.
سٹرنگ یا تو جا رہا ہے حاصل کریں ایک تار یا شہوت انگیز null واپس کرنے.
>> اور یہ فجائیہ نقطہ برابر دستخط آپ کو شاید ریاضی کلاس سے معلوم ہو سکتا ہے
آپ کے ساتھ ایک برابر علامت کو اپنی طرف متوجہ کر سکتے ہیں کہ اس کے ذریعے ایک لکیر کے برابر نہیں اس بات کی نشاندہی کرنے کے لئے.
یہ عام طور پر ایک کردار نہیں ہے آپ اپنے کی بورڈ پر ٹائپ کر سکتے ہیں.
اور اس طرح سب سے زیادہ پروگرامنگ زبانوں میں، آپ کے برابر نہیں کہنا چاہتا ہوں جب،
اگر آپ کو ایک فجائیہ نقطہ کا استعمال، دوسری صورت میں دھماکے کی آواز کے طور پر جانا.
تو آپ کو بنگ، برابر کہتے ہو منطقی طور پر، برابر نہیں کا مطلب ہے.
یہ ایک بڑا وہاں نہیں ہے صرف کی طرح ہے مقابلے، یا اس کے برابر، یا سے کم
یا برابر اپنے کی بورڈ پر کلید کے لیے کہ کسی ایک علامت میں یہ سب کرتا ہے.
تو یہ کیوں ہے، ماضی مثالوں میں، کیا تم چاہو اوپن بریکٹ کیا، اور اس کے بعد
ایک برابر علامت، کے لئے کیا کرنے یا اس سے زیادہ،، کا کہنا ہے کہ مقابلے میں کم.
>> لہذا takeaway ہے یہاں کیا ہے؟
یہ بس اب کا ایک طریقہ ہے اس نحو متعارف کرانے، اس خصوصیت،
فرد پر iterating ایک سٹرنگ میں حروف.
اور صرف ان لوگوں مربع طرح بریکٹ، آپ کو ان پر حاصل کرنے کے لئے کی اجازت دیتے ہیں
کے طور پر ان مربع بریکٹ غور قسم یہ بنیادی اشارہ
ڈیزائن، جس کے تحت ہر ایک تار کے اندر کردار
قسم کے نیچے کہیں میں boxed جاتا ہے آپ کے کمپیوٹر کی میموری میں ڈاکو.
>> لیکن اس کی ایک مختلف بنانے کے لئے ہیں.
یہ اس کہ باہر کر دیتا پروگرام درست ہے.
CS50 کی محور فی پس جائزہ لینے کے لئے کوڈ، اب یہ درست ہے.
خاص طور پر اب کہ میں نے کے لئے جانچ پڑتال کر رہا ہوں شہوت انگیز null، اس پروگرام کریش نہیں کرنا چاہئے.
اور میں صرف تجربے سے جانتے ہیں کہ.
لیکن اس کے اور کچھ نہیں ہے ہم واقعی غلط کر سکتے ہیں.
لیکن یہ بہت، اچھی طرح سے ڈیزائن نہیں ہے کیونکہ بنیادی باتیں کرنے کے لئے واپس جانے دو.
>> سب سے پہلے، principles-- لوپ کے لئے ایک کیا کرتا ہے؟
لوپ کے لئے ایک تین باتیں کرتا ہے.
یہ کچھ initializes ہے قدر، تم سے یہ پوچھنا ہے تو.
یہ ایک شرط چیک کرتا ہے.
اور پھر بعد ہر iteration کے، ہر ایک سائیکل کے بعد،
یہ کچھ ہے increments قدر، یا اقدار، یہاں.
>> تو اس کا کیا مطلب ہے؟
ہم میں 0 ابتدا.
ہم چیک کریں اور بنانے یقین ہے کہ میں بھی کم ہے ے کی لمبائی، Z-A-M-Y-L-A ہے جو،
اتنی کم 6 ہے جو.
اور، یقینا، 0 کم 6 کے طور پر.
>> ہم کیا Zamyla کے نام سے Z باہر پرنٹ.
پھر ہم 0 سے 1 تک میں اضافہ.
پھر ہم نے، چیک 1 کم ہے ے کی لمبائی سے؟
ے کی لمبائی 6 ہے.
جی ہاں، یہ ہے.
>> تو ہم کیا Zamyla کا نام، ZA میں ایک پرنٹ.
ہم میں سے 0، 1، 2 کرنے کے اضافہ.
پھر ہم نے، چیک کے مقابلے میں 2 کم ہے کیا Zamyla کے نام کی لمبائی.
6- تا 2 کم 6 ہے.
جی ہاں، میں M اب کو پرنٹ کریں کیا Zamyla کا نام، تیسرا کردار.
>> اہم یہاں ہر ایک پر یہ ہے کہ کہانی کا تکرار، میں کر رہا ہوں،
میں کیا Zamyla کی لمبائی سے بھی کم ہے؟
لیکن پکڑنے ہے کہ اسٹرلنگ ایک جائیداد نہیں ہے.
آپ کے وہ لوگ ہیں جنہوں نے پروگرام کیا اعلی درجے کا Java یا دیگر زبانوں میں اس سے پہلے
ایک تار ہے کی طوالت معلوم ہو سکتا ہے ایک پراپرٹی، صرف کچھ صرف قدر پڑھ.
>> اس معاملے میں C میں، یہ ہے کہ اگر لفظی ہے کہ ایک تقریب
کی تعداد کے حساب ہر بار کیا Zamyla میں حروف
ہم اس تقریب کو فون.
ہر بار جب آپ کو استعمال کرنے کے لئے کمپیوٹر سے پوچھیں سٹرلنگ، یہ، کیا Zamyla پر ایک نظر لے جا رہا ہے
اور کہہ Z-A-M-Y-L-A، 6.
اور یہ 6 لوٹتا.
اگلی بار جب آپ کو فون لوپ کے لئے اس کے اندر،
یہ کیا Zamyla کو دیکھنے کے لئے جا رہا ہے ایک بار پھر، کا کہنا ہے کہ Z-A-M-Y-L-A، 6.
اور اس کو واپس کرنے کے لئے 6 ہو رہا ہے.
تو یہ ڈیزائن کے بارے میں بیوکوف کیا ہے؟
>> کیوں میرا کوڈ نہیں ایک سے باہر 5 کے 5 ہے حق اب ڈیزائن کے لئے، تو بات کرنے کے لئے؟
ٹھیک ہے، میں پوچھ رہا ہوں ایک بیکار میں سوال.
مجھے ضرورت سے زیادہ میں زیادہ کام کر رہا ہوں.
>> تو اگرچہ اس سوال کا جواب ہاں میں ہوں، درست ہے
کمپیوٹر سے پوچھ، کیا ہے کیا Zamyla کی طوالت دوبارہ،
اور ایک بار پھر، اور پھر سے، اور پھر سے؟
اور یہ کہ جواب ہے کبھی نہیں تبدیل کرنے جا رہا.
یہ ہمیشہ 6 ہو رہا ہے.
>> لہذا اس سے بہتر حل اس کے اگلے ورژن ہو گا.
مجھے آگے چلتے ہیں اور ایک میں ڈال دیا string1.c بلایا علیحدہ فائل،
صرف اسے الگ رکھنے کے لئے.
اور اس کے لئے ایک میں پتہ چلا لوپ، آپ اصل میں کر سکتے ہیں
ایک بار میں ایک سے زیادہ متغیر کا اعلان.
>> تو میں میں رکھنے اور 0 سے اسے قائم کرنے جا رہا ہوں.
لیکن میں یہ بھی جا رہا ہوں ایک کوما شامل، اور کہتے ہیں،
مجھے جن ن نامی ایک متغیر، دے قدر ے کی سٹرنگ کی لمبائی کے برابر ہے.
اور اب، براہ مہربانی میری حالت بنانے اتنی دیر میں (ن) سے بھی کم ہے کے طور پر.
>> تو اس طرح میں، منطق ہے دن کے آخر میں ایک جیسی.
لیکن مجھے یاد کر رہی ہوں 6 قیمت، اس معاملے میں.
کیا Zamyla کے نام کی لمبائی کیا ہے؟
اور مجھے ن میں ڈال رہا ہوں.
>> اور میں اب بھی کر رہا ہوں. شرط ہر بار.
0 6 سے کم ہے؟
1 6 سے کم ہے؟
6 کے مقابلے میں 2 سے کم، اور تو آگے ہے؟
>> لیکن میں کمپیوٹر نہیں پوچھ رہا ہوں پھر، اور پھر، کیا ہے
کیا Zamyla کے نام کی لمبائی؟
کیا Zamyla کے نام کی لمبائی کیا ہے؟
اس کیا Zamyla کے نام کی لمبائی کیا ہے؟
میں لفظی یاد کر رہا ہوں کہ پہلا اور صرف اس دوسرے متغیر (ن) میں جواب دے.
تو یہ اب نہ صرف ہو جائے گا صحیح، لیکن یہ بھی اچھی طرح سے ڈیزائن.
>> اب، سٹائل کے بارے میں کیا؟
میں نے اپنی متغیر کا نام ہے بہت اچھی، میں کہیں گے.
وہ ابھی سپر succinct کے ہیں.
اور یہ کہ مکمل طور پر ٹھیک ہے.
>> آپ کو صرف ایک ہے تو ایک پروگرام میں سٹرنگ،
آپ کے طور پر اچھی طرح سے اس سٹرنگ کے لئے S فون کر سکتے ہیں.
آپ کو صرف ایک متغیر ہے تو ایک پروگرام میں حساب کے لئے،
آپ کے ساتھ ساتھ یہ میں نے فون کر سکتے ہیں.
آپ کو ایک کی لمبائی ہے تو، ن اس کے ساتھ ساتھ سپر عام ہے.
لیکن میں اپنے کوڈ کے کسی بھی تبصرہ نہیں کیا ہے.
>> I reader-- مطلع نہیں کیا ہے کہ میری TF، یا TA ہے کہ آیا،
یا صرف سمجھا جاتا ہے colleague-- اس پروگرام میں کیا چل رہا کیا جائے گا.
اور اتنا اچھا سٹائل حاصل کرنے کے لئے، میں کرنا چاہتا ہوں گے کیا
this-- کچھ ہے جیسے ان پٹ کے لئے صارف سے پوچھو.
اور اگر میں دوبارہ سے لکھنا کر سکتے تھے طریقوں میں سے اس سے کسی بھی تعداد.
>> اس بات کا یقین حاصل کرنے کے اس بات کا یقین s-- سٹرنگ ایک تار واپس آئے.
اور پھر یہاں میں اور یہ شاید ہے سب سے اہم comment-- میں iterate
ایک وقت میں سے ایک کے کرداروں کے دوران.
اور میں نے کسی کو استعمال کر سکتا ہے انگریزی زبان کے انتخاب
یہاں ہر بیان کرنے کے لیے کوڈ کے ان حصوں میں سے.
>> میں نے ایک ڈال نہیں ہے کہ نوٹس کوڈ کی ہر لائن پر تبصرہ،
واقعی دلچسپ پر صرف پیاروں، اپنے پیاروں کہ
کچھ معنی ہے کہ میں شاید کیا کسی کو سپر واضح بنانا چاہتے ہیں
میرا کوڈ پڑھنے.
اور تم کیوں بلا رہے ہیں سٹرنگ ان پٹ کے لئے صارف سے پوچھنا؟
یہاں تک کہ کسی ایک ضروری نہیں ہے تمام ہے کہ وضاحتی.
لیکن یہ ایک کہانی بتا مدد ملتی ہے کیونکہ کہانی میں دوسری لائن کر رہا ہے، براہ کرم یقینی بنائیں
تار حاصل ایک تار واپس آئے.
>> اور کہانی میں تیسری لائن، ہے ایک ہے میں حروف پر iterate
ایک وقت میں.
اور اب صرف اچھا اقدام کے لئے، میں آگے بڑھو اور شامل کرنے کے لئے جا رہا ہوں
ایک اور تبصرہ یہ کہ صرف ے پرنٹ کردار میں ویں کہتی.
اب، کیا میں نے کیا دن کے آخر میں؟
>> میں نے کچھ انگریزی شامل کر لیا ہے تبصروں کی شکل میں الفاظ.
سلیش سلیش علامت کا مطلب ہے، ارے، کمپیوٹر میں اس انسان کے لئے ہے،
آپ کے لئے نہیں ہے، کمپیوٹر.
سو انہوں نے منطقی طور پر نظر انداز کر رہے ہیں.
وہ صرف وہاں ہیں.
>> اور، یقینا، CS50 IDE ان کے طور پر ظاہر کرتا ہے بال سفید ہو جانا، مفید، لیکن اہم نہیں ہونے کے طور پر
پروگرام کے لئے.
اب آپ کیا کر سکتے ہیں نوٹس.
آپ C جانتے چاہے پروگرامنگ یا نہیں، آپ
صرف اس کو واپس کھڑے کر سکتے ہیں پروگرام، اور تبصرے ملائی.
ان پٹ کے لئے صارف سے پوچھو، بات کو یقینی بنانے سٹرنگ ایک تار واپس آئے حاصل،
ے میں حروف پر iterate ایک وقت میں ایک، کردار کو پرنٹ
کردار میں ویں s-- میں آپ ایسا نہیں کرتے یہاں تک کہ کوڈ میں نظر ہے
اس پروگرام کیا کرتا ہے کو سمجھنے کے لئے.
اور ابھی تک، بہتر، آپ اپنے آپ کو نظر آتے ہیں تو ایک یا دو ہفتے میں اس پروگرام میں،
یا ایک ماہ، یا ایک سال، تم بھی ضرورت نہیں ہے
کوڈ گھورتے، یاد کرنے کی کوشش،
جو میں نے اس کوڈ کے ساتھ کرنے کی کوشش کر رہا تھا؟
>> تم نے اپنے آپ سے کہا ہے.
آپ خود ہی بیان کر دیا ہے، یا کسی ساتھی، یا ٹی اے، یا TF.
اور اس طرح یہ اب ہو گی درست، اور اچھا ڈیزائن،
اور بالآخر اچھا سٹائل کے ساتھ ساتھ.
تو ذہن میں رکھنے کی ہے.
>> تو دوسرے ایک ہے بات یہ ہے کہ میں یہاں کیا کرنے جا رہا ہوں
کہ اب بالکل وہی جو ہے ظاہر کر سکتے ہیں ہڈ کے نیچے جا رہا.
تو یہ خصوصیت ہے C، اور دوسری زبانوں میں،
کہا جاتا typecasting سے کہ یا تو لپیٹ
یا واضح طور پر آپ کو تبدیل کرنے کی اجازت دیتا دوسرے ایک ڈیٹا کی قسم سے.
ہم اتنے دوچار کر دیا گیا ہے ڈور کے ساتھ جہاں تک آج.
>> اور ڈور حروف ہیں.
لیکن ہفتے سے یاد 0، حروف کیا ہیں؟
حروف صرف ایک تجرید ہیں اعداد دشملو تعداد کے اوپر،
اور دشملو تعداد واقعی صرف ایک ہیں بائنری تعداد کے اوپر تجرید،
ہم اس کی وضاحت کے طور پر.
>> لہذا حروف کے نمبر ہیں.
اور اعداد حروف ہیں، صرف سیاق و سباق پر منحصر ہے.
اور یہ کہ اندر باہر کر دیتا ہے ایک کمپیوٹر پروگرام کی،
کیا آپ دیکھنا چاہتا ہوں کہ کس طرح کی وضاحت کر سکتے اس پروگرام کے اندر بٹس پر؟
>> 0 ہفتے ہم نے اس سے یادآوری ASCII، جس میں صرف اس کوڈ آن ہے
نمبرز پر تعریفیں حروف.
اور ہم نے کہا، دارالحکومت ایک 65 ہے.
کیپٹل بی 66 ہے، اور تو آگے.
>> اور نوٹس، ہم بنیادی طور پر حروف پر ہے یہاں اوپر والی لائن، C انہیں فون کرے گا کے طور پر،
حروف، اور اس کے بعد دوسری صف پر ints کے.
اور یہ آپ کو تبدیل کر سکتے ہیں باہر کر دیتا ہے بغیر کسی رکاوٹ عام طور پر دو، کے درمیان.
اور ہم ایسا کرنا چاہتے ہیں تو اس نے جان بوجھ کر، ہم
سے نمٹنے کے لئے چاہتے ہیں کر سکتے کچھ اس طرح.
>> ہم تبدیل کرنے کے لئے چاہتے ہیں کر سکتے کم کرنے کے لئے اوپری کیس
کیس، یا اوپری کیس میں کم کیس.
اور یہ بدل جاتا ہے وہاں یہاں اصل میں ایک پیٹرن
ہم صرف ایک لمحے میں گلے لگانے کر سکتے ہیں.
لیکن ایک سب سے پہلے نظر آتے ہیں واضح طور پر یہ کر کے مثال.
>> میں CS50 IDE میں واپس جانے کے لئے جا رہا ہوں.
میں نے ایک پیدا کرنے کے لئے جا رہا ہوں فائل کی ASCII 0.c. بلایا
اور میں آگے جانے کے لئے اور شامل کرنے کے لئے جا رہا ہوں میری سب سے اوپر معیار io.h، int اہم باطل
میری تقریب کے سب سے اوپر.
اور پھر میں کیا کرنے جا رہا ہوں لوپ کے لئے ایک مندرجہ ذیل میں برابر سے،
کی، کا کہنا ہے کہ 65 دو.
>> اور پھر میں سے کم ہونے جا رہا ہے حروف تہجی میں 65، اس کے علاوہ 26 حروف.
تو میں نے کمپیوٹر دونگا وہاں میرے لئے ریاضی کا کام.
اور پھر اس لوپ کے اندر، کیا میں پرنٹ کرنے کے لئے جا رہا ہوں؟
>> ٪ ج٪ میں (ن) الٹا سلیش ہے.
اور اب میں دو اقدار میں ہونا چاہتے.
میں نے عارضی طور پر سوال ڈال دیا ہے سوال مدعو کرنے کے لئے وہاں کا پرتیک.
>> میں نے آگے 65 سے iterate کرنا چاہتے ہیں حروف تہجی کے 26 حروف کے لئے،
ہر iteration پر باہر پرنٹ ہے کہ کردار کی اٹوٹ برابر.
دوسرے الفاظ میں، میں چاہتا ہوں سے زیادہ 26 اعداد پرنٹنگ iterate کے
ASCII کردار کیا ہے، خط، اور اسی نمبر is-- کیا
واقعی صرف تخلیق اس سلائڈ سے چارٹ.
تو ان سوالیہ نشان کیا ہونا چاہئے؟
>> ٹھیک ہے، یہ دوسری پتہ چلا ہے کہ ایک صرف متغیر میں ہونا چاہئے.
میں نے ایک بڑی تعداد کے طور پر اس کو دیکھنے کے لئے چاہتے ہیں.
اور مشرق دلیل یہاں، میں نے کمپیوٹر کو بتا سکتے ہیں
اس عددی کے علاج کے لئے میں نے ایک کردار کے طور پر، تو کے طور پر
فیصد سی کے لئے یہاں یہ متبادل
>> دوسرے الفاظ میں، تو مجھے، انسانی پروگرامر، جانتے
یہ صرف نمبرز ہیں دن کے آخر میں.
اور میں 65 کو چاہئے کہ پتہ کچھ کردار نقشہ.
اس لحاظ سے واضح کاسٹ کے ساتھ، ایک خانے کے ساتھ،
آپ کرنا چاہتے ہیں ڈیٹا کی قسم کا نام میں تبدیل، اور ایک بند قوسین،
آپ بتا سکتے ہیں کمپیوٹر، ارے، کمپیوٹر،
ایک چار لیے اس عددی تبدیل.
>> تو میں نے اس کو چلانے کے جب پروگرام مرتب کرنے کے بعد،
کی میں ASCII 0 دکھانے get-- ہے دیکھتے ہیں.
یہ خوفناک، میں نے غلط ہے یہاں کیا کیا؟
اگھوشیت شناخت کنندہ کے استعمال، ٹھیک ہے، جان بوجھ کر نہیں،
لیکن چلو دیکھتے ہیں اگر ہم نہیں کر سکتے اس کے ذریعے وجہ.
>> تو لائن تو میں نہیں مل سکا five-- بہت دور کو screwing سے پہلے.
ٹھیک ہے.
اس بلاگ کے بارے لائن 5 کے برابر ہے 65-- میں دیکھتا.
لہذا C میں یاد رکھیں، کچھ کے برعکس آپ پہلے پروگرامنگ ہے تو زبانوں
تجربے، آپ کو کرنا پڑے کمپیوٹر بتانے کے لئے،
سکریچ برعکس، کیا متغیر کی قسم یہ ہے.
>> اور میں یہاں ایک اہم فقرہ بھول گیا.
لائن پانچ میں، میں نے استعمال کرنا شروع کر دیا ہے.
لیکن میں C بتایا ہے کیا ڈیٹا کی قسم یہ ہے.
تو میں یہاں میں جانے کے لئے جا رہا ہوں اور ، کا کہنا ہے آہ، یہ ایک عدد صحیح بناتے.
>> اب میں آگے بڑھو اور recompile کرنے جا رہا ہوں.
کہ مقررہ.
./ascii0 درج، اس قسم کا اچھا ہے.
نہ صرف یہ کرنے کے لئے سپر تیز ہے ، کمپیوٹر سے یہ سوال پوچھنا
بلکہ ایک سلائڈ پر اسے تلاش کر کے مقابلے میں، یہ فی لائن طباعت، ایک 65 ہے،
B میں اس وقت سے down-- 66، تمام طریقہ ہے ، حروف Z کے لیے اس کے 26 لئے اوقات ہی کیا
جس میں 90 ہے.
اور، اصل میں، تھوڑا سا زیادہ ذہین گے
میرے لئے کیا گیا ہے انحصار نہیں کمپیوٹر پر 26 کو شامل کرنے کی.
میں نے ابھی کیا کیا جا سکتا 90 اس کے ساتھ ساتھ، اتنی دیر تک
میں نے دو بار ایک ہی غلطی نہیں کرتے کے طور پر.
I ذریعے جانا چاہتے ہیں Z، بس چپ نہیں Y کے ذریعے.
>> تو ہے کہ ایک واضح کاسٹ ہے.
یہ اس کہ باہر کر دیتا بھی ضروری نہیں ہے.
مجھے آگے بڑھو اور اس rerun ہیں سنکلک، اور دوبارہچلانے ASCII 0.
یہ پتہ چلا ہے C بہت ہوشیار ہے.
>> اور printf، خاص طور پر، بہت ہوشیار ہے.
آپ کو صرف دو مرتبہ ایک میں گزرتے ہیں دونوں جگہ دار کے لئے، printf کے
، احساس کریں گے اوہ، ٹھیک ہے، میں آپ کو معلوم ہے مجھے ایک کچھ بڑی تعداد integer-- دی،
65، یا 90، یا جو کچھ بھی طرح.
لیکن میں آپ کو مجھ سے چاہتے ہیں کہ دیکھیں ایک کردار کی طرح ہے کہ نمبر کی شکل.
اور اس طرح printf کے لپیٹ ڈال سکتا کے ساتھ ساتھ آپ کے لئے ایک چار int کی.
تو یہ بالکل ایک مسئلہ نہیں ہے.
>> لیکن، محسوس کیونکہ اس تلیتا کے ہم اصل میں اس کے ساتھ ساتھ یہ کر سکتے ہیں.
مجھے آگے بڑھو اور ایک بنا دو this-- ASCII 1.c. کے دیگر ورژن
اور بجائے اس پر iterating integers کے، واقعی آپ کے دماغ اڑا سکتے ہیں
کرداروں پر iterating کر.
ایک چار سی دارالحکومت A ہو جاتا ہے تو، میں نے آگے بڑھو اور ایسا کرنا چاہتے ہیں،
اتنی دیر C سے کم یا برابر ہے کے طور پر دارالحکومت Z. اور ہر iteration پر
میں نے C اضافہ کرنا چاہتے ہیں، میں کر سکتا ہوں اب یہاں میرے printf کے مطابق
کہہ دو فیصد C ہے فیصد میں پھر، کوما C.
>> اور اب، میں دوسری سمت میں جا سکتے ہیں، واضح طور پر کردار کاسٹنگ
ایک عددی.
لہذا، ایک بار پھر، کہ کیوں آپ ایسا کریں گے؟
اس کے الگ الگ کرنے کیلئے ایک چھوٹا سا عجیب ہے کرداروں کے لحاظ سے شمار کریں.
>> لیکن اگر آپ کو کیا سمجھ میں ہڈ کے نیچے جا رہا،
کوئی جادو واقعی بات ہے.
تم صرف کہہ رہے ہیں، ارے، کمپیوٹر دے مجھے پروپوزل کی گذارش چار کے سی نامی ایک متغیر.
دارالحکومت A. اس کی ابتدا اور ایک کی قیمت درج معاملہ محسوس.
>> C کے کرداروں کے طور پر، سے یاد گزشتہ ہفتے، آپ کو ایک کی قیمت درج کا استعمال.
ڈور کے لئے، الفاظ کے لئے، مفید، آپ ڈبل قیمت درج کرنے کا استعمال کرتے ہیں.
OK، کمپیوٹر، یہی کیا کرو تاکہ، کردار کے طور پر طویل عرصے سے کم ہے
یا Z کے برابر.
اور میں اپنے ASCII ٹیبل سے جانتے ہیں کہ تمام ان ASCII کوڈ کے ملحق ہیں.
>> کوئی فرق نہیں ہے.
تو یہ صرف ایک Z کے ذریعے ہے، ایک کی تعداد میں ہر طرف سے الگ.
اور پھر میں اضافہ کر سکتے ہیں ایک چار، میں واقعی چاہتے ہیں تو.
دن کے آخر میں، یہ صرف ایک نمبر ہے.
مجھے یہ معلوم ہے.
تو میں صرف اس کے لئے 1 کا اضافہ کرنے کے لئے یہ سمجھتے سکتا.
>> اور پھر اس وقت، میں نے سی پرنٹ، اور پھر اٹوٹ برابر.
اور میں یہ بھی واضح کی کاسٹ کی ضرورت نہیں ہے.
میں printf اور دو کر سکتے ہیں کمپیوٹر کے اعداد و شمار چیزیں،
تاکہ اب میں چلاتے ہیں ، Ascii1./ascii1 بنانے
مجھے اچھی طرح بالکل وہی بات ہو جاؤ.
>> بیکار پروگرام، کوئی نہیں اگرچہ اسکا سافٹ ویئر لکھنے کے لئے جا رہا ہے
پتہ کرنے کے لئے، وہ کیا تھا A کرنے کے لئے نقشے ہیں یا یا نمبر، B، Z؟
آپ کو صرف یہ گوگل میں جا رہے ہیں، یا یہ اوپر دیکھو آن لائن، یا یہ اوپر دیکھو
ایک سلائڈ، یا جیسے پر.
تو جہاں یہ اصل میں مفید حاصل کرتا ہے؟
>> ٹھیک ہے، کہ کی بات سلائڈ، وہاں کے نوٹس
بڑے کے درمیان یہاں ایک حقیقی پیٹرن اور چھوٹے حادثاتی نہیں تھا.
نوٹس کہ دارالحکومت A 65.
چھوٹے ایک 97 ہے.
اور کس حد تک دور ایک کم کیس ہے؟
>> تو 65 سے 97 سے کتنے قدم کے فاصلے پر ہے؟
چنانچہ 97 مائنس 65 32 ہے.
تو دارالحکومت میں 65 ہے.
آپ کو اس کے لئے 32 شامل کریں، آپ کو ایک چھوٹے ملتا.
اور، مساوانہ، آپ 32 منہا تو، آپ کو دارالحکومت پر واپس حاصل A-- B کے ساتھ اسی
چھوٹی سی بی کے لئے، چھوٹی سی کے لئے بڑی سی.
>> ان کمیوں میں سے سب 32 کے علاوہ ہیں.
اب، اس کے لئے ہمیں اجازت دینے کے لئے لگ رہے ہو گے مائیکروسافٹ ورڈ کی طرح کچھ کرنا،
یا Google Docs، جہاں آپ کو نمایاں ہر چیز کو منتخب کر سکتے ہیں اور پھر کہتے ہیں،
چھوٹے کے لئے تمام تبدیل کرنے، یا اپر کیس میں تمام تبدیل،
یا صرف پہلا لفظ کو تبدیل اوپری کیس کے لئے ایک سزا کی.
ہم اصل میں کچھ کر سکتے ہیں خود کو اس طرح.
>> مجھے آگے چلتے ہیں اور ایک فائل کو بچانے کے یہاں 0.c. استفادہ بلایا
اور آگے بڑھو اور ایک پروگرام کوڑا دو کہ بالکل کے طور پر مندرجہ ذیل ہے کہ کرتا ہے.
تو CS50 لائبریری شامل.
اور معیاری I / O شامل.
>> اور میں اس کو جلد ہی آ رہا ہے پتہ ہے.
تو میں نے اس میں ڈال کرنے جا رہا ہوں وہاں پہلے سے ہی، string.h کے،
تو میں تک رسائی حاصل ہے سٹرلنگ کی طرح باتیں،
اور پھر ہمیشہ کی طرح، اہم باطل int کی.
اور پھر میں نے آگے جانے کے لئے جا رہا ہوں اور ڈور ایسا سٹرنگ حاصل ہو جاتا ہے،
صرف صارف سے ایک تار حاصل کرنے کے لئے.
اور پھر میں جا رہا ہوں میرے وویک چیک کرتے.
اسٹرنگ برابر شہوت انگیز null نہیں ہوتا، پھر اس کے آگے بڑھنے کے لئے محفوظ ہے.
اور مجھے کیا کرنا چاہتے ہیں؟
I، میں نے کے برابر ہے 0 سے iterate کرنے جا رہا ہوں اور ن ے کی سٹرنگ کی لمبائی تک.
>> اور میں اتنی دیر کے طور پر ایسا کرنے جا رہا ہوں میں (ن) سے بھی کم ہے، اور میں پلس پلس.
اب تک، میں واقعی میں صرف ہوں آگے سے خیالات قرض.
اور اب میں ایک شاخ کے متعارف کرانے کے لئے جا رہا ہوں.
>> تو سکریچ، جہاں میں واپس لگتا ہم، راستے میں ان لوگوں فورکس تھا
اور گزشتہ ہفتے سی میں میں کرنے جا رہا ہوں ، اس کا کہنا ہے کہ اگر ایس کردار میں ویں
ہے یا اس سے زیادہ کیس ایک کم کے برابر،
and-- شروع میں آپ لفظی گے ، اور، لیکن C میں آپ ایمپرسینڈ کہنا
ampersand-- اور S میں کردار میں ویں سے کم یا کیس Z کو کم کرنے کے برابر ہے،
کی دلچسپ کچھ کرتے ہیں.
اصل میں ایک کو پرنٹ کریں کوئی NEWLINE ساتھ کردار
اس سٹرنگ میں کردار ہے، تار میں کردار میں ویں.
>> لیکن چلو آگے بڑھو اور اس سے 32 منہا.
ورنہ تو میں کردار سٹرنگ ہم دیکھ رہے ہیں کہ
تھوڑا ایک کے درمیان نہیں ہے اور تھوڑا Z، آگے بڑھو
اور صرف کی قیمتوں میں استحکام اسے باہر پرنٹ.
تو ہم نے متعارف کرایا ہے اس نتھی سنکیتن
ہمارے ڈور میں حاصل کرنے کے لئے میں ویں سٹرنگ میں کردار.
>> میں نے کچھ مشروط منطق شامل کیا ہے جیسے گزشتہ ہفتے کے ہفتے میں ایک، جہاں میں شروع
میں صرف اپنے بنیادی استعمال کر رہا ہوں کیا ہے کی تفہیم
ہڈ کے نیچے جا رہا.
ے کی میں ویں کردار ہے ایک سے زیادہ یا برابر؟
کی طرح، یہ، 97، یا 98 ہے یا 99، اور تو آگے؟
>> لیکن یہ بھی سے کم یا برابر ہے چھوٹے Z کی قدر کرنے کے لئے؟
اور اگر ایسا ہے تو، کیا اس لائن مطلب ہے؟
14، اس طرح کی ہے پورا خیال کے جراثیم،
کی طرف سے حرف کو فائدہ بس تفریق کو اس سے 32،
اس معاملے میں، میں جانتا ہوں کہ اس کی وجہ سے فی، چارٹ، میرا نمبر نمائندگی کر رہے ہیں کہ کس طرح.
تو آگے بڑھو اور اس کو چلانے، 0.c استفادہ تالیف کے بعد،
اور رن استفادہ 0.
>> کی طرح کچھ میں ٹائپ چلو تمام چھوٹے کیا Zamyla درج.
اور اب ہم تمام بڑے میں کیا Zamyla ہے.
کے تمام چھوٹے روب میں ٹائپ کریں.
کے تمام چھوٹے جیسن کوشش کرتے ہیں.
اور ہم ہو رہی رکھنے کے مجبور کر کیپٹلائزیشن.
ایک معمولی مسئلے سے نہیں ہے کہ میں نوعیت کا اندازہ نہیں تھا.
میری نئی فوری طور پر ختم کیا جاتا نوٹس ان کے نام کے طور پر ایک ہی لائن پر،
جس میں ایک چھوٹا سا گندا محسوس ہوتا ہے.
>> تو میں یہاں جانے کے لئے جا رہا ہوں، اور اصل میں اس پروگرام کے آخر میں
ایک newline کردار باہر پرنٹ.
وہ سب ہے.
printf کے ساتھ، آپ کو کرنے کی ضرورت نہیں متغیر یا فارمیٹ کوڈ میں منتقل.
آپ لفظی صرف پرنٹ کر سکتے ہیں ایک newline طرح کچھ.
>> تو آگے بڑھو اور کرنے دو دوبارہ 0 فائدہ، یہ ہے rerun، کیا Zamyla.
اور اب یہ ایک چھوٹا سا خوبصورت ہے.
ابھی، میری فوری طور اس کی اپنی نئی لائن پر ہے.
تو ہے کہ سب ٹھیک ہے اور اچھا ہے.
تو یہ ایک اچھی مثال ہے.
لیکن مجھے یہ بھی ضروری نہیں کہ ایسا نہیں کرتے مشکل کوڈ 32 کرنے کی ضرورت ہے.
آپ کو پتہ ہے؟
میں نے کبھی ایسا نہیں کرتے say-- سکتا ہے یاد کیا فرق ہے.
>> لیکن میں جانتا ہوں کہ اگر میں ایک کم کیس خط ہے،
میں بنیادی طور پر بند کر منہا کرنا چاہتے ہیں جو کچھ فاصلے بہت کم درمیان ہے
ایک اور بڑا ایک، میں نے وہ فرض کیونکہ اگر دیگر حروف کی سب ایک جیسے ہیں
کہ کام کیا حاصل کرنا چاہئے.
لیکن ایسا کرنے کی بجائے، آپ کو معلوم ہے؟
اب بھی ایک اور راستہ نہیں ہے.
>> میں تھے تو کہ 1.c-- فائدہ ہے تو ایک علیحدہ فائل میں ڈال کرنے کے لئے.
مندرجہ ذیل کے طور کی 2.c استفادہ کرتے ہیں.
مجھے سچ میں یہاں اس کو صاف کرنے جا رہا ہوں.
اور بجائے اس کے بھی کرنے کے لئے جانتے ہیں یا ان لوگوں کو کم سطح کی پرواہ
عملدرآمد کی تفصیلات، میں بجائے ہوں صرف ایک کردار کو پرنٹ کرنے کے لئے جا،
اقتباس unquote، فیصد C، اور پھر ایک تقریب کہتے ہیں کہ
کہ ایک دلیل لیتا موجود، جس میں ایک کردار، اس طرح ہے.
>> وہاں ہے C میں پتہ چلا، ایک اور تقریب کال
، اوپری کرنے کے لئے جو اس کے نام کے طور پر اس سے پتہ چلتا ایک کردار لیتا ہے
اور اس کے اوپری کیس سے یہ بناتا ہے برابر، اور پھر اس کی واپسی
تاکہ printf کے وہاں میں پلگ کر سکتے ہیں.
اور اس لئے یہ کرنے کی، اگرچہ، میں ایک نے دوسرے کی فائل کو متعارف کرانے کی ضرورت ہے.
ایک اور فائل موجود ہے باہر بدل جاتا ہے آپ کو صرف کلاس سے پتہ چلے گا کہ،
ایک نصابی کتاب یا، یا ایک آن لائن ریفرنس، کہا جاتا C type.h.
>> میں نے اپنی ہیڈر درمیان تک کا اضافہ تو اگر فائلوں، اور اب دوبارہ مرتب-، اس پروگرام
capitalize2، درج ./capitalize2.
کے تمام میں کیا Zamyla میں ٹائپ کریں چھوٹے، اب بھی اسی طرح کام کرتا ہے.
لیکن تم کیا جانتے ہو؟
یہ اوپری چلا کہ باہر کر دیتا ہے کچھ دیگر فعالیت ہے.
>> اور مجھے اس کو متعارف کرانے کمانڈ، کی طرح تھا awkwardly
کا نام دیا، لیکن دستی کے لئے انسان.
یہ، کہ سب سے زیادہ لینکس کمپیوٹرز باہر کر دیتا ہے ہم لینکس آپریٹنگ یہاں استعمال کر رہے ہیں کے طور پر
system-- ایک کمانڈ ہے جس کا کہنا نامی آدمی،،
ارے، کمپیوٹر، مجھے دے کمپیوٹر کی دستی.
آپ کیا کرنا چاہتے ہیں کہ دستی میں نظر آتے ہیں؟
>> میں نے تقریب کو دیکھنا چاہتا ہوں اوپری کے لئے بلایا، درج.
اور یہ تھوڑا خفیہ ہے کبھی کبھی پڑھنے کے لئے.
لیکن ہم میں ہیں محسوس لینکس پروگرامر کی دستی.
اور یہ تمام متن ہے.
اور نہیں ہے کہ محسوس کریں یہاں تقریب کے نام.
اس سے یہ کہا جاتا ایک کزن ہے باہر کر دیتا ہے برعکس کرتا ہے جس کو کم کرنے،.
اور خلاصہ کے تحت نوٹس، اس کا استعمال کرنے آدمی صفحہ تقریب، تو بات کرنے کی،
مجھے کہ میں کہہ رہا ہے سی type.h. شامل کرنے کی ضرورت
اور میں نے پریکٹس سے پتہ تھا کہ.
>> یہاں، یہ مجھے دو دکھا رہا ہے تقریب کے لئے prototypes کی،
تا کہ میں نے کبھی اس کا استعمال کرنا چاہتے ہیں تو میرے خیال میں وہ ان پٹ کے طور پر لے کیا پتہ،
اور وہ پیداوار کے طور پر واپس آ جائیں کیا.
اور پھر میں نے پڑھا تو تفصیل، میں دیکھ رہا ہوں
مزید تفصیل سے کیا تقریب کرتا ہے.
لیکن زیادہ اہم بات، اگر I، واپسی قیمت کے تحت دیکھیں
اس کا کہنا ہے قیمت واپس ہے تبدیل خط کی کہ،
یا C، اصل ان پٹ، تو تبادلوں ممکن نہیں تھا.
>> دوسرے الفاظ میں، اوپری کوشش گا اوپری کیس کو ایک خط میں تبدیل کرنے کی.
اور اگر ایسا ہے تو، اسے واپس جا رہا ہے.
لیکن کچھ reason-- لئے یہ کر سکتے ہیں تو شاید یہ پہلے سے ہی اوپری کیس ہے،
شاید یہ ایک فجائیہ نقطہ ہے یا کسی دوسرے punctuation--
یہ صرف جا رہا ہے اصل C واپس،
جو میں نے اپنے کوڈ بنانے کر سکتے ہیں بہتر مندرجہ ذیل کے طور پر ڈیزائن.
>> I میں سے سب کی ضرورت نہیں ہے کوڈ کے ان خوفناک لائنوں.
میں نے لائنوں کی تمام صرف روشنی ڈالی
صرف ایک سادہ سا میں منہدم کیا جائے لکیر، this-- printf کا فیصد ہے جو
اوپری کی بریکٹ میں سی.
اور یہ ایک ہو جائے گا بہتر ڈیزائن کی مثال.
>> کیوں 7 یا 8 لائنوں میں لاگو کوڈ کے، جو کچھ بھی میں نے صرف تھا
آپ اس کے بجائے گر سکتا ہے جب، خارج کر دیا اس منطق اور فیصلہ سازی کے تمام
ایک ایک سطر، 13، میں ہے کہ ایک لائبریری پر انحصار کرتا ہے تقریب
ایک تقریب C کے ساتھ آتا ہے، لیکن ہے کہ آپ کو ایسا کرنے کے لئے چاہتے ہیں بالکل وہی جو کرتا ہے.
اور، واضح طور سے، یہاں تک کہ اگر یہ سی کے ساتھ نہیں آیا تھا،
آپ، یہ اپنے آپ کو عمل درآمد کر سکتے طور ہم منفی int حاصل کے ساتھ، دیکھا ہے
اور مثبت INT گزشتہ ہفتے اس کے ساتھ ساتھ حاصل.
>> یہ کوڈ اب بہت زیادہ پڑھنے کے قابل ہے.
اور، یقینا، ہم اپ سکرال، کتنی زیادہ کمپیکٹ نظر آتے ہیں
اپنے پروگرام کے اس ورژن ہے.
یہ، اب تھوڑا سا سب سے بھاری ہے کے ساتھ ان تمام پر مشتمل.
لیکن اس کی وجہ سے اب میں کھڑا ہوں، ٹھیک ہے پروگرامرز کے کندھوں پر
مجھ سے پہلے.
اور یہ جو جو تھا واقعی اوپری کرنے کے لئے لاگو
زیادہ کی طرح میرا ایک کام کیا، جس نے لاگو سٹرلنگ واقعی
کچھ وقت پہلے میرا ایک کام کیا.
اور اس طرح اب ہم ایک ہے بہتر ڈیزائن پروگرام
کہ عین مطابق ایک ہی منطق کو لاگو کرتی ہے.
>> سٹرلنگ کی بات کرتے ہوئے، دو مجھے آگے بڑھو اور اس کے کیا.
مجھے آگے بڑھو اور کو بچانے کے ہیں stirling.c طور پر اس فائل.
اور یہ پتہ چلا، ہم واپس چھیل کر سکتے ہیں خوبصورت بس اب ایک دوسرے پرت.
میں آگے اور کوڑا جانے کے لئے جا رہا ہوں اہم میں ایک اور پروگرام
یہاں محض-اوزار دوبارہ کہ سٹرنگ کی لمبائی مندرجہ ذیل کے طور.
تو یہاں کے کوڈ کا ایک لائن ہے کہ مجھے صارف سے ایک تار ہو جاتا ہے.
ہم بار بار یہ استعمال کرتے ہوئے رکھنے.
مجھے خود نامی ایک متغیر دے دو ایک نمبر ذخیرہ ہے کہ قسم int ن.
>> اور مجھے آگے بڑھو اور مندرجہ ذیل کی منطق کرتے.
ے میں ن ویں کردار کرتا ہے جبکہ برابر الٹا سلیش 0، آگے بڑھو
اور (ن) اضافہ.
اور پھر printf کے فیصد میں ن باہر پرنٹ.
مجھے یقین ہے کہ اس پروگرام کو یہاں کا دعوی، سٹرنگ کی لمبائی بلا کے بغیر،
ایک تار کی لمبائی باہر کے اعدادوشمار.
>> اور جادو مکمل طور پر ہے 8 لائن میں محفوظ
یہاں نئے نحو کی طرح لگتا ہے کے ساتھ، اس الٹا سلیش ایک کی قیمت درج ہیں 0.
لیکن ایسا کیوں ہے؟
ویسے، کیا گیا ہے، اس کے بارے میں غور اس سب کے لئے وقت.
>> اور جب ایک ایک طرف میں بھول سے پہلے، اس بات کا احساس بھی، اس آدمی کے صفحات کے علاوہ میں
کہ ایک عام کے ساتھ آئے CS50 IDE کی طرح لینکس نظام،
اس بات کا احساس ہے کہ ہم، کورس کے عملے، بھی ہے
ایک ویب سائٹ کے ورژن بنایا نامی یہ ایک ہی خیال کے
ہے جس reference.cs50.net، وہی آدمی کے صفحات کے سب،
کہ اسی میں سے سب دستاویزی، کے طور پر بھی
اجازت دیتا ہے کہ سب سے اوپر ایک چھوٹا سا باکس آپ کو کافی کی تمام تبدیل کرنے کے لئے
کم آرام میں جادو زبان موڈ، جہاں ہم، تدریسی عملے،
سے گزری اور آسان بنانے کی کوشش کی ہے چیزیں رکھنے کی زبان میں سے کچھ
خیالات پر توجہ مرکوز، اور نہ تکنیکی کے کچھ.
تو ذہن میں رکھنا، reference.cs50.net اس کے ساتھ ساتھ ایک اور وسائل کے طور پر.
>> لیکن کیوں سٹرنگ کی لمبائی کے کام میں کرتا ہے جس طرح میں نے ایک لمحے پہلے مجوزہ؟
یہاں پھر کیا Zamyla کا نام ہے.
اور یہاں کیا Zamyla کا نام ہے ، میں boxed میں کر رکھنے کے طور پر،
یہ کیا جا رہا ہے کی ایک تصویر پینٹ کرنے کے لئے، واقعی، صرف حروف کا ایک تسلسل.
لیکن کیا Zamyla موجود نہیں ہے ایک پروگرام میں تنہائی میں.
>> آپ لکھتے ہیں اور ایک پروگرام چلاتے ہیں، آپ اپنے میک یا اپنے کمپیوٹر استعمال کر رہے ہیں
میموری، یا RAM کے طور پر تو بات کرنے کی.
اور آپ سوچ سکتے ہیں ہونے کے طور پر آپ کے کمپیوٹر
ان دنوں میموری کے گیگا بائٹس کے بہت سے.
اور ایک ٹمٹم، اربوں کا مطلب بائٹس کی اتنی کروڑوں.
>> لیکن وقت میں ماضی کی اجازت.
اور ہم استعمال کر رہے ہیں کہ فرض ایک بہت پرانے کمپیوٹر ہے کہ
صرف میموری کی 32 بائٹس ہے.
میں کر سکتا ہوں، میرے کمپیوٹر کی سکرین پر، مندرجہ ذیل کے طور پر صرف اس کو اپنی طرف متوجہ.
>> میں نے صرف کہ کہہ سکتے ہیں میرے کمپیوٹر اس میموری کے تمام ہے.
اور یہ، میموری کا ایک چھڑی کی طرح ہے تو اگر آپ کو ہماری تصویر آخری بار سے یاد.
اور میں صرف تقسیم تو کافی دور میں یہ،
میں نے 32 بائٹس ہے کا دعوی ہے کہ سکرین پر میموری کی.
>> صرف اب، حقیقت میں، میں کر سکتا ہوں یہاں اس کی سکرین پر اب تک اپنی طرف متوجہ.
تو میں نے آگے جانے کے لئے جا رہا ہوں اور صرف کنونشن کی طرف سے،
ایک کے طور پر اپنے کمپیوٹر کی میموری کو اپنی طرف متوجہ گرڈ، نہ صرف کے طور پر ایک سے براہ راست لائن.
خاص طور پر، اب میں اس کا دعوی اس گرڈ، اس 8 کی طرف سے 4 گرڈ،
صرف تمام 32 بائٹس کی نمائندگی کرتا ہے میرے میک میں دستیاب میموری کی،
یا میرے کمپیوٹر میں دستیاب.
اور انہوں ریپنگ رہے پر دو لائنیں، صرف
اس کی سکرین پر زیادہ فٹ بیٹھتا ہے کیونکہ.
لیکن یہ پہلی بائٹ ہے.
یہ دوسرا بائٹ ہے.
یہ تیسری بائٹ ہے.
>> اور یہ 32nd بائٹ ہے.
یا، ہم نے ایک کمپیوٹر کی طرح سوچتے ہیں سائنسدان، اس بائٹ 0، 1، 2، 3، 31 ہے.
تو آپ کو 31 0 ہے، تو آپ 0 سے گنتی شروع.
>> ہم نے ایک پروگرام کا استعمال تو کالز سٹرنگ حاصل ہے کہ،
اور ہم انسانی کی طرف سے ایک تار حاصل ، جیسا کہ میں نے کیا Zamyla بلایا تھا Z-A-M-Y-L-A،
کس طرح میں دنیا کرتی ہے کمپیوٹر رکھیں ٹریک جس بائٹ کی،
میموری کی جس حصہ، جس سٹرنگ سے تعلق رکھتا ہے؟
دوسرے الفاظ میں، ہم پر کارروائی تو کمپیوٹر میں ایک اور نام ٹائپ کریں،
اس سے Andi کی طرح، بلا سٹرنگ دوسری دفعہ ہو جاؤ،
A-N-D-I میں ختم کرنے کے لئے ہے کمپیوٹر کی میموری کے ساتھ ساتھ.
لیکن کس طرح؟
>> ویسے، اس کے نیچے کہ باہر کر دیتا ڈاکو، ڈور ذخیرہ کرنے پر جو C کرتا
انسانی اقسام میں، یا یہ کہ کچھ دوسرے ذرائع سے آ، یہ ہے
کے ساتھ ان کے اختتام کا بیان ایک خصوصی character-- الٹا سلیش
0، صرف ایک خاص طریقہ ہے جس میں کے کہہ ایک قطار میں 80 بٹس.
>> لہذا A-- اس نمبر 97 یادآوری ہے.
چنانچہ 8 بٹس کے کچھ پیٹرن دشملو تعداد 97 کی نمائندگی کرتا ہے.
یہ الٹا سلیش 0 لفظی نمبر ہے 0، a.k.a. میں nul، N-U-L، پہلے کے برعکس،
N-U-L-L، ہم کے بارے میں بات کی تھی جس میں.
لیکن اب کے لئے، صرف اتنا معلوم ہے کہ یہ اس الٹا سلیش 0 ایک قطار میں صرف 80 بٹس ہے.
>> اور اس میں صرف اس لائن ہے بائیں سے کچھ کہے کہ ریت
ایک سٹرنگ، یا ایک ڈیٹا کی قسم سے تعلق رکھتا ہے.
اور حق کے لئے کچھ بھی کچھ اور سے تعلق رکھتا ہے.
Andi کی کا نام، اس دوران، جس میں صرف ضعف
دوسری لائن پر لپیٹ کے لئے ہوتا ہے، لیکن یہ صرف ایک جمالیاتی تفصیل ہے،
اسی طرح میں nul ختم کیا جاتا ہے.
>> یہ ایک A-N-D-I حروف کی ایک تار ہے علاوہ ایک پانچویں سیکرٹ کردار،
تمام 0 بٹس، صرف درمیان حد فاصل ہے کہ Andi کی اشیاء کے نام کے آخر کے طور پر بھی.
اور ہم نے فون تو سٹرنگ تیسری بار حاصل کمپیوٹر میں طرح ایک تار حاصل کرنے کے لئے
ماریا، M-A-R-I-A، اسی طرح ماریا کی ہے نام میں nul الٹا سلیش 0 ساتھ ختم.
>> یہ بنیادی طور پر مختلف ہے کس طرح سے ایک کمپیوٹر عام طور پر کرے گا
ایک عددی، یا فلوٹ، یا دیگر ذخیرہ اب بھی ڈیٹا کی اقسام، کیونکہ یاد آوری،
عام طور پر ایک عددی 32 بٹس ہے، یا 4 بائٹس، یا شاید بھی 64 بٹس،
یا آٹھ بائٹس.
لیکن ایک کمپیوٹر میں کئی primitives میں ایک پروگرامنگ زبان میں
کی ایک مقررہ تعداد ہے hood-- نیچے بائٹس
ہو سکتا ہے 1، ہو سکتا ہے 2، شاید 4، شاید 8.
>> لیکن ڈور، ڈیزائن کی طرف سے، ایک ہونا کرداروں میں متحرک تعداد.
آپ کو پیشگی میں پتہ نہیں ہے، جب تک Z-A-M-Y-L-A میں انسانی اقسام،
یا ایم-اے-R-I-A، یا A-N-D-I. تم نہیں جانتے کتنی بار صارف مارا جا رہا ہے
کی بورڈ.
لہذا، اگر آپ نہیں جانتے کہ کس طرح ایڈوانس میں بہت سے حروف
کی آپ کو ضرورت کے لئے جا رہے.
>> اور اس طرح سی صرف کی قسم کی ایک طرح چھوڑ دیتا ہے ہڈ کے نیچے سے رہسی breadcrumb کی
تار کے آخر میں.
یاد میں Z-A-M-Y-L-A کے محفوظ کرنے کے بعد، یہ بھی صرف برابر رکھتا ہے
ایک مدت کے.
ایک جملے کے آخر میں، یہ 80 بٹیں رکھتا، تو کے طور پر
جہاں یاد کرنے کیا Zamyla شروع ہوتا ہے اور ختم ہو جاتی ہے.
>> تو کیا تعلق ہے، پھر، اس پروگرام کے لئے کس طرح؟
یہاں اس پروگرام، سٹرلنگ، صرف ایک طریقہ کار ہے
ایک تار حاصل کرنے کے لئے صارف کی طرف سے، 6 لائن.
سطر 7، میں ایک متغیر کا اعلان این بلایا اور یہ 0 کے برابر مقرر.
>> اور پھر 8 لائن میں، میں نے صرف پوچھا سوال، ن ویں کردار ہے جبکہ
برابر تمام 0 bits-- دوسرے الفاظ میں، ایسا نہیں ہوتا
برابر اس خصوصی کردار، الٹا سلیش 0، جس
صرف اس خاص میں nul character-- تھا آگے بڑھو اور صرف (ن) اضافہ.
>> اور یہ کر رکھنے، اور رکھنے کے یہ کام کر رہے، اور یہ کر رکھنے.
اور اس لئے بھی میں اگرچہ ہم نے استعمال کیا ہے ماضی،
یہ بالکل ٹھیک ہے semantically بنانا ناقابل استعمال کرنے کے لئے،
آپ کو صرف کرنے کی کوشش کر رہے ہیں اگر جان بوجھ کر اس وقت شمار،
اور صرف ن نام دینا چاہتے.
تو یہ صرف سوال پوچھ رکھتا ہے، تمام 0s ے کی ن ویں کردار ہے؟
اگر نہیں تو، اگلی نظر کی طرف دیکھتے ہیں، ، اگلے کرنے کے لئے نظر آتے ہیں اگلے کرنے کے لئے نظر آتے ہیں،
اگلے کرنے کے لئے لگ رہے ہو.
>> لیکن جیسے ہی آپ الٹا سلیش 0 دیکھ کے طور پر، اس loop-- لکیر 9 11-- ذریعے روکتا ہے.
تم، جبکہ لوپ سے باہر کو توڑنے اس متغیر (ن) کے اندر چھوڑنے سے
کی تمام کی کل شمار STRING نے آپ کو دیکھا تھا میں حروف،
اس طرح یہ باہر پرنٹ.
تو اس کی کوشش کرتے ہیں.
>> بغیر، اور مجھے آگے جانے دو سٹرلنگ تقریب کا استعمال کرتے ہوئے،
لیکن صرف میرے اپنے مقامی ورژن استعمال یہاں سٹرلنگ بلایا، مجھے آگے جانے دو
اور رن سٹرلنگ، کچھ میں قسم کیا Zamyla، جو میں نے پہلے ہی پتہ طرح
چھ حروف ہے.
یہ کام کرتا ہے تو دیکھتے ہیں.
بے شک، یہ چھ ہے.
روب کے ساتھ کوشش کرتے ہیں، تین حروف، تین حروف کے ساتھ ساتھ، اور تو آگے.
تو یہ ہو رہا ہے کہ تمام ہے ہڈ کے نیچے.
اور کنکشن کو نوٹس، پھر، پہلے ہفتے کے ساتھ
کلاس کی، ہم کے بارے میں بات کہاں تجرید کی طرح کچھ،
جس خیالات کا صرف اس layering کی ہے، یا پیچیدگی، بنیادی اصولوں میں سے سب سے اوپر پر.
یہاں، ہم قسم کے لئے تلاش کر رہے ہیں سٹرلنگ کی ہڈ کے نیچے،
تو بات کرنے کے جاننے کی، یہ کس طرح لاگو کیا جائے گا؟
>> اور ہم اسے خود کو دوبارہ نافذ کر سکتے.
لیکن ہم پھر کبھی نہیں جا رہے ہیں سٹرلنگ دوبارہ عمل درآمد.
ہم صرف کرنے جا رہے ہیں ترتیب میں اسٹرلنگ کا استعمال
اصل میں کچھ ڈور کی لمبائی حاصل کرنے کے لئے.
>> لیکن کوئی جادو نہیں ہے ہڈ کے نیچے.
نیچے کہ اگر تم جانتے ہو ڈاکو، ایک تار
صرف حروف کا ایک تسلسل ہے.
اور حروف کی اس ترتیب تمام عددی خطاب کیا جا سکتا
0 بریکٹ، بریکٹ کے ساتھ 1، بریکٹ 2، اور تم
کہ ایک تار کے آخر میں ایک ہے میں جاننا خصوصی کردار، آپ پتہ کر سکتے ہیں
ایک میں سب سے زیادہ کچھ بھی کرنے کے لئے کس طرح پروگرام، سب اس کی وجہ یہ فوڑے
پڑھنے اور میموری لکھ رہا ہے.
وہ تبدیل کرنے اور تلاش کر، ہے میموری پر، یا چیزوں کو منتقل کی
میموری میں کے ارد گرد، پرنٹنگ چیزیں سکرین، اور تو آگے پر.
>> تو اب اس نئی استعمال کرتے ہیں اصل ڈور کس کی تفہیم
ہڈ کے نیچے ہیں، اور چھیل واپس ایک دوسرے پرت
اب تک ہم نے کیا ہے کہ یکسر نظر انداز کر دیا گیا.
خاص طور پر، کسی بھی وقت میں ہم نے ایک پروگرام کو لاگو کیا ہے،
ہم کوڈ کے اس لائن کو لیا ہے اوپر کے قریب اہم اعلان.
اور ہم int اہم باطل مخصوص ہے.
>> اور قوسین کے اندر کہ باطل کہ اہم یہ سب وقت کہہ دیا گیا ہے
خود میں کوئی بحث نہیں کرتا.
کوئی ان پٹ اہم ہے صارف کی طرف سے حاصل کرنے کے لئے جا
کچھ دوسرے سے آنا ہوگا طریقہ کار، طرح حاصل INT،
یا فلوٹ حاصل، یا تار حاصل، یا کسی دوسرے کی تقریب.
لیکن یہ پتہ چلا ہے کہ آپ کو ایک پروگرام لکھنے جب،
آپ اصل میں وضاحت کر سکتے ہیں اس پروگرام گا کہ
انسانی سے آدانوں لے کمانڈ لائن میں ہی.
>> دوسرے الفاظ میں، اگرچہ ہم اس طرح اب تک ہیلو خوش صرف چل رہا ہے
یا اسی طرح کے پروگراموں، میں سے سب ہم استعمال کر رہا ہوں کہ دوسرے پروگراموں،
ہم نے خود نہیں لکھا تھا کہ، لے جاتے رہے ہیں، ایسا لگتا ہے،
کمانڈ لائن کے دلائل بنا پسند چیزوں کے.
آپ میک طرح کچھ کہہ، اور پھر ایک دوسرا لفظ.
یا بجنا، آپ کو تو بجنا کہتے ہیں، اور ایک دوسرا لفظ، ایک فائل کے نام.
>> یا اس سے بھی RM یا CP، کے طور پر آپ کو شاید یہ دیکھا یا پہلے سے ہی استعمال کیا ہے
خارج یا فائلوں کی کاپی کرنے کے لئے.
ان لوگوں کے تمام نام نہاد لے کمانڈ لائن کے دلائل
ٹرمینل فوری طور پر اضافی الفاظ.
لیکن اب تک، ہم نے خود نہیں کھایا ہے
سے ان پٹ لینے کے اس لگژری صارف جب وہ اصل چلتا
کمانڈ لائن پر پروگرام خود.
>> لیکن ہم اس کی طرف سے دوبارہ اعلان کیا کر سکتے ہیں مرکزی آگے بڑھنے، ہونے کے طور پر نہیں
قوسین میں صفر، لیکن ان دو دلائل
پہلی ایک عددی instead--، اور دوسری کوئی چیز
نیا، کچھ ہے کہ ہم کو فون کرنے جا رہے ہیں ایک صف، روح میں اسی طرح کچھ
ہم ایک فہرست کے طور پر شروع میں دیکھا اس کے لئے، لیکن ڈور کی ایک صف، ہم جلد ہی دیکھیں گے کے طور پر.
لیکن کی طرف سے اس کو دیکھتے ہیں مثال کے، ہم اس سے پہلے
ممتاز کا مطلب ہے کہ بالکل وہی جو.
>> میں CS50 IDE میں جانے تو یہاں، میں آگے چلا گیا ہے
اور نامی ایک فائل میں اعلان مندرجہ ذیل سانچے argv0.c.
اور صرف ایک ہی چیز کو نوٹس کہ اب تک مختلف ہے
میں int باطل تبدیل کر دیا جاتا ہے کہ جہاں argc سٹرنگ، اوپن بریکٹ ہے argv بند کریں
بریکٹ.
اور اب کے لئے نوٹس، وہاں ہے ان لوگوں کو بریکٹ کے اندر کچھ بھی نہیں.
>> کوئی نمبر نہیں ہے.
اور، نہیں میں نہیں ہے یا ن، یا کسی بھی دوسرے خط.
میں نے صرف استعمال کر رہا ہوں اب کے لئے مربع بریکٹ،
وجوہات کی بنا پر ہم آ جائیں گے پاس واپس صرف ایک لمحے میں.
>> اور اب جو میں کرنے جا رہا ہوں یہ ہے.
برابر کے argc برابر تو 2-- اور یہ کہ برابر برابر یاد کرتے ہیں
مساوات آپریٹر موازنہ کیا جاتا ہے بائیں اور مساوات کے لئے صحیح.
یہ اسائنمنٹ نہیں ہے آپریٹر، ہے جو
جس کا مطلب نقل واحد برابر علامت، دائیں سے کچھ قدر سے بائیں.
>> جہاں argc 2 برابر برابر تو، میں چاہتا ہوں کہہ دو، printf کے، ہیلو، فیصد، نئی لائن،
اور پھر in-- پلگ اور یہاں کیا نیا ہے وجوہات کے لئے چال ہے argv بریکٹ 1،
ہم واپس کرنے کے لئے ایک لمحے میں آ جائیں گے کہ.
جہاں argc نہیں ہوتا اگر اور برابر 2، تمہیں معلوم ہے؟
، چلو بس آگے بڑھو اور ہمیشہ کی طرح، تعداد کے طور پر باہر ہیلو کوئی متبادل کے ساتھ دنیا.
>> تو یہ محسوس ہوتا ہے کہ argc، جس پر اگر ، دلیل شمار کے لئے کھڑا 2 برابر،
میں باہر پرنٹ کرنے کے لئے جا رہا ہوں ہیلو کچھ نہ کچھ.
دوسری صورت میں، ڈیفالٹ کی طرف سے، میں ہوں ہیلو دنیا پرنٹ کرنے کے لئے کی جا رہی.
تو اس کا کیا مطلب ہے؟
>> ویسے، مجھے آگے بڑھو اور محفوظ کرنے دیں اس فائل، اور پھر argv0 کروں،
اور پھر ./argv0، درج.
اور یہ دنیا ہیلو کا کہنا ہے کہ.
اب، یہ کیوں ہے؟
>> ٹھیک ہے، یہ کسی بھی وقت آپ کو باہر کر دیتا ہے کمانڈ لائن پر ایک پروگرام چلاتے ہیں،
آپ میں بھرنے کر رہے ہیں کیا ہم کریں گے عام طور پر ایک دلیل ویکٹر فون کریں.
دوسرے الفاظ، خود کار طریقے سے کمپیوٹر، آپریٹنگ سسٹم،
آپ کے پروگرام کے حوالے کی جا رہی ہے خود الفاظ کی سب کی ایک فہرست
انسانی میں ٹائپ فوری طور پر، کی صورت میں آپ
پروگرامر کرنا چاہتا ہوں کہ معلومات کے ساتھ کچھ.
اور اس معاملے میں، صرف لفظ میں نے فوری طور پر ٹائپ کیا ہے ./argv0 ہے.
>> اور تو ہے کہ دلائل کی تعداد میرے پروگرام میں منظور کیا جا رہا ہے صرف ایک ہے.
دوسرے الفاظ میں، دلیل شمار، دوسری صورت میں argc کے طور پر جانا
یہاں ایک عددی طور پر، صرف ایک ہے.
ایک، کورس کے، برابر دو نہیں کرتا.
اور اس طرح یہ پرنٹس کیا، ہیلو دنیا ہے.
>> لیکن مجھے یہ کہیں لے.
تو میں کہوں گا argv0.
اور پھر کس طرح ماریا کے بارے میں؟
اور پھر درج کریں مارا.
>> اور جادوئی یہاں کیا ہوتا ہے محسوس کریں.
اب، اس کے بجائے ہیلو دنیا کی، میرے پاس ہے اس پروگرام کے رویے کو تبدیل کر دیا
حاصل سے نہیں کی ان پٹ لے کر سٹرنگ یا کسی دوسرے کی تقریب،
لیکن، بظاہر، میرے حکم سے خود، میں اصل میں ٹائپ کیا.
اور میں کی طرف سے پھر یہ کھیل کھیل سکتے مثال کے طور پر، لیے Stelios کرنے کے لئے اسے تبدیل کرنے کے.
>> اور اب میں اب بھی ایک اور نام دیکھ.
اور یہاں، میں نے سے Andi کہہ سکتا.
اور مجھے کیا Zamyla کہہ سکتا.
اور ہم، دن بھر یہ کھیل کھیل سکتے صرف مختلف اقدار میں plugging،
اتنی دیر میں بالکل فراہم کرنے کے طور فوری طور پر میں دو الفاظ،
اس طرح کے argc، میری دلیل شمار ہے کہ، 2 ہے.
>> مجھے نام میں پلگ ہے کہ دیکھتے ہو printf کے، یہاں یہ شرط فی؟
تو کیا اب ہم رکھتے دکھائی ابیوینجک صلاحیت
ایک اور میکانزم سے ان پٹ لینے کے، نام نہاد کمانڈ لائن سے،
بلکہ انتظار کرنے کے مقابلے صارف کا پروگرام چلتا ہے جب تک،
اور پھر اس کے یا اس کو فوری طور پر حاصل سٹرنگ کی طرح کچھ کا استعمال کرتے ہوئے.
>> تو یہ کیا ہے؟
جہاں argc، پھر، صرف ایک عدد صحیح ہے، words-- دلائل کی تعداد
کہ میں فراہم صارف فوری طور پر، ٹرمنل ونڈو میں،
پروگرام کا نام بھی شامل ہے.
لہذا ہمارے ./argv0 مؤثر طریقے سے، ہے، پروگرام کا نام،
یا کس طرح میں نے پروگرام کو چلانے کے.
>> کہ ایک لفظ کے طور پر ہوگا.
تو argc 1 ہو جائے گا.
لیکن میں لیے Stelios جب لکھنا، یا Andi کی، یا کیا Zamyla، یا ماریا،
مطلب یہ ہے کہ دلیل شمار دو ہے.
اور اس طرح اب میں منظور دو الفاظ نہیں ہے.
>> اور نوٹس، ہم اس منطق جاری رکھ سکتے ہیں.
میں اصل میں کہتے ہیں ZAMYLA چان کی طرح کچھ،
ایک مکمل نام، اس طرح گزر کل میں تین دلائل،
اب یہ ڈیفالٹ دوبارہ کہتی ہے، کیونکہ، کورس کے، 3 برابر 2 کرتا ہے.
>> اور اس طرح اس طرح میں، میرے پاس ھیں ہے argv اس نئی دلیل کے ذریعے رسائی
ہم تکنیکی طور پر کر سکتے تھے کہ ہم چاہتے ہیں کسی بھی چیز کو فون.
لیکن کنونشن کی طرف سے، یہ ہے ہے argv اور argc، بالترتیب.
ہے argv، دلیل ویکٹر، قسم ہے ایک پروگرامنگ کے لئے ایک متبادل کے
C میں خصوصیت ایک صف بلایا.
>> ایک صف اسی طرح کی اقدار کی ایک فہرست ہے واپس، واپس کرنے کے لئے واپس کرنے کے لئے واپس کرنے کے لئے.
دوسرے الفاظ میں، اگر ایک یہیں پر میں ہے RAM، اگلے ایک حق یہ کرنے کے لئے اگلے ہے،
اور صحیح اس کے آگے.
وہ سب جگہ پر نہیں ہیں.
اور یہ کہ مؤخر الذکر کے منظر نامے، جہاں چیزیں تمام میموری میں جگہ ختم ہو گئے ہیں،
اصل میں ایک طاقتور خصوصیت ہو سکتا ہے.
لیکن ہم جب ہم اس پر واپس آ جائیں گے اچھے ڈیٹا ڈھانچے کے بارے میں بات.
ابھی کے لئے، ایک صف صرف ایک ہے ملحق میموری کا حصہ،
میں سے ہر ایک جس کے عناصر ہیں واپس، واپس کرنے کے لئے، واپس کرنے کے لئے، واپس کرنے کے لئے،
اور عام طور پر ایک ہی قسم.
>> تو آپ کو ایک کی طرف سے، کے بارے میں کیا سوچتے ہیں لمحے پہلے، ایک تار کیا ہے؟
ویسے، ایک سٹرنگ، کیا Zamyla طرح، Z-A-M-Y-L-A، تکنیکی طور پر، ہے،
صرف ایک سرنی.
یہ حروف کی ایک سرنی ہے.
>> اور اس طرح ہم واقعی اس، کے طور پر اپنی طرف متوجہ تو میں ، میموری کا ایک حصہ کے طور پر، پہلے ہی کیا
یہ ان کا ہے کہ ہر ایک کا پتہ چلتا ہے حروف ایک بائٹ تک لے جاتا ہے.
اور پھر یہ کہ خاص نہیں ہے سینٹینل کردار، الٹا سلیش 0،
یا تمام آٹھ 0 بٹس، کہ اس سٹرنگ کے اختتام کے درمیان حد فاصل.
تو ایک تار، بدل جاتا ہے باہر،، unquote جو سٹرنگ اقتباس
chara-- کے صرف ایک صف ہے ایک حقیقی ڈیٹا کی قسم ہونے حروف
>> اور اب argv، meanwhile-- کے پروگرام پر واپس چلتے ہیں.
ہے argv، ہم لفظ نظر اگرچہ سٹرنگ یہاں، ایک تار کا بھی نہیں ہے.
ہے argv، دلیل ویکٹر، ڈور کی ایک صف ہے.
>> تم میں سے ایک صف ہو سکتا ہے تو صرف کے طور پر حروف، آپ کو اعلی سطح ہے کر سکتے ہیں،
strings-- کی ایک سرنی لہذا، مثال کے طور پر، میں نے ایک لمحے پہلے ٹائپ جب ./argv0
argv0، خلائی Z-A-M-Y-L-A، میں نے اس کا دعوی کیا ہے argv، نے اسے ./argv0 میں دو ڈور تھی
اور Z-A-M-Y-L-A. میں دوسرے الفاظ، جہاں argc 2 تھا.
ایسا کیوں ہے؟
>> ویسے، مؤثر طریقے سے، کیا جا رہا ہے پر ہے ان ڈور میں سے ہر ایک یہ کہ
، کورس کے کرداروں میں سے ایک صف ہے، پہلے کی طرح، جن میں سے ہر ایک کے حروف
ایک بائٹ تک لے جاتا ہے.
اور اصل 0 الجھانے نہیں ہے 0 ساتھ پروگرام کے نام پر،
جس کا مطلب ہے تمام 80 بٹس.
اور کیا Zamyla، دریں اثنا، اب بھی ہے بھی حروف کی ایک سرنی.
>> دن کے آخر میں تو، یہ واقعی ہڈ کے نیچے اس طرح لگ رہا.
لیکن کس طرح اہم نوعیت کی طرف سے، ہے argv کام کرتا ہے، مجھے اس کی سب کو لپیٹ کرنے کی اجازت دیتا
، اگر آپ، ایک بڑی سرنی میں اپ ہم تھوڑا سا زیادہ کے آسان بنانے کے ہیں، کہ
تصویر کی طرح اور ایسا نہیں کرتے لگتا ہے کیا کافی وہاں کو پیمانے کے اسے اپنی طرف متوجہ،
اس صف سب سے پہلے صرف 2 سائز کے ہے، ایک تار پر مشتمل ہے جس کے عنصر،
دوسرا عنصر جس میں ایک سٹرنگ پر مشتمل.
اگر آپ اور، کے نتیجے میں، قسم میں سے ہر ایک پر میں زوم
وہ ڈور، کی آپ کو کیا ہڈ کے نیچے دیکھیں
ہر ایک سٹرنگ صرف ہے کہ ہے حروف کی ایک سرنی.
>> اب، صرف ڈور کے ساتھ کے طور پر، ہم تک رسائی حاصل کرنے کے قابل تھے
ایک تار میں کردار میں ویں کرنا کہ مربع بریکٹ سنکیتن کا استعمال کرتے ہوئے.
اسی طرح، arrays کے ساتھ عام طور پر، ہم کر سکتے ہیں
حاصل کرنے کے لئے مربع بریکٹ سنکیتن کا استعمال ایک صف میں Strings کی کسی بھی تعداد میں؟
مثال کے طور پر، مجھے دو آگے بڑھو اور اس کے کیا.
>> مجھے آگے بڑھو اور argv1.c تخلیق کرتے ہیں، جس میں ایک چھوٹا سا مختلف اس وقت ہے.
اس کے بجائے argc2 کے لئے جانچ پڑتال کی، میں بجائے ایسا کرنے کے لئے جا رہا ہوں.
int میں 0 حاصل کے لیے، میں بھی کم ہے argc کے مقابلے میں، میں پلس پلس،
اور پھر اس کے اندر باہر پرنٹ، فیصد ے، نئی لائن، اور اس کے بعد
ہے argv بریکٹ میں.
>> تو دوسرے الفاظ میں، میں نے کے ساتھ نمٹنے نہیں کر رہا ہوں اس وقت انفرادی حروف.
ہے argv، ان خالی مربع طرف سے تقاضا طور نام ہے argv کے دائیں منحنی خطوط وحدانی،
ہے argv ڈور کی ایک صف ہے کا مطلب ہے.
اور argc صرف ایک int ہے.
>> یہاں یہ لائن، 6، ہے سیٹ کہ میں 0 کے برابر.
، تک تمام راستہ کوڈ لیکن جہاں argc، بھی شامل نہیں.
اور پھر ہر iteration پر، ایک تار باہر پرنٹ.
کیا سٹرنگ؟
>> argv میں میں ویں سٹرنگ.
تو جبکہ میں تھا اس سے پہلے مربع بریکٹ کا استعمال کرتے ہوئے
سنکیتن پر ith میں حاصل کرنے کے لئے ایک تار میں کردار، ابھی
I مربع بریکٹ سنکیتن استعمال کر رہا ہوں ایک صف میں ith STRING پر حاصل کرنے کے لئے.
تو یہ ایک پرت کی طرح ہے مندرجہ بالا، تصوراتی.
>> اور اس طرح اس کے بارے میں صاف کیا ہے اب پروگرام، I argv1 مرتب تو،
اور پھر ./argv1 کرتے، اور پھر ٹائپ کریں FOO بار باز کی طرح کچھ میں،
جس میں تین ڈیفالٹ الفاظ ہیں کہ ایک ہیں کمپیوٹر سائنسدان کسی بھی وقت کے لئے پہنچ جاتا
وہ کچھ پلیس ہولڈر الفاظ کی ضرورت ہے، اور Enter دبائیں، ان الفاظ میں سے ہر ایک،
پروگرام کا نام، سمیت ، سب سے پہلے مقام پر ہے argv میں ہے
ختم ہو جاتی ہے ایک وقت میں ایک چھپی ہوئی کیا جا رہا ہے.
اور میں نے اس کو تبدیل، اور میں کہتا ہوں کہ اگر argv1 ZAMYLA چان کی طرح کچھ،
ہم ان تینوں کو حاصل argv0 ہے جس کے الفاظ،،
argv1، argv2، اس میں کیونکہ کیس کے argc، شمار، 3 ہے.
>> لیکن کیا صاف ہے آپ سمجھ تو ہے کہ ہے argv، ڈور کے صرف ایک صف ہے
اور آپ کو ایک تار ہے کہ سمجھ حروف کی ایک صف ہے،
ہم اصل میں اس قسم کی استعمال کر سکتے ہیں مربع بریکٹ سنکیتن ایک سے زیادہ بار
ایک تار منتخب کرنے کے لئے، اور پھر منتخب کریں سٹرنگ کے اندر ایک کردار،
میں مندرجہ ذیل گہرے طور ڈائیونگ.
اس مثال میں، مجھے جانے دو آگے اور اس argv2.c فون کریں.
اور اس مثال میں، مجھے آگے جانے دو اور میں حاصل INT 0 لئے مندرجہ ذیل کروں،
میں argc کے مقابلے میں کم ہے، میں کے علاوہ پلس، پہلے کی طرح.
تو دوسرے words-- اور اب اس میں کافی پیچیدہ ہو رہی ہے.
پھر میں کہنے جا رہا ہوں argv میں ڈور پر iterate،
اپنے آپ کو ایک تبصرہ کے طور پر.
اور پھر میں نے ایک کی ضرورت کے لئے جا رہا ہوں ، لوپ کے لئے اندر در اندر شاید آپ جس
کیا کیا، یا سمجھا ، کر شروع میں جہاں،
میرے کہنے کا مجھے int-- جا رہا ہوں پھر میں استعمال کرنے کے لئے نہیں جا رہا،
کیونکہ میں سائے کے لئے نہیں کرنا چاہتے ہیں، یا چھانٹیں کے موجودہ میں ادلیکھت.
>> I، کرنے، کے بجائے، J کہنا جا رہا ہوں، کیونکہ کہ میں بعد متغیر میرے جانے ہے،
جب میں نے صرف کے لئے کوشش کر رہا ہوں سادہ تعداد شمار.
جے ہو جاتا ہے 0-- اور بھی، N، میں جا رہا ہے ، ہے argv بریکٹ میں کی سخت لمبائی حاصل
اتنی دیر J میٹر سے بھی کم ہے کے طور پر، J پلس پلس، مندرجہ ذیل کام کریں.
اور یہاں دلچسپ حصہ ہے.
>> ایک کردار اور ایک نئی سطر باہر پرنٹ، ہے argv بریکٹ میں، بریکٹ J میں plugging.
ٹھیک ہے، تو نے مجھے یہاں کچھ تبصرے شامل ہیں.
کرداروں پر iterate موجودہ تار میں،
میں میں ویں سٹرنگ پرنٹ J-ویں کردار.
تو اب، چلو غور کرتے ہیں ان تبصرے کا کیا مطلب.
>> ڈور پر iterate argv-- میں کتنے
ڈور، argv میں ہیں جو ایک صف ہے؟
argc کے بہت سے، تو میں iterating رہا ہوں اس میں جہاں argc تک برابر 0.
دریں اثنا، کتنے حروف argv میں میں ویں تار میں ہیں؟
>> ویسے، اس کا جواب حاصل کرنے کے لئے، میں نے صرف سٹرنگ کی لمبائی کو فون
موجودہ سٹرنگ میں دیکھ بھال پر ہے argv بریکٹ میں ہے جس کے بارے میں.
اور میں عارضی طور پر کہ ذخیرہ کرنے کے لئے جا رہا ہوں قدر (ن) میں، صرف کیشنگ کے مقاصد کے لئے،
کارکردگی کے لئے یہ یاد رکھنا.
اور پھر میں، 0 کے لئے J ابتدا جا رہا ہوں جے این سے بھی کم ہے جب تک جا رکھنے،
اور ہر iteration اضافہ J پر.
>> اور پھر یہاں، فی 12 لائن پر میرا تبصرہ،
ایک کردار کو پرنٹ، ایک نئی سطر کے بعد کیا،
خاص طور پر ہے argv بریکٹ مجھے میں ویں سٹرنگ دیتا ہے
argv-- تو سب سے پہلے لفظ میں، دوسرا لفظ، تیسرا لفظ، جو کچھ بھی.
گہرے اور پھر جے dives کے، اور ہو جاتا ہے مجھے اس لفظ کی J-ویں کردار.
اور اگر ایسا ہے، اثر میں، آپ کا علاج کر سکتے ہیں ہے argv ایک کثیر جہتی کے طور پر،
ایک دو جہتی، صف کے طور پر، جس کے تحت دکھاوی کے ہر لفظ قسم
آپ کے دماغ کی میں اس طرح آنکھ، اور ہر کردار
قسم کے میں مشتمل ہے ایک کالم، اگر اس کی مدد کرتا ہے.
>> حقیقت میں، ہم جب چڑھاو اس کے علاوہ مستقبل ہفتوں میں،
یہ ایک چھوٹا سا ہونے جا رہا ہے اس سے بھی زیادہ بہتر.
لیکن اگر تم واقعی کر سکتے ہیں اب کے لئے، اس کے بارے میں سوچنا،
صرف اس دو جہتی کے طور پر صف، جس کے تحت ایک اس کی سطح
ڈور کی تمام ہے.
اور پھر آپ گہری، آپ میں گوتا لگا تو انفرادی حروف کو حاصل کر سکتے ہیں
یہاں اس سنکیتن کا استعمال کرتے ہوئے کی طرف سے اس میں.
>> لہذا خالص اثر کیا ہے؟
مجھے آگے جانے دو اور argv2-- رفو اس کے بنانے کے.
میں یہاں ایک غلطی کی.
لپیٹ اعلان لائبریری تقریب سٹرلنگ.
تو یہ ہر وقت، یہ ہے شاید مناسب
ہم قسم کی ختم کر رہے ہیں کہ بالکل ہم کہاں شروع کیا.
>> I، مصیبت لپیٹ اعلان لائبریری تقریب سٹرلنگ.
OK، ایک منٹ انتظار کرو.
مجھے وہ یاد، خاص طور پر چونکہ یہ یہیں ہے.
I میں string.h کے شامل کرنے کی ضرورت پروگرام کے اس ورژن.
>> مجھے آگے بڑھو اور شامل ہیں string.h کے، نجات، آگے بڑھو
اور argv2 تو recompile.
اور اب، ہم یہاں جانا، argv2، درج.
اور یہ چھوٹا ہے اگرچہ پہلی نظر میں خفیہ،
نوٹس کہ، بے شک، کیا چھپا ہوا ہے ڈاٹ argv2 ہے.
>> لیکن میں بعد کچھ الفاظ ٹائپ کریں تو فوری طور پر، argv2 ZAMYLA چان کی طرح،
بھی ایک چھوٹی سی، درج پہلی نظر میں خفیہ.
لیکن ہم واپس سکرال، ./argv2 Z-A-M-Y-L-A C-H-A-N.
تو ہم ہر لفظ پر اعادہ کیا ہے.
اور، کے نتیجے میں، ہم سے زیادہ اعادہ کیا ہے ایک لفظ کے اندر اندر ہر کردار.
>> اب، اس کے سب کے بعد، احساس ہے کہ
ایک نے دوسرے کو تفصیل ہم اس قسم رہا ہوں کے اس پورے وقت کو نظر انداز.
ہم صرف الگ چھیڑا کیا مرکزی کے آدانوں ہو سکتا ہے؟
کیا مین کی پیداوار کے بارے میں؟
>> اس وقت کے تمام، ہم کیا گیا ہے صرف کاپی اور چسپاں
مرکزی کے سامنے لفظ INT، جیسا کہ آپ دیکھ سکتے ہو آن لائن اگرچہ،
کبھی کبھی پرانے ورژن میں غلط طریقے سے C اور compilers کی، وہ باطل کا کہنا ہے کہ،
یا کچھ بھی نہیں.
لیکن، واقعی، کے لئے ورژن C کی ہم استعمال کر رہے ہیں کہ،
C 11، یا 2011، کا احساس کہ یہ INT ہونا چاہئے.
اور یہ تو ہونا چاہئے باطل یا argc اور argv کے یہاں.
>> لیکن کیوں int اہم؟
یہ اصل میں کیا واپس آ رہا ہے؟
ٹھیک ہے، یہ، اس وقت کے سب باہر کر دیتا ہے کسی بھی وقت آپ کو ایک پروگرام مین لکھا ہے
ہمیشہ کچھ واپس آ رہا ہے.
لیکن یہ تو چپکے سے کر رہا ہے.
>> ایک ایسی چیز ہے INT، لکیر کے طور پر 5 سے پتہ چلتا ہے.
لیکن کیا INT؟
ٹھیک ہے، یہ وہاں ہے پروگرامنگ میں کنونشن،
کچھ بھی نہیں ہے تو جس کے تحت غلط چلا گیا اور سب کچھ ٹھیک ہے،
پروگرام اور افعال عام طور پر واپس لوٹنے کے لئے کسی حد تک counterintuitively--
0.
0 عام طور پر سب کچھ ٹھیک ہے ابیوینجک ہے.
آپ سوچ تو اگرچہ بہت سے سیاق و سباق میں اس کو جھوٹے جو،
یہ اصل میں عام طور پر ایک اچھی بات کا مطلب
>> دریں اثنا، ایک پروگرام آنے کی صورت میں 1، یا منفی 1، یا 5، یا منفی 42،
یا کسی بھی غیر 0 قدر، کہ عام طور پر ابیوینجک
کہ کچھ غلط چلا گیا ہے.
سچ تو یہ ہے، آپ کے اپنے میک یا پی سی پر، آپ اصل میں دیکھا ہے ہو سکتا
ایک غلطی پیغام، جس کے تحت یہ کچھ نہ کچھ، کی خرابی کا کہنا ہے کہ
کوڈ منفی 42، یا غلطی کا کوڈ 23، یا اس طرح کچھ.
یہ تعداد عام طور پر صرف ایک اشارہ ہے پروگرامر، یا کمپنی کو
اس سافٹ ویئر بنایا، کیا، غلط اور کیوں چلا گیا
وہ کے ذریعے دیکھ سکتے ہیں تاکہ ان دستاویزات یا کوڈ،
اور یہ جاننے میں کیا خرابی کا اصل مطلب.
یہ عام طور پر نہیں ہے ہمیں فائدہ صارفین کو ختم.
>> لیکن اہم ریٹرن 0، سب کچھ ٹھیک ہے جب.
اور تم وضاحت نہیں کرتے تو مرکزی واپس آ جانا چاہئے کیا،
یہ صرف خود کار طریقے سے کرے گا آپ کے لیے 0 واپس آ جائیں.
لیکن کچھ واپس لوٹنے ورنہ اصل میں مفید ہے.
>> یہ آخری پروگرام میں، مجھے دو آگے بڑھو اور اس exit.c کو فون،
اور آج کے کے آخری متعارف کرانے موضوع کی درجہ بندی، ایک غلطی کوڈ کے طور پر جانا.
مجھے آگے بڑھو اور شامل ہیں ہماری واقف فائلوں اوپر، int اہم کروں.
اور اس بار،، کی argc int ہے کرنے دو سٹرنگ argv، اور میرے بریکٹ کے ساتھ
جو صف میں ہے کہ مطلب یہ.
اور پھر مجھے صرف ایک وویک چیک کرتے ہیں.
اس بار، argc کے نہیں ہے تو برابر 2، پھر تم کیا جانتے ہو؟
اسے بھول جاؤ.
میں نے ایسا کرنے جا رہا ہوں، ارے، صارف، آپ کو کمانڈ لائن کی دلیل لاپتہ ہیں
الٹا سلیش (ن).
>> اور پھر یہ کہ یہ ہے.
میں نے باہر نکلنے کے لئے چاہتے ہیں.
میں نے اس preemptively کرنے جا رہا ہوں، اور وقت سے پہلے واقعی، واپسی
نمبر 1 علاوہ کسی اور چیز.
پہلی کے لئے قیمت پر جاؤ ہو سکتا ہے کہ غلطی 1 ہے.
تم کسی دوسرے غلط ہے تو ہو سکتا ہے کہ اس صورت حال،
آپ واپسی 2 کہنا یا واپسی 3 سکتا ہے، یا شاید بھی منفی 1 یا منفی 2.
>> یہ صرف وہاں سے نکلنے کوڈ ہیں ہیں ہیں، عام طور پر،
صرف پروگرامر کے لئے مفید ہے، یا کمپنی کے سافٹ ویئر کی ترسیل کر رہا ہے کہ.
لیکن حقیقت یہ ہے کہ 0 نہیں اہم کیا ہے.
لہذا اس پروگرام میں، تو میں چاہتا ہوں اس بات کی ضمانت ہے کہ یہ پروگرام صرف
صارف مجھے فراہم کرتا ہے تو کام کرتا ہے دو میں سے ایک دلیل شمار کے ساتھ،
پروگرام کا نام، اور کچھ دیگر لفظ، میں، مندرجہ ذیل کے طور پر زیادہ سے زیادہ نفاذ کر سکتے ہیں
printf کے یہ کہنے کے ساتھ صارف کو چللاو، لاپتہ کمانڈ لائن کی دلیل،
1 واپس آ جائیں.
یہ صرف فوری طور پر ہو جائے گا پروگرام چھوڑ.
>> argc کے برابر ہے صرف اس صورت میں 2 ہم نیچے اترو گے یہاں، میں کہنے جا رہا ہوں جس موڑ پر،
ہیلو فیصد ے، الٹا سلیش (ن)، argv1.
دوسرے الفاظ میں، میں ہوں ہے argv 0 کے بعد نہیں جا رہا،
جس میں پروگرام کے صرف نام ہے.
I، ہیلو پرنٹ کرنا، کوما چاہتے دوسرا لفظ انسانی ٹائپ.
اور اس معاملے پر میں 13، سب کچھ ٹھیک ہے.
>> میں جانتا ہوں کہ argc 2 ہے منطقی طور پر اس پروگرام سے.
میں آگے بڑھو اور واپسی 0 جا رہا ہوں.
ایک ایک طرف کے طور پر، اس بات کو ذہن میں رکھیں کہ اس کے ساتھ ساتھ سکریچ میں سچ ہے.
>> منطقی طور پر، میں یہ کر سکتا تھا اور ان لائنوں کیپسول کاری
یہاں اس کسی شق میں کوڈ کا.
لیکن اس طرح کی ہے بیکار میں میری کوڈ پوٹ کاری.
اور میں سپر بنانا چاہتے ہیں واضح کوئی فرق نہیں پڑتا کہ،
ڈیفالٹ کی طرف سے، ہیلو کچھ، طباعت ہو جائے گا
صارف تعاون جب تک.
>> تاکہ اس کا استعمال بہت عام ہے ایک شرط، صرف ایک ہے تو،
کچھ غلط پکڑنے کے لئے صورت حال، اور پھر باہر نکلیں.
اور پھر، اتنی دیر میں ہے ساتھ ساتھ، کسی اور ایک بھی نہیں،
لیکن صرف کوڈ ہے اس کے باہر، یہ بات ہے کیونکہ اگر
اس میں برابر خاص معاملے، منطقی طور پر.
لہذا میں، واپس آ رہا ہوں 0 صرف کرنے کے واضح طور پر نشاندہی سب کچھ ٹھیک ہے.
>> میں واپسی 0 لپ تو، یہ کرے گا خود کار طریقے سے میرے لئے فرض کیا جا.
لیکن اب میں واپس آ رہا ہوں کہ کم از کم اس معاملے میں ایک،
مجھے اچھا اقدام کے لئے، کرنے کے لئے جا رہا ہوں اور وضاحت، اس کیس میں 0 واپس.
تو اب مجھے آگے جانا ہے اور وہاں سے نکلنے کے بنانے، جس میں صرف چھوڑنے کے لئے ایک کامل segue کا ہے.
>> لیکن وہاں سے نکلنے بنانے کے، اور مجھے جانے دو آگے اور ./exit کرتے، درج.
اور پروگرام، مجھ پر چللایا کمانڈ لائن کی دلیل لاپتہ.
OK، مجھ سے تعاون کرتے ہیں.
>> مجھے اس کی بجائے ./exit کرنے دو، ڈیوڈ، درج.
اور اب یہ کہتا ہے، ہیلو ڈیوڈ.
اور آپ کو عام طور پر اس کو دیکھ نہیں کریں گے.
>> لیکن یہ ایک نہیں ہے کہ باہر کر دیتا ہے لینکس میں خاص طریقے اصل کو دیکھنے کے لئے
کیا وہاں سے نکلنے کے کوڈ کے ساتھ ایک پروگرام سے خارج ہوگئے.
کبھی کبھی ایک گرافیکل میں میک OS یا ونڈوز کی طرح دنیا،
آپ کو صرف ان کی تعداد جب ایک دیکھیں خرابی کا پیغام کی سکرین پر ٹمٹمانے
اور پروگرامر تم نے اس تعداد ظاہر کرتا ہے.
لیکن ہم کیا غلطی کو دیکھنا چاہتے ہیں تو پیغام ہم یہ یہاں کیا کر سکتے ہیں، ہے
تاکہ ./exit، درج، تعداد کمانڈ لائن کی دلیل لاپتہ.
>> اب میں گونج $ ؟، ایسا کرتے ہیں جس میں مضحکہ خیز خفیہ لگ.
لیکن $؟
جادو منتر ہے کہ، کا کہنا ہے کہ ارے، کمپیوٹر،
مجھے بتاو کہ کیا پچھلے پروگرام کی رخصتی کوڈ تھی.
اور میں درج کریں مارا.
I، 1 دیکھتے ہیں کہ کیونکہ جو میں نے واپس کرنے کے لئے میرا بنیادی تقریب بتایا.
>> دریں اثنا، میں داؤد ./exit کرتے ہیں تو، اور Enter دبائیں، میں دیکھ رہا ہوں، ہیلو ڈیوڈ.
اور اب میں گونج $ ایسا کرتے ہیں؟، میں 0 ہیلو دیکھیں.
اور اس طرح یہ اصل میں لونگا قیمتی معلومات ہونا
ٹھیک کرنے والا کھولتا کے تناظر، نہیں تو میں زیادہ سے زیادہ یہ ہے کہ آپ، انسانی، دیکھ بھال کریں گے.
لیکن ٹھیک کرنے والا کھولتا اور دیگر پروگرام ہم اس سمسٹر کا استعمال کریں گے
اکثر یہ تعداد میں نظر آئے گا، اس طرح کی چھپا ہے، اگرچہ
آپ، پر اس کے لئے نظر آتے ہیں، جب تک کہ اس بات کا تعین کرتے ہیں یا نہیں ایک پروگرام کا
پھانسی کی سزا درست ہے یا غلط تھا.
>> اور تو ہے کہ ہمیں لاتا ہے اس، دن کے آخر میں.
آج ہم دیکھ کر شروع کر دیا ٹھیک کرنا، اور کورس میں باری میں
خود، اور پھر زیادہ دلچسپ بات یہ ہے، تکنیکی طور پر ہڈ کے نیچے
کیا میں ڈور جن میں سے آخری، ہیں ہفتے ہم صرف کی جاچکی کے لئے لے گئے،
اور یقینی طور پر ان کے لے گئے کے شروع میں عطا کی.
>> پھر ہم کس طرح رسائی حاصل کرسکتے ہیں کی طرف دیکھا ایک تار میں انفرادی حروف،
اور پھر دوبارہ ایک اعلی سطح لیا کس طرح well-- کی طرف دیکھ چیزوں کو دیکھو،
ہم انفرادی میں حاصل کرنا چاہتے ہیں تو ساخت کی طرح ایک فہرست میں عناصر،
ہم ایک سے زیادہ ڈور کے ساتھ نہیں کر سکتے ہیں؟
اور ہم کمانڈ لائن کے دلائل کے ساتھ کر سکتے.
لیکن یہاں صرف خانوں کی تصویر اس عام خیال کی demonstrative ہے
ایک صف، یا ایک فہرست، یا ایک ویکٹر کی.
اور پر منحصر ہے سیاق و سباق، ان الفاظ میں سے سب
تھوڑا سا مختلف چیزوں کا مطلب.
لہذا سی میں، ہم صرف جا رہے ہیں ایک سرنی کے بارے میں بات کرنے کے لئے.
اور ایک صف ایک حصہ ہے میموری کی، جن میں سے ہر ایک ہے
عناصر، واپس، ملحق ہیں واپس کرنے کے لئے واپس کرنے کے لئے واپس کرنے کے لئے.
>> اور ان عناصر کو عام طور پر، کر رہے ہیں، ایک ہی ڈیٹا کی قسم کے، کردار،
کردار، کردار، کردار، یا سٹرنگ، سٹرنگ، سٹرنگ، سٹرنگ، یا INT،
INT، INT، جو کچھ بھی ہے ہم دکان کے لئے کوشش کر رہے ہیں.
لیکن دن کے اختتام پر، یہ ہے کیا یہ تصوراتی کی طرح لگتا ہے.
آپ لے رہے ہیں آپ کمپیوٹر کی میموری یا رام.
اور تم نے اسے باہر carving رہے شناختی درجے خانوں، جن میں سے سب
کرنے کے لئے واپس کرنے کے لئے، واپس آ گئے ہیں واپس، اس طرح میں واپس کرنے کے لئے.
>> اور کے بارے میں اچھی کیا ہے اس خیال، اور حقیقت
ہم اس طرح کی اقدار کا اظہار کر سکتے ہیں کہ ہمارے اعداد و شمار کے ڈھانچے کی پہلی کے ساتھ
کلاس میں، مطلب ہے کہ ہم شروع کر سکتے ہیں کوڈ کے ساتھ مسائل حل کرنے کی
اس ہفتے 0 میں اتنی intuitively پر آیا.
آپ کے فون کو یاد کریں گے بک مثال، جہاں
ہم نے ایک تقسیم کا استعمال کیا اور فتح یا ایک بائنری تلاش الگورتھم،
ایک پوری ذریعے sift نام اور تعداد کے گروپ.
لیکن ہم، فرض، یاد ہے کہ فون بک پہلے ہی کے مطابق کیا گیا
میں کسی اور ہی کہہ دیا تھا کہ out-- ناموں کی ایک فہرست دی سوچا
اور ان کو alphabetize کے لئے کس طرح اعداد.
اور اب جب C میں ہم، بھی، کی صلاحیت ہے
، چیزیں ڈال کرنے کے لئے نہیں جسمانی طور پر ایک فون کی کتاب میں
لیکن عملی طور پر ایک کمپیوٹر کی دہائی میں میموری، ہم قابل آئندہ ہفتے ہوں گے
پہلی this-- دوبارہ متعارف کرانے کے لئے ایک صف میں ہمارے ڈیٹا ڈھانچے کی
لیکن زیادہ اہم بات، اصل کمپیوٹر سائنس یلگوردمز لاگو
کوڈ میں، جس کے ساتھ ہم محفوظ کر سکتے ہیں اس طرح کے ڈھانچے میں ڈیٹا،
اور پھر یہ جوڑتوڑ کرنے کے لئے شروع، اور اصل میں اس کے ساتھ مسائل حل کرنے کے لئے،
اور اس کے اوپر تعمیر کرنے کے لئے، بالآخر، C میں پروگرام،
ازگر میں، جاوا سکرپٹ میں، SQL کے ساتھ ڈیٹا بیس querying؟
>> اور ہم نے ان میں ہے کہ تمام کو دیکھ لیں گے interlock کے مختلف خیالات.
لیکن اب کے لئے، کہ یاد آج ہم تعارف کرایا کہ ڈومین
اس بات کو یہاں تھا، اور خفیہ نگاری کی دنیا.
اور اگلے مسائل آپ خود کے درمیان حل کیا جائے گا خفیہ نگاری کا فن ہے،
دوڑ دھوپ اور ڈی دوڑ دھوپ معلومات، اور ciphering
اور متن deciphering کے، اور بالآخر سنبھالنے
اب آپ کو معلوم ہے کہ کیا ہڈ کے نیچے ہے
تا کہ آپ دیکھ یا وصول کریں جب اس طرح سے ایک پیغام ہے، آپ
یہ اپنے آپ کو سمجھنے کر سکتے ہیں.
یہ سب، اور مزید اگلی بار.
>> [ویڈیو پلے بیک]
>> -Mover ابھی آیا.
مجھے پیغام لکھنے کے لیے جا رہا ہوں اپنے کالج کے پروفیسر.
جی ہاں.
ہیلو.
یہ تم ہو.
ٹھہرو!
ڈیوڈ.
میں نے صرف جاننے کی کوشش کر رہا ہوں تمہیں کیا ہوا ہے باہر.
براہ مہربانی، کچھ بھی مدد کر سکتا ہے.
تم نے اس کالج کے تھے روممیٹ، تم نہیں تھے؟
تم نے اس کے ساتھ تھے جب وہ CS50 منصوبے ختم؟
>> [موسیقی بجانے]
>> یعنی CS50 تھا.
>> میں اس جگہ سے محبت کرتا ہوں.
>> -کھاؤ.
ہم کاروبار کے باہر جا رہے ہیں.
>> [END پلے بیک]