Pages

Thursday, May 15, 2014

ডেটা সামলানোর ম্যাজিক: কেন এবং কীভাবে ব্যবহার করবেন Array?

Array এমন এক ধরনের ভ্যারিয়েবল যেখানে এক নামের ভিতরেই অনেকগুলো একই টাইপের মান রাখা যায়, যেমন ৫টা বা ৫০০টা int—আলাদা ৫০০টা ভ্যারিয়েবল ডিক্লেয়ার করতে হয় না । 

Array আসলে কী?

  • Array মানে এক সারি ঘর, যেখানে সব ঘর একই ডাটা টাইপের হয় (int, char, float ইত্যাদি) । 

  • প্রতিটা ঘরের একটা করে নম্বর থাকে, যাকে index বলে; index সবসময় ০ থেকে শুরু হয় । 

উদাহরণ (C):

int numbers[5] = {10, 20, 30, 40, 50};

এখানে numbers নামে ৫টা ঘর আছে: numbers[0] থেকে numbers[4] পর্যন্ত ।


কেন Array দরকার?

  • ৬টা সংখ্যা নিলে আলাদা ৬টা ভ্যারিয়েবল ঠিক আছে, কিন্তু ৬০০টা হলে কোড বিশ্রী বড় আর অগোছালো হবে ।

  • Array দিয়ে একই কাজ লুপের মাধ্যমে কয়েক লাইনেই করা যায়, মেইনটেইন করাও সহজ হয় ।


Element আর Index

  • Array-এর প্রতিটা মানকে element বলে, আর যেই নম্বর দিয়ে এই element-কে ডাকা হয় সেটাই index ।

  • উদাহরণ: numbers[0] প্রথম element, numbers[1] দ্বিতীয়, numbers[2] তৃতীয় ইত্যাদি ।

উদাহরণ (element অ্যাক্সেস):

#include <stdio.h> int main() { int ara[5] = {10, 20, 30, 40, 50}; printf("First element: %d\n", ara[0]); // 10 printf("Third element: %d\n", ara[2]); // 30 return 0; }

সব element প্রিন্ট করা (forward loop)

#include <stdio.h> int main() { int ara[10] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100}; int i; for (i = 0; i < 10; i++) { printf("%d th element is: %d\n", i + 1, ara[i]); } return 0; }

এখানে i ০ থেকে ৯ পর্যন্ত যায়, আর আমরা ara[i] দিয়ে প্রতিটা ঘরের মান প্রিন্ট করছি ।


উল্টো দিক থেকে প্রিন্ট করা (reverse loop)

#include <stdio.h> int main() { int ara[10] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100}; int i; for (i = 9; i >= 0; i--) { printf("%d th element is: %d\n", i, ara[i]); } return 0; }

এখানে i ৯ থেকে ০ পর্যন্ত কমছে, মানে শেষ ঘর থেকে শুরু করে প্রথম ঘর পর্যন্ত প্রিন্ট হচ্ছে ।


Array উল্টো করে রাখা (reverse into another array)

#include <stdio.h> int main() { int ara[] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100}; int ara2[10]; int i, j; for (i = 0, j = 9; i < 10; i++, j--) { ara2[j] = ara[i]; // ara-এর i তম মান, ara2-এর j তম ঘরে } for (i = 0; i < 10; i++) { ara[i] = ara2[i]; // আবার মূল array তে কপি } for (i = 0; i < 10; i++) { printf("%d\n", ara[i]); } return 0; }

এভাবে দ্বিতীয় array ব্যবহার করে প্রথম array টাকে পুরো উল্টো করে রাখা যায় ।


ইউজার ইনপুট নিয়ে যোগফল (sum of array)

ধরো, ইউজার থেকে ৬টা নাম্বার নিয়ে যোগ করতে হবে। আলাদা ৬টা ভ্যারিয়েবল না নিয়ে একটি int array-ই যথেষ্ট ।

#include <stdio.h> int main() { int Number[6]; int i, result = 0; for (i = 0; i < 6; i++) { printf("Enter %d no Number:\n", i + 1); scanf("%d", &Number[i]); // i নম্বর ঘরে মান রাখছি result = result + Number[i]; // সঙ্গে সঙ্গে যোগও করছি } printf("Result is: %d\n", result); return 0; }

এখানে Number array-তেই ইনপুটও রাখছি, আবার সেই মান নিয়েই sum করছি ।


ইনপুট কী কী দিয়েছি সেটাও দেখানো

#include <stdio.h> int main() { int Number[6]; int i, j, result = 0; for (i = 0; i < 6; i++) { printf("Enter %d no Number:\n", i + 1); scanf("%d", &Number[i]); result = result + Number[i]; } printf("Result is %d and you entered: ", result); for (j = 0; j < 6; j++) { printf("%d ", Number[j]); // সব ইনপুট প্রিন্ট করছি } return 0; }

একই array থেকে তুমি চাও তো যোগফল, চাও তো আবার সব ইনপুটের লিস্ট, দুটোই বের করতে পারবে ।

No comments:

Post a Comment

Featured post

How to Manage App Versions Like a Pro (Android + iOS Guide)