سی اور سی پلس پلس پروگرامنگ کا جائزہ

Jul 13, 2024

سی اور سی پلس پلس پروگرامنگ کا جائزہ برائے ڈیٹا سٹرکچرز کورس

کورس کا تعارف

  • کورس کی زبان: بنیادی طور پر سی، کبھی کبھار سی پلس پلس کوڈ کی مثالوں کے ساتھ۔
  • ضروریات: سی پروگرامنگ کا بنیادی علم اور تجربہ۔
  • مقصد: کورس کے دوران استعمال کیے جانے والے سی/سی پلس پلس کے تصورات کی تجدید۔
  • احاطہ کیے گئے موضوعات:
    • ایریزا کی بنیادی باتیں
    • سی میں اسٹرکچرز
    • پوائنٹرز
    • سی/سی پلس پلس میں حوالہ جات اور پیرا میٹر پاس کرنا
    • کلاسز، کنسٹرکٹرس، اور ٹیمپلیٹس (سی پلس پلس)

سی میں ایریزا

  • تعریف: ملتے جلتے ڈیٹا عناصر کا مجموعہ۔
  • اعلان: int a[5]; ایک ایریے بناتا ہے جس کا نام a ہے اور اس میں 5 انٹیجر عناصر شامل ہیں۔
  • رسائی: انڈیکسز کے ذریعے، 0 سے 4 تک، مثلاً a[0], a[1], ... a[4]۔
  • ابتدائیہ: بیک وقت اعلان اور ابتدائیہ، مثلاً int a[5] = {2,4,6,8,10};۔
  • عنصر تک رسائی: لُوپس کے ذریعے، عام طور پر for لوپ استعمال کرتے ہوئے۔
  • ڈائنامک میموری ایلوکیشن:
    • سی میں: malloc اور free فنکشنز <stdlib.h> سے۔
    • سی پلس پلس میں: new اور delete آپریٹرز۔

سی میں اسٹرکچرز

  • تعریف: مختلف ڈیٹا اقسام کا مجموعہ جو ایک نام کے تحت گروپ کیا گیا ہو۔
  • مثال: مستطیل جس کی طول اور عرض انٹیجر ہوں۔
  • اعلان: struct rectangle { int length; int breadth; };۔
  • ابتدائیہ: struct rectangle r = {10, 5};۔
  • ممبرز تک رسائی: ڈاٹ آپریٹر استعمال کرتے ہوئے، مثلاً r.length, r.breadth۔
  • میموری ایلوکیشن:
    • جامد: فنکشن کے دائرہ کار کے اندر اعلان اور ابتدائیہ۔
    • ڈائنامک: malloc اور پوائنٹر ہیرا پھیری کا استعمال کرتے ہوئے۔

سی میں پوائنٹرز

  • تعریف: ایڈریس ویریبلز جو ڈیٹا کا ایڈریس محفوظ کرتی ہیں، جس سے بالواسطہ طور پر ڈیٹا تک رسائی ہوتی ہے۔
  • اعلان: int *p;۔
  • ابتدائیہ: ایڈریس آف آپریٹر (&) کا استعمال کرتے ہوئے، مثلاً p = &a;۔
  • ڈیریفیرنسنگ: ڈیٹا تک رسائی/ترمیم، مثلاً *p = 20;۔
  • ڈائنامک میموری ایلوکیشن:
    • سی میں: malloc (ایلوکیشن) اور free (ڈیلوکیشن)۔
    • سی پلس پلس میں: new (ایلوکیشن) اور delete (ڈیلوکیشن)۔

سی پلس پلس میں حوالہ جات

  • تعریف: ویریبل کا متبادل نام (عرف) جو پیرا میٹر پاسنگ اور آبجیکٹ ہیرا پھیری میں آسانی فراہم کرتا ہے۔
  • اعلان اور ابتدائیہ: int &ref = x; اعلان اور ابتدائیہ کو یکجا کرتا ہے۔
  • استعمال: پیرا میٹر پاسنگ کو آسان بناتا ہے اور اصل ویریبل کی قدر میں تبدیلی کو برقرار رکھتا ہے۔

سی/سی پلس پلس میں پیرا میٹر پاسنگ

  • پاس بائی ویلیو: اصل پیرا میٹر کی قدر کی کاپی؛ فنکشن کے اندر تبدیلیاں اصل ویریبلز کو متاثر نہیں کرتیں۔
  • پاس بائی ایڈریس: ویریبل کا ایڈریس عاریتاً لیتا ہے جس سے فنکشن کو اصل ویریبل کو پوائنٹرز استعمال کرتے ہوئے ترمیم کی اجازت ہوتی ہے۔
  • پاس بائی ریفرنس (سی پلس پلس): ایڈریس پاسنگ کا شارٹ کٹ ورژن، اور عرف پر کام کرتے ہوئے اصل تبدیلیوں کا تحفظ کرتا ہے۔

سی/سی پلس پلس میں فنکشنز

  • تعریف: کوڈ کے ماڈیولر بلاکس جو مخصوص کام انجام دیتے ہیں، کوڈ کی باضابطہ اور دوبارہ استعمال کی سہولت کو بہتر بناتے ہیں۔
  • اعلان اور تعریف:
    • اعلان (پروٹوٹائپ): int add(int, int);
    • تعریف: int add(int a, int b) { return a + b; }
  • فنکشنز کی کالز: فنکشن کو اس کے نام سے پکارنا اور اصل پیرا میٹر دینا۔
  • ایریز پیرا میٹرز: پاس بائی ایڈریس میں خود بخود، مثلاً void processArray(int *arr, int size);
  • اسٹرکچر پیرا میٹرز:
    • کال بائی ویلیو: اسٹرکچر کی کاپی پاس کرتا ہے۔
    • کال بائی ایڈریس: اسٹرکچر کو پوائنٹر استعمال کرتا ہے۔
    • کال بائی ریفرنس (سی پلس پلس): اسٹرکچر کے لیے عرف استعمال کرتا ہے۔

سی پلس پلس میں کلاسز اور آبجیکٹ-اورینٹڈ پروگرامنگ

  • کلاس: آبجیکٹس بنانے کے لئے پیلٹ؛ ڈیٹا اور فنکشنز کو سمیٹتا ہے۔
  • کلاس اعلان: class Rectangle { public: int length; int breadth; };
  • کنسٹرکٹرس: فنکشنز جو کلاس کے آبجیکٹ کو خودکار طور پر ابتدائیہ کرتے ہیں، مثلاً Rectangle() { length = 10; breadth = 5; }
  • ایکسیس مڈیفائرز: public, private, protected (کلاس میں ڈیفالٹ نجی اور اسٹرکچر میں عام ہوتا ہے)۔
  • ممبر فنکشنز: فنکشنز جو ڈیٹا ممبرز پر عمل کرتے ہیں، مثلاً int area() { return length * breadth; }

سی پلس پلس ٹیمپلیٹس

  • تعریف: ایسی خصوصیت جو ورسٹائل پروگرامنگ کی سہولت فراہم کرتی ہے، فنکشنز اور کلاسز کو پلیس ہولڈر ڈیٹا اقسام کے ساتھ متعین کرتی ہے۔
  • ٹیمپلیٹ کلاس مثال:
    • اعلان: template <class T> class Arithmetic { T a, b; }
    • عمل درآمد: مختلف ڈیٹا اقسام کے ساتھ آبجیکٹس بنانے کی اجازت دیتا ہے، مثلاً Arithmetic<int> obj(5, 10);

انٹیگریٹڈ ڈویلپمنٹ انوائرمنٹ (IDE)

  • آن لائن کمپائلر: آن لائن جی ڈی بی جیسے پلیٹ فارمز پر مشق کریں۔
  • لوکل سیٹ اپ: سفارش کی جاتی ہے کہ آپ اپنے OS کے مطابق XCode یا اسی طرح کے IDE کو انسٹال کریں۔

مشق اور تطبیق

  • اہم: فراہم کردہ کوڈ کی مثالوں کی مشق کریں۔
  • دنیا کے مطابق بنائیں: دونوں سی اور سی پلس پلس شیلیوں میں مہارت حاصل کریں کیونکہ کورس کے دوران دونوں استعمال کی جاتی ہیں۔
  • مزید ایکسپلور کریں: مزید گہرائی حاصل کرنے کے لیے اضافی وسائل اور دستاویزات کا حوالہ دیں۔

سفارش کردہ اقدامات

  • ہر تصور کو سمجھنے میں آسانی کے لیے ویڈیوز دیکھیں اور مشق کریں۔
  • سمجھداری کے لیے باقاعدگی سے کوڈ لکھنے کی مشق کریں۔
  • آگے بڑھنے سے پہلے موزوں ڈویلپمنٹ ماحول کو سیٹ اپ کریں۔