লেখা লেখির গল্প

যারা নিয়মিত বই পড়ে, তাদের মনে লেখক হওয়ার একটা সুপ্ত ইচ্ছে তৈরি হয়। ছোট বেলায় শরৎচন্দ্র চট্টোপাধ্যায় এর বই খুব ভালো লাগত। কি সুন্দর করে গ্রাম্য চিত্র ফুটিয়ে তুলত। আমার নিজের ও লিখতে ইচ্ছে করত। হুমায়ূন আহমেদের বই পড়ে মনে হত এত সহজ করে মানুষ লিখে কিভাবে। আমাকে বেশি টানত সাইন্স ফিকশন গুলো। একটু আধটু … Read more

গ্রাফ থিওরি, গ্রাফের রিপ্রেজেন্টেশন এবং ইমপ্লিমেন্টেশন

গ্রাফঃ গ্রাফ হচ্ছে কত গুলো নোড (Node) বা ভার্টেক্স(vertice)  এবং এজের (Edge) সমষ্টি। নিচে একটি গ্রাফের ছবি দেওয়া হলোঃ এ গ্রাফে পাঁচটি নোড বা ভার্টেক্স রয়েছে। নোড গুলো হচ্ছেঃ 0,1,2,3,4,5. আর উপরের গ্রাফে এজ রয়েছে ৭টি। নোড গুলোর সংযোগ কারী রেখা হচ্ছে এজ।   গ্রাফকে নিচের মত করে ভাগ করা যায় : Directed, weighted edges … Read more

লিঙ্কড লিস্ট / Linked list সম্পর্কে ধারণা এবং সি প্রোগ্রামিং এ ইমপ্লিমেন্টেশন

ডেটা স্টোর করার জন্য অ্যারের মত আরেকটি ডেটা স্ট্যাকচার হচ্ছে Linked List। এটি স্ট্র্যাকচার অনুযায়ী ডাটা স্টোর করে, এবং রান টাইমে নতুন স্পেসের দরকার হলে অটোমেটিকেলি তা তৈরি করে নিতে পারে।  এটি হচ্ছে ডাইনামিক ডেটা স্ট্রাকচার। এটি অ্যারের মতই, তবে অ্যারেতে আমাদের কতটুকু মেমরি দরকার, প্রথমেই বলে দিতে হয়। কিন্তু লিঙ্কড লিস্টে প্রয়োজন অনুযায়ী মেমরি বাড়ানো … Read more

C/সি প্রোগ্রামিং এ ডাইনামিক মেমরি এলোকেশন

রানটাইমে মেমরি এলোকেট করার প্রসেসকে ডাইনামিক মেমরি এলোকেশন বলে। আমরা যখন একটা অ্যারে ডিক্লেয়ার করি, তখন কোন কোন সময় অনেক বিশাল একটা অ্যারে ডিক্লেয়ার করি, যার বেশিরভাগই লাগে না। আবার অনেক সময় অনেক ছোট একটা অ্যারে ডিক্লেয়ার করি, কিন্তু প্রোগ্রাম রান করার পর আমাদের আরো বড় সাইজের দরকার হতে পারে। আর এ সমস্যা গুলো সমাধানের … Read more

সি পোগ্রামিং – Strings / স্ট্রিং

স্ট্রিং হচ্ছে কারেকটার সেট। একটা ওয়ার্ড, একটা বাক্য, একটা প্র্যারাগ্রাফ, সব গুলোই স্ট্রিং। যেমন Hello World একটা স্ট্রিং। আবার hello ও একটা স্ট্রিং। world ও একটা স্ট্রিং। যখন শুধু একটা বর্ণ, তখন তা কারেকটার। আগে বলেছি স্ট্রিং হচ্ছে কারেকটার সেট। হ্যা, একটা one-dimensional কারেকটার অ্যারে হচ্ছে স্ট্রিং। লেখাটি পড়ার আগে অ্যারে/Array সম্পর্কে ধারণা থাকা লাগবে। … Read more

সি প্রোগ্রামিং – ফাইল অপারেশন

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

সি প্রোগ্রামিংঃ স্ট্রাকচার – struct

আমরা ডেটা টাইপ সম্পর্কে জানি, int, char, float ইত্যাদি। Structures দিয়ে আমরা নিজেদের মত করে ডেটা স্ট্রাকচার তৈরি করে নিতে পারি। যেমন অ্যারে হচ্ছে একটা ডেটা স্ট্র্যাকচার। যেখানে শুধু আমরা একই ডেটা টাইপ এর ডেটা রাখতে পারি। কিন্তু স্ট্র্যাকচার তৈরি করে আমরা এক সাথে int, char, float ইত্যাদি ভিন্ন ভিন্ন ডেটা এক সাথে রাখতে পারি। … Read more

সি প্রোগ্রামিংঃ পয়েন্টার

কম্পিউটার মেমরি এবং মেমরি অ্যাড্রেস পয়েন্টার প্রোগ্রামিং এ দারুন একটি টুল। পয়েন্টার সম্পর্কে জানার আগে কিছু ব্যাসিক জিনিস জানা যাক, যেগুলো বুঝতে কাজে দিবে।   ভ্যারিয়েবল গুলো কিভাবে কম্পিউটার মেমরিতে/ র‍্যাম এ স্টোর হয়? র‍্যাম এর এক একটি সেল এক একটি বাইট। আর প্রত্যেকটা বাইট এর একটি করে এড্রেস রয়েছে। আর প্রতিটা বাইটে ৮টি করে … Read more

সি প্রোগ্রামিং এ অ্যারে

অ্যারে সম্পর্কে জানার আগ পর্যন্ত আমরা সাধারণত দুই একটা ভ্যারিয়েবল নিয়ে কাজ করেছি। কিন্তু বাস্তব জীবনে আমাদের এমন এমন প্রোগ্রাম লিখতে হতে পারে, যেখানে একের অধিক ভ্যারিয়েবল নিয়ে কাজ করতে হবে। একই টাইপের একের অধিক ভ্যারিয়েবল নিয়ে কাজ করার জন্য প্রোগ্রামিং এ আমরা অ্যারে ব্যবহার করি। যেমন প্রথম পাঁচটা প্রাইম নাম্বার হচ্ছে 2, 3, 5, … Read more

সি তে ফাংশন

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