Friday, March 24, 2023

NTRCA Written Exam Preparation Lecturer ICT বিষয়- কম্পিউটার বিজ্ঞান (Computer Science- 431) Unit-3

  Lecturer (Information and Communication Technology) বিষয় ঃ কম্পিউটার বিজ্ঞান (Computer Science)

কোডঃ ৪৩১

পূর্ণমান-১০০

Exam Duration: Three Hours

sheet making ar going on

explain basic concepts and terms regarding structured programming and object-oriented programming

language. solve various real-life problems using structured programming and object-oriented programming languages.

Unit 3:

Programming Language 

Structure Programming: an overview of C, C++ and java, constants, variables and data types, operator & expression, managing input & output operators,

decision making and branching, decision making and looping, arrays, handling of character string, user- defined function, structure and union, pointers, file management;

Object Oriented Programming: principles of object- oriented programming, tokens, expressions and control structure, functions, arrays, strings, pointers, references, basic input/output, classes and objects, constructors and destructors, operator overloading, inheritance, polymorphism and encapsulation, interfaces, files and streams, exception handling, dynamic memory.

----------------------------------------------------------------------------------------------------------------------

An overview of C language 

C হল একটি উচ্চ-স্তরের প্রোগ্রামিং ভাষা যা 1970 এর দশকের গোড়ার দিকে ডেনিস রিচি বেল ল্যাবসে তৈরি করেছিলেন। এটি একটি সাধারণ-উদ্দেশ্য প্রোগ্রামিং ভাষা যা অপারেটিং সিস্টেম, কম্পাইলার, এমবেডেড সিস্টেম এবং অন্যান্য অ্যাপ্লিকেশনগুলিতে ব্যাপকভাবে ব্যবহৃত হয় যেখানে কর্মক্ষমতা এবং দক্ষতা গুরুত্বপূর্ণ।

C হল একটি কম্পাইল করা ভাষা, যার অর্থ হল সোর্স কোডটি এক্সিকিউশনের আগে একটি কম্পাইলার দ্বারা মেশিন কোডে অনুবাদ করা হয়। এটি তার দক্ষতা, গতি এবং সরাসরি কম্পিউটার হার্ডওয়্যার অ্যাক্সেস করার ক্ষমতার জন্য পরিচিত।

C এর তুলনামূলকভাবে ছোট সিনট্যাক্স রয়েছে এবং এটি ফাংশনগুলির চারপাশে গঠন করা হয়, যা কোডের ব্লক যা একটি নির্দিষ্ট কাজ সম্পাদন করে। এটি পয়েন্টার, অ্যারে, স্ট্রাকচার এবং গতিশীল মেমরি বরাদ্দের মতো বৈশিষ্ট্যগুলিকে সমর্থন করে।

C এর উল্লেখযোগ্য সুবিধা হল এর বহনযোগ্যতা। এটি বিভিন্ন প্ল্যাটফর্ম এবং অপারেটিং সিস্টেমে সংকলিত এবং চালানো যেতে পারে, এটি ক্রস-প্ল্যাটফর্ম সফ্টওয়্যার বিকাশের জন্য একটি চমৎকার পছন্দ করে তোলে।

C++, জাভা এবং পাইথন সহ অন্যান্য অনেক প্রোগ্রামিং ভাষাকে প্রভাবিত করেছে। এটি আজও ব্যাপকভাবে ব্যবহৃত হয়, বিশেষ করে সিস্টেম প্রোগ্রামিং এবং এমবেডেড সিস্টেমে, যেখানে এর গতি এবং দক্ষতা গুরুত্বপূর্ণ।

An overview of C++ language 

C++ হল একটি সাধারণ-উদ্দেশ্যের প্রোগ্রামিং ভাষা যা C প্রোগ্রামিং ভাষার একটি এক্সটেনশন হিসেবে বিকশিত হয়েছিল। এটি 1980 এর দশকের গোড়ার দিকে Bjarne Stroustrup দ্বারা তৈরি করা হয়েছিল, এবং এর নাম C ভাষার একটি এক্সটেনশন হিসাবে এর শিকড়কে প্রতিফলিত করে। C++ হল একটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ল্যাঙ্গুয়েজ, যার মানে হল এটি এমন অবজেক্ট তৈরি করতে সহায়তা করে যা ডেটা এবং ফাংশনকে এনক্যাপসুলেট করে।


C++ হল একটি কম্পাইল করা ভাষা, যার অর্থ হল সোর্স কোডটি এক্সিকিউশনের আগে একটি কম্পাইলার দ্বারা মেশিন কোডে অনুবাদ করা হয়। এটি ক্লাস, উত্তরাধিকার, টেমপ্লেট এবং পলিমারফিজমের মতো বৈশিষ্ট্যগুলিকে সমর্থন করে। C++ এছাড়াও নিম্ন-স্তরের প্রোগ্রামিং-এর জন্য সমর্থন প্রদান করে, যার মধ্যে রয়েছে সরাসরি মেমরি ম্যানিপুলেশন, যা C থেকে উত্তরাধিকার সূত্রে প্রাপ্ত একটি বৈশিষ্ট্য।

C++ এর একটি উল্লেখযোগ্য সুবিধা হল এর কর্মক্ষমতা। এটি প্রায়শই ভিডিও গেমস, রিয়েল-টাইম সিস্টেম এবং বৈজ্ঞানিক কম্পিউটিং-এর মতো উচ্চ কর্মক্ষমতা প্রয়োজন এমন অ্যাপ্লিকেশন তৈরির জন্য ব্যবহৃত হয়। C++ ক্রস-প্ল্যাটফর্ম সফ্টওয়্যারের বিকাশকেও সমর্থন করে এবং বিভিন্ন প্ল্যাটফর্ম এবং অপারেটিং সিস্টেমে কম্পাইল এবং চালানো যেতে পারে।

C++ জাভা, পাইথন এবং C# সহ অন্যান্য অনেক প্রোগ্রামিং ভাষাকে প্রভাবিত করেছে। এটি আজও ব্যাপকভাবে ব্যবহৃত হয়, বিশেষ করে সিস্টেম প্রোগ্রামিং, এমবেডেড সিস্টেম এবং কর্মক্ষমতা-সমালোচনামূলক অ্যাপ্লিকেশনগুলিতে।

সংক্ষেপে, C++ হল একটি শক্তিশালী, দক্ষ এবং নমনীয় প্রোগ্রামিং ভাষা যা নিম্ন-স্তরের প্রোগ্রামিং, অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং এবং উচ্চ-পারফরম্যান্স কম্পিউটিং-এর জন্য সমর্থন প্রদান করে।


An overview of JAVA Programming language 

জাভা একটি সাধারণ-উদ্দেশ্য প্রোগ্রামিং ভাষা যা প্রথম 1995 সালে সান মাইক্রোসিস্টেম দ্বারা প্রকাশিত হয়েছিল। এটি একটি উচ্চ-স্তরের, অবজেক্ট-ভিত্তিক ভাষা যা প্ল্যাটফর্ম-স্বাধীনতার জন্য ডিজাইন করা হয়েছে, যার মানে জাভাতে লেখা প্রোগ্রামগুলি যে কোনওটিতে চালানো যেতে পারে। যে কম্পিউটার বা ডিভাইসে একটি জাভা ভার্চুয়াল মেশিন (JVM) ইনস্টল করা আছে।


জাভা হল একটি কম্পাইল করা ভাষা, যার অর্থ হল সোর্স কোডটি এক্সিকিউশনের আগে কম্পাইলার দ্বারা বাইটকোডে অনুবাদ করা হয়। বাইটকোড তারপর JVM দ্বারা ব্যাখ্যা করা হয়, যা প্রোগ্রামটি চালায়। জাভা প্রোগ্রামগুলি সাধারণত ক্লাস এবং প্যাকেজে সংগঠিত হয় এবং তারা পুনরায় ব্যবহারযোগ্য কোড তৈরি করতে উত্তরাধিকার, পলিমরফিজম এবং ইন্টারফেসের মতো বৈশিষ্ট্যগুলি ব্যবহার করতে পারে।

জাভার একটি উল্লেখযোগ্য সুবিধা হল এর প্ল্যাটফর্মের স্বাধীনতা। জাভা প্রোগ্রামগুলি যেকোন প্ল্যাটফর্মে চলতে পারে যার একটি JVM আছে, যা এটিকে ক্রস-প্ল্যাটফর্ম সফ্টওয়্যার বিকাশের জন্য একটি চমৎকার পছন্দ করে তোলে। জাভা তার স্যান্ডবক্স পরিবেশ এবং সিস্টেম সংস্থানগুলিতে অ্যাক্সেস নিয়ন্ত্রণ করার ক্ষমতা সহ তার সুরক্ষা বৈশিষ্ট্যগুলির জন্যও পরিচিত।

জাভা একটি সুবিশাল স্ট্যান্ডার্ড লাইব্রেরি রয়েছে যা বিকাশকারীদের অ্যাপ্লিকেশন বিকাশের জন্য অনেক সরঞ্জাম এবং কাঠামো সরবরাহ করে। জাভা এন্টারপ্রাইজ-স্তরের অ্যাপ্লিকেশন, যেমন ওয়েব অ্যাপ্লিকেশন এবং মোবাইল অ্যাপ্লিকেশনগুলির বিকাশের জন্যও ব্যবহৃত হয়।

জাভা কোটলিন, স্কালা এবং গ্রোভি সহ অন্যান্য অনেক প্রোগ্রামিং ভাষাকে প্রভাবিত করেছে। এটি আজও ব্যাপকভাবে ব্যবহৃত হয়, বিশেষ করে এন্টারপ্রাইজ-স্তরের অ্যাপ্লিকেশন, মোবাইল ডেভেলপমেন্ট এবং ওয়েব ডেভেলপমেন্টে।

সংক্ষেপে, জাভা একটি শক্তিশালী, প্ল্যাটফর্ম-স্বাধীন প্রোগ্রামিং ভাষা যা অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং, সুরক্ষা এবং অ্যাপ্লিকেশন বিকাশের জন্য সরঞ্জাম এবং কাঠামোর একটি বিশাল লাইব্রেরির জন্য সমর্থন সরবরাহ করে।


handling of character string

অক্ষর স্ট্রিংগুলি পরিচালনা করা প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ দিক, কারণ অনেক অ্যাপ্লিকেশনের জন্য পাঠ্য ডেটা ম্যানিপুলেশন প্রয়োজন। সি-তে, অক্ষর স্ট্রিংগুলিকে অক্ষরের অ্যারে হিসাবে উপস্থাপন করা হয়, স্ট্রিংয়ের শেষে একটি নাল টার্মিনেটর ('\0') দিয়ে ক্রমটির শেষ নির্দেশ করে। C অক্ষর স্ট্রিংগুলির সাথে কাজ করার জন্য অনেকগুলি ফাংশন সরবরাহ করে, যার মধ্যে স্ট্রিংগুলির মধ্যে সাবস্ট্রিংগুলি অনুলিপি করা, সংযুক্ত করা, তুলনা করা এবং অনুসন্ধান করার জন্য ফাংশন রয়েছে৷


এখানে C-তে অক্ষর স্ট্রিংগুলি পরিচালনা করার জন্য সাধারণভাবে ব্যবহৃত কিছু ফাংশন রয়েছে:


strlen() - একটি স্ট্রিং এর দৈর্ঘ্য প্রদান করে।

strcpy() - একটি স্ট্রিং অন্য স্ট্রিং কপি করে।

strcat() - একটি স্ট্রিংকে অন্যটির শেষে সংযুক্ত করে।

strcmp() - দুটি স্ট্রিং অভিধানিকভাবে তুলনা করে।

strchr() - একটি স্ট্রিং-এ একটি অক্ষর অনুসন্ধান করে এবং একটি পয়েন্টার তার প্রথম উপস্থিতিতে ফেরত দেয়।

strstr() - একটি স্ট্রিং-এ একটি সাবস্ট্রিং অনুসন্ধান করে এবং একটি পয়েন্টার তার প্রথম উপস্থিতিতে ফিরিয়ে দেয়।

এখানে একটি উদাহরণ প্রোগ্রাম যা এই ফাংশনগুলির ব্যবহার প্রদর্শন করে:


#include <stdio.h>

#include <string.h>


int main() {

    char str1[50] = "Hello";

    char str2[50] = "World";

    char str3[50];


    // String length

    printf("Length of str1: %d\n", strlen(str1));


    // String copy

    strcpy(str3, str1);

    printf("str3 after copying str1: %s\n", str3);


    // String concatenation

    strcat(str1, str2);

    printf("str1 after concatenation: %s\n", str1);


    // String comparison

    int cmp = strcmp(str1, str2);

    printf("Comparison result: %d\n", cmp);


    // String search

    char *ptr = strchr(str1, 'o');

    printf("First occurrence of 'o': %s\n", ptr);


    // Substring search

    ptr = strstr(str1, "World");

    printf("Substring 'World' found at: %s\n", ptr);


    return 0;

}

Length of str1: 5
str3 after copying str1: Hello
str1 after concatenation: HelloWorld
Comparison result: 1
First occurrence of 'o': oWorld
Substring 'World' found at: World


Structure and Union

সি প্রোগ্রামিং ল্যাঙ্গুয়েজে, স্ট্রাকচার এবং ইউনিয়ন হল দুটি গুরুত্বপূর্ণ ইউজার-ডিফাইন ডাটা টাইপ যা প্রোগ্রামারদের বিভিন্ন ধরনের ভেরিয়েবলকে একক নামে একত্রিত করতে দেয়। একটি প্রোগ্রামে জটিল ডেটা স্ট্রাকচারের প্রতিনিধিত্ব করতে উভয় কাঠামো এবং ইউনিয়ন ব্যবহার করা হয়।


কাঠামো একটি ব্যবহারকারী-সংজ্ঞায়িত ডেটা টাইপ যা একটি একক নামের অধীনে বিভিন্ন ডেটা প্রকারের ভেরিয়েবলকে গোষ্ঠীভুক্ত করে। struct কীওয়ার্ড ব্যবহার করে একটি কাঠামো ঘোষণা করা হয় এবং এতে এক বা একাধিক সদস্য থাকে, যা বিভিন্ন ডেটা প্রকারের ভেরিয়েবল। এখানে একটি কাঠামো ঘোষণার একটি উদাহরণ:


struct person {

    char name[50];

    int age;

    float height;

};


এই উদাহরণে, ব্যক্তি নামক একটি কাঠামোকে তিনটি সদস্য দিয়ে সংজ্ঞায়িত করা হয়েছে: আকার 50 এর একটি অক্ষর অ্যারের নাম, একটি পূর্ণসংখ্যা বয়স এবং একটি ভাসমান উচ্চতা। কাঠামোটি সংজ্ঞায়িত হয়ে গেলে, আমরা টাইপ ব্যক্তির ভেরিয়েবল তৈরি করতে পারি এবং এটি ব্যবহার করে সদস্যদের অ্যাক্সেস করতে পারি। অপারেটর.

struct person p1;


strcpy(p1.name, "John");

p1.age = 30;

p1.height = 5.8;


printf("Name: %s\n", p1.name);

printf("Age: %d\n", p1.age);

printf("Height: %f\n", p1.height);


আউটপুট:

Name: John

Age: 30

Height: 5.800000


ইউনিয়ন হল একটি ব্যবহারকারী-সংজ্ঞায়িত ডেটা টাইপ যা বিভিন্ন ডেটা প্রকারের ভেরিয়েবলকে একই মেমরি স্পেস শেয়ার করতে দেয়। ইউনিয়ন কীওয়ার্ড ব্যবহার করে একটি ইউনিয়ন ঘোষণা করা হয় এবং এতে এক বা একাধিক সদস্য থাকে, যা বিভিন্ন ডেটা প্রকারের ভেরিয়েবল। এখানে একটি ইউনিয়ন ঘোষণার একটি উদাহরণ:


union data {

    int i;

    float f;

    char str[20];

};


এই উদাহরণে, ডেটা নামক একটি ইউনিয়নকে তিনজন সদস্য দিয়ে সংজ্ঞায়িত করা হয়েছে: একটি পূর্ণসংখ্যা i, একটি ফ্লোট f, এবং 20 আকারের একটি অক্ষর অ্যারে str। একটি ইউনিয়নের সদস্যরা একই মেমরি স্পেস ভাগ করে, যার মানে হল যে একজন সদস্যকে সংশোধন করা প্রভাবিত করবে পাশাপাশি অন্যান্য সদস্যদের মান.


union data d1;


d1.i = 10;

printf("Value of i: %d\n", d1.i);


d1.f = 3.14;

printf("Value of f: %f\n", d1.f);

printf("Value of i: %d\n", d1.i); // note how this has changed due to the previous assignment


strcpy(d1.str, "Hello");

printf("Value of str: %s\n", d1.str);

printf("Value of i: %d\n", d1.i); // note how this has changed due to the previous assignment


আউটপুট:

Value of i: 10

Value of f: 3.140000

Value of i: 1078523331

Value of str: Hello

Value of i: 1819043144


সংক্ষেপে, স্ট্রাকচার এবং ইউনিয়নগুলি সি প্রোগ্রামিং ভাষার দুটি গুরুত্বপূর্ণ ডেটা টাইপ যা প্রোগ্রামারদের একক নামের অধীনে বিভিন্ন ধরণের ভেরিয়েবলকে গোষ্ঠীবদ্ধ করতে দেয়। স্ট্রাকচারগুলি বিভিন্ন ডাটা টাইপের বিভিন্ন সদস্যের সাথে জটিল ডাটা স্ট্রাকচারের প্রতিনিধিত্ব করতে ব্যবহৃত হয়, যখন ইউনিয়নগুলি বিভিন্ন ডাটা টাইপের বিভিন্ন সদস্যের মধ্যে একই মেমরি স্পেস ভাগ করতে ব্যবহৃত হয়।

Pointer:

সি প্রোগ্রামিং-এ, একটি পয়েন্টার একটি ভেরিয়েবল যা অন্য ভেরিয়েবলের মেমরি ঠিকানা সংরক্ষণ করে। পয়েন্টারগুলি মেমরিতে সংরক্ষিত ডেটা অ্যাক্সেস এবং ম্যানিপুলেট করতে ব্যবহৃত হয়। এগুলি গতিশীল মেমরি বরাদ্দকরণ এবং অ্যারে এবং লিঙ্কযুক্ত তালিকার মতো ডেটা কাঠামোর সাথে কাজ করার জন্য বিশেষভাবে কার্যকর।


একটি পয়েন্টার ভেরিয়েবলকে ভেরিয়েবল নামের আগে তারকাচিহ্ন (*) অপারেটর ব্যবহার করে ঘোষণা করা হয়। উদাহরণস্বরূপ, নিম্নলিখিত কোডটি একটি পয়েন্টার ভেরিয়েবল 'ptr' ঘোষণা করে যা একটি পূর্ণসংখ্যা ভেরিয়েবলের মেমরি ঠিকানা সংরক্ষণ করতে পারে:


int *ptr;

একটি পয়েন্টারে একটি ভেরিয়েবলের ঠিকানা নির্ধারণ করতে, অ্যাম্পারস্যান্ড (&) অপারেটর ব্যবহার করা হয়। উদাহরণস্বরূপ, পয়েন্টার 'ptr'-এ একটি পূর্ণসংখ্যা ভেরিয়েবল 'x'-এর ঠিকানা বরাদ্দ করতে, নিম্নলিখিত কোডটি ব্যবহার করা যেতে পারে:

int x = 10;
ptr = &x;
একবার একটি ভেরিয়েবলের ঠিকানা একটি পয়েন্টার ভেরিয়েবলে সংরক্ষণ করা হলে, আপনি সেই ঠিকানায় সংরক্ষিত মান অ্যাক্সেস করতে তারকাচিহ্ন (*) অপারেটর ব্যবহার করতে পারেন। উদাহরণস্বরূপ, পয়েন্টার 'ptr' ব্যবহার করে 'x' ভেরিয়েবলে সংরক্ষিত মান অ্যাক্সেস করতে, নিম্নলিখিত কোডটি ব্যবহার করা যেতে পারে:
int y = *ptr;
এটি 'ptr'-এ সংরক্ষিত মেমরি ঠিকানায় সংরক্ষিত মান 'y' ভেরিয়েবলকে বরাদ্দ করে।


File Management System

এটি 'ptr'-এ সংরক্ষিত মেমরি ঠিকানায় সংরক্ষিত মান 'y' ভেরিয়েবলকে বরাফাইল ম্যানেজমেন্ট হল সি-তে প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ দিক। সি বেশ কিছু বিল্ট-ইন ফাংশন এবং ডেটা টাইপ প্রদান করে যা আপনাকে ফাইল তৈরি, খোলা, পড়া, লেখা এবং বন্ধ করা সহ ফাইলগুলির সাথে কাজ করতে দেয়। এখানে C-তে কিছু মৌলিক ফাইল ম্যানেজমেন্ট ফাংশন রয়েছে:

fopen(): এই ফাংশনটি একটি ফাইল খুলতে ব্যবহৃত হয়। এটি দুটি পরামিতি নেয়: খোলার জন্য ফাইলের নাম এবং ফাইলটি যে মোডে খোলা হবে (যেমন, পড়া, লিখুন, যুক্ত করুন, ইত্যাদি)।

fclose(): এই ফাংশনটি একটি খোলা ফাইল বন্ধ করতে ব্যবহৃত হয়।

fgets(): এই ফাংশনটি একটি ফাইল থেকে একটি লাইন পড়তে ব্যবহৃত হয়। এটিতে তিনটি পরামিতি লাগে: পঠিত লাইন সংরক্ষণ করার জন্য একটি অক্ষর অ্যারে, সর্বোচ্চ সংখ্যক অক্ষর পড়তে হবে এবং ফাইল পয়েন্টার।

fputs(): এই ফাংশনটি একটি ফাইলে একটি লাইন লিখতে ব্যবহৃত হয়। এটি দুটি পরামিতি নেয়: একটি অক্ষর অ্যারে যাতে লেখার লাইন এবং ফাইল পয়েন্টার থাকে।

fprintf(): এই ফাংশনটি একটি ফাইলে ফরম্যাট করা আউটপুট লিখতে ব্যবহৃত হয়। এটি দুটি পরামিতি নেয়: একটি বিন্যাস স্ট্রিং যা আউটপুট এবং ফাইল পয়েন্টারের বিন্যাস নির্দিষ্ট করে।

fscanf(): এই ফাংশনটি একটি ফাইল থেকে ফরম্যাট করা ইনপুট পড়তে ব্যবহৃত হয়। এটি দুটি পরামিতি নেয়: একটি বিন্যাস স্ট্রিং ইনপুট এবং ফাইল পয়েন্টার বিন্যাস নির্দিষ্ট করে।

fseek(): এই ফাংশনটি একটি ফাইলের একটি নির্দিষ্ট অবস্থানে ফাইল অবস্থান নির্দেশক সেট করতে ব্যবহৃত হয়। এটি তিনটি পরামিতি নেয়: ফাইল পয়েন্টার, নির্দিষ্ট উত্স থেকে অফসেট, এবং উত্স (যেমন শুরু, বর্তমান অবস্থান, বা ফাইলের শেষ)।

এগুলি সি-তে ফাইল পরিচালনার কিছু মৌলিক ফাংশন। সি-তে ফাইল পরিচালনার জন্য আরও অনেক উন্নত ফাংশন উপলব্ধ রয়েছে, যেমন বাইনারি ফাইল হ্যান্ডলিং, র্যান্ডম অ্যাক্সেস ফাইল হ্যান্ডলিং এবং ফাইল বাফারিং।দ্দ করে।



#include <stdio.h>

int main() {
    FILE *fp_in, *fp_out;
    char buffer[100];

    // Open the input file in read mode
    fp_in = fopen("input.txt", "r");

    // Open the output file in write mode
    fp_out = fopen("output.txt", "w");

    // Read data from the input file and write it to the output file
    while (fgets(buffer, 100, fp_in) != NULL) {
        fputs(buffer, fp_out);
    }

    // Close the input and output files
    fclose(fp_in);
    fclose(fp_out);

    return 0;
}


Object Oriented Programming

অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) হল একটি প্রোগ্রামিং পদ্ধতি যা তথ্য উপস্থাপন এবং ম্যানিপুলেট করার জন্য অবজেক্ট ব্যবহার করে। অবজেক্টগুলি এমন পাত্রের মতো যা ডেটা সঞ্চয় করে এবং তাদের সাথে যুক্ত ফাংশন রয়েছে যা সেই ডেটা ম্যানিপুলেট করতে পারে। OOP-তে, আমরা এমন ক্লাসগুলিকে সংজ্ঞায়িত করি যেগুলি অবজেক্ট তৈরির জন্য ব্লুপ্রিন্ট হিসাবে কাজ করে এবং আমরা একটি একক ক্লাস থেকে একাধিক অবজেক্ট তৈরি করতে পারি।




অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) হল একটি প্রোগ্রামিং প্যারাডাইম যা তথ্য উপস্থাপন এবং ম্যানিপুলেট করার জন্য অবজেক্টের ব্যবহারের উপর ফোকাস করে। এখানে OOP এর কিছু মূল নীতি রয়েছে:

এনক্যাপসুলেশন: এই নীতিটি বাইরের জগত থেকে একটি বস্তুর অভ্যন্তরীণ বিবরণ লুকিয়ে রাখার অনুশীলনকে বোঝায় এবং অন্য বস্তুর সাথে যোগাযোগ করার জন্য বস্তুটির জন্য যা প্রয়োজন তা প্রকাশ করে। এনক্যাপসুলেশন নিশ্চিত করতে সাহায্য করে যে কোনও বস্তুর অভ্যন্তরীণ অবস্থা ঘটনাক্রমে প্রোগ্রামের অন্যান্য অংশ দ্বারা পরিবর্তিত না হয়।

Abstraction: এই নীতিটি সহজ, আরও বিমূর্ত বস্তুর সাথে জটিল সিস্টেমের প্রতিনিধিত্ব করার অনুশীলনকে বোঝায়। বিমূর্ততা জটিলতা কমাতে এবং কোডটিকে আরও মডুলার করতে সাহায্য করে, যার ফলে এটি বোঝা, বজায় রাখা এবং সংশোধন করা সহজ করে তোলে।

উত্তরাধিকার: এই নীতিটি বস্তুর অন্যান্য বস্তু থেকে বৈশিষ্ট্য এবং পদ্ধতির উত্তরাধিকারী হওয়ার ক্ষমতাকে বোঝায়। উত্তরাধিকার কোড ডুপ্লিকেশন কমাতে এবং কোডটিকে আরও মডুলার করতে সাহায্য করে, সেইসাথে বিদ্যমান ক্লাসগুলির উপর ভিত্তি করে নতুন ক্লাস তৈরির অনুমতি দেয়।

পলিমরফিজম: এই নীতিটি বস্তুর একাধিক রূপ গ্রহণের ক্ষমতাকে বোঝায়। পলিমরফিজম এমন বস্তু তৈরি করতে দেয় যা একাধিক প্রসঙ্গে ব্যবহার করা যেতে পারে, যা কোড ডুপ্লিকেশন কমাতে এবং কোডটিকে আরও মডুলার করতে সাহায্য করে।

অবজেক্ট কম্পোজিশন: এই নীতিটি ছোট বস্তুকে একত্রিত করে জটিল বস্তু তৈরি করার অনুশীলনকে বোঝায়। অবজেক্ট কম্পোজিশন কোড ডুপ্লিকেশন কমাতে এবং কোডটিকে আরও মডুলার করতে সাহায্য করে, সেইসাথে অনন্য বৈশিষ্ট্য এবং আচরণ সহ নতুন অবজেক্ট তৈরির অনুমতি দেয়।

এই নীতিগুলি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের জন্য মৌলিক এবং শক্তিশালী, মাপযোগ্য এবং রক্ষণাবেক্ষণযোগ্য সফ্টওয়্যার সিস্টেম তৈরি করতে ব্যবহৃত হয়।


0 comments:

Post a Comment

Featured Post

২০২৫ ও ২০২৪ সালের এইচএসসি পরীক্ষার সিলেবাস

  ২০২৫ সালের এইচএসসি পরীক্ষার সিলেবাস (২০২৩ সালের সিলেবাসের অনুরূপ) পত্রিকার খবরের লিঙ্ক     ২০২৪ সালের এইচএসসি পরীক্ষার সিলেবাস (২০২৩ সালের...

Powered by Blogger.