প্রোগ্রামিংয়ের মৌলিক ধারণা/অ্যারে এবং তালিকা
পর্যালোচনা
[সম্পাদনা]অ্যারে হলো একটি ডেটা স্ট্রাকচার, যা উপাদানসমূহের (মান বা ভেরিয়েবল) একটি সংগ্রহ নিয়ে গঠিত, যেখানে প্রতিটি উপাদান অন্তত একটি ইনডেক্স বা কী দ্বারা চিহ্নিত হয়।Wikipedia: Array data structure
প্রোগ্রামিং ভাষার ভেদে অ্যারে টাইপ কখনো কখনো অন্য ডেটা টাইপ যেমন তালিকা (list) বা স্ট্রিংয়ের সঙ্গে মিলে যেতে পারে বা তাদের মতো আচরণ করতে পারে। অ্যারে টাইপ সাধারণত অ্যারে ডেটা স্ট্রাকচারের মাধ্যমেই বাস্তবায়িত হয়, তবে মাঝে মাঝে হ্যাশ টেবিল, লিঙ্কড লিস্ট বা সার্চ ট্রির মতো অন্যান্য কৌশলেও বাস্তবায়িত হতে পারে।Wikipedia: Array data type উদাহরণস্বরূপ, পাইথনে অ্যারের অন্তর্নির্মিত ডেটা স্ট্রাকচার হলো তালিকা (list)।
স্ট্যাটিক অ্যারে'র আকার নির্দিষ্ট থাকে এবং এটি পরিবর্তন করা যায় না। অন্যদিকে, ডাইনামিক অ্যারে'র দৈর্ঘ্য পরিবর্তনযোগ্য। geeksforgeeks.org অনুযায়ী, ডাইনামিক অ্যারে এমন একটি সরল কাঠামো যা নির্দিষ্ট আকারের অ্যারে বরাদ্দ করে তৈরি করা হয়, সাধারণত যতগুলো উপাদান তৎক্ষণাৎ প্রয়োজন ততটুকুই। ডাইনামিক অ্যারে’র উপাদানগুলো অ্যারের শুরুর দিকে ধারাবাহিকভাবে সংরক্ষিত থাকে। নতুন উপাদান রিয়েল টাইমে অ্যারের শেষে যোগ করা যায় যতক্ষণ না সংরক্ষিত মেমোরি পূর্ণ হয়।https://www.geeksforgeeks.org/how-do-dynamic-arrays-work/https://www.quora.com/What-is-the-difference-between-static-dynamic-array
আলোচনা
[সম্পাদনা]অ্যারে হলো এমন একটি ডেটা স্ট্রাকচার, যা একাধিক উপাদান নিয়ে গঠিত এবং প্রতিটি উপাদানকে একটি 'ইনডেক্স' বা 'কী' দ্বারা শনাক্ত করা হয়। অ্যারের প্রতিটি অক্ষকে বলা হয় একটি মাত্রা (dimension)।
একমাত্রিক অ্যারেকে বলা হয় list।
দ্বিমাত্রিক অ্যারেকে বলা হয় table।
অ্যারের উপাদান নির্ধারণ করতে ইনডেক্স নোটেশন ব্যবহার করা হয়, যা ভাষাভেদে [] বা {} হতে পারে।
স্ট্রিং এক ধরনের একমাত্রিক অ্যারে, যেখানে অক্ষরগুলো ধারাবাহিকভাবে সাজানো থাকে এবং একে সাধারণত অনুভূমিকভাবে পড়া অক্ষরের একটি সারি হিসেবে কল্পনা করা হয়।
অ্যারের একক মানকে বলা হয় সদস্য বা উপাদান। ইনডেক্স অপারেটরের সাহায্যে এগুলোতে এক্সেস করা যায়।
অ্যারে সংজ্ঞায়িতকরণ
[সম্পাদনা]| ভাষা | উদাহরণ |
|---|---|
| C++ | int ages[] = {49, 48, 26, 19, 16};
|
| C# | int[] ages = {49, 48, 26, 19, 16};
|
| Java | int[] ages = {49, 48, 26, 19, 16};
|
| JavaScript | var ages = [49, 48, 26, 19, 16];
|
| Python | ages = [49, 48, 26, 19, 16]
|
| Swift | var ages:[Int] = [49, 48, 26, 19, 16]
|
এই প্রক্রিয়াটিকে বলা হয় সংরক্ষণ স্থান নির্ধারণ (defining storage space)। এখানে [] ব্র্যাকেট ব্যবহার করে একটি অ্যারে তৈরি করা হয়েছে যার নাম ages এবং এতে পাঁচটি পূর্ণসংখ্যা সদস্য রয়েছে। {} বক্র বন্ধনীর মাধ্যমে মানগুলোর একটি ব্লক তৈরি করে প্রাথমিক মান নির্ধারণ করা হয়েছে। এখানে কমা অপারেটরের ব্যবহার লক্ষ্য করুন। আমরা চাইলে নিচের মতো করেও একই কাজ করতে পারতাম:
| ভাষা | উদাহরণ | অনির্ধারিত মান |
|---|---|---|
| C++ | int ages[5];
|
undefined |
| C# | int[] ages = new int[5];
|
0 |
| Java | int[] ages = new int[5];
|
0 |
| JavaScript | var ages = Array(5);
|
undefined |
| Python | ages = [None] * 5
|
None |
এইভাবে অ্যারে ঘোষণার মাধ্যমে ages নামে পাঁচটি পূর্ণসংখ্যার জন্য সংরক্ষণ স্থান নির্ধারণ করা হয়, তবে প্রাথমিক মানগুলো হয় অনির্দিষ্ট থাকে অথবা ভাষাভেদে উল্লেখিত মান দ্বারা আরম্ভ হয়ে থাকে। আমরা পরের প্রোগ্রামে নিচের মতো করে মান নির্ধারণ করতে পারি (Python-এ সেমিকোলন ব্যবহার করা ছাড়াই):
ages[0] = 49; ages[1] = 48; ages[2] = 26; ages[3] = 19; ages[4] = 16;
দ্রষ্টব্য: অ্যারের ইনডেক্স সাধারণত ০ থেকে শুরু হয়, ১ থেকে নয়। অর্থাৎ ৫টি উপাদানের ইনডেক্স হবে ০ থেকে ৪ পর্যন্ত। পরবর্তী পৃষ্ঠায় এই বিষয়ে আরও বিস্তারিত আলোচনা আছে।
মূল শব্দসমূহ
[সম্পাদনা]- অ্যারে
- উপাদানসমূহের (মান বা ভেরিয়েবল) একটি সংগ্রহ নিয়ে গঠিত ডেটা স্ট্রাকচার।
- মাত্রা (dimension)
- অ্যারের একটি অক্ষ বা দিক।
- ইনডেক্স নোটেশন
- অ্যারের উপাদান চিহ্নিত করতে ব্যবহৃত সংকেত, সাধারণত [ ] বা {}
- তালিকা (list)
- একমাত্রিক অ্যারে।
- টেবিল (table)
- দ্বিমাত্রিক অ্যারে।
রেফারেন্স
[সম্পাদনা]cnx.org: Programming Fundamentals – A Modular Structured Approach using C++