প্রোগ্রামিং সিরিজ: গল্পে গল্পে Data Structure

September 15, 2018 ...
পুরোটা পড়ার সময় নেই? ব্লগটি একবার শুনে নাও

এই লেখাটি “আদর্শ” থেকে প্রকাশিত এবং ঝংকার মাহবুব-এর ২য় গ্রন্থ “প্রোগ্রামিংয়ের বলদ টু বস” বই থেকে নেয়া হয়েছে।

যে কাজের পেছনে মানুষ সবচেয়ে বেশি টাইম স্পেন্ড করে, সেই অনুসারে তার পেশা ঠিক করা হলে, রাশেদের পেশা হবে অলস, ফাঁকিবাজ অথবা আড্ডাবাজ। অথচ তাকে তার পেশা জিজ্ঞেস করলে সে বলবে স্টুডেন্ট। তবে তার স্টুডেন্টগিরির ময়নাতদন্ত করলে, ক্লাসে কাটানো সময়ের চেয়ে চা দোকানে কাটানো সময়ই বেশি পাওয়া যায়। সেটাও আবার লিটন ভাইয়ের চা দোকানে।

|  Data structure  | array | ডাটা স্ট্রাকচারের উদাহরণ |

Data Structure -এর লাল সুতা

ঝড়, বৃষ্টি, বাদলে দু-এক দিন সূর্য মিসিং থাকতে পারে কিন্তু রাশেদের আড্ডা মারা মিসিং থাকে না।

এসব আড্ডায় সিরিয়াস কোনো টপিকও থাকে না। যখন যা মনে আসে, তা নিয়েই রাশেদ পকপক করতে থাকে। এই যেমন, একটু আগে ঝালমুড়ির ঠোঙায় হাজিরা খাতার ছেঁড়া কাগজ দেখে অন্তুকে বলতে শুরু করল, হাজিরা খাতার কথা মনে আছে? যে খাতায় ক্লাসের সবার নাম, রোল নম্বর, কে কবে ক্লাসে আসছে লেখা থাকে। কোনো টিচারের হাজিরা খাতা খুলে দেখলে দেখবি, হাজিরা খাতায় সিরিয়ালমতো নাম, রোল নম্বর লেখা আছে।

 

এখন হাজিরা খাতার কোনো একটা লাইনের দিকে ভালো করে তাকালে দেখবি, প্রত্যেক লাইনের প্রথমে রোল নম্বর তারপর নাম লেখা আছে। যেই লাইন দেখছিলি, তার নিচের লাইনে তাকালেও দেখবি একই সিস্টেম। সেই লাইনেরও প্রথমে রোল নম্বর। তারপর নাম লেখা। এখন ওপরে ও নিচের অন্য সব লাইনের দিকে তাকিয়ে দেখ। দেখবি প্রত্যেক লাইনে একই সিস্টেমে রোল নম্বর আর নাম লেখা আছে।

এই যে হাজিরা খাতায় বিভিন্ন স্টুডেন্টের নাম, রোল নম্বর লেখা আছে, এটাকে একটু সহজ করে বললে বলা যায়, হাজিরা খাতায় বিভিন্ন স্টুডেন্টের নাম, রোল নম্বরের তথ্য লেখা আছে। এই তথ্য একটা বাংলা শব্দ। তথ্য শব্দটাকে ইংরেজিতে বলে ডাটা (data)। তাই বলতে পারিস, হাজিরা খাতায় স্টুডেন্টের ডাটা রাখা আছে।

হাজিরা খাতায় ডাটা রাখার একটা সিস্টেম আছে। সিস্টেমটা কঠিন কিছু না। জাস্ট রুল করা কাগজের একেক লাইনে একেক জনের নাম, রোল নম্বর লিখে রাখা হয়। তবে নাম, রোল নম্বর লেখার আগেই হাজিরা খাতায় রুল করে লাইন টানা থাকে। আর আগে থেকেই লাইন টানা থাকার মানে হচ্ছে, আগে থেকেই একটা কাঠামো বা স্ট্রাকচার তৈরি করে রাখা হয়েছে। যাতে সেই কাঠামো বা স্ট্রাকচারের মধ্যে ফটাফট নাম, রোল নম্বর লিখে ফেলতে পারে।

এই যে কাঠামো বা স্ট্রাকচার বানিয়ে একাধিক স্টুডেন্টের নাম, রোল নম্বরের ডাটা রাখা আছে, এটাকেই বলে ডাটা রাখার স্ট্রাকচার বা ডাটা স্ট্রাকচার (data structure)। অর্থাৎ একাধিক স্টুডেন্টের ডাটা রাখার সিস্টেমটাই একটা data structure। আরও সহজ করে বলতে গেলে বলা যায়, হাজিরা খাতাটাই একটা data structure।

Programming for kids

কোর্সটি করে যা শিখবেন

  • Javascript, HTML ও CSS এর জটিল বিষয়গুলো সহজেই শিখে ফেলার পদ্ধতি।
  • অ্যাপ তৈরি করার বিভিন্ন ফাংশন, ভেরিয়েবল ও লজিক ব্লকের ব্যবহার।
  • কীভাবে HTML এবং CSS ব্যবহার করে অনায়াসে একটি ইনভেন্টরি ট্র্যাকার এবং সোশ্যাল মিডিয়া সাইট ডিজাইন করা যায়।
  •  

    এক নামে তালি বাজে না

    ধর, তুই একটা ভেরিয়েবল লিখলি। সেই ভেরিয়েবলের মধ্যে তুই তোর নাম লিখে দিলি। আর এই ভেরিয়েবলের নাম দিলি name। তারপর সমান চিহ্ন দিয়ে মান সেট করে দিলি। যেহেতু নাম লেখার সময় এক বা একাধিক বর্ণ দিয়ে লিখতে হয়, সেহেতু নাম লেখা শুরুর আগে একটা ডবল কোটেশন () দিলি। নাম লেখা শেষ হয়ে গেলে আরেকটা ডবল কোটেশন দিলি। তারপর নাম শেষ হলে একটা সেমিকোলন (;) দিয়ে দিলি

    var name  = “Hablu”;

    ওপরের ভেরিয়েবলে শুধু তোর নাম আছে। অর্থাৎ একটা মাত্র জিনিস আছে। চাইলেও একটা নামের জায়গায় একাধিক মানুষের নাম লিখতে পারবি না। তাই ভেরিয়েলকে data structure বলা যাবে না। কারণ data structure হতে হলে এক বা একাধিক জিনিস রাখার সিস্টেম থাকতে হবে। যেমন : হাজিরা খাতায় একটা স্ট্রাকচারে একাধিক স্টুডেন্টের নাম, রোল নম্বর ছিল। তাই সেটাকে data structure বলা গেছে।


    Programming Series 9 Blog Cover

    আরো পড়ুন: প্রোগ্রামিং সিরিজ : Sort Algorithm


    বন্ধু ছাড়া জীবন চলে না

    কিছুদিন আগে তোর ক্লাসের বন্ধুদের নাম দিয়ে একটা array লিখছিলি। সেই array-এর নাম দিয়েছিলি friends। সেই array-টা ছিল নিচের মতো—

    var friends = [“olil”, “kholil”, “molil”, “jolil”];

    এই যে ফ্রেন্ডদের নাম দিয়ে একটা array লিখেছিস, এখানে কিন্তু একটা তথ্য নাই। বরং অনেকগুলা তথ্য আছে। অনেকগুলো পোলাপানের নাম আছে। আবার এই তথ্যগুলা লেখার সময় একটা গঠন বা সিস্টেম অনুসরণ করছিস। প্রথমজনের নাম লিখে একটা কমা দিছিস। তারপর দ্বিতীয়জনের নাম লিখেও একটা কমা দিছিস। তার মানে নামগুলা কমা দিয়ে দিয়ে আলাদা করে একটা কাঠামো বা স্ট্রাকচার তৈরি করছিস।

    যেহেতু array-এর মধ্যে চাইলে একাধিক তথ্য রাখা যায় এবং একটা গঠন বা স্ট্রাকচার মেনে চলে, তাই array-কে একটা data structure বলতে পারবি।

    ক্রিকেট খেলা দেখার সময় কোনো টিমের ব্যাটিং স্কোরকার্ড খেয়াল করে দেখছিস? সেখানে বামপাশে প্লেয়ারের নাম লেখা থাকে আর ডানপাশে সে কত রান করছে, কত বল খেলছে, কয়টা চার আর কয়টা ছয় মারছে লেখা থাকে। তার মানে স্কোরকার্ডের একেক লাইনে একেক জন খেলোয়াড়ের নাম এবং ওই ম্যাচে তার রানের তথ্য থাকে। যেহেতু একাধিক জনের তথ্য একটা কাঠামো অনুসারে রাখা হয়, সেহেতু ক্রিকেট খেলার স্কোরকার্ডকে একটা data structure বলতে পারবি।

    data structure খায়, পিন্দে না মাথায় দেয়?

    আজকের পর কেউ যদি জিজ্ঞেস করে ডাটা স্ট্রাকচার কী জিনিস? এইটা কি খায়, পিন্দে না মাথায় দেয়? তখন মাথা চুলকাতে চুলকাতে বলে দিবি, যেখানে একই সিস্টেম ফলো করে একাধিক ডাটা রাখা যায়, সেটাই data structure। আর এত কিছু কঠিন মনে হলে বলে দিবি, হাজিরা খাতাটাই একটা data structure

    ঘরে বসে Freelancing

    কোর্সটি করে যা শিখবেন:

  • একজন সফল ফ্রিল্যান্সার হওয়ার শুরু থেকে শেষ পর্যন্ত বিস্তারিত গাইডলাইন।
  • আন্তজার্তিক ফ্রিল্যান্সিং মার্কেটপ্লেস (যেমন: Upwork, Fiverr) এ নিজের প্রোফাইল তৈরি এবং কাজ পাবার উপায়।
  •  

    নিজে নিজে কর

    ১.১: এমন একটা উদাহরণ দে যেখানে একাধিক জিনিসের নাম বা একাধিক জিনিস সম্পর্কে তথ্য আছে। হাজিরা খাতা বাদে অন্য আরেকটা উদাহরণ চিন্তা করে বের কর।

    উত্তর :

    ১.২ : তোর বাসার মধ্যে এমন অনেক কিছু আছে। যেখানে চাইলে একাধিক জিনিস রাখা যায়। তুই চিন্তা করে সে রকম একটা জিনিসের নাম বল।

    উত্তর :

    ১.৩ : তোর মোবাইলের মধ্যে এমন একটা কিছুর নাম বল, যেখানে একাধিক জিনিস আছে বা রাখা যায়।

    উত্তর :

    …ওপরের বলদ মার্কা প্রশ্ন দেখে তোর মাথা গরম হয়ে কান দিয়ে ধোঁয়া বের হওয়া শুরু হলে দৌড়াতে দৌড়াতে www.habluderadda.com/bolod/dataStructure.html-এ চলে যা। সেখানে যেকোনো প্রশ্ন করতে পারবি, অন্যদের উত্তর দেখতে পারবি। এমনকি ফায়ার সার্ভিসের হেল্প নিয়ে বুড়িগঙ্গার ফিল্টারড পানি তোর কানের ভিতরে ঢুকিয়ে মাথা ঠান্ডা করতে পারবি।

    ঝংকার মাহবুবের অন্যান্য লেখা সম্পর্কে জানতে চলে যাও এই লিংকে!
    ঝংকার মাহবুবকে ফলো করতে পারো ফেসবুক পেইজেও!


    আমাদের কোর্সগুলোতে ভর্তি হতে ক্লিক করুন: 



    ১০ মিনিট স্কুলের ব্লগের জন্য কোনো লেখা পাঠাতে চাইলে, সরাসরি তোমার লেখাটি ই-মেইল কর এই ঠিকানায়: write@10minuteschool.com

    ৬ষ্ঠ থেকে ১০ম শ্রেণি অনলাইন ব্যাচ ২০২৩

    দেশের যেকোনো প্রান্ত থেকে ঘরে বসেই দেশসেরা শিক্ষকদের সাথে যুক্ত হও ইন্টারেক্টিভ লাইভ ক্লাসে, নাও ৬ষ্ঠ থেকে ১০ম শ্রেণির সম্পূর্ণ সিলেবাসের 💯তে💯 প্রস্তুতি!

    আপনার কমেন্ট লিখুন