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

গ্রাফঃ গ্রাফ হচ্ছে কত গুলো নোড (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

সি তে ফাংশন

প্রোগ্রামারদের ম্যাজিক হচ্ছে ফাংশন। এখন আবার আপনার মনে হতে পারে এটা আবার কি? তাই না। মনে করেন আপনি একটা ম্যাজিক শোতে গিয়েছেন। আপনি এখন একটা ম্যাজিক দেখাবেন যেখানে একটা ছেড়া সুতোকে ফু দিলে তা জোড়ালেগে যাবে। এমনই তো দেখেন তাই না? এই ফু টাই হচ্ছে ফাংশন। তাহলে আমরা এটা কিভাবে লিখব প্রোগ্রামে তা দেখিঃ সম্পুর্ন […]

Read More

সি প্রোগ্রামিংঃ for-লুপ

লুপিং এর কাজে সবছেয়ে বেশি ব্যবহৃত হয় for loop. এ for loop এর তিনটি অংশ রয়েছে। তার আগে আমরা দেখেনি for loop সাধারন ব্যবহার নিয়ম। for(exprission1;Exprission2;Expression3)Statement বিদ্রঃ এখানে প্রত্যেকটি Expression ; (সেমিকোলন) দিয়ে আলাদা করে দিতে হবে। এখানে প্রথম exprission1  হচ্ছে for loop এর প্রথম অংশ। এটি দ্বারা একটি প্রাথমিক মান দেওয়া হয় । যাকে […]

Read More

সি প্রোগ্রামিংঃ do – while

কিছু একটা কর, যতক্ষণ পর্যন্ত একটা কন্ডিশন সত্য হয়। এমন প্রোগ্রাম লিখতে আমরা do while ব্যবহার করি। do while লুপের সাধারণ ফরম হচ্ছেঃ do statement while (expression);  expression বলতে একটা কন্ডিশন দেওয়া হয়। যতক্ষণ  পর্যন্ত এই কন্ডিশনটি সত্য হবে, ততক্ষন পর্যন্ত এই do while লুপটি চলবে এবং এই statement এক্সিকিউট হতে থাকবে। একটি স্টেটমেন্ট এক্সিকিউট করার […]

Read More