এইচএসসি তথ্য ও যোগাযোগ প্রযুক্তি

সি প্রোগ্রামিং ল্যাংগুয়েজ

Supported by Matador Stationary

কম্পিউটার হচ্ছে একটা বোকাসোকা যন্ত্র। তাকে সঠিকভাবে বুঝিয়ে না দিলে সে নিজের থেকে কিছুই করতে পারে না। কম্পিউটারের মত এই বোকাসোকা যন্ত্রকে বোঝানোর কাজটিকে বলে প্রোগ্রামিং আর যারা এই কাজ করে তারাই হচ্ছে প্রোগ্রামার।

 

এখন, প্রোগ্রামাররা যদি ভুলভাল প্রোগ্রামিং করে তাহলে কম্পিউটারও কিন্তু ভুল করে বসবে। কাজেই প্রোগ্রামারদের নির্ভুলভাবে প্রোগ্রামিং করা প্রয়োজন। প্রোগ্রামাররা যাতে সহজে নির্ভুলভাবে প্রোগ্রামিং করতে পারে সেজন্য উদ্ভাবিত হয়েছে নতুন নতুন প্রোগ্রামিং ভাষা।

 

C হচ্ছে এরকমই একটি প্রোগ্রামিং ভাষা। ১৯৭০ সালে যুক্তরাষ্ট্রের বেল ল্যাবরেটরীতে ডেনিস রিচি এ ভাষার উদ্ভাবন করেন। শুরুর দিকে এ ভাষার কোন নির্দিষ্ট নিয়মকানুন লিপিবদ্ধ ছিল না। পরবর্তীতে ১৯৮৩ সালে ANSI (American National Standard Institute) সি ভাষার নির্দিষ্ট নিয়মকানুন (Standard) নির্ধারন করে যেটা ANSI C নামে পরিচিত। বর্তমানে ব্যবহৃত প্রায় সকল C এর কম্পাইলার ANSI C অনুযায়ী তৈরী। বিভিন্ন C কম্পাইলারের মধ্যে Turbo C, Dev C++, Borland C++ ইত্যাদি উল্লেখযোগ্য।

আচ্ছা সি প্রোগ্রামের পরিচয় পেলাম। তো চলো আমরা এবার একটা ছোট সি প্রোগ্রাম দেখি। প্রথম দেখাতে হয়ত তোমরা মাথামুন্ড কিছুই বুঝতে পারবে না। তবে চিন্তার কিছু নেই। আমি তোমাদের বুঝিয়ে দিব পরে। আগে প্রোগ্রামটি দেখে নাওঃ

 

  1. /* this program calculates the sum of two numbers*/
  2.  #include <stdio.h>
  3.  void main()
  4.   {
  5.    int a,b,sum;
  6.            printf(“ Enter two Numbers: “);
  7.             scanf(“%d”,&a);
  8.              scanf(“%d”,&b);
  9.            sum = a + b;
  10.            printf(“ Sum = %d”, sum);
  11.  }

 

এবার আমি তোমাদের বিভিন্ন লাইনের মানে ব্যাখা করব।


খেয়াল করে দেখ, প্রোগ্রামের প্রতি স্টেটমেন্টের শেষে একটি সেমিকোলন (;) দেওয়া লাগে। সেমিকোলন না দিলে কিন্তু প্রোগ্রামে ইরোর দেখাবে।

একটি প্রোগ্রাম বুঝতে বা লিখতে গেলে কিছু জিনিস না জানলেই চলবে না। চলো তাহলে সেগুলো দেখে নেওয়া যাকঃ

ফাংশন (Function)

ফাংশন হচ্ছে একটি নির্দিষ্ট কাজের উদ্দেশ্যে লিখা একগুচ্ছ কোড ( প্রোগ্রামকে কোড ও বলা হয়) । যেমন ধরো তোমার একটা প্রোগ্রামে বারবার যোগ করার প্রয়োজন। এখন যোগ করার জন্য বারবার কোড লিখা সময়সাপেক্ষ। তাই একটা ফাংশন তৈরী করা হয় এবং সেই ফাংশন যতবার ইচ্ছা ব্যবহার করা যায়।

 

যেমন নিচের ফাংশনটি লক্ষ করোঃ

 

int  sum( int a, int b)

{

     sum = a + b;

     return  sum;

}

 

এখানে ফাংশনের প্রথম অংশে int লিখা হয়েছে কারণ ফাংশনটি একটি পূর্নসংখ্যা রিটার্ন করছে। ফাংশনটি a এবং b দুইটি সংখ্যা ইনপুট নিবে এবং সংখ্যা দুটির যোগফল রিটার্ন করবে।

 

এখন, কিছু কিছু ফাংশন আছে যেগুলোর জন্য কোড লিখা লাগে না। আগে থেকেই সেট করে দেয়া থাকে। এগুলোকে বলে লাইব্রেরী ফাংশন। এই ফাংশনগুলো ব্যবহারের জন্য হেডার ফাইল যোগ করা লাগে প্রোগ্রামের শুরুতে। আমরা যে প্রথমে stdio.h নামক হেডার ফাইল যোগ করলাম এটার কারণেই কিন্তু printf() ফাংশনটি ব্যবহার করতে পারছি।

লুপ (LOOP)

লুপ মানে চক্র। ধরো তুমি প্রোগ্রামে একটা কাজ ৫০ বার করতে চাও। এখন তুমি যেটা করতে পারো সেটা হচ্ছে ৫০ বার ওই একই কাজের প্রোগ্রাম লিখতে পারো। কিন্তু কাজটা অনেক ঝামেলার এবং সময়সাপেক্ষ, তাই না?

 

এর পরিবর্তে তুমি যেটা করতে পারো সেটা হচ্ছে একটা লুপের মধ্যে কাজটি লিখে দিতে পারো। আর বলে দিতে কাজটি ৫০ বার করে দিতে হবে।

 

লুপ এভাবে চালাতে হয়। ধরো, তুমি ৫০ বার “NEVER STOP LEARNING” প্রিন্ট করতে চাও। তাহলে যেভাবে লিখতে হবেঃ  

 

for(i = 1; i<=50; i++)

{

    printf(“NEVER STOP LEARNING”);

}

 

এখানে  i হচ্ছে একটি ভ্যারিয়েবল বা চলক যার মান প্রথমে 1.

প্রতিবার i এর মান 1 করে বাড়ে।

I এর মান যখন 50 হয় তখন লুপ বন্ধ হয়ে যায়।

অর্থাৎ এক্ষেত্রে ৫০ বার “NEVER STOP LEARNING” কথাটি প্রিন্ট হবে।

 

ফর লুপ ছাড়াও   সি প্রোগ্রামিং এ while loop, do while loop আছে।


কন্ডিশন (Condition)

কন্ডিশন মানে শর্ত। একটা শর্তে কোন একটা কাজ হবে এরকম।

ধরো a একটি ভ্যারিয়েবল বা চলক। এখন তুমি বলে দিলে যে a এর মান যখন 10 হবে তখন প্রোগ্রামটি প্রিন্ট করবে “10 MINUTE SCHOOL”

 

তাহলে তোমাকে এভাবে লিখতে হবেঃ

 

if( a == 10)

{

printf(“10 MINUTE SCHOOL”);

}else{

 

        printf(“ hello”);

}

 

এক্ষেত্রে যেটি হয়েছে সেটি হচ্ছে যদি a এর মান 10 হয় তাহলে প্রোগ্রামটির if কন্ডিশন কাজ করবে এবং প্রিন্ট করবে 10 MINUTE SCHOOL আর যদি সেটা না হয় অর্থাৎ a এর মান 10 ব্যতীত অন্য কিছু হয় সেক্ষেত্রে প্রোগ্রামটি প্রিন্ট করবে “HELLO”


ডাটা টাইপ (Data Type)

সি ভাষায় একটা চলক বা ভ্যারিয়েবল কী ধরনের সেটা ডাটা টাইপ থেকে বোঝা যায়। যেমন পূর্নসংখ্যা হলে integer ডাটা টাইপ ব্যবহার করা হয়। আবার ধরো তুমি দশমিক সংখ্যা নিয়ে কাজ করতে চাও সেক্ষেত্রে float/double ডাটা টাইপ ব্যবহার করতে হবে।



অপারেটর সমূহ  (OPERATORS)


আচ্ছা আমরা প্রোগ্রামিং সম্বন্ধে অনেক কিছু জানলাম। চলো এবার একটা প্রোগ্রাম দেখি এবং সেটা কিভাবে কাজ করে দেখে নিইঃ

 

#include<stdio.h>

int sum (int a,int b)

{

     int sum;

     sum =  a + b;

     return sum;

}

 

void main()

{

       int x,y,p;

       printf(“ENTER TWO NUMBERS:\n”);

       scanf(“%d%d”, &x, &y);

       p = sum (x,y);

       for(i = 1; i<=p; i++)

       {

               printf(“I LOVE PROGRAMMING\n”);

       }

}

 

উপরের প্রোগ্রামটি লক্ষ করো। প্রোগ্রামটিতে সবার প্রথমে হেডার ফাইল ইনক্লুড করা হয়েছে ‘#include<stdio.h>’ দিয়ে।

এরপর একটি ফাংশন লিখা হয়েছে sum নামে যেটাতে দুইটি সংখ্যার যোগফল বের করবে।

 

এবার চলে আসো মেইন ফাংশনে। মেইন ফাংশনে প্রথমে তিনটি ভ্যারিয়েবল ডিক্লেয়ার করা হয়েছে x,y,p নামে। এরপর একটি প্রিন্ট ফাংশন লিখা হয়েছে যেটার কাজ হচ্ছে “ENTER TWO NUMBERS” লিখাটি প্রিন্ট করা।

তারপর স্ক্যান ফাংশন দিয়ে ইনপুট নেওয়া হয়েছে। এক্ষেত্রে ইনপুট হিসেবে দুইটি ভ্যারিয়েবল x এবং y এর সাহায্যে দুইটি সংখ্যা ইনপুট নেওয়া হয়েছে।

এখন গৃহীত ইনপুট এবার ফাংশনে পাঠানো হয়েছে। ফাংশন সংখ্যা দুইটির যোগফল বের করে ফেলেছে এবং যোগফল p নামক ভ্যারিয়েবলে এসাইন করা হয়েছে।

 

এবার একটি লুপ চালানো হয়েছে যেটি 1 থেকে p পর্যন্ত চলবে এবং লুপের ভিতরে প্রিন্ট ফাংশনে লিখা হয়েছে “I LOVE PROGRAMMING”

অর্থাৎ প্রোগ্রামটি p সংখ্যকবার এটি প্রিন্ট করবে।

 

খেয়াল করো, এক্ষেত্রে প্রিন্ট ফাংশনের শেষে ‘\n’ যুক্ত করা হয়েছে যার মানে হচ্ছে প্রতিবার নতুন লাইনে প্রিন্ট হবে।

 

সুতরাং প্রোগ্রামের আউটপুট হচ্ছে p সংখ্যকবার I LOVE PROGRAMMING লিখা।