فنکشن اور فہرستیں
فنکشن کیا ہے؟
سبق 1 سے یاد کریں: فنکشن ایک بنا بنایا کام ہے جسے آپ نام دیتے ہیں اور جب چاہیں بلا سکتے ہیں۔ اب تک آپ نے صرف built-in فنکشن (لکھو) استعمال کیا — اس سبق میں اپنا خود کا فنکشن بنانا سیکھیں گے۔
فنکشن بنانا
فنکشن سلام)نام} (
لکھو")ہیلو + " نام؛(
{
اس کا ہر حصہ:
فنکشن— ایک اور کلیدی لفظ۔ بتاتا ہے کہ ایک نیا کام بنایا جا رہا ہے۔سلام— اس فنکشن کا نام ہے، جو آپ خود منتخب کرتے ہیں۔ آگے اسی نام سے اسے بلائیں گے۔)نام(— یہ ایک پیرامیٹر ہے، یعنی وہ چیز جو فنکشن کو استعمال کے وقت دی جاتی ہے۔ یہ خالی بھی ہو سکتا ہے ()()، یا کئی پیرامیٹرز کاما سے الگ کر کے دیے جا سکتے ہیں (جیسے آگےجمع)الف ،ب(میں)۔} {— اندر وہ کام لکھا ہے جو فنکشن کو بلانے پر ہر بار چلتا ہے — بالکلاگراورجبتککے بلاک کی طرح (سبق 3، 4)۔
فنکشن بناتے وقت کچھ نہیں ہوتا — اندر کا کوڈ ابھی نہیں چلتا، یہ صرف ایک بار محفوظ کیا جاتا ہے۔ اسے چلانے کے لیے نام لے کر بلانا پڑتا ہے۔
فنکشن بلانا
سلام")احمد؛("
سلام")فاطمہ؛("
سلام")علی؛("
آؤٹ پٹ:
ہیلو احمد
ہیلو فاطمہ
ہیلو علی
ہر بلاوے پر نام پیرامیٹر کی الگ قدر جاتی ہے — ایک ہی فنکشن، تین مختلف ان پٹ، تین مختلف نتیجے۔ یہی فنکشن کا اصل فائدہ ہے: ایک بار کوڈ لکھیں، بار بار مختلف ڈیٹا کے ساتھ استعمال کریں۔
ایک فنکشن پیغام)نام( بنائیں جو "خوش آمدید " + نام پرنٹ کرے۔ پھر اسے "زینب" اور "احمد" کے ساتھ بلائیں۔
دائیں طرف اڈا میں کوڈ لکھ کر چلائیں
واپس (return)
فنکشن کوئی چیز واپس بھی دے سکتا ہے:
فنکشن جمع)الف ،ب} (
واپس الف + ب؛
{
رکھو نتیجہ = جمع؛(5 ،10)
لکھو)نتیجہ؛(
آؤٹ پٹ: 15
واپس (ایک اور کلیدی لفظ) فنکشن کو فوراً روک دیتا ہے اور اس کے سامنے لکھی قدر کو نتیجے کے طور پر واپس بھیج دیتا ہے۔ یہ لکھو سے بالکل مختلف ہے: لکھو صرف اسکرین پر دکھاتا ہے (کچھ واپس نہیں دیتا)، جبکہ واپس وہ قدر پروگرام کو آگے استعمال کے لیے دیتا ہے — یہاں رکھو نتیجہ = جمع؛(5 ،10) نے جمع کا نتیجہ سیدھا نتیجہ نامی متغیر میں رکھ لیا۔
پہلے پچھلا چیک پوائنٹ مکمل کریں
ابھی آزمائیں
فنکشن مربع)ع} (
واپس ع * ع؛
{
لکھو)مربع؛((4)
لکھو)مربع؛((7)
لکھو)مربع؛((10)
فہرست (List)
فہرست میں کئی چیزیں ایک ساتھ رکھ سکتے ہیں:
رکھو نام"] = احمد" ،"علی" ،"فاطمہ؛["
لکھو)نام؛([0]
لکھو)نام؛([1]
لکھو)نام؛([2]
آؤٹ پٹ:
احمد
علی
فاطمہ
] [ — چوکور قوسین دو مختلف کام کرتے ہیں، اور سبق 1 کے اصول () ] } شروع، ( [ { ختم) یہاں بھی لاگو ہوتا ہے:
- فہرست بناتے وقت، وہ اشیاء کو گھیرتے ہیں:
"]احمد" ،"علی" ،"فاطمہ["۔ - بعد میں کسی ایک چیز تک پہنچنے کے لیے، وہ اس کا نمبر (اشاریہ/انڈیکس) بتاتے ہیں:
نام[0]۔
فہرست میں گنتی صفر سے شروع ہوتی ہے — یعنی پہلی چیز ]0[ پر ہے، دوسری ]1[ پر، تیسری ]2[ پر۔ یہ شروع میں غیرمتوقع لگ سکتا ہے، لیکن تقریباً ہر پروگرامنگ زبان میں ایسا ہی ہوتا ہے، اس لیے یہیں سے عادت ڈال لینا بہتر ہے۔
پہلے پچھلا چیک پوائنٹ مکمل کریں
فہرست اور لوپ — بہترین جوڑ
رکھو نمبر؛[50 ،40 ،30 ،20 ،10] =
رکھو؛0 = i
جبتک} (5 > i)
لکھو)نمبر؛([i]
؛1 + i = i
{
یہاں جبتک(5 > i) کا مطلب "جب تک i، 5 سے چھوٹا ہے" (یاد کریں سبق 3: > = چھوٹا)۔ ہر قدم پر i فہرست کا اگلا اشاریہ بنتا ہے (0، 1، 2...) اور نمبر[i] سے اس اشاریے کی قدر نکال کر دکھائی جاتی ہے — یہ پیٹرن (لوپ کے متغیر کو بطور اشاریہ استعمال کرنا) فہرستوں کے ساتھ کام کرنے کا سب سے عام طریقہ ہے۔
پہلے پچھلا چیک پوائنٹ مکمل کریں
مشق 1
ایک فنکشن مکعب)ع( بنائیں جو کسی نمبر کا مکعب واپس دے۔ پھر 3، 4، 5 کے مکعب پرنٹ کریں۔
مشق 2
ایک فہرست بنائیں جس میں 5 مضامین کے نام ہوں۔ لوپ سے سب پرنٹ کریں۔
پہلے پچھلا چیک پوائنٹ مکمل کریں
چیلنج (طالب علم کا کام)
ایک فنکشن اوسط)ک ،ب ،ج( بنائیں جو تین نمبروں کا اوسط واپس دے۔
پھر ان نمبروں کا اوسط نکالیں: 80، 90، 70
آؤٹ پٹ: اوسط80 :
مبارک ہو!
آپ نے نقطہ کے 5 تعارفی سبق مکمل کر لیے — متغیرات سے لے کر فنکشن اور فہرستوں تک۔ اب آپ اصل پروگرام لکھ سکتے ہیں! 🎉
یہ صرف ابتدا ہے۔ نقطہ کا مکمل نصاب — تکرار، آبجیکٹ اوریئنٹڈ پروگرامنگ، وراثت، ڈکشنری، خطا کا نظم، ترتیب اور تلاش کے الگورتھم، اور دو مکمل پروجیکٹس تک — کل 20 سبق اور 18 عملی پروجیکٹس پر مشتمل ہے، اور فی الحال صرف اسکولوں کے پائلٹ پروگرام کے ذریعے دستیاب ہے۔ اگر آپ استاد ہیں اور اپنی کلاس کو مکمل نصاب پڑھانا چاہتے ہیں، نیچے پائلٹ میں شامل ہوں۔