বর্তমান সময়ের জনপ্রিয় এবং বহুল ব্যবহৃত প্রোগ্রামিং ল্যাঙ্গুয়েজের মধ্যে সি অন্যতম। আধুনিক প্রোগ্রামিং ল্যাঙ্গুয়েজের যাত্রা শুরু হয় সি দিয়ে। বর্তমানে যেসব প্রোগ্রামিং ল্যাঙ্গুয়েজ জনপ্রিয়তার শীর্ষে আছে সেসব গুলোর কোন না কোন অংশ সি থেকে নেওয়া হয়েছে। যেমনঃ সি++, পিএইচপি, জাভা, সি#…
ড্যানিস রিচি (১৯৬৯ – ১৯৭২ সালের মধ্যে)AT&T ল্যাবরেটরীতে সি ডেভেলপ করেন। সি প্রোগ্রামিং ল্যাঙ্গুয়েজ তৈরি করার প্রধান উদ্দেশ্য ছিল ইউনিক্স অপারেটিং সিস্টেম। সি প্রোগ্রামিং এর সম্পর্কে আরো বিস্তারিত জানতে চাইলে এখানে দেখতে পারেন।
ড্যানিস রিচি (১৯৬৯ – ১৯৭২ সালের মধ্যে)AT&T ল্যাবরেটরীতে সি ডেভেলপ করেন। সি প্রোগ্রামিং ল্যাঙ্গুয়েজ তৈরি করার প্রধান উদ্দেশ্য ছিল ইউনিক্স অপারেটিং সিস্টেম। সি প্রোগ্রামিং এর সম্পর্কে আরো বিস্তারিত জানতে চাইলে এখানে দেখতে পারেন।
এই টিউন থেকে আমি নিয়মিত সি প্রোগ্রামিং ল্যাঙ্গুয়েজ সম্পর্কে আপনাদের ধারনা দেওয়ার চেষ্টা করব। আশাকরি সবগুলো টিউন শেষ হলে আপনারা সি প্রোগ্রামিং সম্পর্কে ভাল একটা ধারনা পাবেন এবং সি প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহার করে নিজ থেকে প্রোগ্রাম লিখতে পারবেন।
সি প্রোগ্রামিং শুরু করার আগে আপনাদেরকে কে একটা কম্পাইলার ডাউনলোড করতে হবে। সি প্রোগ্রামিং এর জন্য কয়েকটা ভাল কম্পাইলার আছে, নিচে আমি দুইটা কম্পাইলারের ডাউনলোড লিংক দিলাম, আপনাদের পছন্দ অনুযায়ী যে কোন একটা কম্পাইলার ডাউনলোড করতে পারেনঃ আমি দুইটা কম্পাইলারে কিভাবে সোর্সকোড কম্পাইল করতে হয় বলে দিব।
১। Code::Blocks
২। Orwell Dev C++
সি প্রোগ্রামিং শুরু করার আগে আপনাদেরকে কে একটা কম্পাইলার ডাউনলোড করতে হবে। সি প্রোগ্রামিং এর জন্য কয়েকটা ভাল কম্পাইলার আছে, নিচে আমি দুইটা কম্পাইলারের ডাউনলোড লিংক দিলাম, আপনাদের পছন্দ অনুযায়ী যে কোন একটা কম্পাইলার ডাউনলোড করতে পারেনঃ আমি দুইটা কম্পাইলারে কিভাবে সোর্সকোড কম্পাইল করতে হয় বলে দিব।
১। Code::Blocks
২। Orwell Dev C++
কম্পাইলার কি এবং কেন লাগে?
কম্পাইলার হল একটা সফটওয়্যার যেটা প্রোগ্রামিং ল্যাঙ্গুয়েজের সোর্সকোডকে মেশিন লেভেল কোডে কনভার্ট করে।
প্রোগ্রাম কম্পাইল না করলে কি হয়?
আপনি যখন একটা প্রোগ্রাম লিখবেন তখন মেশিনকে অবশ্যই বুঝতে হবে আপনার কোডটা কি কাজ করবে। মেশিন যদি আপনার কোড না বুঝে তাহলে কোড লিখে লাভটাই কি!!
মেশিন 0 এবং 1 ছাড়া আর কিছু বুঝে না। এখন আপনার কোডটা মেশিনকে বুঝাতে হলে মেশিন যেভাবে বুঝে ঠিক ঐইভাবে আপনার কোড কনভার্ট করতে হবে। আপনার হয়ে সে কাজটা করার জন্য কম্পাইলার ব্যবহার করতে হবে।
কম্পাইলার হল একটা সফটওয়্যার যেটা প্রোগ্রামিং ল্যাঙ্গুয়েজের সোর্সকোডকে মেশিন লেভেল কোডে কনভার্ট করে।
প্রোগ্রাম কম্পাইল না করলে কি হয়?
আপনি যখন একটা প্রোগ্রাম লিখবেন তখন মেশিনকে অবশ্যই বুঝতে হবে আপনার কোডটা কি কাজ করবে। মেশিন যদি আপনার কোড না বুঝে তাহলে কোড লিখে লাভটাই কি!!
মেশিন 0 এবং 1 ছাড়া আর কিছু বুঝে না। এখন আপনার কোডটা মেশিনকে বুঝাতে হলে মেশিন যেভাবে বুঝে ঠিক ঐইভাবে আপনার কোড কনভার্ট করতে হবে। আপনার হয়ে সে কাজটা করার জন্য কম্পাইলার ব্যবহার করতে হবে।
সিনট্যাক্সঃ প্রতিটি প্রোগ্রামিং ল্যাঙ্গুয়েজের একটা নির্দিষ্ট সিনট্যাক্স থাকে। সি প্রোগ্রামিং এর জন্য একেবারে সহজ সিনট্যাক্স হলঃ
1 2 3 4 5 6 | <header files> int main() { //your task goes here return 0; } |
মনে রাখার সুবিধার্তেঃ
একটা সি প্রোগ্রামের সোর্সকোডে এক বা একাধিক হেডার ফাইলস থাকবে। একটা মেইন ফাংশন থাকবে। মেইন ফাংশনের মধ্যে প্রোগ্রামটা কি কাজ করবে সেগুলো কোড হিসেবে লেখা হবে।
হেডার ফাইলস কেন লাগে?
আপনারা যারা আগে কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখেছেন তারা এটা জানেন যে প্রোগ্রামে অনেকগুলো ফাংশন ব্যবহার করতে হয়, যার কিছু প্রোগ্রামিং ল্যাঙ্গুয়েজের নিজস্ব এবং কিছু ব্যবহারকারী নিজেই তৈরি করে। প্রোগ্রামিং ল্যাঙ্গুয়েজের নিজস্ব ফাংশনগুলো ব্যবহার করার জন্য হেডার ফাইলস লাগে। আর ব্যবহারকারী নিজে যেসব ফাংশন তৈরি করে সেগুলোর জন্য লাগে প্রটোটাইপ।
ফাংশন কি? কিভাবে ব্যবহার করা হয়? ব্যবহারকারী কিভাবে ফাংশন তৈরি করে? তা আমরা অন্য কোন টিউনে শিখব।
একটা সি প্রোগ্রামের সোর্সকোডে এক বা একাধিক হেডার ফাইলস থাকবে। একটা মেইন ফাংশন থাকবে। মেইন ফাংশনের মধ্যে প্রোগ্রামটা কি কাজ করবে সেগুলো কোড হিসেবে লেখা হবে।
হেডার ফাইলস কেন লাগে?
আপনারা যারা আগে কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখেছেন তারা এটা জানেন যে প্রোগ্রামে অনেকগুলো ফাংশন ব্যবহার করতে হয়, যার কিছু প্রোগ্রামিং ল্যাঙ্গুয়েজের নিজস্ব এবং কিছু ব্যবহারকারী নিজেই তৈরি করে। প্রোগ্রামিং ল্যাঙ্গুয়েজের নিজস্ব ফাংশনগুলো ব্যবহার করার জন্য হেডার ফাইলস লাগে। আর ব্যবহারকারী নিজে যেসব ফাংশন তৈরি করে সেগুলোর জন্য লাগে প্রটোটাইপ।
ফাংশন কি? কিভাবে ব্যবহার করা হয়? ব্যবহারকারী কিভাবে ফাংশন তৈরি করে? তা আমরা অন্য কোন টিউনে শিখব।
মেইন ফাংশনের কেন লাগে?
মেইন ফাংশনকে আপনি প্রোগ্রামিং ল্যাঙ্গুয়েজের হার্ট বলতে পারবেন। কারন কম্পাইলার যখন কম্পাইল শুরু করে তখন প্রথমে সেটা প্রোগ্রামের মেইন ফাংশন কোথায় আছে তা দেখে এবং মেইন ফাংশন থেকে সোর্সকোড কম্পাইল শুরু করে।
মেইন ফাংশনকে আপনি প্রোগ্রামিং ল্যাঙ্গুয়েজের হার্ট বলতে পারবেন। কারন কম্পাইলার যখন কম্পাইল শুরু করে তখন প্রথমে সেটা প্রোগ্রামের মেইন ফাংশন কোথায় আছে তা দেখে এবং মেইন ফাংশন থেকে সোর্সকোড কম্পাইল শুরু করে।
সি প্রোগ্রামিং এ তোমার আপনার প্রথম প্রোগ্রামঃ
আশাকরি আপনারা কম্পাইলার ডাউনলোড করেছেন। যারা Dev C++ ডাউনলোড করেছেন তারা File > New > Source File এ ক্লিক করুন অথবা শর্টকাট ctrl + N প্রেস করুন। তাহলে আপনার নিচের ছবির মত একটা ট্যাব পাবেন।
আশাকরি আপনারা কম্পাইলার ডাউনলোড করেছেন। যারা Dev C++ ডাউনলোড করেছেন তারা File > New > Source File এ ক্লিক করুন অথবা শর্টকাট ctrl + N প্রেস করুন। তাহলে আপনার নিচের ছবির মত একটা ট্যাব পাবেন।
যারা Code::Blocks ডাউনলোড করেছেন তারা File > New > Empty File এ ক্লিক কর অথবা শর্টকাট ctrl + shift + N প্রেস করুন। তাহলে আপনার নিচের ছবির মত একটা ট্যাব পাবেন।
এরপর নিচের কোডটা লিখুন এবং ফাইলের ফরম্যাট .c দিয়ে সেইভ করুন।
*.c [উদাহরনঃ mycode.c program.c abcdef.c, … …]
কোডঃ
1 2 3 4 5 6 | #include <stdio.h> int main() { printf ( "Hello World!! This is my first C Program\n" ); return 0; } |
উপরের কোডটা লেখা হলে তোমার কোড এবার কম্পাইল করতে হবেঃ
যারা Dev C++ ব্যবহার করছেন তারা কম্পাইল করার জন্য Execute > Compile & Run এ ক্লিক করুন অথবা শর্টকাট F11 প্রেস করুন।
যারা Code::Blocks ব্যবহার করছেন তারা কম্পাইল করার জন্য Build > Build & Run এ ক্লিক করুন অথবা শর্টকাট F9 প্রেস করুন।
এরপর আপনার নিচের ছবির মত আউটপুট স্ক্রীন এবং আউটপুট দেখতে পাবেন।
উপরের কোডটা বুঝতে পারলে এবার আপনি নিজের নাম প্রিন্ট করার জন্য একটা কোড লেখার চেষ্টা করুন।
আশাকরি আপনারা এই টিউনটি বুঝতে পেরেছেন।
যারা Dev C++ ব্যবহার করছেন তারা কম্পাইল করার জন্য Execute > Compile & Run এ ক্লিক করুন অথবা শর্টকাট F11 প্রেস করুন।
যারা Code::Blocks ব্যবহার করছেন তারা কম্পাইল করার জন্য Build > Build & Run এ ক্লিক করুন অথবা শর্টকাট F9 প্রেস করুন।
এরপর আপনার নিচের ছবির মত আউটপুট স্ক্রীন এবং আউটপুট দেখতে পাবেন।
উপরের কোডটা বুঝতে পারলে এবার আপনি নিজের নাম প্রিন্ট করার জন্য একটা কোড লেখার চেষ্টা করুন।
আশাকরি আপনারা এই টিউনটি বুঝতে পেরেছেন।