CodeGym /جاوا بلاگ /Random-UR /پرانا درجہ 09
John Squirrels
سطح
San Francisco

پرانا درجہ 09

گروپ میں شائع ہوا۔

علم بمقابلہ ہنر

اولڈ لیول 09 - 1کالج نے ہمیں سکھایا کہ تھیوری اور پریکٹس میں کوئی بڑا فرق نہیں ہے۔ ٹھیک ہے، یقینا آپ سمجھتے ہیں کہ یہ ایک ہی نہیں ہے. لیکن آپ کو بنیادی فرق نظر نہیں آتا۔ پھر بھی ایک ہے۔ زیادہ تر لوگ "میں جانتا ہوں" اور "میں کر سکتا ہوں" کے درمیان مساوات کا نشان لگاتے ہیں۔ کیا آپ؟ چند مثالوں کے بارے میں کیا خیال ہے؟
  1. میں جانتا ہوں کہ سگریٹ نوشی میرے لیے بری ہے، لیکن میں سگریٹ نوشی کرتا ہوں۔
  2. میں جانتا ہوں کہ فاسٹ فوڈ میرے لیے برا ہے، لیکن میں اسے کھاتا ہوں۔
  3. مجھے ٹریفک کے ضابطے معلوم ہیں لیکن میں گاڑی نہیں چلا سکتا۔
  4. میں جانتا ہوں کہ جاگنگ میرے لیے اچھا ہے لیکن میں صبح جاگنگ نہیں کرتا۔
اکثر ایسا ہوتا ہے کہ لوگ "I know" کو "I can" کے لیے لیتے ہیں۔ ٹریفک کے ضوابط کے ساتھ یہ ایک اچھی مثال ہے۔ اگر کوئی شخص قواعد و ضوابط جانتا ہے اور جانتا ہے کہ گاڑی چلانے کا طریقہ کیا ہے تو کیا اس کا مطلب ہے کہ وہ گاڑی چلا سکتا ہے؟ Nope کیا. کیا ہوگا اگر وہ سوچتا ہے کہ وہ گاڑی چلانا جانتا ہے؟ تو اسے ایک انسٹرکٹر کی ضرورت کیوں پڑے گی – وہ پہلے سے ہی سب کچھ جانتا ہے۔ جب آپ کو یقین ہو کہ آپ سب کچھ پہلے سے جانتے ہیں تو شاید آپ کچھ نیا نہیں سیکھ پائیں گے۔ اور اگر آپ کو یقین ہے کہ آپ سب کچھ کرنا جانتے ہیں تو آپ مطالعہ نہیں کریں گے۔ اس طرح کا خیال آپ کے دماغ میں بھی نہیں آئے گا۔ اور اس کا مطلب ہے کہ آپ کچھ سیکھنے کے تمام شاندار مواقع سے محروم ہو جائیں گے۔ عام کالج صرف آپ کو علم دیتا ہے۔ آپ کو خود ہی مہارت حاصل کرنی ہوگی۔ لیکن میں کیا سنوں؟ آپ نے اپنے کالج میں تھیوری کے علاوہ پریکٹس بھی کی ہے؟ ٹھیک ہے، اگر آپ نے فزکس فیکلٹی پر تعلیم حاصل کی ہے تو کم از کم 20% کی کارکردگی کے ساتھ بھاپ کے انجن کا ورکنگ ماڈل بنائیں۔ میں شرط لگاتا ہوں کہ آپ جانتے ہیں کہ اسے کیسے کرنا ہے، لیکن آپ حقیقت میں ایسا نہیں کر پائیں گے، کیا میں ٹھیک ہوں؟ آپ ایک کیمسٹ ہیں ؟ دھوئیں کے بغیر پاؤڈر بنائیں۔ آپ جانتے ہیں کہ کیسے، لیکن آپ نہیں کر سکتے، ہا؟ ریاضی دان، کیا آپ ہیں؟ آرٹلری شیل کی رفتار کا حساب لگائیں۔ شیل کی شکل کو مدنظر رکھنا نہ بھولیں۔ ریاضی کے نقطے حقیقی زندگی میں نہیں اڑتے۔ اور کوئی کروی گھوڑے نہیں ہیں۔ اولڈ لیول 09 - 2ماہر حیاتیات؟ پینسلن کو الگ کر دیں۔ یہ سانچہ خربوزے پر اگتا ہے، تو آپ جانتے ہیں۔ آپ جانتے ہیں کہ کیسے - شاندار! کیا آپ یہ کر سکتے ہیں؟ ماہر معاشیات۔ تیل کی قیمت میں اضافے کی پیشن گوئی کریں۔ ہو گیا اور اب اپنی پیشن گوئی کی بنیاد پر اسے $2,000 یا $200,000 میں تبدیل کریں۔ کیا آپ نے کبھی فاریکس پر کھیلا ہے؟ اصلی پیسے کے لیے؟ یا آپ جانتے ہیں کہ یہ کیا ہے؟ بین الاقوامی معاشیات؟ شاندار! میں آف شور کمپنی کہاں کھولوں؟ ہانگ کانگ، آئرلینڈ یا امریکہ میں۔ کیوں؟ یہاں تک کہ اگر آپ کو یہ معلوم ہے، جو کہ مشکوک ہے، آپ شاید ہی ایسا کر پائیں گے، کیونکہ آپ نے حقیقت میں یہ کبھی نہیں کیا ہے۔ آپ کو ذرا سا بھی اندازہ نہیں ہے کہ اسے کیسے کرنا ہے۔ اوہ، تم نے وہ کالج میں نہیں پڑھا؟ مجھے آپ کو وہ کام دینے کا کیا حق ہے جس کے لیے آپ تیار نہیں ہیں؟ کیونکہ یہ حقیقی زندگی کے کام ہیں۔ یہ IS پریکٹس ہے ، جو آپ نے کالج میں پڑھا ہے وہ یہ ہے: کروی گھوڑے، کامل مقابلہ – اس میں سے کوئی بھی حقیقی زندگی میں موجود نہیں ہے۔ لیکن میں مارکیٹنگ کے ماہر کا ذکر کرنا کیوں بھول گیا ہوں ؟ میرے $500 خرچ کرنے کا بہترین طریقہ کیا ہے تاکہ زیادہ سے زیادہ لوگ میرے لیکچرز کے بارے میں جان سکیں؟ اشتہار پر؟ کیا آپ کو معلوم ہے کہ نہ صرف کلاسک اشتہارات پہلے سے ہی پرانے ہیں، بلکہ USP (منفرد فروخت کی تجویز) کا تصور بھی، جو مجھے یقین ہے کہ آپ کو کالج میں تقریباً منفرد علاج کے طور پر سکھایا گیا تھا۔ بھول جاؤ تم کچھ بھی جانتے ہو۔ اپنے آپ سے پوچھیں - میں کیا کر سکتا ہوں؟ مفید، میرا مطلب ہے؟ کچھ لوگ پیسے ادا کریں گے؟ اچھا پیسہ، میرا مطلب ہے؟ تو دوستو، آئیے CodeGym جیسے شاندار کورس کا شکریہ ادا کریں۔ اس کی وجہ سے آپ نہ صرف یہ جانتے ہوں گے کہ کس طرح پروگرام کرنا ہے، بلکہ آپ حقیقت میں اسے کرنے کے قابل بھی ہوں گے۔ آپ کچھ سالوں میں نوکری حاصل کرنے اور اچھی رقم کمانے کے قابل بھی ہوں گے۔ مجھے امید ہے کہ یہ رقم اچھی اور آرام دہ زندگی گزارنے کے لیے کافی ہوگی۔ میں اسے ایک بار پھر کہوں گا، لہذا آپ کو یاد ہے: اس سے کوئی فرق نہیں پڑتا ہے کہ آپ کیا جانتے ہیں۔ صرف ایک چیز جو اہمیت رکھتی ہے وہ یہ ہے کہ آپ کے پاس کون سی کارآمد مہارتیں ہیں، جو لوگ آپ کو ادا کرنے کے لیے بے چین ہوں گے۔ جتنی جلدی آپ یہ سمجھیں گے اتنا ہی بہتر ہے۔

آپ ایک نئی سطح پر پہنچ گئے ہیں۔

لیول 9

اولڈ لیول 09 - 3

1 ریشہ، اسٹیک ٹریس

پرانا درجہ 09 - 4- ارے! آج میں آپ کو بتاؤں گا کہ اسٹیک ٹریس کیا ہے۔ لیکن پہلے میں آپ کو بتاتا ہوں کہ اسٹیک کیا ہے۔ - کاغذات کے ڈھیر کا تصور کریں - ایک مخصوص کلرک کے لیے اسائنمنٹس۔ اسٹیک کے اوپری حصے پر ایک نئی اسائنمنٹ ڈالی جا سکتی ہے، اور وہ اسٹیک کے اوپری حصے سے اسائنمنٹ لے گا۔ اس طرح، اسائنمنٹ پہلے آئیے پر نہیں کیے جائیں گے۔ ہر بار کلرک اسائنمنٹ لیتا ہے جو آخری آتا ہے۔ مجموعہ کی ایسی ساخت کو اسٹیک کہا جاتا ہے ۔ - جاوا میں، ایک خاص مجموعہ ہے - اسٹیک۔ اس مجموعے میں "ایک عنصر شامل کریں" اور "ایک عنصر کو لے جائیں (حاصل کریں/ لے جائیں)" کے طریقے ہیں۔ جیسا کہ آپ پہلے ہی جانتے ہیں، شامل کردہ آخری عنصر پہلے لیا جائے گا۔ - ہم یہ مشکل نہیں ہے، مجھے لگتا ہے۔ - ٹھیک. پھر میں وضاحت کرتا ہوں کہ اسٹیک ٹریس کیا ہے۔ - تصور کریں کہ جاوا فنکشن میں А فنکشن B کو کال کرتا ہے ، اور بعد میں فنکشن C کو کال کرتا ہے ، جو کہ اس کے نتیجے میں، فنکشن D کو کال کرتا ہے ۔ لہذا، فنکشن B سے باہر نکلنے کے لیے ، آپ کو پہلے فنکشن C سے باہر نکلنا ہوگا ، اور ایسا کرنے کے لیے آپ کو فنکشن D سے باہر نکلنا ہوگا ۔ یہ اسٹیک سے بہت ملتا جلتا ہے۔ - اور کیا مماثلت ہے؟ - اسٹیک میں، کسی خاص اسائنمنٹ تک پہنچنے کے لیے، آپ کو اوپر رکھے گئے تمام اسائنمنٹس کو بھی مکمل کرنا ہوگا۔ - ٹھیک ہے، یہ ایک طرح کی مشابہت ہے، لیکن مجھے یقین نہیں ہے کہ میں سب کچھ ٹھیک سمجھتا ہوں۔ - یہاں دیکھو. جاوا میں ایک اسٹیک عناصر کا ایک مجموعہ ہے۔ یہ ایک ڈھیر میں کاغذ کی چادروں کی طرح ہے۔ اوپر سے تیسرا لینے کے لیے، آپ کو دوسری شیٹ لینی چاہیے، لیکن اس سے پہلے آپ کو پہلی لینی ہوگی۔ آپ ہمیشہ چادریں رکھ اور لے سکتے ہیں، لیکن آپ انہیں صرف اوپر رکھ سکتے ہیں اور صرف اوپر سے لے سکتے ہیں۔ فنکشن کال پر بھی یہی لاگو ہوتا ہے۔ فنکشن А فنکشن B کو کال کرتا ہے ، بعد میں فنکشن C کو کال کرتا ہے ۔ А سے باہر نکلنے کے لیے ، آپ کو پہلے B سے باہر نکلنا ہوگا ، اور ایسا کرنے کے لیے آپ کو C سے باہر نکلنا ہوگا ۔ - ذرا رکو. اگر میں نے اسے ٹھیک سمجھا تو، پورا اسٹیک نکلے گا "صرف آخری شیٹ جو اسٹیک پر ڈالی گئی تھی لی جا سکتی ہے" اور "پہلے، آخری کہلائے گئے فنکشن سے باہر نکلنا چاہیے"۔ اگر ایسا ہے؟ - جی ہاں. لہذا، فنکشن کالز کی ترتیب "فنکشن کال اسٹیک"، یا صرف "کال اسٹیک" ہے۔ آخری نامی فنکشن کو پہلے ختم کرنا ضروری ہے۔ آئیے مثال پر نظر ڈالیں: پرانا درجہ 09 - 5- ٹھیک ہے۔ میرے خیال میں فنکشن کال سے سب کچھ واضح ہے۔ لیکن یہ StackTraceElement کیا ہے ؟ - جاوا ورچوئل مشین تمام فنکشن کالز کو لاگ کرتی ہے۔ اس مقصد کے لیے اس کا ایک خاص مجموعہ ہے - اسٹیک۔ جب ایک فنکشن دوسرے کو کال کرتا ہے، JVM ایک نیا عنصر StackTraceElement رکھتا ہے۔اس اسٹیک میں. فنکشن ختم ہونے پر، عنصر کو اسٹیک سے حذف کر دیا جاتا ہے۔ اس طرح، یہ اسٹیک ہمیشہ "فنکشن کال اسٹیک" کی موجودہ حالت کے بارے میں تازہ ترین معلومات کو محفوظ کرتا ہے۔ - ہر StackTraceElement میں کہا جاتا طریقہ کے بارے میں معلومات ہوتی ہیں۔ لہذا آپ اس طریقہ کا نام استعمال کرکے حاصل کرسکتے ہیں getMethodName ۔ - اوپر کی مثال یہ ظاہر کرتی ہے:
  1. "کال اسٹیک" حاصل کریں:
  2. لوپ for-each کا استعمال کرتے ہوئے صف کو دہرائیں ۔ مجھے امید ہے کہ آپ اسے بھولے نہیں ہوں گے۔
  3. System.out پر طریقہ کے نام پرنٹ کریں ۔
- ایک دلچسپ چیز، اور بظاہر آسان۔ شکریہ، ریشا!

2 ڈیاگو، اسٹیک ٹریس ڈسپلے پر ٹاسک

- ارے، امیگو! اسٹیک ٹریس کو اسکرین پر ظاہر کرنے کے لیے یہاں ایک چھوٹا سا کام ہے۔
کام
1 ہر طریقہ کو اپنا StackTrace واپس کرنا چاہیے
پانچ طریقے لکھیں جو ایک دوسرے کو کال کریں۔ ہر طریقہ کو اس کا StackTrace واپس کرنا چاہئے۔
2 StackTrace دوبارہ
پانچ طریقے لکھیں جو ایک دوسرے کو کال کریں۔ ہر طریقہ کو اپنے کالر کے طریقہ کار کا نام واپس کرنا چاہیے۔ آپ StackTrace کا استعمال کرتے ہوئے کالر کا طریقہ حاصل کر سکتے ہیں۔
3 طریقہ کار کو کوڈ کا لائن نمبر واپس کرنا چاہئے جس کو
ایک دوسرے کو کال کرنے والے پانچ طریقوں سے کال کیا گیا تھا۔ ہر طریقہ کو کوڈ کا لائن نمبر واپس کرنا چاہئے جس سے اس طریقہ کو کال کیا گیا تھا۔ فنکشن element.getLineNumber() استعمال کریں ۔
4 10 کالوں کا اسٹیک ٹریس
10 کالوں کا اسٹیک ٹریس حاصل کرنے کے لیے کوڈ لکھیں۔
5 طریقہ کار کو نتیجہ واپس آنا چاہیے - اس کی اسٹیک ٹریس ڈیپتھ
ایک طریقہ لکھیں جو اس کے اسٹیک ٹریس ڈیپتھ کو دکھاتا اور واپس کرتا ہے۔ اسٹیک ٹریس ڈیپتھ اس کے طریقوں کی تعداد ہے (فہرست میں عناصر کی تعداد)۔

3 ایلی، غلطیاں اور مستثنیات

- ارے، امیگو! آج ہمارے پاس ایک بہت ہی دلچسپ سبق ہے۔ میں آپ کو مستثنیات کے بارے میں بتاؤں گا۔ استثنا پروگرام میں غلطیوں کو کنٹرول کرنے کا ایک خاص طریقہ کار ہے۔ پروگرام میں ہونے والی غلطیوں کی کچھ مثالیں یہ ہیں:
  1. پروگرام مکمل ڈسک پر فائل لکھنے کی کوشش کرتا ہے۔
  2. پروگرام ایک متغیر کے طریقہ کار کو کال کرنے کی کوشش کرتا ہے جو null حوالہ کو محفوظ کرتا ہے۔
  3. پروگرام نمبر کو 0 سے تقسیم کرنے کی کوشش کرتا ہے۔
ان اعمال کے نتیجے میں غلطی ہوتی ہے۔ عام طور پر، یہ ایک پروگرام کی بندش کا باعث بنتا ہے - کوڈ پر عمل درآمد جاری رکھنے کا کوئی فائدہ نہیں ہے۔ - ایسا کیوں ہے؟ - جب گاڑی چٹان سے گر رہی ہو تو کیا پہیہ موڑنے کا کوئی مطلب ہے؟ - کیا آپ کا مطلب ہے کہ پروگرام ختم ہونا چاہئے؟ - جی ہاں. پہلے بھی ایسا ہی تھا۔ کسی بھی غلطی کی وجہ سے پروگرام بند ہو گیا۔ - یہ ایک بہت ہوشیار فیصلہ ہے. - کیا اس پر کام کرنے کی کوشش کرنا بہتر نہیں ہوگا؟ - ہاں. آپ نے ایم ایس ورڈ میں ایک بہت بڑا متن ٹائپ کیا ہے، اسے محفوظ کیا ہے، اسے محفوظ نہیں کیا گیا ہے، لیکن پروگرام آپ کو بتاتا ہے کہ سب کچھ ٹھیک ہے۔ اور آپ ٹائپنگ جاری رکھیں۔ پاگل، ہے نا؟ - ہاں. - پھر پروگرامرز ایک دلچسپ اقدام کے ساتھ آئے: ہر فنکشن نے اپنے کام کی حیثیت واپس کردی۔ 0 کا مطلب یہ ہے کہ فنکشن نے کام کیا جیسا کہ اسے سمجھا جاتا تھا، کوئی دوسری قدر - کہ ایک خرابی تھی : یہ قدر ایک ایرر کوڈ تھی۔ - لیکن اس نقطہ نظر کا ایک نقصان تھا۔ ہر (!) فنکشن کال کے بعد آپ کو فنکشن کے ذریعے لوٹائے گئے کوڈ (نمبر) کو چیک کرنا پڑتا ہے۔ سب سے پہلے، یہ تکلیف دہ تھا: غلطی سے نمٹنے والے کوڈ کو شاذ و نادر ہی عمل میں لایا جاتا تھا، لیکن آپ کو ہمیشہ اسے لکھنا پڑتا تھا۔ دوم، افعال خود اکثر مختلف اقدار واپس کرتے ہیں - ان کے ساتھ کیا کرنا ہے؟ - ہاں. میں یہی پوچھنے جا رہا تھا۔ - پھر ایک روشن مستقبل آیا - مستثنیات اور غلطی سے نمٹنے کے سامنے آئے۔ یہاں یہ ہے کہ یہ کیسے کام کرتا ہے:
  1. جب کوئی خرابی واقع ہوتی ہے، جاوا ورچوئل مشین ایک خاص چیز بناتی ہے - ایک استثناء - جس میں خرابی کے بارے میں تمام معلومات ہوتی ہیں۔ مختلف غلطیوں کے لیے مختلف مستثنیات ہیں۔
  2. پھر یہ استثناء پروگرام کو فوری طور پر موجودہ فنکشن میں رکاوٹ ڈالنے پر مجبور کرتا ہے، اور اگلے فنکشن میں، جب تک کہ یہ مرکزی طریقہ سے باہر نہ نکل جائے۔ اس کے بعد پروگرام ختم ہو جاتا ہے۔ جاوا کے ڈویلپرز اس عمل کو "کال اسٹیک کو واپس کرتا ہے" کہتے ہیں۔
- لیکن آپ نے کہا ہے کہ پروگرام یقینی طور پر باہر نہیں جا رہا ہے۔ - یہ ٹھیک ہے، کیونکہ استثناء کو پکڑنے کا ایک طریقہ ہے۔ جب بھی اور جہاں بھی آپ کی ضرورت ہو، آپ ان استثنیات کو پکڑنے کے لیے ایک خاص کوڈ لکھ سکتے ہیں اور کوئی اہم کام کر سکتے ہیں۔ - ایسا کرنے کے لیے، ایک خاص تعمیراتی کوشش کی جاتی ہے ۔ دیکھیں کہ یہ کیسے کام کرتا ہے: پرانا درجہ 09 - 6- کیوں «طریقہ 1 کالنگ کے بعد۔ کبھی نہیں دکھایا جائے گا » اسکرین پر ظاہر نہیں کیا جائے گا؟ - مجھے خوشی ہے کہ آپ نے اس کے بارے میں پوچھا۔ لائن 25 میں، صفر سے ایک تقسیم ہے۔ یہ ایک غلطی کی طرف جاتا ہے - ایک استثناء۔ جاوا ورچوئل مشین نے ایریتھمیٹک ایکسیپشن آبجیکٹ بنایا جس میں خرابی کی معلومات تھی۔ یہ اعتراض مستثنیٰ ہے۔ - طریقہ کے اندر ایک استثناء واقع ہوا method1() ۔ اس کے نتیجے میں طریقہ کار کو فوری طور پر ختم کر دیا گیا۔ یہ طریقہ مین کے خاتمے کا باعث بھی بنے گا ، اگر کوئی ٹرائی کیچ بلاک نہ ہو۔ - اگر ٹرائی بلاک کے اندر کوئی استثناء ہوتا ہے، تو یہ کیچ بلاک میں پکڑا جائے گا۔ بلاک کی کوشش میں باقی کوڈ پر عمل نہیں کیا جائے گا، بلاک کیچ پر عمل درآمد فوری طور پر شروع ہو جائے گا۔ - میں بالکل نہیں سمجھتا ہوں۔ - دوسرے الفاظ میں، یہ کوڈ اس طرح کام کرتا ہے:
  1. اگر ٹرائی بلاک کے اندر کوئی استثناء واقع ہوتا ہے ، تو اس بلاک میں موجود کوڈ کو مزید عمل میں نہیں لایا جاتا ہے، لیکن بلاک کیچ پر عمل درآمد شروع ہو جاتا ہے۔
  2. اگر کوئی رعایت نہیں ہوئی تو، ٹرائی بلاک کو آخر تک عمل میں لایا جاتا ہے ، اور کیچ کو کبھی بھی عمل میں نہیں لایا جاتا ہے ۔
- احمد! - تصور کریں کہ ہر میتھڈ کال کے بعد ہم یہ چیک کرتے ہیں کہ میتھڈ کو خود سے ختم کیا گیا ہے یا استثنیٰ کی وجہ سے۔ اگر کوئی استثناء تھا تو، JVM بلاک کیچ پر عمل درآمد شروع کر دیتا ہے اگر یہ دستیاب ہو، اور ایک استثناء کو پکڑتا ہے۔ اگر کوئی کیچ بلاک نہیں ہے تو، JVM موجودہ طریقہ کو ختم کر دیتا ہے۔ پھر وہی چیک اس طریقہ میں شروع ہوتا ہے جسے کرنٹ میتھڈ کہا جاتا ہے۔ - اب مجھے لگتا ہے کہ مجھے مل گیا ہے۔ - ٹھیک ہے. - اور کیچ بلاک کے اندر وہ استثنا کیا ہے؟ - تمام مستثنیات کلاس استثناء سے وراثت میں ملی ہیں۔ ہم ان میں سے کسی کو کیچ بلاک میں اس کی کلاس بتا کر ، یا ان سب کو ایک ساتھ ایک مشترکہ پیرنٹ کلاس Exception بتا کر پکڑ سکتے ہیں۔ پھر، متغیر e سے (یہ متغیر کسی استثنائی چیز کا حوالہ محفوظ کرتا ہے) آپ غلطی کے بارے میں تمام ضروری معلومات حاصل کر سکتے ہیں۔ - زبردست! اور کیا ہوگا اگر میرے طریقہ کار میں مختلف مستثنیات ہوں تو کیا میں انہیں مختلف طریقوں سے سنبھال سکتا ہوں؟ - آپ کو کرنا پڑے. آپ اسے اس طرح کر سکتے ہیں: اولڈ لیول 09 - 7- ٹرائی بلاک میں ایک سے زیادہ کیچ بلاکس شامل ہو سکتے ہیں، جن میں سے ہر ایک اپنی قسم کے استثناء کو پکڑے گا۔ - Umph. ٹھیک ہے، میں نے اسے سمجھا. یقیناً میں خود ایسا کچھ نہیں لکھوں گا۔ تاہم، اگر میں اس طرح کے کوڈ کو پورا کرتا ہوں تو میں خوفزدہ نہیں ہوں گا۔

4 Elly, RuntimeException, throws

پرانا درجہ 09 - 8- میں نے آج ایک اور موضوع لانے کا فیصلہ کیا ہے۔ جاوا میں، تمام مستثنیات کو دو قسموں میں تقسیم کیا گیا ہے - کنٹرول شدہ/چیک شدہ اور غیر کنٹرول شدہ/غیر چیک شدہ ۔ چیک شدہ مستثنیات کو پکڑا جانا ضروری ہے ، غیر چیک شدہ کو پکڑا جا سکتا ہے لیکن اس کی ضرورت نہیں ہے ۔ - کیا جان بوجھ کر کوڈ میں مستثنیات پھینکنا ممکن ہے؟ - اپنے کوڈ میں، آپ خود مستثنیات پھینک سکتے ہیں۔ آپ اپنی مستثنیات بھی لکھ سکتے ہیں۔ لیکن ہم بعد میں اس سوراخ میں گہرائی میں جائیں گے۔ اب آئیے سیکھتے ہیں کہ جاوا ورچوئل مشین کی طرف سے دی گئی مستثنیات کے ساتھ کیسے کام کیا جائے۔ - ٹھیک ہے. - اگر استثناء ClassNotFoundException اور FileNotFoundException کو کسی طریقہ میں پھینک دیا جاتا ہے (ظاہر ہوتا ہے)، پروگرامر کو انہیں ایک طریقہ (طریقہ ہیڈر) کے دستخط میں بیان کرنا ہوگا۔ اس طرح کے استثناء کی جانچ پڑتال کی جاتی ہے. یہ عام طور پر ایسا ہی نظر آتا ہے: پرانا درجہ 09 - 9- لہذا، ہم صرف تھرو لکھتے ہیں اور کوما سے الگ کر کے مستثنیات کی فہرست دیتے ہیں۔ ٹھیک ہے؟ اگر ایسا ہے؟ - جی ہاں. لیکن ایک اور دلچسپ بات ہے۔ ذیل میں دی گئی مثال کو مرتب کرنے کے لیے، طریقہ جو میتھڈ 1() کو کال کرتا ہے اسے یا تو ان مستثنیات کو پکڑنا ہوگا یا انہیں آگے پھینکنا ہوگا۔ اگر آپ چیک شدہ استثناء کو آگے پھینکنا چاہتے ہیں تو آپ کو طریقہ کے ہیڈر میں اس کی وضاحت کرنی ہوگی ۔ - ایک بار پھر، اگر مرکزی طریقہ میں، آپ کسی ایسے طریقہ کو کال کرنا چاہتے ہیں جس کے ہیڈر کے جملے میں FileNotFoundException کو پھینک دیا گیا ہو ، تو آپ کو ان دو چیزوں میں سے ایک کرنا ہوگا:
  1. مستثنیات کو پکڑنے کے لیے FileNotFoundException، …
    آپ کو کوڈ کو لپیٹنا پڑے گا جہاں آپ ٹرائی کیچ بلاک کے ساتھ خطرناک طریقہ کہتے ہیں
  2. مستثنیات کو نہ پکڑنا FileNotFoundException، …
آپ کو یہ مستثنیات اپنے میتھڈ مین کی تھرو لسٹ میں شامل کرنا ہوں گی ۔ - کیا آپ مجھے ایک مثال دیں گے؟ - یہاں دیکھیں: - یہ مثال مرتب نہیں کی جائے گی، کیونکہ طریقہ مین میتھڈ میتھڈ 1() کو کال کرتا ہے، جو مستثنیات پھینک دیتا ہے جن کو پکڑنا ضروری ہے۔ - مثال کو مرتب کرنے کے لیے، آپ کو میتھڈ مین میں استثنا ہینڈلنگ شامل کرنے کی ضرورت ہے ۔ آپ اسے دو طریقوں سے کر سکتے ہیں: - اور یہاں ہم اسے آزماتے ہوئے پکڑتے ہیں : - یہ واضح ہو رہا ہے، لیکن بہت کم۔ - نیچے دی گئی مثال کو دیکھیں: - پھر بھی ایک استثناء موجود ہے - RuntimeException اور اس سے وراثت میں ملنے والی کلاسز۔ انہیں پکڑنے یا پھینکنے کی ضرورت نہیں ہے۔ یہ غیر چیک شدہ مستثنیات ہیں۔ ان مستثنیات کو پیشین گوئی کرنا مشکل سمجھا جاتا ہے، لہذا ان کی موجودگی کی پیشین گوئی کرنا تقریباً ناممکن ہے۔ آپ ان کے ساتھ وہی چیزیں کر سکتے ہیں، لیکن تھرو میں ان کی وضاحت کرنے کی ضرورت نہیں ہے ۔ پرانا درجہ 09 - 10اولڈ لیول 09 - 11پرانا درجہ 09 - 12اولڈ لیول 09 - 13

5 ریشا، کال اسٹیک کو رول کرنا، اسے مستثنیات میں کیسے کرنا ہے۔

- میں آپ کو اس بارے میں تھوڑا سا مزید بتانا چاہوں گا کہ مستثنیات کیسے کام کرتی ہیں۔ ذیل کی مثال اس کی وضاحت کرتی ہے: پرانا درجہ 09 - 14- مجھے یہ نہیں ملتا ہے۔ - ٹھیک ہے. میں وضاحت کروں گا کہ کیا ہو رہا ہے۔ - بائیں طرف کی مثال میں، ہم کئی طریقوں کو سلسلہ ترتیب میں کہتے ہیں۔ میتھڈ 2() میں ہم خاص طور پر ایک رعایت بناتے اور پھینک دیتے ہیں (خرابی شروع کرنے کے لیے)۔ - دائیں طرف کی مثال ظاہر کرتی ہے کہ کیا ہوتا ہے۔ طریقہ 2() کو دیکھیں ۔ استثناء کی تخلیق اس میں تبدیل ہوتی ہے: ہم RuntimeException قسم کا ایک آبجیکٹ بناتے ہیں، اسے ایک خاص متغیر استثناء میں محفوظ کرتے ہیں اور فوری طور پر طریقہ سے باہر نکل جاتے ہیں – return ۔ - طریقہ 1 میں، طریقہ 2 کی کال کے بعد ایک چیک ہوتا ہے، اگر کوئی استثناء ہے یا نہیں؛ اگر کوئی استثناء ہے، تو طریقہ 1 فوری طور پر ختم ہوجاتا ہے۔ یہ چیک ہر ایک (!) جاوا طریقہ کو کال کرنے کے بعد واضح طور پر کیا جاتا ہے۔ - زبردست! - بالکل - میتھڈ مین میں دائیں طرف کے کالم میں میں نے لکھا تھا کہ جب کوئی استثناء ٹرائی کیچ بلاک سے پکڑا جاتا ہے تو کیا ہوتا ہے۔ اگر کوئی رعایت نہیں تھی تو، کوڈ منصوبہ بندی کے مطابق عمل درآمد جاری رکھے گا۔ اگر catch میں مخصوص قسم کی کوئی رعایت تھی ، تو ہم اسے سنبھال لیتے ہیں۔ - اور پھینکنے اور مثال کا کیا مطلب ہے؟ - بائیں طرف کی آخری لائن کو دیکھیں نئے RuntimeException(s) کو پھینک دیں ۔ اس طرح ہم استثنیٰ بناتے اور پھینک دیتے ہیں۔ یہ صرف ایک مثال ہے۔ ہم اب تک ایسا نہیں کریں گے۔ - دائیں بلاک میں کمانڈ « a instanceof B » کا استعمال کرتے ہوئے ہم چیک کرتے ہیں کہ آیا آبجیکٹ a میں B کی قسم ہے ۔ یعنی، چاہے متغیر استثناء میں ذخیرہ شدہ آبجیکٹ، RuntimeException کی قسم ہو ۔ یہ ایک منطقی اظہار ہے۔ - ٹھیک ہے، یہ تھوڑا سا واضح ہو رہا ہے.

6 ڈیاگو، استثنائی کیچ ٹاسک

- یہاں دیکھو! انکل ڈیاگو آپ کے لیے کیچنگ پر کچھ کام لائے ہیں۔ قسمت کی خواہش. مجھے لگتا ہے کہ آپ کو اس کی ضرورت ہوگی۔ ہائے اولڈ لیول 09 - 15- ارے، امیگو! یہاں کچھ دلچسپ استثنائی کیچ کام ہیں۔
کاموں کو پکڑنا
1 1. نمبروں کے ساتھ کام کرتے وقت استثناء
کوڈ کو چلانے کے وقت اس استثناء کو پکڑیں:
int a = 42 / 0;
اس کی قسم کی وضاحت کرتے ہوئے، اسکرین پر استثناء ڈسپلے کریں۔
2 2. سٹرنگز کے ساتھ کام کرتے وقت
استثناء کو پکڑیں ​​جو کوڈ چلانے پر ہوتا ہے:
String s = null؛
سٹرنگ m = s.toLowerCase();
اس کی قسم کی وضاحت کرتے ہوئے، اسکرین پر استثناء ڈسپلے کریں۔
3 3. صفوں کے ساتھ کام کرتے وقت استثنیٰ
اس استثناء کو پکڑیں ​​جو کوڈ چلانے کے وقت ہوتا ہے:
int[] m = new int[2];
m[8] = 5؛
اس کی قسم کی وضاحت کرتے ہوئے، اسکرین پر استثناء ڈسپلے کریں۔
4 4. فہرست کے مجموعوں کے ساتھ کام کرتے وقت
استثناء کو پکڑو جو کوڈ کو چلانے کے وقت ہوتا ہے:
ArrayList<String> list = new ArrayList<String>();
سٹرنگ s = list.get(18);
اس کی قسم کی وضاحت کرتے ہوئے، اسکرین پر استثناء ڈسپلے کریں۔
5 5. میپ کلیکشنز کے ساتھ کام کرتے وقت
استثناء کو پکڑیں ​​جو کوڈ کو چلانے پر ہوتا ہے:
HashMap<String, String> map = new HashMap<String, String>(null);
map.put(null, null);
map.remove(null);
اس کی قسم کی وضاحت کرتے ہوئے، اسکرین پر استثناء ڈسپلے کریں۔
- ٹپ: پہلے ایک پروگرام لکھیں، پھر دیکھیں کہ کون سا استثناء ہوتا ہے اور اس کے بعد کوڈ کو تبدیل کریں اور اس استثناء کو پکڑیں۔

7 ریشا، ایک سے زیادہ کیچ کیسے کام کرتا ہے۔

پرانا درجہ 09 - 16- اب، کچھ اور دلچسپ لیکچرز۔ مجھے پڑھانا بہت پسند ہے۔ - میں آپ کو بتانا چاہتا ہوں کہ ایک سے زیادہ کیچ کیسے کام کرتا ہے۔ درحقیقت یہ بہت آسان ہے: جب بلاک try میں کوئی استثناء ہوتا ہے ، تو پروگرام پر عمل درآمد کو پہلے کیچ میں منتقل کر دیا جاتا ہے ۔ - اگر بلاک کیچ کے قوسین میں بیان کردہ قسم استثناء آبجیکٹ کی قسم جیسی ہے، تو کوڈ پر عمل درآمد {} کے اندر شروع ہوتا ہے۔ ورنہ ہم اگلے کیچ پر جائیں گے ۔ چیک وہاں دہرایا جاتا ہے۔ - اگر مزید کیچ بلاکس نہیں ہیں ، لیکن استثناء نہیں پکڑا گیا ہے، تو اسے آگے پھینک دیا جاتا ہے، اور موجودہ طریقہ میں خلل پڑتا ہے۔ - میں سمجھ گیا، اچھا. اس کیچ کو عمل میں لایا جائے گا، جس کی قسم استثناء کی قسم سے ملتی ہے۔ - ہاں حق. دراصل، یہ قدرے زیادہ پیچیدہ ہے: نقطہ یہ ہے کہ کلاسز ایک دوسرے سے وراثت میں مل سکتی ہیں۔ اگر کلاس "گائے" کلاس "جانور" سے وراثت میں ملی ہے، تو "گائے" کی قسم کی چیز کو نہ صرف "گائے" کی قسم کے متغیر میں ذخیرہ کیا جاسکتا ہے، بلکہ "جانور" کی قسم کے متغیر میں بھی ذخیرہ کیا جاسکتا ہے۔ . - تو کیا؟ - چونکہ تمام مستثنیات کلاسز Exception یا RuntimeException (جو Exception سے بھی وراثت میں ملتی ہیں ) سے وراثت میں ملی ہیں، ان سب کو catch (Exception e) یا catch (RuntimeException e) کمانڈز کا استعمال کرتے ہوئے پکڑا جا سکتا ہے ۔ - تو کیا؟ - اس کا مطلب یہ ہے کہ، سب سے پہلے، آپ کمانڈ کا استعمال کرتے ہوئے کسی بھی استثناء کو پکڑ سکتے ہیں catch(Exception e) ۔ دوسرا، کیچ بلاکس کی ترتیب سے فرق پڑتا ہے۔ مثالیں: - 0 سے تقسیم کے نتیجے میں ریاضی کا استثناء دوسرے کیچ میں پکڑا جاتا ہے۔ پرانا درجہ 09 - 17- نیچے دی گئی مثال میں، ArithmeticException پہلی پکڑ میں پکڑا گیا ہے ، کیونکہ تمام استثناء کی کلاسیں Exception سے وراثت میں ملی ہیں۔ لہذا، Exception کسی بھی استثنا کو پکڑتا ہے ۔ پرانا درجہ 09 - 18- نیچے دی گئی مثال میں، رعایت ArithmeticException نہیں پکڑی گئی ہے، بلکہ کالنگ کے طریقہ کار کی طرف پھینک دی گئی ہے۔ اولڈ لیول 09 - 19- ٹھیک ہے، یہ اب واضح ہو رہا ہے. یہ مستثنیات اتنے آسان نہیں ہیں۔ - یہ صرف ایسا لگتا ہے۔ درحقیقت، یہ جاوا میں سب سے آسان چیز ہے۔ - مجھے شک ہے کہ اس سے خوش ہوں یا پریشان ہوں…

8 ڈیاگو، ایک سے زیادہ استثنائی کیچ ٹاسک

- ارے، امیگو! کل میں نے نشے میں دھت ہو کر آپ کے کاموں کو زیادہ پیچیدہ کر دیا تھا، لیکن مجھے امید ہے کہ آپ کی طرف سے کوئی سخت احساسات نہیں ہیں اور آپ ان سب کو حل کر لیں گے؟ یہ آپ کی اپنی بھلائی کے لیے ہے۔ یہاں:
کام
1 1. مستثنیات
ایک ایسا طریقہ ہے جو Exception سے وراثت میں ملنے والی دو مستثنیات کو پھینک دیتا ہے ، اور باقی دو RuntimeException سے وراثت میں ملتا ہے : NullPointerException ، ArithmeticException ، FileNotFoundException ، اور URISyntaxException ۔

آپ کو NullPointerException اور FileNotFoundException کو پکڑنے کی ضرورت ہے ، لیکن ArithmeticException اور URISyntaxException کو پکڑنے کے لیے نہیں ۔ یہ کیسے کرنا ہے؟
2 2۔ استثناء کو پکڑنا
تین مستثنیات ہیں جو ترتیب وار استثناء سے وراثت میں ملی ہیں :
کلاس Exception1 Exception
class exception2 exceptions exception1
class Exception3 exception2 exceptions
ایک طریقہ ہے، جس کی وضاحت اس طرح کی گئی ہے:
public static void method1() throws Exception1, Exception2, Exception3

ایک کیچ لکھیں تینوں Exception1 ، Exception2 اور Exception3 کو پکڑنے کے لیے بلاک کریں۔
3 3. منتخب مستثنیات کو پکڑنا
1. معلوم کریں کہ طریقہ BEAN.methodThrowExceptions کے ذریعے کیا مستثنیات پھینکے گئے ہیں ۔
2. طریقہ processExceptions() کو طریقہ BEAN.methodThrowExceptions کو کال کرنا چاہئے اور مستثنیات کو ہینڈل کرنا چاہئے:
2.1۔ اگر کوئی استثناء FileSystemException ہوتا ہے، تو اسے BEAN.log کے طریقہ پر کال کرکے لاگ ان کریں اور آگے پھینک دیں
2.2۔ اگر کوئی استثناء CharConversionException یا کوئی دوسرا IOException ہوتا ہے، تو اسے BEAN.log
3 کے طریقہ پر کال کرکے لاگ ان کریں۔ processExceptions() طریقہ کے دستخط پر ۔
4. طریقہ مین() میں باقی رعایت کو ہینڈل کریں اور اسے لاگ کریں۔ try..catch ٹپ استعمال کریں

:
اگر آپ نے استثناء MyException پکڑا ہے، جسے آپ پکڑنا نہیں چاہتے تھے، تو آپ اسے درج ذیل کوڈ کا استعمال کرکے آگے پھینک سکتے ہیں:
catch (MyException e) {
throw e;
}
4 4. چیک شدہ مستثنیات کو پکڑنا
طریقہ عمل میں تمام چیک شدہ استثناء کو ہینڈل کریںExceptions () ۔
آپ کو اسکرین پر ہر چیک شدہ استثناء کو ظاہر کرنے کی ضرورت ہے جو واقع ہوئی ہے۔
آپ صرف ایک بلاک استعمال کر سکتے ہیں ۔
5 5. غیر نشان زد مستثنیات کو پکڑنا
طریقہ عمل میں تمام غیر نشان زد مستثنیات کو ہینڈل کریںExceptions () ۔
آپ کو طریقہ استعمال کرتے ہوئے ہر ایک استثناء کے اسٹیک ٹریس کو اسکرین پر ظاہر کرنے کی ضرورت ہے printStack() ۔
آپ صرف ایک بلاک استعمال کر سکتے ہیں ۔

9 پروفیسر، مستثنیات پر لیکچر

- آج ہمارے پاس ایک انتہائی دلچسپ موضوع ہے - مستثنیات۔ اس وقت، جب نوجوان سائنس دان اور پروگرامرز اس موضوع کے بارے میں بہت پرجوش تھے… - معذرت، مجھے لیب میں جانا چاہیے۔ یہاں لیکچر کے نوٹ ہیں۔ مجھے لگتا ہے کہ آپ خود ہی اس کا پتہ لگا لیں گے۔ یہاں: Java Exceptions (Oracle Documentation) Exceptions Handling in Java (Java T point) Java - Exceptions ہینڈلنگ (ٹیوٹوریلز پوائنٹ) بنیادی جاوا استثنا ہینڈلنگ

10 جولیو

- امیگو، آج کے سبق کے بارے میں آپ کا کیا خیال ہے؟ کیا آپ کا پوزیٹرون دماغ ابھی تک کام نہیں کر پایا ہے؟ ڈیاگو کے کام کسی کو بھی باہر کرنے کے لیے کافی ہیں۔ آئیے بیئر کا لمحہ گزاریں اور آرام کریں۔ کیا آپ اب بھی کھڑے ہیں؟

11 کیپٹن گلہری

- ہیلو، فوجی! - صبح بخیر صاحب! - میرے پاس آپ کے لیے کچھ اچھی خبریں ہیں۔ اپنی صلاحیتوں کو تقویت دینے کے لیے یہاں ایک فوری چیک ہے۔ اسے ہر روز کریں، اور آپ اپنی صلاحیتوں میں تیزی سے اضافہ کریں گے۔ کام خاص طور پر Intellij IDEA میں کرنے کے لیے بنائے گئے ہیں۔
Intellij Idea میں کرنے کے لیے اضافی کام
1 1. صفر کے حساب سے تقسیم
ایک طریقہ بنائیں عوامی جامد باطل divisionByZero() ، جہاں آپ کو کسی بھی نمبر کو صفر سے تقسیم کرنے کی ضرورت ہے، اور تقسیم کا نتیجہ اسکرین پر ڈسپلے کریں۔ divisionByZero() طریقہ کال کو try..catch میں
لپیٹ دیں ۔ طریقہ exception.printStackTrace() کا استعمال کرتے ہوئے ایکسپشن اسٹیک ٹریس کو اسکرین پر دکھائیں ۔
2 2. 10 سے 0 تک الٹی گنتی
10 سے 0 تک الٹی گنتی کے لیے ایک لوپ لکھیں۔ تاخیر کے لیے Thread.sleep(100) کا استعمال کریں۔ سلیپ کال کو ایک کوشش میں
لپیٹیں .. پکڑیں ​​.
3 3. ایک طریقہ کو آزمائیں..کی
بورڈ سے نمبر پڑھیں۔ کی بورڈ سے نمبروں کو پڑھنے کے لیے ایک کوڈ کو الگ طریقہ readData() میں لکھیں ۔ اس طریقہ کار کی پوری باڈی ( readData()
طریقہ کے اندر پورا کوڈ ، سوائے اس فہرست کے اعلان کے جہاں نمبرز کو ذخیرہ کیا جائے گا) کو try..catch میں لپیٹ دیں ۔ اگر صارف نمبر داخل کرنے کے بجائے کچھ متن داخل کرتا ہے، تو طریقہ کو استثناء کو پکڑنا ہوگا اور اس سے پہلے درج کردہ تمام نمبروں کو اسکرین پر ظاہر کرنا ہوگا۔ اسکرین پر نمبر ڈسپلے کریں۔ ہر نمبر ایک نئی لائن پر ہونا چاہئے۔ نمبروں کی ترتیب بالکل اسی طرح ہونی چاہیے جیسے یہ ان پٹ میں تھی۔


4 4. ڈیٹ کنورٹر کی
بورڈ سے ایک تاریخ کو "08/18/2013" فارمیٹ میں پڑھیں
"اگست 18، 2013" کی شکل میں اس تاریخ کو اسکرین پر ڈسپلے کریں۔
آبجیکٹ Date اور SimpleDateFormat استعمال کریں ۔
5 5. حرف اور حرف
ایک ایسا پروگرام لکھیں جو کی بورڈ سے لائن پڑھتا ہے۔
پروگرام کو اسکرین پر دو سٹرنگ دکھانی چاہیے:
1) پہلی سٹرنگ میں سر ہونا چاہیے
2) دوسری سٹرنگ میں درج کیے گئے متن کے حروف اور اوقاف پر مشتمل ہونا چاہیے۔
حروف کو خالی جگہوں سے الگ کریں۔

مثال کے طور پر ان پٹ:
اسٹاپ دیکھیں سنیں
مثال آؤٹ پٹ:
oooie
stplklstn
6 6. لٹل ریڈ رائیڈنگ ہڈ کی کہانی
1. پانچ کلاسیں ہیں: ریڈ رائیڈنگ ہڈ، دادی، پیٹی، لکڑی کاٹنے والا، بھیڑیا۔ 2. ہر کلاس میں ArrayList
قسم کے دو شعبے ہوتے ہیں : ہلاک اور کھایا۔ 3. ضروری اشیاء پہلے سے ہی بنائی گئی ہیں (ہڈ، دادی، ...). 4. "لٹل ریڈ رائیڈنگ ہڈ" کی منطق حاصل کرنے کے لیے صحیح رشتہ (کس نے کھایا اور کس کو مارا) بنائیں۔

7 7. Move static modifies
Move static modifiers تاکہ کوڈ مرتب ہو جائے۔
8 8. نمبروں کی صفوں کی فہرست
ایک فہرست بنائیں جس کے عناصر نمبروں کی صفیں ہوں۔ فہرست میں بالترتیب 5، 2، 4، 7، 0 کی لمبائی والی پانچ آبجیکٹ صفوں کو شامل کریں۔ کسی بھی ڈیٹا سے صفوں کو بھریں اور انہیں اسکرین پر ڈسپلے کریں۔
9 9. دس بلیوں کو فیلڈ سٹرنگ نام کے ساتھ کلاس کیٹ
بنائیں ۔ ایک لغت کا نقشہ بنائیں<String, Cat> ، ماڈل «Name» - «Cat» پر 10 بلیوں کو شامل کریں۔ نقشہ سے ناموں کا ایک سیٹ حاصل کریں اور سیٹ کو اسکرین پر ڈسپلے کریں۔

- وہ کام سبزیوں کے لیے تھے۔ میں نے اعلی پیچیدگی کے بونس کاموں کو شامل کیا۔ صرف ٹاپ گنز کے لیے۔
بونس کے کام
1 1. پروگرام مرتب اور نہیں چلتا ہے۔ اسے ٹھیک کریں۔
ٹاسک: پروگرام کو کی بورڈ سے دو فائلوں کے نام پڑھنا چاہئے اور پہلی فائل کو دوسرے نام سے مخصوص جگہ پر کاپی کرنا چاہئے۔
2 2. پروگرام میں نئی ​​فعالیت شامل کریں۔
پرانا کام: پروگرام کو کی بورڈ سے دو فائلوں کے نام پڑھنا چاہیے اور پہلی فائل کو دوسرے نام سے مخصوص جگہ پر کاپی کرنا چاہیے۔
نیا کام: پروگرام کو کی بورڈ سے دو فائلوں کے نام پڑھنا چاہئے اور پہلی فائل کو دوسرے نام سے مخصوص جگہ پر کاپی کرنا چاہئے۔

اگر مخصوص نام کے ساتھ فائل (جس کی کاپی کی جا رہی ہے) موجود نہیں ہے، تو پروگرام کو اسکرین پر پیغام "فائل موجود نہیں ہے" دکھانا چاہیے اور پڑھنے سے پہلے ایک بار پھر کنسول سے فائل کا نام پڑھنے کی کوشش کریں۔ دوسری (منزل) فائل کا نام۔
3 3. الگورتھم سیکھنا اور اس پر عمل کرنا۔
کی بورڈ سے الفاظ اور اعداد کی فہرست پڑھیں۔ اسکرین الفاظ کو صعودی ترتیب میں اور نمبرز کو نزولی ترتیب میں دکھائیں۔

مثال ان پٹ:
چیری
1
بین
3
ایپل
2
0
تربوز

مثال آؤٹ پٹ:
ایپل
3
بین
2
چیری
1
0
تربوز
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION