প্রোগ্রামিংয়ের টুকিটাকি -২ঃ টাইপ সিস্টেম (Type System)

  একটা কম্পিউটার প্রোগ্রাম মূলত কিছু ভ্যালু নিয়ে কাজ করে। বিভিন্ন কন্ডিশন বা লজিকের উপর নির্ভর করে এই ভ্যালুগুলো পরিবর্তিত হয়। সি, জাভা দিয়ে প্রোগ্রামিং করা মানুষজন খুব ভালো করেই জানেন যে, আমরা এই ভ্যালুগুলো কি ধরনের হবে সেটা আগে থেকেই নির্ধারণ করে দেই। মানে হচ্ছে আমরা এগুলোর টাইপ (type) বলে দেই। আবার পাইথন, জাভাস্ক্রিপ্ট […]

প্রোগ্রামিংয়ের টুকিটাকি -১ঃ মিউটেবল (mutable) এবং ইমিউটেবল (immutable)

“প্রোগ্রামিংয়ের টুকিটাকি” সিরিজটাতে আমি প্রোগ্রামিং রিলেটেড কিছু টপিকস নিয়ে আলোচনা করবো যেগুলো প্রোগ্রামারদের জানা জরুরী কিন্তু সরাসরি ‘এল্গোরিদম’ এর মধ্যে পড়ে না। মিউটেশন (mutation) শব্দটার সাথে আমাদের প্রথম পরিচয় সম্ভবত biology তে। যেখানে আমরা জেনেছি জীনে (gene) মিউটেশন হয়। অর্থাৎ ডি এন এ সিকোয়েন্স পরিবর্তিত হয়ে যায়। মূলকথা হচ্ছে কোনো একটা জিনিস তার আগের অবস্থা […]

রিকার্শন (Recursion) বুঝি না

আপনি যদি রিকার্শন ইতিমধ্যে বুঝে গিয়ে থাকেন তাহলে আপনাকে অভিনন্দন       আর নীচেরটুকু আপনার পড়ার দরকার নেই। তা না হলে নীচের লিংকে গিয়ে আর্টিকেলটা মনোযোগ দিয়ে পড়ুন। রিকার্শন (Recursion) এর উপর সুন্দর একটি লেখা                      

স্ট্রিং হ্যাশিং, রোলিং হ্যাশ এবং রবিন-কার্প এলগোরিদম (Rabin-Karp algorithm)

মনে করুন আপনাকে একটা প্রবলেম সলভ করতে দেয়া হলো এরকম- একটা স্ট্রিং S আর একটা প্যাটার্ণ (সাবস্ট্রিং) p দেয়া আছে। S এর মধ্যে p কতবার আছে সেটা খুঁজে বের করতে হবে।  আমি ধরে নিচ্ছি আপনি কোনো এলগোরিদম জানেন না। আপনি শুধু প্রোগ্রামিংয়ের ব্যাসিক কিছু কাজ পারেন, যেমন, স্ট্রিং কি জিনিস, লুপ কিভাবে চালায়, কিভাবে if-else ব্যবহার […]

হ্যাশটেবিল (Hashtable)

ডাটা স্ট্রাকচারের মূল ব্যাপারটাই হচ্ছে এমন একটা Structure তৈরি করা যাতে করে সেখানে এফিসিয়েন্টলি ডাটা রাখা এবং খুঁজে নিয়ে আসা যায়। প্রত্যেকটা ডাটা স্ট্রাকচারের কিছু সুবিধা অসুবিধা আছে। ক্ষেত্রবিশেষে একেকটা খুব ভালো কাজ করে, অন্য কোনো ডাটা স্ট্রাকচার হয়তো সেখানে ততটা ভালো কাজ নাও করতে পারে। বিভিন্ন ডাটা স্ট্রাকচার শিখলে কোনটা কোথায় ভালো কাজ করবে এবং কেন […]