সি প্রোগ্রামিং: প্রোগ্রামারদের কাছে প্রথম যেই প্রোগ্রামিং ল্যাঙ্গুয়েজ টি ভেসে আসে তা হচ্ছে, সি প্রোগ্রামিং বা সি ভাষা। আমরা যেমন ছোটবেলায় ক খ, ABCD, 1234 পড়েছি এবং তার মাধ্যমে এখন বড় বড় সংখ্যা বা বাক্য লিখতে পারি, তেমনি সি প্রোগ্রামিং হচ্ছে প্রোগ্রামিংয়ের হাতে খড়ি। সি প্রোগ্রামিং সম্পর্কে জানার আগে আমাদের জানতে হবে প্রোগ্রামিং কি। তাহলে চলুন জেনে আসা যাক, প্রোগ্রামিং কি?
প্রোগ্রামিং কি?
প্রোগ্রামিং এর মাধ্যমে বিভিন্ন সমস্যার সমাধান করা যায়। সমস্যা সমাধানের জন্য একজন প্রোগ্রামার কম্পিউটারের ভাষায় প্রোগ্রামিং তৈরি করে থাকেন ।অর্থাৎ প্রোগ্রামিং হচ্ছে কম্পিউটার কে বোঝানোর জন্য কম্পিউটারের নিজস্ব ভাষা। অর্থাৎ কম্পিউটারকে তার নিজের ভাষায় বুঝিয়ে দেওয়াই প্রোগ্রামিং এর কাজ।
প্রোগ্রামিং ভাষা কি?
আমরা অনেক রকমের ভাষা শুনে আসছি। যেমন বাংলা, ইংলিশ, আরবি, উর্দু, জাপানিজ ইত্যাদি। প্রোগ্রামিং ভাষা এটি আবার কোন দেশের ভাষা। মূলত এটি প্রোগ্রামারদের ভাষা। আপনি যেমন আমার সাথে কথা বলতে পারবেন। তেমনি কম্পিউটারের সাথে আপনি কথা বলতে পারবেন, প্রোগ্রামিং ভাষা এর মাধ্যমে। আমরা বুঝতে পারলাম কম্পিউটার কে বোঝানোর জন্য যে ভাষা তাই হচ্ছে প্রোগ্রামিং ভাষা। যদি আমরা এক কথায় বলি, কম্পিউটারের মাধ্যমে কোন সমস্যার সমাধান করার জন্য আমরা যেসব শব্দ, বর্ণ, সংকেত বা প্রতীক ব্যবহার করে প্রোগ্রাম রচনা করি, তাই প্রোগ্রামিং ভাষা। কিন্তু আমরা যত কিছুই লেখিনা কেন কম্পিউটার ০ এবং ১ ছাড়া কিছুই বোঝে না। কম্পিউটার ০ দ্বারা মিথ্যা এবং ১দ্বারা সত্য বুঝে।
কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখব?

মূলত এটি খুব ভালো এবং কমন একটি প্রশ্ন এর উত্তর হচ্ছে সি প্রোগ্রামিং হচ্ছে অন্যান্য সকল প্রোগ্রামিং ভাষা এর বেসিক অর্থাৎ আপনি যদি সি প্রোগ্রামিং জানেন তাহলে অন্যান্য প্রোগ্রামিং ভাষা আপনার জন্য অনেক সহজ হয়ে যাবে। পৃথিবীতে অনেক প্রোগ্রামিং ভাষা রয়েছে যেমন, java, python, c++, php ইত্যাদি। সি প্রোগ্রামিং জানলে অন্যান্য সকল প্রোগ্রামিং ভাষার মৌলিক বৈশিষ্ট্য গুলো আপনার জানা হয়ে যাবে। কেননা অন্যান্য প্রোগ্রামিং ল্যাংগুয়েজের মৌলিক বৈশিষ্ট্য সি প্রোগ্রামিং এর মধ্যে অন্তর্ভুক্ত রয়েছে। যদি আমরা একটু এনালাইসিস করি তাহলে দেখতে পারবো, উইন্ডোজ এর বেশিরভাগ কোড লেখা হয়েছে সি দিয়ে। তাহলে কেউ যদি সি প্রোগ্রামিং ভালো করে তাহলে সে অপারেটিং সিস্টেম তৈরি করার স্বপ্ন দেখলেও দেখতে পারে।
প্রোগ্রামিং ল্যাঙ্গুয়েজ কয় প্রকার?
পৃথিবীতে তিন ধরনের প্রোগ্রামিং ল্যাঙ্গুয়েজ রয়েছে।
- High Level
- Mid Level
- Low level
”সি” প্রোগ্রামিং ভাষা কে মধ্যবর্তী কম্পিউটার ভাষা হিসেবে আখ্যায়িত করা হয়। কারণ ”সি” দিয়ে ইচ্ছামত হার্ডওয়ার নিয়ন্ত্রণ করে প্রোগ্রাম তৈরি করা যায়। তাছাড়া এই প্রোগ্রামগুলো খুব নমনীয় হয়। ”সি” প্রোগ্রামিং এর ডেটা বিভিন্ন ধরনের হলেও ডেটা টাইপ গুলোর রূপান্তর এবং মিশ্রণ খুবই সহজ। এছাড়া বিট(Binary digit ) পর্যায়ে এবং কম্পিউটার এড্রেস(Address ) ও ডেটা বাইট(৮ বিটে ১ বাইট) নিয়ে ইচ্ছামত ব্যবহার এবং সংস্করণ করা যায়। এর ফলে ”সি” প্রোগ্রাম দিয়ে এসেম্বলি ল্যাংগুয়েজ এর সমস্ত সুবিধা ব্যবহার করা যায়। এই সকল সুবিধার জন্য ”সি” প্রোগ্রামিং ভাষা এখনো জনপ্রিয়। তাহলে এর মাধ্যমে, সি প্রোগ্রামিং কেন শিখব? এই প্রশ্নের উত্তর আশা করি আপনারা পেয়েছেন।
প্রোগ্রামিং কিভাবে শুরু করব?
আসলে খুব মজাদার একটি প্রশ্ন এটি। পৃথিবীতে কোন কিছুই সহজ নয়। আবার কোন কিছুই অসম্ভব নয়। সুতরাং যারা প্রোগ্রামিং জগতে নতুন, তাদের কাছে সি-প্রোগ্রামিং একটু কঠিন লাগতেই পারে। যেমন, সাইকেল সবাই চালাতে পারেনা। কিন্তু আপনি চেষ্টা করলে একসময় না একসময় চালাতে পারবেন। সাইকেল চালাতে গেলে পড়ে যেয়ে ব্যাথা পাবেন এমন ভয় করলে কোনোদিনই সাইকেল চালাতে পারবেন না। তেমনই প্রোগ্রামিং ল্যাঙ্গুয়েজ শেখার আগেই যদি আপনি ভাবেন সি প্রোগ্রামিং সহজ না কঠিন, তাহলে প্রোগ্রামিং শিখতে পারবেন না। তাই এত কিছু না ভেবে শুধু শেখা শুরু করেন। আরেকটি কথা সি প্রোগ্রামিং কঠিন নয়। একটু বোঝার চেষ্টা করলেই, আপনি খুব সহজেই সি প্রোগ্রামিং শিখতে পারবেন। তার আগে আমার অনুরোধ থাকবে আপনারা বেসিক থেকে শেখা শুরু করবেন। প্রথমেই একটি গাছের উপরে যাওয়ার চেষ্টা না করে গোড়া থেকে আরম্ভ করুন। আর এই জন্য পরবর্তীতে আমাদের ওয়েবসাইটে আমরা ধারাবাহিক ভাবে বেসিক থেকে সি প্রোগ্রামিং টিউটোরিয়াল দিব।
সি প্রোগ্রামিং এর ইতিহাস:
’সি’ প্রোগ্রামিং ভাষার জনক হল ডেনিস রিচি। তিনি সর্বপ্রথম UNIX অপারেটিং সিস্টেমে DEC PDP -১১ মেশিনে ’সি’ প্রয়োগ করেন। সি এসেছে BCPL নামের একটি কম্পিউটারের ভাষা থেকে, যা থাকে ‘বি’ নামে অপর একটি ভাষার উদ্ভব ঘটে। এবং বি এর পরের উন্নয়ন হলো ’সি’ ভাষা।

প্রথম সি সরবারহ হতো UNIX অপারেটিং সিস্টেমে। এরপর ‘সি’ এর প্রয়োগ ঘটে নানাভাবে। ফলে প্রয়োজন হয় একটি আদর্শ ‘সি’ সংস্করণের। ANCI হলো তার ফলশ্রুতি। ফলে প্রোগারমার গন ANCI ‘সি’ ব্যবহার শুরু করেন। এরপর ব্যবহারকারীদের জন্য আদর্শ ‘সি’ পরিবেশ সৃষ্টি, দ্রুত ও নির্ভুল কোম্পাইলার এবং ANCI এর ধারাবাহিকতা অক্ষুন্ন রাখতে Borland নামক কোম্পানি Turbo C নামে একটি সফটওয়্যার তৈরি করেন।
তাহলে যদি প্রশ্ন করা হয়, কত সালে সি প্রোগ্রামিং ভাষা তৈরি হয়? এর উত্তর হচ্ছে ১৯৭২ সালে।
তাহলে এতক্ষণ আমরা প্রোগ্রামিং কি এবং সি প্রোগ্রামের ইতিহাস সম্পর্কে আলোকপাত করলাম। এখন আমি ধরলাম, আপনারা সি প্রোগ্রামিং করার জন্য সম্মত হয়েছেন। এখন আমাদের জানা প্রয়োজন সি প্রোগ্রাম করার জন্য কি স্কিল আপনাদের থাকা উচিত এবং কি করা উচিত।
শুধু সি প্রোগ্রাম নয় যে কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ শেখার জন্য আপনার ৩টি স্কিল অবশ্যই থাকতে হবে।
১. ধৈর্য্য
২. প্রোগ্রামিং করার মানসিকতা
৩. প্রোগ্রামিং কে ভালোবাসা
তবে এর মধ্যে ধৈর্য্য খুবই গুরুত্বপূর্ণ। কারণ যারা নতুন প্রোগ্রামার তারা ছোট ছোট ভুল করবেন। আর এ জন্য তাদের প্রোগ্রাম রান হবে না। কিন্তু আপনি যদি অল্পতেই ধৈর্য্য হারিয়ে ফেলেন, তাহলে আপনাকে দিয়ে গাড়ি আর চলবেনা। তাই প্রোগ্রাম করার জন্য প্রচুর ধৈর্য্য প্রয়োজন। আপনার একটি প্রোগ্রাম করতে হয়তো তিন থেকে চারদিন ও লাগতে পারে কিন্তু আপনি ধৈর্য্য হারাতে পারবেন না। আর হ্যাঁ, গণিতে যদি আপনার মোটামুটি জ্ঞান থাকে, তাহলে প্রোগ্রামিং করতে আপনার জন্য সুবিধা হবে। এছাড়া যদি আপনার লজিক ভালো থাকে, তাহলে খুব সহজেই আপনি প্রোগ্রামিংকে আপনার আয়ত্তে নিয়ে আসতে পারবেন। অনেকেই প্রোগ্রামিং শুরু করার আগে প্রশ্ন করে, আমি প্রোগ্রামিং করতে চাই আমার কি অনেক ম্যাথ জানতে হবে? আমার কি অনেক লজিক থাকতে হবে? তাদের জন্য বলব, এমন সব প্রশ্ন না করে শুরু করে দাও। তুমি প্রোগ্রামিং করতে করতেই তোমার লজিক build-up হবে।
এখন আমি ধরলাম, আপনি প্রোগ্রামিং করা শুরু করবেন। তাহলে এখন আপনার জানা প্রয়োজন সি প্রোগ্রামিং কেমন এবং সি প্রোগ্রামিং এর পরিবেশ কেমন, সি প্রোগ্রামিং কিভাবে সেটআপ করতে হয়? অর্থাৎ সি প্রোগ্রামিং ভাষার প্রাথমিক জ্ঞান সম্পর্কে আমাদের এখন জানতে হবে।
সি প্রোগ্রামিং কাকে বলে?
সি প্রোগ্রামিং স্টান্ডার্ড লাইব্রেরী ব্যবহার করে এবং সি প্রোগ্রামিং এর জন্য নির্দিষ্ট সিনটেক্স ব্যবহার করে, কম্পিউটারকে তার নিজের ভাষায় কমান্ড দেওয়ার জন্য আমরা যে প্রোগ্রাম করি, তাকে সি প্রোগ্রামিং বলা হয়।
সি ভাষায় প্রোগ্রাম তৈরি করার জন্য কি প্রয়োজন?
যেমন,
১. একটি প্রোগ্রাম উন্নয়ন পরিবেশ
২.ভাষা
৩. স্ট্যান্ডার্ড লাইব্রেরী।
সি প্রোগ্রামিং ভাষার বৈশিষ্ট্য:
১. সি প্রোগ্রামিং ভাষার ডেটা বৈচিত্র এবং শক্তিশালী অপারেটর থাকায় সি ভাষা কার্যকর এবং দ্রুত।
২. এটি স্থানান্তরযোগ্য অর্থাৎ এই ভাষায় লিখিত প্রোগ্রামকে একটি কম্পিউটার থেকে অন্য কম্পিউটারে খুব সহজেই স্থানান্তর করা যায়।
৩. সি ভাষা যেকোনো হার্ডওয়ারে সহজেই খাপ খাওয়াতে পারে।
৪. সি প্রোগ্রামিং ভাষা নিজেকে বর্ধিত করার ক্ষমতা রাখে।
৫. সি ভাষা এক বা একাধিক ফাংশন নিয়ে গঠিত। কিন্তু একমাত্র ফাংশন যেটি থাকতেই হবে সেটি হচ্ছে main ()।
৬. সি ভাষার একটি গুরুত্বপূর্ণ উপাদান হচ্ছে লাইব্রেরী ফাংশন। একটি সাধারণ লাইব্রেরী ফাংশন হচ্ছে printf()। লাইব্রেরী ফাংশন সি প্রোগ্রামিং কে করেছে সহজ এবং নমনীয়। এসকল ফাংশনকে সিস্টান্ডার্ড লাইব্রেরী ও বলা হয়।
৭. অধিকাংশ সি ভাষার একটি উপাদান হচ্ছে হেডার ফাইল। সবচেয়ে প্রয়োজনীয় হেডার ফাইল হচ্ছে stdio.h
সি স্টান্ডার্ড লাইব্রেরী:
সি স্টান্ডার্ড লাইব্রেরী সাধারণত গাণিতিক কাজ সম্পাদনে ব্যবহৃত ফাংশনসমূহের এক বিশাল সম্ভার। সি প্রোগ্রামার গন স্ট্যান্ডার্ড লাইব্রেরী ফাংশনের ব্যাপক সুবিধা গ্রহণ করে থাকে। সি ভাষা শেখার জন্য দুটি কৌশল রয়েছে। প্রথমটি হলো নিজে নিজে সি ভাষা শেখা। দ্বিতীয়টি হলো সি স্টান্ডার্ড লাইব্রেরী কিভাবে ব্যবহার করতে হয় তা জানা।
হেডার ফাইল:
প্রত্যেক স্ট্যান্ডার্ড লাইব্রেরীর যে ফাইল সমূহ ওই লাইব্রেরির সকল ফাংশনের জন্য ফাংশন প্রোটোটাইপ ধারণ করে সেই ফাইলসমূহকে হেডার ফাইল বলা হয়। সর্বাধিক ব্যবহৃত হেডার ফাইল হচ্ছে stdio.h
যে ডাইরেক্টভ এই ফাইলকে যুক্ত করে তা হল: #include<stdio.h> এটি একটি সি প্রোগ্রামিং লেখার নিয়ম।
সি ভাষায় প্রোগ্রাম উন্নয়ন পরিবেশ:
সি ভাষার প্রোগ্রাম পরিবেশে প্রোগ্রাম তৈরি করার জন্য 6 টি ধাপ রয়েছে।
নিম্নে এগুলো সম্পর্কে আলোচনা করা হলোঃ:
ধাপ ১: প্রোগ্রাম সম্পাদনা: এডিটর এর সাহায্যে প্রোগ্রামার সি প্রোগ্রাম টাইপ করেন এবং সংশোধন করেন। এরপর প্রোগ্রামটি সেকেন্ডারি স্টোরেজ ডিস্কে সংরক্ষণ করা হয়। সি প্রোগ্রাম ফাইলের নাম .cpp এক্সটেনশন যুক্ত হয়।
ধাপ ২: প্রিপ্রসেস:
তৈরি করা প্রোগ্রামটি মেশিন ভাষায় রূপান্তরিত হওয়ার আগেই কম্পাইলার স্বয়ংক্রিয়ভাবে প্রোগ্রামটি নির্বাহ করে। এ জন্য সি প্রসেসর বিশেষ কমান্ড পালন করে। এই কমান্ডগুলো কে বলা হয় প্রসেসর ডাইরেক্টিভ। এটি সংকলনের আগেই প্রোগ্রামার আর কিছু পরিচালনা মূলক কাজ সম্পাদনের নির্দেশ দেয়। এ সকল পরিচালনা মূলক কাজ সম্পাদনে নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত থাকে:
১. যে ফাইল কম্পোজ করতে হবে সেই ফাইলের সাথে অন্য ফাইল অন্তর্ভুক্ত করা।
২. বিভিন্ন রকম টেক্সট রিপ্লেসমেন্ট কাজ সম্পাদন করা।
ধাপ ৩: কম্পাইল:
প্রোগ্রাম কম্পাইল করতে প্রোগ্রামার কমান্ড প্রদান করেন। কম্পাইলার সি প্রোগ্রাম কে মেশিন ভাষায় অনুবাদ করেন এবং ডিস্কে সংরক্ষণ করেন।
ধাপ ৪: লিংক:
লিংকার মেশিন ভাষা কোডের সাথে লাইব্রেরী ফাইলের সংযোগ বা লিংক করে।
ধাপ ৫: লোড:
প্রোগ্রামকে নির্বাহ করার আগে প্রোগ্রামটিকে অবশ্যই মেমোরিতে সংরক্ষণ করতে হবে। এটি লোডার এর সাহায্যে প্রোগ্রামকে ডিস্ক মেমরিতে স্থানান্তর করে। প্রোগ্রামটিকে সহায়তা করতে শেয়ার্ড লাইব্রেরী থেকে অতিরিক্ত উপাদানও লোড করা হয়।
ধাপ ৬: প্রোগ্রাম নির্বাহ:
সবশেষে কম্পিউটারের সিপিইউ এর নিয়ন্ত্রণ অধীনে প্রোগ্রাম নির্বাহ হয়। এভাবে সি ভাষা কাজ করে।
সি ভাষা শেখার জন্য কিছু ওয়েবসাইট এর তালিকা:
1. http://www.cprogramming.com/
2. http://www.cprogrammingexpert.com/
3. http://www.mycplus.com/category/tutorials/c-programming-tutorials/
5. http://www.tutorialspoint.com/ansi_c/c_introduction.htm
6. http://www.cs.cf.ac.uk/Dave/C/CE.html
7. http://www.programmingsimplified.com/c-program-examples
8. https://www.geeksforgeeks.org/c-programming-language/?ref=ghm
9. http://cprogramminglanguage.net/
কিছু অনলাইন জাজ এর তালিকা:
১) http://www.spoj.com/
২) http://uva.onlinejudge.org/
৩) http://www.xmarks.com/
৪) https://www.topcoder.com/tc
৫) http://codeforces.com/
৬) http://www.ioinformatics.org/index.shtml
৭) http://icpc.baylor.edu/
আমরা উপরে এতক্ষণ যা আলোচনা করেছি, সেগুলো হয়তো আপনাদের মাথার উপর দিয়ে যাবে অথবা হয়তো এতক্ষণে মাথার উপর দিয়ে চলে গেছে। কিন্তু ভয় পাওয়ার কিছু নেই। আমরা তো মাত্র শুরু করলাম। আমরা এর শেষ পর্যন্ত করেই ছাড়বো ইনশাআল্লাহ। আমরা সি প্রোগ্রামিং টিউটোরিয়াল আকারে শিখব। যদিও আপনাদের অনুপ্রেরণা খুবই প্রয়োজন।
আপনাদের প্রোগ্রামিং বিষয়ক কোন প্রশ্ন থাকলে, আমাদেরকে জানাতে ভুলবেন না। তাহলে, আমরা তার উত্তর আপনাদেরকে জানাতে ভুলবো না। সেই প্রত্যাশা রেখে আজকে আর না লিখি।
Post a Comment