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