সি প্রোগ্রামিং লেবেলটি সহ পোস্টগুলি দেখানো হচ্ছে৷ সকল পোস্ট দেখান
সি প্রোগ্রামিং লেবেলটি সহ পোস্টগুলি দেখানো হচ্ছে৷ সকল পোস্ট দেখান

সি প্রোগ্রামিং: পর্ব ৪



গতপর্বে আমরা আলোচনা করেছিলাম বিট ও বাইট প্রসঙ্গে। আমরা জেনেছি 0 এবং 1 হল একেকটি বিট এবং এমন ৮ টি বিট নিয়ে হয় এক বাইট। এভাবেই,
৮ বিট = ১ বাইট
১০২৪ বাইট = ১ কিলোবাইট
১০২৪ কিলোবাইট = ১ মেগাবাইট
১০২৪ মেগাবাইট = ১ গিগাবাইট
১০২৪ গিগাবাইট = ১ টেরাবাইট
আমরা যখন বলি, ১০০ গিগা হার্ডডিস্ক তখন এই কথার অর্থ হচ্ছে, 0 এবং 1, এদের সমন্বয়ে গঠিত ১০০ গিগা ডাটা রাখতে যে পরিমান জায়গা লাগবে ঠিক ঐ পরিমান জায়গা ঐ হার্ডডিস্কে আছে।


মেমোরী এড্রেসঃ
মেমোরী সম্পর্কে তো আমরা সবাই জানি। কম্পিউটারের র‍্যামকেই মেমোরী বলা হয়। এখন প্রশ্ন হল মেমোরী এড্রেস কি ?
প্রতিটি মেমোরীর সাইজই নির্দিষ্ট। ৫১২ মেগাবাইট বা ১ গিগা ইত্যাদি। এই মেমোরীর ক্ষুদ্রতম একক হচ্ছে বাইট। আর এই ক্ষুদ্রতম একককে আপনি মেমোরীর একটি ক্ষুদ্র প্রকোষ্ঠ বা সেল হিসেবে বিবেচনা করতে পারেন। সুতরাং বলা যায়, একটি মেমোরী অসংখ্য সেলের সমন্বয়ে গঠিত। এরকম প্রতিটি সেলের ডাটা ধারণ ক্ষমতাও নির্দিষ্ট, ৮ বিট করে (যেহেতু, ১ বাইট = ৮ বিট)। প্রতিটি সেলই তো তাহলে একই রকম। তাহলে একটার সাথে আরেকটার পার্থক্য কোথায়। হ্যাঁ বন্ধুরা, একরকম হলেও এদের মধ্যে একটি পার্থক্য আছে যা দিয়ে একেকটি সেল একটি আরেকটি থেকে আলাদা। আর তা হল এদের এড্রেস। এড্রেস কিছুই না, শুধুমাত্র একটি নাম্বার। একেকটি নাম্বারই একেকটি সেলের এড্রেস এবং কোনো সেলের এড্রেসই একটি আরেকটির সাথে মিলবে না। প্রতিটি সেলের এই এড্রেসকেই বলা হয় মেমোরী এড্রেস।
প্রোগ্রামিং করার সময় ইন্সট্রাকশনের মাধ্যমে কিছু ডাটা মেমোরীতে সেভ রাখার কমান্ড দেয়া হবে, যেন প্রোগ্রাম চলাকালে মেমোরীতে ঐ ডাটা লোড হয় এবং ব্যবহারকারীর প্রয়োজনমত প্রোগ্রাম ঐ ডাটা র‍্যাম বা মেমোরী থেকে রিড করে। নিচের চিত্র থেকে ব্যাপারটি বুঝতে সুবিধা হবে।
চিত্রে দেখতে পাচ্ছেন মেমোরী লোকেশন ২ এর পর থেকে মেমোরী লোকেশন ১৪ এর পূর্ব পর্যন্ত এড্রেসবিশিষ্ট সেলগুলোতে ডাটা ইনপুট বা রাইট হচ্ছে অথবা সেখান থেকে ডাটা রিড করার মাধ্যমে ডাটা আউটপুট হচ্ছে।
অবশ্য প্রোগ্রাম থেকে এক্সিট করার পরে বা প্রোগ্রাম বন্ধ করার পরে প্রোগ্রামে ব্যবহৃত ডাটা মেমোরী থেকে মুছে যায়।
প্রোগ্রাম শুরু করার আগে আমাদের আরো কিছু টার্ম জানা দরকার।
ফাংশনঃ
আমরা যেমন কোনো নির্দিষ্ট কোনো কাজ করি কোনো নির্দিষ্ট অংগ প্রত্যঙ্গের মাধ্যমে ঠিক তেমনি প্রোগ্রামে একেকটি ফাংশনের মাধ্যমে একেকটি কাজ করা হয়। সহজ কথায় ফাংশন হল একেকটি কমান্ড। যেমন, printf(), scanf(), clrscr() ইত্যাদি হল সি তে ব্যবহৃত কিছু কমান্ড বা ফাংশন। printf() এর কাজ কোনো লেখা স্ক্রীনে প্রদর্শন করা, scanf() এর কাজ ইউজারের কাছ থেকে কোনো ইনপুট নেয়া এবং clrscr() এর কাজ প্রোগ্রামে আগে থেকে কোনো ডাটা আউটপুট হিসেবে প্রদর্শিত হলে তা মুছা।
লাইব্রেরী ফাংশনঃ
যে সকল ফাংশন কম্পাইলারে আগে থেকে বিল্ট ইন অবস্থায় থাকে তাদের লাইব্রেরী ফাংশন বলে। উপরের ফাংশন গুলো আগে থেকে টার্বো সি কম্পাইলারে তৈরি করা আছে, তাই এগুলো লাইব্রেরী ফাংশন।
হেডার ফাইলঃ
ফাংশন সাধারণত আলাদা কোনো জিনিস নয়, এগুলোও কোড লিখেই তৈরি করা হয় এবং ডিফাইন করা হয়। লাইব্রেরী ফাংশন গুলো ডিফাইন করে দেয়া হয় সাধারণত একেকটি ফাইলে। এসকল ফাইলকে হেডার ফাইল বলে। যেমন,printf() ফাংশনটির প্রোটোটাইপ stadio.h নামের হেডার ফাইলে ডিফাইন করা আছে। তাই printf() ফাংশনের হেডার ফাইল stdio.h। সি তে কোনো প্রোগ্রামে যখন কোনো ফাংশন ব্যবহার করা হয় তখন তার হেডার ফাইলের নামেও শুরুতেই উল্লেখ করে দিতে হয়।
আসুন তাহলে একটি প্রোগ্রাম দেখি।
TC.exe ওপেন করে file->new কমান্ড দিয়ে নতুন স্পেস পাবেন, তাতে নিচের কোডটি লিখুন।
#include<stdio.h>
#include<conio.h>
main()
{
printf(“hello everybody.”);
getch();
}
নিচের মত পাবেন।




গতপর্বের শেষে একটি কোড দিয়েছিলাম, মনে আছে কি ? মনে না থাকলেও সমস্যা নেই। চলুন কোডটা আবার দেখি।
১)          #include<stdio.h>
২)          #include<conio.h>
৩)          main()
৪)          {
৫)           printf(“hello everybody.”);
৬)            getch();
৭)               }

আমি আগেই বলেছি ফাংশন এর কথা। প্রতিটা ফাংশন একেকটা কাজ করে। তেমনি একটি ফাংশন main() ফাংশন। এই ফাংশনের কাজ হল, এই ফাংশনের মধ্যে যা কিছু লেখা হবে সি প্রোগ্রাম তা নিয়েই কাজ করবে। অর্থাৎ প্রোগ্রামের যাবতীয় প্রসেসিং হবে main() ফাংশনের ভেতর। এই ফাংশনের পরে “{“ দিয়ে ফাংশনের ভেতরের অংশ শুরু করা হয়েছে। এবং এর ভেতরে প্রথমেই লেখা হয়েছে printf(“hello everybody.”);। উল্লেখ্য, printf() হল আরেকটি ফাংশন যার কাজ হল এর ভেতরে লেখা কোনো শব্দ বা শব্দগুচ্ছকে মনিটরের স্ক্রীনে প্রদর্শন করা। এই ফাংশনের “()” অংশের ভেতরে “” চিহ্ন দিয়ে লেখা হয়েছে “hello everybody.” তাই এই লেখাটি স্ক্রীনে দেখানো হবে। printf() ফাংশনের মাধ্যমে এই যে একটি লেখাকে প্রোগ্রামে দেখানোর কমান্ড দেয়া হল, একে বলা হয় ইন্সট্রাকশান দেয়া। আর এই পুরো লাইনটা হল একটি স্টেটমেন্ট। প্রতিটি স্ট্যাটমেন্টের পরে “;” সেমিকোলন দিতে হয়।
এরপরের লাইনেই লেখা হয়েছে, getch();। উল্লেখ্য, এটিও একটি ফাংশন যার কাজ হল দর্শকের কাছ থেকে কোনো ক্যারেক্টার নেয়া। অর্থাৎ, কেউ যখন কীবোর্ড থেকে কোনো ক্যারেক্টার প্রেস করবে তখন এই ফাংশনের মাধ্যমে ঐ ক্যারেক্টারটি ইনপুট হিসেবে প্রোগ্রাম নিয়ে নেবে। আর যতক্ষন পর্যন্ত কীবোর্ডের কোনো কী প্রেস না করে ক্যারেক্টার না দেয়া হবে তখন এই ফাংশন কোনো ক্যারেক্টারকে ইনপুট হিসেবে পাওয়ার জন্য অপেক্ষা করতে থাকবে।
এরপরেই আছে “}” যার মাধ্যমে প্রোগ্রামের শেষ বুঝানো হয়। আপনি যখন কোনো ক্যারেক্টারে প্রেস করবেন তখন getch() ফাংশন ঐ ক্যারেক্টার ইনপুট হিসেবে নেবে এবং ঐ লাইনের কাজ শেষ হয়ে যাবে। এরপরের লাইনে শুধুমাত্র “}” আছে যার ফলে প্রোগ্রামটি শেষ হয়ে যাবে।
এখানে দুটি ফাংশন ব্যবহার করা হয়েছে। printf()  এবং getch() ফাংশন। এদের প্রোটোটাইপ যথাক্রমে stdio.h এবং conio.h ফাইলে ডিক্লেয়ার করা আছে। তাই এই সকল ফাংশনের হেডার ফাইল যথাক্রমে stdio.h এবং conio.h। যেহেতু উক্ত ফাংশনগুলো প্রোগ্রামে ব্যবহার করা হয়েছে, তাই এদের হেডার ফাইলের নাম main() ফাংশনের আগে ডিক্লেয়ার করতে হবে নিচের মত।
#include<stdio.h>
#include<conio.h>
এভাবে লেখার মধ্যে কোনো স্পেস থাকতে পারবে না।
রান করার পরে নিচের মত পাবেন।


১)          #include<stdio.h>
২)          #include<conio.h>
৩)          main()
৪)          {
৫)           printf(“hello everybody.”);
৬)            getch();
৭)               }
এখান থেকে আমরা সি প্রোগ্রামিং এর একটি সাধারণ কাঠামো দেখতে পাই,
Header file ডিক্লেয়ারেশন(১ ও ২ নং লাইনে এটি করা হয়েছে)
কন্সট্যান্ট ডিক্লেয়ারেশন(এটি উপরের কোডে দেখানো হয়নি। পরের উদাহরনে দেখানো হবে)
গ্লোবাল ভেরিয়েবল ডিক্লেয়ারেশন( এটিও পরে দেখান হবে)
মেইন ফাংশন( ৩নং লাইন)
{
মেইন ফাংশনের আভ্যন্তরীণ কোড যা প্রোগ্রামের মূল
}
এটিই মূলত সি প্রোগ্রামের কাঠামো। এখানে কন্সট্যান্ট সমপর্কে কিছু বলে নেয়া ভালো। কন্সট্যান্ট হল ধ্রুবক অর্থাৎ যার মান অপরিবর্তনীয়। আপনি মেইন ফাংশনের ভিতরেও এর মান চেঞ্জ করতে পারবেন না।
কন্সট্যান্ট নিচের মত প্রোগ্রামে ডিক্লেয়ার এবং ব্যবহার করা হয়।
১) #include<stdio.h>
২)  #include<conio.h>
৩)  #define pi 3.1416

৪)   void main()
৫)  {clrscr();
৬)  printf(“%f”,pi);
৭)   getch();
}
১ ও ২ নং লাইনে হেডার ফাইল ডিক্লেয়ার করা হয়েছে।
৩ নং লাইনে pi নামে একটি কন্সট্যান্ট ডিক্লেয়ার করা হয়েছে #define pi 3.1416 লাইনের মাধ্যমে।
৫ নং লাইনে এই মান ব্যবহার করা হয়েছে।
এবার আসুন ভেরিয়েবল সম্পর্কে জানি।
ভেরিয়েবল
একে আপনি কোনো পাত্রের সাথে তুলনা করতে পারেন। পাত্রে যেমন কোনো কিছু জমা রাখা যায় এবং এক জায়গা থেকে অন্য জায়গায় নেয়া যায় তেমনি ভেরিয়েবলেও যেকোনো ডাটা স্টোর করে রাখা যায় এবং প্রয়োজন অনুযায়ী তা ব্যবহার করা যায়।
ভেরিয়েবল ব্যবহার করার আগে তা ডিক্লেয়ার করে নিতে হয়।
ভেরিয়েবল দুই প্রকার। গ্লোবাল ভেরিয়েবল এবং লোকাল ভেরিয়েবল।
যে সকল ভেরিয়েবল  ফাংশনের মধ্যে ডিক্লেয়ার করা হয় তারা লোকাল ভেরিয়েবল। যে ফাংশনে এই ভেরিয়েবলের মান ডিক্লেয়ার করা সেই ফাংশনের কাজ শেষে ফাংশন থেকে বের হয়ে গেলে এ সকল ভেরিয়েবলের মান আর থাকে না, মুছে যায়।
অন্যদিকে গ্লোবাল ভেরিয়েবলের মান ফাংশনের বাইরে ডিক্লেয়ার করা হয়। এবং যে কোনো ফাংশনে এর মান ব্যবহার করা যায়।
#include<stdio.h>
#include<conio.h>
#define pi 3.1416
int c=1;
void main()
{clrscr();
int a=7;
printf(“%d\n”,c);
printf(“%f”,pi);
print(“%d”,a)
getch();
}
উপরের ফাংশনে int c=1; লাইনের মাধ্যমে c নামে একটি গ্লোবাল ভেরিয়েবল ডিক্লেয়ার করা হয়েছে যা রয়েছে main() ফাংশনের বাইরে।
int a=7; এর মাধ্যমে main() ফাংশনের ভিতরে a নামে লোকাল ভেরিয়েবল ডিক্লেয়ার করা হয়েছে।

সি প্রোগ্রামিং: পর্ব ৩



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


র‍্যাম বা মেমোরীঃ
সি নিয়ে কাজ করার বেলায় র‍্যাম বা মেমোরী সম্পর্কে অগাধ জ্ঞান থাকলেও কিছু ধারণা রাখার প্রয়োজন। র‍্যাম বা মেমোরী কি ? সহজ কথায় বলা যায়, এটি হল কম্পিউটারের কাজ করার জন্য একটি জায়গা। যখন কোনো প্রোগ্রাম বা সফটওয়্যার কম্পিউটারে রান করা হয় তখন ঐ প্রোগ্রামের যাবতীয় ডাটা ও ইন্সট্রাকশন হার্ডডিস্ক থেকে র‍্যামে লোড হয়। আর র‍্যামে ডাটা লোড করার এই কাজটি করে প্রসেসর। প্রোগ্রামের ডাটা ও ইন্সট্রাকশন র‍্যামে লোড হওয়ার পরে প্রসেসর ও ডাটা ও ইন্সট্রাকশন র‍্যাম থেকে পড়ে এবং সেই অনুযায়ী কাজ করে। এরপর আপনি যখন প্রোগ্রামটি বন্ধ করে দেন, তখন র‍্যাম থেকে ঐ প্রোগ্রামের ব্যবহৃত সকল ডাটা ও ইন্সট্রাকশন মুছে যায়।
এ প্রসঙ্গে উল্লেখ্য কিন্তু র‍্যামকেই মেমোরী বলা হয় আর এই মেমোরী বলতে কিন্তু ডাটা সেভ করে রাখার জন্য ব্যবহৃত স্মৃতি বোঝানো হয় না। বরং এটি হল কাজ করার জন্য একটি স্পেস বা জায়গা।
বিট ও বাইটঃ
আমরা যখন কোনো প্রোগ্রাম তৈরি করি তখন তা তৈরি করা হয় যেকোনো ল্যাংগুয়েজের মাধ্যমে ইন্সট্রাকশান ও ডাটা দিয়ে। তাই বলা যায় যেকোনো প্রোগ্রামই হচ্ছে কিছু ইন্সট্রাকশন ও ডাটার সমষ্টি যা দেয়া হয় ল্যাংগুয়েজের মাধ্যমে। প্রোগ্রামের এই ইন্সট্রাকশান পড়েই কম্পিউটারের প্রসেসর প্রোগ্রামটিকে রান করে। কিন্তু কথা হল, এই ইন্সট্রাকশন যে ল্যাংগুয়েজেই লেখা হোক না কেন, কম্পিউটার কিন্তু কোনো ল্যাংগুয়েজই পড়তে পারেনা। সে শুধু পারে মেশিন ল্যাংগুয়েজ পড়তে, যে ল্যাংগুয়েজে আছে শুধু দুটি অক্ষর,আর কিছুই নেই। এ দুটি অক্ষর হল 0 এবং 1। আমরা যে কোনো ল্যাংগুয়েজেই প্রোগ্রাম লিখি না কেন, ঐ প্রোগ্রামটি পিসিতে লোড হওয়ার সময় এর জন্য ব্যবহৃত ইন্সট্রাকশন কনভার্ট হয়ে মেশিন ল্যাংগুয়েজে অর্থাৎ 0 এবং 1 এর সমন্বয়ে তৈরি ইন্সট্রাকশনে পরিণত হয় এবং সে ইন্সট্রাকশন অনুযায়ী প্রোগ্রাম রান করে।
মেশিন ল্যাংগুয়েজে ব্যবহৃত এই দুটি বর্ণের (0 এবং 1) প্রত্যেকটিকেই একেকটি বিট বলে। বিটকে তাই বলা যায় কোনো প্রোগ্রামের সকল ডাটার ক্ষুদ্রমত একক। আর এরকম ৮ টি বিট নিয়ে গঠিত গঠিত একককে বলে এক বাইট। 0 এবং 1 বিভিন্ন কম্বিনেশনে সজ্জিত হয়ে এক এক বাইট গঠন করে এবং প্রতিটি কম্বিনেশনই একেকটি অক্ষর বা শব্দ বা ইন্সট্রাকশন প্রকাশ করতে পারে। আবার একেকটি ইন্সট্রাকশন মেশিন ল্যাংগুয়েজে কনভার্ট হয়ে এরকম বিট দ্বারা গঠিত এক বা অসংখ্য বাইটের সমষ্টি হতে পারে।
সহজ কথায়, মেশিন ল্যাংগুয়েজের  এদুটি বিট বিভিন্ন সজ্জায় সজ্জিত হয়ে ৮ বিটের একেকটি বাইট গঠন করে যা একেকটি বর্ণ প্রকাশ করতে পারে।
বোঝার সুবিধার্থে মেশিন ল্যাংগুয়েজে কিছু সজ্জা দেখানো হল

01001011
11111111
00000000
11010011


এভাবেই একেকটি বাইট গঠিত হয়।

সি প্রোগ্রামিং: সি সম্পর্কে ধারণা


কম্পিউটার। কি না করা যায় এতে! গান শুনা, মুভি দেখা, নেট ব্রাউজ করা, খেলা আরো কত কি! তবে একটা ব্যাপার নিশ্চয়ই সবাই লক্ষ্য করেছেন। এ সকল কাজ কম্পিউটার নিজে থেকেই করতে পারেনা। এগুলো করার জন্য প্রয়োজন হয় কোনো মাধ্যমের। উইন্ডোজ মিডিয়া প্লেয়ার বা জেট অডিও হল তেমনই একটি মাধ্যম। এরকম অন্যান্য কাজ করতেও আলাদা আলাদা মাধ্যম দরকার। যেমন, ইন্টারনেট  ব্রাউজ করতে ব্রাউজার, কোনো কিছু টাইপ করতে এম এস ওয়ার্ডের মত মাধ্যম দরকার হয়। এ সকল মাধ্যম হল এক একটি প্রোগ্রাম যা বানানো জন্য ব্যবহার করা হয় ল্যাংগুয়েজ, যাকে প্রোগ্রামিং ল্যাংগুয়েজ বলে। অনেক ধরনের প্রোগ্রামিং ল্যাংগুয়েজই আছে। যেমন, ভিজুয়াল বেসিক, সি , ফোরট্রান ইত্যাদি। সি হল তেমনই একটি প্রোগ্রামিং ল্যাংগুয়েজ ।
 সি কে বলা হয় “Mother of all language”— সকল ল্যংগুয়েজের জননী। কেন বলা হয় ? কারণ এটি এমন একটি ল্যাংগুয়েজ যা সকল ল্যাংগুয়েগের বেসিক।
সি শিখলে একজন মানুষের প্রোগ্রামিং সম্পর্কে ধারণা পরিষ্কার হয়ে যায়। সি এর পরে যত ল্যাংগুয়েজ এসেছে, সে সকল ল্যাংগুয়েজ শেখা অনেকটাই সোজা হয়ে যায় যদি সি জানা থাকে। আর এ কারণেই যেকোনো প্রোগ্রামিং শেখানোর ক্ষেত্রে শিক্ষাপ্রতিষ্ঠানগুলোতে প্রথমে সি শেখানো হয়। সি এর এমন অপরিহার্যতার প্রেক্ষিতে আমি সি প্রোগ্রামিং এর উপরে ধারাবাহিক শুরু করতে যাচ্ছি।

প্রোগ্রামিং প্রকারভেদঃ

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

ইন্টারপ্রেটার ও কম্পাইলার

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

প্রকার

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

সি প্রোগ্রামিং: পর্ব ২

সি প্রোগ্রামিং লিখতে প্রয়োজনীয় সফটওয়্যার প্রসঙ্গে। এই প্রোগ্রাম লিখতে যে সফটওয়্যারের প্রয়োজন তার নাম টার্বো সি। এটি একটি কম্পাইলার। কম্পাইলার সম্পর্কে আমি আগের পর্বেই আলোচনা করেছিলাম। অনেকের কাছেই হয়তো কম্পাইলারটি আছে। যাদের কাছে নেই তারা ডাউনলোড করে নিতে পারেন এখান থেকে। সাইজ ৪ মেগাবাইট।
আনজিপ করার পরে TC নামে যে ফোল্ডার পাবেন তা যে কোনো ড্রাইভে রাখুন। সাবডিরেক্টরীতে না রাখাই ভালো। ফোল্ডারটিতে ডাবল ক্লিক করে নিচের মত পাবেন

এর মধ্যে BIN ফাইলটি ওপেন করুন। এতে নিচের মত পাবেন।

উপরের চিত্রে TC নামে একটি ফাইল দেখতে পাচ্ছেন (সিলেক্ট করা ফাইল)। এটিই exe ফাইল। এতেই আপনাকে কাজ করতে হবে। এটি ওপেন করুন। ফলে নিচের চিত্রের মত একটি স্ক্রীন পাবেন।


কাজ শুরু করার আগে আপনাকে আরো কিছু কাজ করতে হবে। File->Change dir… এ যান নিচের মত করে।

ফলে আরেকটি উইন্ডো পাবেন নিচের মত।

এই উইন্ডোতে আপনি TC ফাইলটি যে ডিরেক্টরীতে আছে সে ডিরেক্টরীর নাম দিতে হবে। আমার TC ফাইলটি আছে D:\TC\BIN ডিরেক্টরীতে। কাজ শেষে OK করুন।
এখন Options->Directories এ যান।

নিচের মত পাবেন।

আপনাদের কি মনে আছে, TC ফোল্ডারের মধ্যে দুটি ফোল্ডার ছিল Include ও LIB নামে? উপরের চিত্রে প্রথম বক্সে আপনাকে Include ফোল্ডারটি কোন ডিরেক্টরীতে আছে তাইই উল্লেখ করে দিতে হবে। যেমন, আমার include ফোল্ডারের ডিরেক্টরী হল D:\TC\INCLUDE . এর পরের বক্সে LIB ফোল্ডারের ডিরেক্টরী উল্লেখ করে দিতে হবে। আমার LIB ফোল্ডারের ডিরেক্টরী D:\TC\LIB । এরপরের বক্সে ঠিক করে দিন আপনার আউটপুট ডিরেক্টরী অর্থাৎ যেখানে আপনি আপনার তৈরি করা প্রোগ্রামগুলো সেভ করবেন।
সব কাজ শেষে OK করুন।
কোনো নতুন প্রোগ্রাম শুরুর জন্য File->New কমান্ড দিন।

নিচের মত পাবেন।
এখানেই ল্যাংগুয়েজ লিখতে হয়।
এই নীল স্ক্রীনের উপরে ডান কোণায় যে ছোট এরো বা তীরচিহ্ন আছে তাতে ক্লিক করে নীল এই স্পেসটি ছোটবড় করা যায়।
প্রোগ্রামিং শুরু করার আগে ডিরেক্টরী ঠিক করা খুবই গুরুত্বপূর্ণ কারণ ডিরেক্টরী ঠিক না থাকলে প্রোগ্রাম কমান্ড রান করতে পারবে না ফলশ্রুতিতে আপনার তৈরি করা প্রোগ্রাম চালু হবে না।

Blogger templates

.