প্রোগ্রামিং করার জন্য দরকার একটা কম্পিউটার আর একটা কম্পাইলার। প্রথম প্রোগ্রাম লেখার আগে আমরা কয়েকটি বিষয় সম্পর্কে জেনে নেই। যেমন কম্পাইলার, টেক্সট এডিটর ইত্যাদি।
কম্পাইলার
সি হচ্ছে জেনারেল পারপাস, স্ট্রাকচারড প্রোগ্রামিং ল্যাঙ্গুয়েজ। কম্পিউটার বা যে কোন মেশিন শুধু 0 বা 1 বুঝতে পারে। যাকে আমরা বলি বাইনারি নাম্বার সিস্টেম। আমাদের যদি বাইনারিতে প্রোগ্রাম লিখতে বলে, আমরা সহজে লিখতে পারব না। আমরা প্রোগ্রাম লিখব আমারা নিজেরা বুঝতে পারি, এমন ভাবে। সি প্রোগ্রামিং এ আমরা বুঝতে পারি, এমন কোড লিখি, যেমন printf, if, else, for, 1+2 ইত্যাদি ব্যবহার করে। এগুলো মেশিন ল্যাঙ্গুয়েজে পরিনত করার জন্য আমাদের একটা প্রোগ্রাম লাগে, যাকে আমরা বলি কম্পাইলার। কম্পাইলার আমাদের লেখা কোড গুলোকে মেশিন কোডে পরিনত করে দেয়। এরপর মেশিন সহজেই ঐ কোড গুলো এক্সিকিউট করতে পারে।
সি প্রোগ্রামিং এর একটা সুবিধে হচ্ছে এর কোড গুলোকে সরাসরি মেশিন কোডে কম্পাইল করা যায়। আর তাই এটি দিয়ে খুব সহজেই মেশিনের জন্য কোড লেখা, অপারেটিং সিস্টেম তৈরি করা যায়।
টেক্সট এডিটর
কোড গুলো আমরা সাধারণত লিখি একটা টেক্সট এডিটরে। আপনারা অনেকেই হয়তো মাইক্রোসফট ওয়ার্ড বা এমন ওয়ার্ড প্রসেসর ব্যবহার করে থাকবেন। ওয়ার্ড প্রসেসর আর টেক্সট এডিটরের পার্থক্য হচ্ছে টেক্সট এডিটরে আমরা যাই লিখি, তার সোর্স কোড তাই থাকবে। ওয়ার্ড প্রসেসরে আমরা যা লিখি, তা সে নিজের মত করে এনকোড করে রাখে। আপনার কম্পিউটারে ডিফল্ট টেক্সট এডিটর রয়েছে। যেমন উইন্ডোজে textpad.
আমরা আমাদের কোড যে কোন টেক্সট ইডিটরে লিখতে পারি। সি প্রোগ্রামিং এর এক্সটেনশন হচ্ছে .c। এরপর আমাদের কোড টি .c ফাইল হিসেবে যেমন hello.c নামে সেভ করে কম্পাইলারের মাধ্যমে রান করতে পারি।
IDE or Intergraded Development Environment
IDE হচ্ছে মাইক্রোসফট ওয়ার্ড প্রসেসরের মত একটি সফটওয়ার। এটির মধ্যে এক সাথে অনেক গুলো কাজ করা যায়। যেমন কোড লেখা যায়। এটির সাথে কম্পাইলার ইন্টিগ্রেটেড থাকে। কোড লিখে সরাসরি IDE থেকে রান করা যায়। আবার আমরা যদি কোন ভুল কোড লিখি IDE ভুল গুলো ধরতে পারে এবং কম্পাইল করার আগেই আমাদের জানাতে পারে। একটি প্রোগ্রাম লেখার পর যদি কোন ভুল হয়, কেন ভুল হয়েছে তাও IDE বলে দিতে পারে।
টেক্সট এডিটরে কোড লিখে এরপর আবার কম্পাইলারে প্রোগ্রাম রান করা নতুন যারার প্রোগ্রাম শিখবে, তাদের কাছে কঠিন মনে হতে পারে। তাই আমরা আমাদের প্রোগ্রাম লেখার সময় একটা IDE ব্যবহার করব।
প্রতিটা প্রোগ্রামিং ল্যাঙ্গুয়েজের জন্য আলাদা আলাদা IDE রয়েছে। আবার একটা IDE তে একাধিক প্রোগ্রামিং ল্যাঙ্গুয়েজে কোড লেখা যায়। সি প্রোগ্রাম লেখার জন্য একটা দারুণ IDE হচ্ছে CodeBlocks. আমরা সি কোড লেখা ও কম্পাইল করার জন্য CodeBlocks IDE ব্যবহার করব। CodeBlocks ডাউনলোড করতে চাইলে http://www.codeblocks.org/downloads ওয়েব সাইটে গিয়ে ডাউনলোড করে নেওয়া যাবে।
কোডব্লকস ওয়েব সাইটের ডাউনলোড সেকশনে গিয়ে Download the binary release সেকশনে যেতে হবে। আপনি যে অপারেটিং সিস্টেম ব্যবহার করেন, সে অনুযায়ী ডাউনলোড করতে হবে। ঐখানে প্রতিটা অপারেটিং সিস্টেমের জন্য আলাদা ডাউনলোড সেকশন রয়েছে।
ডাউনলোড করার সময় খেয়াল রাখতে হবে যেন আপনি mingw সহ ডাউনলোড করেন। mingw হচ্ছে কম্পাইলার। কমপ্লাইলার সহ CodeBlocks ডাউনলোড না করলে প্রোগ্রাম রান হবে না। codeblocks-xx.0xmingw-setup.exe এরকম ফাইলটা ডাউনলোড করতে হবে। এখানে xx হচ্ছে যে কোন সংখ্যা। codeblocks নিয়মিত নতুন নতুন ভার্সন রিলিজ দেয়, তাই এই সংখ্যা পরিবর্তন হবে।
ডাউনলোড করার পর ইন্সটল করে নিতে হবে। যে কোন সাধারণ সফটওয়ার যেভাবে ইন্সটল দেওয়া হয়, সেভাবেই ইন্সটল করে নেওয়া যাবে।
CodeBlocks ছাড়াও আরো অনেক IDE রয়েছে সি প্রোগ্রাম লেখার জন্য যেমন Visual Studio, Xcode [ম্যাকের জন্য], Eclipse with CDT ইত্যাদি।
অ্যান্ড্রয়েড ফোন বা ট্যাবে সি প্রোগ্রাম লেখা
আপনার যদি একটা অ্যান্ড্রয়েড ডিভাইস থাকে, সেখানেও আপনি সি প্রোগ্রাম লিখে রান করে দেখতে পারবেন। গুগলের প্লে স্টোরে গিয়ে CppDroid – C/C++ IDE অ্যাপটা ইন্সটল করে এই অ্যাপে সি প্রোগ্রাম লিখতে পারবেন। লিখে রান করে আউটপুট দেখতে পারবেন। এই অ্যাপে অনেক গুলো প্রোগ্রামের উদাহরণ ও রয়েছে। সে গুলো দেখে দেখেও আপনি অনেক কিছু শিখতে পারবেন।
প্রথম সি প্রোগ্রাম
আমরা সি কোড লেখা ও কম্পাইল করার জন্য CodeBlocks IDE ব্যবহার করব । CodeBlocks ডাউনলোড করতে চাইলে নিচের লিঙ্ক এ গিয়ে codeblocks-12.11mingw-setup_user.exe টি ডাউনলোড করে নিন।
http://www.codeblocks.org/downloads/binaries
তারপর ইন্সটল করুন। ইন্সটল হলে আপনি কোড লেখার জন্য প্রস্তুত। ওপেন করুন। তাহলে নিচের মত দেখতে পারেবন।
এখান থেকে Create New Project এ ক্লিক করুন। অথবা মেনুবার থেকে File > New > Project এ ও নতুন প্রজেক্ট তৈরি করা যাবে। নতুন প্রজেক্ট তৈরি করতে গেলে অনেক গুলো অপশন দেখতে পাবেন নিচের মত করেঃ
এখান থেকে Console Application সিলেক্ট করে Go তে ক্লি করুন।
এবার C সিলেক্ট করে Next এ ক্লিক করুন। Project Title বক্স এ আপনার প্রজেক্ট এর নাম দিন। যেমন hello. Folder to create project in বক্স থেকে আপনার প্রজেক্টটি কোন ফোল্ডারে সেভ করতে চান তা সিলেক্ট করুন। Next এ ক্লি করুন। এবার Finish এ ক্লি করুন।
এবার ডান পাশে আপনার workspace দেখতে পাবেন। ঐখানে আপনার প্রোজেক্ট গুলো দেখাবে। hello এর + চিহ্নতে ক্লিক করুন। তারপর Source এর + চিহ্নতে ক্লিক করুন এবং main.c এর উপর ক্লিক করুন। CodeBlocks একটা সিম্পল একটা কোড টেম্পলেট তৈরি করে প্রতি প্রজেক্টের জন্য, তা দেখাবে। যার মধ্যে লেখা থাকবেঃ
#include<stdio.h>; int main() { printf("Hello world!"); return 0; }
আমাদের কোডটি কম্পাইল এবং রান করতে হবে তার জন্য ফাইল মেনু থেকে Build এ ক্লিক করুন এবং Build and Run এ ক্লিক করুন। তাহলে আপনার সি প্রোগ্রামটি কম্পাইল হবে এবং রান হবে। এবং নিচের মত আউটপুট দিবেঃ
যে উইন্ডোটাতে রেজাল্ট দেখাচ্ছে, তাকে বলা হয় কনসোল। আমরা যখন প্রজেক্ট সিলেক্ট করেছি, তখন আমরা সিলেক্ট করেছি Console Application. তাই আমাদের আউটপুটটা কনসোলে দেখিয়েছে। এই বইতে আমরা যত গুলো প্রোগ্রাম তৈরি করব, সব গুলোই হবে কনসোল অ্যাপ্লিকেশন।
উপরের প্রোগ্রামটি সম্পর্কে আলোচনা করা যায়। print মানে হচ্ছে কোন কিছু কনসোলে প্রিন্ট করা বা দেখানো। printf মানে হচ্ছে প্রিন্ট করার ফাংশন। এখন প্রশ্ন জাগতে পার ফাংশন আবার কি জিনিস? ফাংশন নামে একটা সম্পুর্ণ চ্যাপ্টার রয়েছে। আমরা ঐখানে বিস্তারিত জানব। এখন শুধু printf সম্পর্কে জানি। printf এর ভেতর কোন কিছু লিখলে তাই সে কনসোলে দেখায়। আমরা printf এর ভেতর লিখেছি Hello World! আর তাই আমরা কনসোলে দেখতে পেয়েছি।
এখন printf এর ভেতর আপনি অন্য কিছু লিখে দেখুন। এরপর প্রোগ্রামটি রান করে দেখুন। দেখবেন আপনি যাই লেখুন না কেনো, প্রোগ্রামটি তা দেখাচ্ছে। দারুণ। আপনি আপনার প্রথম প্রোগ্রাম সুন্দর ভাবে লিখতে পেরেছেন। এটা থেকেই শুরু। নতুন ভাবে পথ চলা।
আজ থেকে আপনি স্পেশাল। কারণ আপনি প্রোগ্রামিং করতে জানেন। সামনে অনেক পথ পাড়ি দিতে হবে। অনেক কিছু শিখতে হবে। শিখতে শিখতে একদিন আপনি একদিন অনেক বড় সফটওয়ার তৈরি করতে পারবেন। পারবেন একটা গেম তৈরি করতে। পারবেন একটা রোবটের প্রোগ্রাম লিখতে। আর যারা অপারেটিং সিস্টেম তৈরি করেছে, যারা রোবটের জন্য সফটওয়ার তৈরি করেছে, যারা যারা গুগল, ফেসবুকের প্রোগ্রাম তৈরি করেছে সবাই এমন Hello World! দিয়ে শুরু করেছে।
Hello World প্রোগ্রামটির ব্যাখ্যাঃ
উপরের কোডে আমরা কি লিখছি তা এবার একটু ব্যাখ্যা করা যাক। আপনার কাছে কঠিন মনে হলে সহজেই দ্বিতীয় অধ্যায় শুরু করতে পারেন। এগুলো আস্তে আস্তে বুঝতে পারবেন।
আমাদের প্রোগ্রামের প্রথম লাইন হচ্ছে #include<stdio.h> । include মানে হচ্ছে কোন কিছু যুক্ত করা। stdio এর পূর্ণরূপ হচ্ছে standard input output. stdio.h এর .h দিয়ে বুঝানো হয় এটা একটা header ফাইল। আর পুরো লাইন দিয়ে বুঝানো হয় যে standard input output কে যুক্ত করা।
এর পরের লাইন হচ্ছে int main(), এটিকে বলা হয় মেইন ফাংশন। আমরা যখন প্রোগ্রামটি রান করাবো তখন এ মেইন ফাংশন থেকে কাজ করা শুরু করবে। তাই সব প্রোগ্রামে একটি (এবং কেবল একটি) মেইন ফাংশন থাকতে হয়। মেইন ফাংশনের শুরুতে দ্বিতীয় বন্ধনী দিয়ে শুরু করতে হয়। মেইন ফাংশন শেষও করতে হয় একটি দ্বিতীয় বন্ধনী দিয়ে।
মেইন ফাংশন এর দ্বিতীয় বন্ধনী এর ভেতর প্রথম লাইন লিখছি আমরা printf(“Hello world!”);
এখানে printf() হচ্ছে একটি ফাংশন। printf এর মানে হচ্ছে print formatted। এটি একটি লাইব্রেরী ফাংশন যাকে স্ট্যান্ডার্ড আউপুট ফাংশন বলে। printf() এর কাজ হচ্ছে কনসোলে/স্ক্রিনে কিছু প্রিন্ট করা। ডবল কোটেশন চিহ্নের ভেতরে আমরা যা লিখব তা-ই কন্সোলে সে প্রিন্ট করবে। আমরা প্রথমেই যে একটি লাইন লিখছি #include<stdio.h> । printf() ফাংশনটি কিভাবে কোন কিছু প্রিন্ট করে তা লেখা রয়েছে এই stdio.h ফাইলে।
এর পর আমরা আরেকটি লাইন লিখছি return 0; আমরা বলছি যে main হচ্ছে একটা ফাংশন। প্রত্যক ফাংশন এর একটা return মান থাকতে হয়। যা ফাংশন এর কাজ শেষে কিছু একটা রিটার্ন করে। return 0 মানে শূন্য রিটার্ন করা। এ সম্পর্কে পরে আরো বিস্তারিত জানা যাবে যখন আমরা ফাংশন নিয়ে পড়ব।
printf(“Hello world!”); বা return 0; এ গুলোকে বলে স্ট্যাটমেন্ট (Statement)। সি প্রোগ্রামিং এ প্রতিটি স্ট্যাটমেন্ট শেষে একটি করে সেমিকোলন (;) দিতে হয়। আমরা যদি সেমিকোলন না দিয়ে থাকি তাহলে কম্পাইলারে ভুল দেখাবে এবং প্রোগ্রামটি রান হবে না। প্রোগ্রামিং এর শুরুর দিকে অনেকেই সেমিকোলন দিতে ভুলে যায়,তখন কম্পাইল এরর (compile error) দেখায়, পরে কোথায় ভুল হয়েছে খুজে বের করার চেষ্টা করে। একটু খেয়াল করে কোড লিখলে এসব ছোটখাটো ভুল গুলো সহজেই এড়ানো যায়।
আপনি যদি উপরের প্রোগ্রামটি রান করার সময় কোডব্লকস যে কোডটি তৈরি করে দিয়েছে, তাই রান করে থাকেন, তাহলে প্রথমে সব গুলো কোড মুছে ফেলুন। এরপর আবার শুরু থেকে নিজে নিজে টাইপ করুন এবং রান করে দেখুন। Hello World! এর পরিবর্তে অন্য যে কোন লেখা লিখুন। নিজ ইচ্ছে মত।
সমস্যা এবং সমাধানঃ
কোড ব্লক একটা IDE. এটার সাথে আমাদের কম্পাইলার লাগে। যেটা আমাদের সি প্রোগ্রাম গুলোকে কম্পাইল করবে। যদি কম্পাইলার ইন্সটল না থাকে, তাহলে নিচের মত ইরর দেখাবে।
Environment Error Can’t fild compiler executable in your configurd search path for “GNU GCC” compiler
এ জন্য আমাদের Codeblocks with Mingw সহ ডাউনলোড করে ইন্সটল করতে হবে। ডাউনলোড পেইজে গিয়ে codeblocks-x.x.x mingw-setup.exe টা ডাউনলোড করে ইন্সটল করে নিলেই এ সমস্যার সমাধান হবে।
c programming is a structured programming language.
অসাধারন হইছে ভাই। পড়ার পর অনেক কিছু জানতে পারলাম ।
ভাইয়া,
কোডব্লক্স ছাড়া আমি অন্য নোটপেডে লিখছি। এখন অন্য কোন সফটওয়্যার কি নেই কম্পাইল করার জন্য?
vaiya,,,,,eita kono sadharon notepad a likhle hobe na,,,,,,,,apnar use korte hobe codeblock,,,,,othoba arduino IDE ittadi
Sir,
Assalamu alaykum. apnar moto bekti amader desher manusher jonno Allah tayalar bishesh upohar….! Apner obodan akhonkar manush bujhte na parleo akta somoy asbe jokhon apnar a sokol obodan niye manush gobesona korbe. And manush apnar obodan guloke somman janate baddho hobe…!! Amra gorbito…! Dowa korben amar jonno ami jeno apnar poth dhore onek dur agote pari.
Apnar ফ্যান,
Atik hassan.