বেসিক সি প্রোগ্রামিং(Basic C Programming)-smsakib5
আসসালামু আলাইকুম।।কেমন আছেন সবাই।আশা করি ভালো আছেন।এটা আমার এই ব্লগের প্রথম টিউটোরিয়াল ।। তাই ভুল ত্রুটি থাকতে পারে।। দয়া করে ভুলগুলো ক্ষমার দৃষ্টিতে দেখবেন।।এই টিউটোরিয়ালে আমরা আলোচনা করব কিভাবে প্রোগ্রামিং করতে হয়, কিভাবে নিজে একটা প্রোগ্রাম লিখব পাশা পাশি একটা সফটওয়ার বা প্রোগ্রাম লিখতে কি কি লাগবে, এসব সম্পর্কে জানা যাবে। আমরা যত গুলো অটোমেটিক মেশিন দেখি, সব গুলোই এক বা একের অধিক প্রোগ্রাম দিয়ে চলে। আর প্রোগ্রামটা লেখা হয় প্রোগ্রামিং ল্যাঙ্গুয়েজ দিয়ে। প্রোগ্রামিং জানলে যে শুধু কম্পিউটারের জন্যই সফটওয়ার তৈরি করা যাবে এমন না, সব কিছুর জন্যই প্রোগ্রাম বানানো যাবে। ছোট্ট একটা ক্যালকুলেটর হতে শুরু করে রোবোট বা এয়ারক্রাফট পর্যন্ত সব কিছুর প্রোগ্রাম।
অনেক গুলো Programming Language রয়েছে শেখার জন্য। এ গুলোর মধ্যে জনপ্রিয় একটা হচ্ছে এই C Programming। ডেনিস রিচি (জন্ম সেপ্টেম্বর ৯, ১৯৪১ - মৃত্যু অক্টোবর ৮, ২০১১) এর ডেভেলপ করা এই সি ল্যাঙ্গুয়েজ থেকে নতুন অনেক গুলো ল্যাঙ্গুয়েজই তৈরি হয়েছে পরবর্তিতে। এ জন্য এই একটি ল্যাঙ্গুয়েজ ভালো করে শিখলে পরবর্তিতে অনেক গুলো ল্যাঙ্গুয়েজে সহজেই কোড লেখা যায়।
কম্পিউটারকে ইন্সট্রাকশন দেওয়ার প্রক্রিয়া হচ্ছে প্রোগ্রামিং। ইন্সট্রাকশন গুলো কিছু নির্দিষ্ট নিয়ম মেনে লিখতে হয়। যে নিয়ম গুলো মেনে প্রোগ্রাম লিখতে হয়, তা হচ্ছে প্রোগ্রামিং ল্যাঙ্গুয়েজ। সি শিখতে শিখতে আমাদের অনেক কিছুই শেখা হয়ে যাবে। একসময় আমরা সফটওয়ার, ওয়েব সাইট বা মোবাইল অ্যাপ, হোম অটোমেশন ইত্যাদির জন্য সফটওয়ার তৈরি করতে পারব। আর তা পারব আজ যদি আমরা শেখা শুরু করি। শেখা খুবি সহজ। যা যা লাগবে, তা হচ্ছে একটা কম্পিউটার, ইন্টারনেট আর কিছু না। বাকি গুলো ইন্টারনেট থেকেই শিখে নেওয়া যাবে। প্রোগ্রাম লেখার জন্য দরকার হচ্ছে একটা টেক্সট এডিটর বা আইডিই।
একটা প্রোগ্রামিং ল্যাঙ্গুয়েজের কয়েকটি গুরুত্ত্বপূর্ণ টপিক্স হচ্ছে অপারেটর, স্ট্রিং এবং কারেকটার, কন্ট্রোল ফ্লো, লুপিং, ফাংশান, অ্যারে ইত্যাদি। এ অল্প কয়েকটি টপিক্স সব গুলো ল্যাঙ্গুয়েজ এর ভিত্তি। একটা ল্যাঙ্গুয়েজ এর গুলো ভালো করে জানা থাকলে বাকি ল্যাঙ্গুয়েজ গুলোর জন্যও জানা সহজ হয়ে যায়। এখানে দরকারী সব গুলো টপিক্সই সহজে লেখার চেষ্টা করেছি।
কেন প্রোগ্রামিং?
আচ্ছা, কেমন হত যদি না কম্পিউটার থাকত? যদি না ইন্টারনেট থাকত? যদি না ফেসবুক থাকত? আর যদি গুগল না থাকত তাহলে কি হতো? কিভাবে আমরা আমাদের এসাইনমেন্ট গুলো খুজে বের করতাম?গেমস, কম্পিউটার সফটওয়ার, মোবাইল এপলিকেশন, ওয়েব পেইজ যাই হোক না কেন সব জাগায় প্রোগ্রামিং। এটা তো কম্পিউটার বা কম্পিউটার রিলেটেড। অন্য কিছুর দিকে যদি তাকিয়ে দেখি, গাড়ি, এরোপ্লেন, মহাকাশ যান, মেডিকেল ডায়াগনসিস মেশিন, মাইক্রোওয়েব ওভেন, লিফট, গড়ি, ক্যালকুলেটর সহ সকল ইলেক্ট্রনিক্স যন্ত্রতেই প্রোগ্রামিং এর ব্যবহার রয়েছে।
মানুষ নিজেদের ভাষা ব্যবহার করে একজন আরেক জনের সাথে যোগাযোগ করার জন্য। মেশিনের সাথে মানুষের যোগাযোগ করার জন্য ও একটা ভাষা দরকার, সে ভাষা হচ্ছে প্রোগ্রামিং। মেশিনের সাথে যোগাযোগ, এক্সাইটিং না? প্রোগ্রামিং জানাটা এক্সাটিং থেকেও আরো বেশি কিছু।
বুঝাই যাচ্ছে প্রোগ্রামিং কত গুরুত্ব পূর্ন। এক এক জাগায় এক এক ধরনের কাজ কর্ম করতে হয়। কাজ করার পদ্ধতি ভিন্ন, তাই প্রোগ্রাম গুলো ও ভিন্ন। আবার এই ভিন্ন ভিন্ন প্রোগ্রাম তৈরি করার জন্য রয়েছে অনেক গুলো প্রোগ্রামিং ল্যাঙ্গুয়েজ।
প্রোগ্রামিং কতটা পাওয়ারফুল তা আমাদের কল্পনার ও বাহিরে। যে প্রোগ্রামিং জানবে, সে নতুন একটা পৃথিবী তৈরি করে ফেলতে পারবে। তৈরি করা যাবে নতুন একটা ভার্চুয়াল মহাবিশ্ব।
প্রোগ্রামিং করে নিজের একটা ভার্চুয়াল অনুলিপি তৈরি করে ফেলা যাবে। Trancedence মুভি টা দেখেছেন? না দেখে থাকলে বলব দেখে নিতে একটি বার। ঐ মুভিটার মত নিজের একটা অনুলিপি তৈরি করা সম্ভব। ভার্চুয়াল ভাবেই নিজের জ্ঞান অর্জন বাড়িয়ে নেওয়া সম্ভব। নতুন অর্জিত জ্ঞান কাজে লাগিয়ে অসাধারণ কিছু করে ফেলা সম্ভব। অসম্ভব কিছু না এই প্রোগ্রামিং এর দুনিয়াতে…
কি করা সম্ভব তার একটা দিকই বললাম। আরো হাজারটি দিক রয়েছে। কি কি ইতিমধ্যে সম্ভব হয়েছে, তা তো আমরা দেখতেই পাচ্ছি। তারপর ও আমি কিছু বলার চেষ্টা করি।
এই ফেসবুকে বসে পড়ি, এটা প্রোগ্রামিং দিয়েই তৈরি। এক একটা স্ট্যাটাস, ছবি ইত্যাদি আমাদের দেখানোর পেছনে অনেক গুলো কোড কাজ করছে। আমরা কোন ছবির উপর কতক্ষণ মাউস / আঙ্গুল রেখেছি, তা ট্র্যাক করা হচ্ছে। আর তা ট্র্যাক করে আমাদের সম্পর্কে জেনে নিচ্ছে ফেসবুক। আর আমাদের সম্পর্কে জেনে নিয়ে আমাদের কিসে কিসে আগ্রহ, সে সব রিলেটেড এড দেখাছে ডান কোনায়। মোবাইলের নিউজ ফিডে। …
এক একটা মহামারি ভাইরাস আসলে আমাদের সবার ঘুম হারাম করে দেয়। কখন যে আমি আক্রান্ত হই। বিজ্ঞানীরা তখন ব্যস্ত থাকে ঐ ভাইরাস সম্পর্কে জানতে। ঐ ভাইরাসের জিন সিকোয়েন্স বের করে। তৈরি করে প্রতিষেধক। টিকা… এই প্রসেস গুলো আগে অনেক কঠিন ছিল, সময় অনেক বেশি লাগতো। কয়েক যুগ ও লেগে যেতো। কম্পিউটার আর প্রোগ্রামিং এর কল্যাণে অনেক সহজেই অনেক কম সময়ের মধ্যে একটা ভাইরাস সম্পর্কে জেনে নেওয়া যায়, তৈরি করা যায় প্রতিষেধক। আগের তুলনায় মহামারী ভাইরাসে তাই আস্তে আস্তে মৃত্যু হার কমে এসেছে…
প্রোগ্রামিং মানুষের চিন্তা শক্তি বাড়িয়ে দেয়। চিন্তা করা মানে হচ্ছে নতুন কিছু করা। আমাদের পাওয়ারফুল যে একটা মস্তিষ্ক রয়েছে তার সঠিক ব্যবহার করা। যারা প্রোগ্রামিং জানে, আর যারা প্রোগ্রামিং জানে না তাদের চিন্তা করার পদ্ধতি ভিন্ন। প্রোগ্রামিং আমরা কিভাবে চিন্তা করি, তাই পরিবর্তন করে দেয়।
সবাই নিজের ক্যারিয়ার নিয়ে একটু আধটু টেনশনে থাকে। প্রোগ্রামিং জানলে ক্যারিয়ার সম্পর্কে আর চিন্তা করতে হয় না। এমনকি সাধারণ অন্যান্য চাকরি করার জন্য দরকার সার্টিফিকেট। আর প্রোগ্রামিং জানাটাই হচ্ছে একটি সার্টিফিকেট। লাইভ সার্টিফিকেট। হাজার হাজার জব পড়ে আছে যে প্রোগ্রামিং জানে, তার জন্য।
এক সময় সারাদিন বসে বসে গেমস খেলতাম। তখন খুব আপসুস করে চিন্তা করতাম, কেন সবাই গেমস খেলে না, এমন সারাদিন অন্য কাজ করে। গেমস খেলায় এত মজা। চিন্তা করলাম, মানুষ মারা যাওয়ার পর কি গেম খেলার সুযোগ পায়? আমি কি গেমস খেলার সুযোগ পাবো?
এর কিছুদিন পর মাথায় উকি দিল, কিভাবে গেমস গুলো তৈরি হয়। তারপর শুনতে পেলাম প্রোগ্রামিং এর কথা। প্রোগ্রামিং করেই গেমস গুলো তৈরি হয়। এক্সাইটেড হয়ে গেলাম। প্রোগ্রামিং শিখতে হবে। আমাকে গেমস তৈরি করা জানতে হবে। এখন তোমার ও যদি একই ধরনের ইচ্ছে থাকে, গেমস তৈরি করা। তাহলে শুরু করে দিতে পারো। বা তোমার রোবট নিয়ে কাজ করার ইচ্ছে আছে? মাইক্রোসফট উইন্ডজের মত অপারেটিং সিস্টেম তৈরি করার ইচ্ছে আছে? ইচ্ছে আছে কি ফেসবুক বা গুগল থেকে বড় সড় ওয়েব সাইট তৈরি করার? তাহলে শুরুটা কিন্তু প্রোগ্রামিং দিয়েই শুরু করতে হবে।
প্রথম সি প্রোগ্রাম
প্রোগ্রামিং করার জন্য দরকার একটা কম্পিউটার আর একটা কম্পাইলার। প্রথম প্রোগ্রাম লেখার আগে আমরা কয়েকটি বিষয় সম্পর্কে জেনে নেই। যেমন কম্পাইলার, টেক্সট এডিটর ইত্যাদি।কম্পাইলার
সি হচ্ছে জেনারেল পারপাস, স্ট্রাকচারড প্রোগ্রামিং ল্যাঙ্গুয়েজ। কম্পিউটার বা যে কোন মেশিন শুধু 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 IDE টি এখান থেকে সরাসরি ডাউনলোড করে নিতে পারেন... আর CodeBlocks এর অফিসিয়াল ওয়েবসাইট থেকে 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 বা C4droid অ্যাপ ইন্সটল করে এই অ্যাপে সি প্রোগ্রাম লিখতে পারবেন। এটি দিয়ে প্রোগ্রাম রান করে আউটপুট দেখতে পারবেন। এই অ্যাপে অনেক গুলো প্রোগ্রামের উদাহরণ ও রয়েছে। সে গুলো দেখে দেখেও আপনি অনেক কিছু শিখতে পারবেন। C4droid অ্যাপটি আপনারা এখানে ক্লিক করে ডাউনলোড করতে পারবেন।। আর Cppdroid অ্যাপটি আপনারা এখানে ক্লিক করে ডাউনলোড করতে পারবেন।। আমরা এখন স্ক্রিনে Hello world প্রিন্ট করব। তার আগে সি ল্যাঙ্গুয়েজের একটি প্রোগ্রাম গঠন সম্পর্কে জেনে নেই।
সি প্রোগ্রামে সাধারণত নিচের পার্টগুলো থাকেঃ-
1. Preprocessor Commands
2. Function
3. Variable
4. Statement and Expression
5. Comments
এইগুলো সম্পর্কে পরে বিস্তারিত আলোচনা করা হবে। এখন কোডব্লকস ওপেন করে নিচের প্রোগ্রামটি লিখ।
Output: Hello World!
উপরের প্রোগ্রামটি কোডব্লকস এ লিখে Build মেনুতে গিয়ে Build and run এ ক্লিক কর অথবা f9 প্রেস কর। যদি প্রোগ্রামটি সঠিকভাবে লিখে থাক তাহলে কম্পাইলার স্ক্রিনে Hello World! প্রিন্ট করে দেখাবে।
এখন আমরা উপরের প্রোগ্রামটির বিভিন্ন পার্টগুলো নিয়ে আলোচনা করিঃ
১। প্রোগ্রামের প্রথম লাইন, #include
stdio.h হেডার ফাইল ছাড়াও আরো অনেক হেডার ফাইল আছে। আপনারা চাইলে এখানে থেকে সি প্রোগ্রামের সকল হেডার ফাইল দেখতে পারেন।।
২। তারপরের লাইন int main() হচ্ছে মেইন ফাংশন। এখান থেকেই প্রোগ্রাম এক্সিকিউট শুরু হয়। মেইন ফাংশন দ্বিতীয় বন্ধনী দিয়ে শুরু হয় এবং দ্বিতীয় বন্ধনীর মাধ্যমেই শেষ হয়। একটি প্রোগ্রামে মেইন ফাংশন শুধু একটাই থাকে।
৩। তারপরের লাইন হচ্ছে কমেন্ট। সি প্রোগ্রামের কমেন্ট ‘/*’ দিয়ে শুরু এবং ‘*/’ দিয়ে শেষ করতে হয়। কমেন্ট এর মাধ্যমে প্রোগ্রাম সম্পর্কে কিছু লেখা হয়। কম্পাইলার এই লাইনকে ignore করবে।
৪। তারপর printf() হচ্ছে এমন একটি ফাংশন যার কাজ হচ্ছে স্ক্রিনে প্রিন্ট করা। ডাবল কোটেশানের ভিতরে যাই থাকবে কম্পাইলার তা প্রিন্ট করবে। এই ফাংশনটি stdio.h হেডার ফাইলে যুক্ত করা আছে। এছাড়াও আরো অনেক ইনপুট আউটপুট ফাংশন stdio.h হেডার ফাইলে আছে।
৫। শেষ লাইনে return 0; হচ্ছে, প্রোগ্রামের মেইন ফাংশন সঠিকভাবে কম্পাইল হলে 0 রিটার্ন করবে।
এখন নিচের প্রোগ্রামটি কোডব্লকস এ লিখে build এবং run কর।
Output: Bangladesh is a beautiful country
Comments
Post a Comment
আপনার গুরুত্বপূর্ণ মতামত দিয়ে আমাদের সাহায্য করুন।