একটি অ্যারে একই ডাটা টাইপের উপাদানগুলির একটি গ্রুপ। ফাংশনগুলিতে মূল প্রোগ্রামে বা এর বাইরে অ্যারেতে অনেকগুলি ফাংশন সম্পাদিত হয়। C ++ এ, ফাংশনের ক্ষেত্রে, আমাদের সেগুলি পাস করতে হবে। এটি আর্গুমেন্ট হিসাবে পরামিতিগুলির মাধ্যমে করা হয়। এই আর্গুমেন্টগুলি বিভিন্ন উপায়ে হতে পারে, হয় বড় আকারের অ্যারে বা পয়েন্টার অ্যারের মাধ্যমে। এই টিউটোরিয়ালে, আমরা ফাংশনের বিভিন্ন প্যারামিটার ব্যবহার করে অ্যারে ট্রান্সফারের কিছু প্রধান দিক কভার করব।
বাক্য গঠন
[ফেরতটাইপ] [নামফাংশন] (তথ্যটাইপঅ্যারে নাম[অ্যারেআকার]){
ফাংশনশরীর
}
উদাহরণ 1
একটি উদাহরণ বিবেচনা করুন যেখানে আমাদের C ++ প্রোগ্রামে শিক্ষার্থীদের চিহ্ন মুদ্রণ করতে হবে। এই মুদ্রণটি মূল প্রোগ্রামের পরিবর্তে একটি পৃথক ফাংশনে নেওয়া হবে। বিপরীতে, আমরা মূল প্রোগ্রামে ইনপুট নেব এবং এই মানগুলিকে ফাংশনে একটি প্যারামিটার হিসাবে স্থানান্তর করব। ফাংশন বিবেচনা করুন। এর প্যারামিটারে, একটি অ্যারে ডেটাটাইপ ভেরিয়েবল রয়েছে যা একটি অ্যারের মান গ্রহণ করবে। সম্পূর্ণ অ্যারে এখানে ঘোষণা করা হয়েছে। চিহ্নগুলি লুপের সাহায্যে প্রদর্শিত হবে। অ্যারে হিসাবে, আমরা তাদের থেকে মুদ্রণ পেতে loops প্রয়োজন।
মূল ফাংশনের দিকে অগ্রসর হয়ে, আমরা এর আকার এবং মানগুলির সাথে একটি অ্যারে ঘোষণা করি। যেহেতু আমরা ফাংশন কল করতে হবে। সুতরাং পদ্ধতি হল যে আমরা একটি যুক্তি হিসাবে প্যারামিটারে অ্যারের নামের সাথে ফাংশনের নাম লিখি। আমরা অ্যারের আকার নির্ধারণ করিনি।
প্রদর্শন(চিহ্ন);
প্যারামিটারে যুক্তিটি অ্যারের মেমরির ঠিকানা বোঝায়। ফাংশনের হেডারের প্যারামিটারে, int m [7] int *m এ রূপান্তরিত হয়। এটি মূল অ্যারের মতো একই ঠিকানা অন্তর্ভুক্ত করে। যখন আমরা ফাংশনের মূল অংশে m [5] ব্যবহার করি, তখন আমরা মূল অ্যারে ম্যানিপুলেট করতে যাচ্ছি।
অকার্যকর প্রদর্শন(int মি[7] )
লিনাক্স অপারেটিং সিস্টেমে, টার্মিনালের মাধ্যমে আউটপুট পাওয়ার জন্য কিছু পূর্বশর্ত ইনস্টল করা প্রয়োজন। এটি কম্পাইল করার জন্য একটি কম্পাইলার প্রয়োজন এবং তারপর কমান্ড প্রম্পট টার্মিনালে কোডটি চালান। G ++ সংকলনের জন্য C ++ এ ব্যবহৃত হয়।
$g ++ -অথবাcode3 code3.c
$/কোড 3
যেখানে –o উৎস ফাইল থেকে আউটপুট ফাইলে আউটপুট সংরক্ষণ করতে ব্যবহৃত হয়।
আউটপুট থেকে, আপনি লক্ষ্য করতে পারেন যে প্রধান ফাংশনে অ্যারেতে শুরু করা সমস্ত সংখ্যা পাস করা হয়েছে এবং ডিসপ্লে ফাংশনের মাধ্যমে প্রদর্শিত হয়েছে।
উদাহরণ 2
প্যারামিটারের মধ্য দিয়ে অ্যারি পাস করার আরেকটি উদাহরণ হল ফাংশনে একটি বহুমাত্রিক অ্যারে পাস করা। এখানে একটি দ্বিমাত্রিক অ্যারে (2d) ব্যবহার করা হয়েছে। প্রধান ফাংশনে, আমাদের একটি অ্যারে আরম্ভ করতে হবে।
Int অ্যারে[সারি][কলাম]2d অ্যারে আরম্ভের মধ্যে রয়েছে সারি এবং কলাম। এবং তাদের আদেশ পুরো প্রোগ্রাম ধরে রাখা হয়। 2d অ্যারে বন্ধনীতে দুটি সংখ্যা দিয়ে শুরু হয়। আমরা শুরুতে 2 টি কলাম বর্ণনা করেছি।
প্রদর্শন(একের উপর);আমরা শুধুমাত্র একটি যুক্তি হিসেবে প্যারামিটারে অ্যারের নাম ব্যবহার করব।
এখন আমরা ডিসপ্লে ফাংশনের কার্যকারিতা দেখব। ফাংশন শুরু হওয়ার সাথে সাথে, মূল প্রোগ্রামের মাধ্যমে ফাংশন কল দ্বারা পাস করা একটি অ্যারে গ্রহণ করতে একটি অ্যারে ভেরিয়েবল লাগে।
অকার্যকর প্রদর্শন(int n[][2] )কলামের সংখ্যা উল্লেখ করা বাধ্যতামূলক। তুলনায়, সারির ক্ষেত্রে এটি অপরিহার্য নয়। এই কারণেই আমরা সারি বন্ধনী খালি রেখেছি কারণ আমরা লুপ ব্যবহার করে ফলাফল প্রদর্শন করি। কিন্তু 2-মাত্রিক অ্যারের ক্ষেত্রে, আমরা লুপের জন্য একটি নেস্টেড ব্যবহার করি। এটিতে দুটি ভেরিয়েবল সহ বিবৃতির জন্য দুটি রয়েছে।
আমরা একই কম্পাইলার ব্যবহার করে আউটপুট দেখতে পারি। আপনি ফলাফল দেখতে পারেন যে প্রতিটি মান সারি এবং কলাম নম্বর দিয়ে আলাদাভাবে প্রদর্শিত হয়।
উদাহরণ 3
এই উদাহরণটি আগেরগুলির থেকে কিছুটা ভিন্ন। এই উদাহরণে, আমরা ফাংশন কলের প্যারামিটারে অ্যারের আকার উল্লেখ করি। এবং ফাংশন ডিক্লারেশনে, একটি অ্যারের আকার গ্রহণের জন্য একটি ভেরিয়েবলও চালু করা হয়।
মূল প্রোগ্রাম থেকে শুরু করে, একটি অ্যারে মান দিয়ে শুরু করা হয়।
গড় = গড়(ভারসাম্য,5);ফলাফল গড় পরিবর্তনশীল সংরক্ষণ করা হবে। শুধুমাত্র অ্যারের নাম পাস করার পরিবর্তে প্যারামিটারে অ্যারের সাইজও যোগ করা হয়।
প্যারামিটারে অ্যারের টাইপ ভেরিয়েবল এবং অ্যারের সাইজ পাওয়ার জন্য একটি পূর্ণসংখ্যা ডেটা টাইপ রয়েছে। মূল প্রোগ্রামের ধরন int কারণ এটি ফাংশন থেকে একটি পূর্ণসংখ্যা মান পাবে। অন্যথায়, এটি অন্যান্য ক্ষেত্রে বাতিল।
এখন আমরা আউটপুট দেখব। এই মানটি দৃশ্যমান হয় ছবির মাধ্যমে ফাংশন থেকে প্রাপ্ত হয়।
উদাহরণ 4
এই উদাহরণটি অ্যারেতে সর্বাধিক সংখ্যা নির্ধারণের সাথে সম্পর্কিত, আসলে, দুটি অ্যারে থেকে। এখানে আমরা প্রধান প্রোগ্রামে দুটি অ্যারে আরম্ভ করি। উভয় অ্যারে পৃথক ফাংশন কলগুলিতে ফাংশনে আলাদাভাবে প্রেরণ করা হয়
প্রিন্টম্যাক্স(arr1);প্রিন্টম্যাক্স(arr2);
যেখানে printMax ফাংশনের নাম এবং arr হল অ্যারে। ফলাফলটি ফাংশন থেকে ফিরে আসবে না এবং সেখানে প্রদর্শিত হবে। লুপের জন্য উভয় অ্যারেতে সর্বাধিক সংখ্যা গণনা করা হবে। If- স্টেটমেন্ট লুপের ভিতরে ব্যবহার করা হয়। ফাংশনের হেডার হল:
অকার্যকর মুদ্রণ সর্বোচ্চ(int arr[5])
যেহেতু উভয় অ্যারে বিভিন্ন মান ধারণ করে, উভয় ফলাফল ভিন্ন হবে।
উদাহরণ 5
এই উদাহরণটি প্যারামিটারগুলির মধ্য দিয়ে যাওয়া সমস্ত ধরণের অ্যারের সারাংশ। এগুলি আকারের, আকারবিহীন বা পয়েন্টার অ্যারে হতে পারে। আমরা একে একে তাদের বিবেচনা করব।
মূল প্রোগ্রামে, প্রতিটি ফাংশন প্রথমে ঘোষণা করা হয়। আপনি তাদের ঘোষণায় পার্থক্য নির্দেশ করতে পারেন।
পূর্ণসংখ্যা 1(int tmp[5]);পূর্ণসংখ্যা 2(int tmp[]);
যোগফল 3(int*tmp);
এই তিনটি অ্যারে চিত্রিত করে যে ফাংশনে এই পরামিতিগুলি থাকা অ্যারেগুলি পাস করা যেতে পারে।
ফাংশন শুরুর পরে, আমাদের প্রধান প্রোগ্রাম রয়েছে যেখানে অ্যারে ঘোষণা করা হয়েছে। পূর্ববর্তী উদাহরণের বিপরীতে, দুটি অ্যারের পরিবর্তে একটি অ্যারে আরম্ভ করা হয়, তবে এটি তিনটি ভিন্ন উপায়ে পাস করা হয়। এখন আমরা এখানে করা ফাংশন কলগুলি দেখতে পাব।
মোট = যোগফল 1(বিক্রয়);মোট = যোগফল 2(বিক্রয়);
মোট = sume3(বিক্রয়);
আউটপুট প্রধান ফাংশনে প্রদর্শিত হয়, তাই একটি পরিবর্তনশীল ফাংশন দ্বারা ফেরত মান গ্রহণ করার জন্য ঘোষণা করা হয়। তিনটি ফাংশন কল থেকে, আপনি দেখতে পারেন যে এখানে পরামিতি একই। প্রতিটি অ্যারেতে শুধুমাত্র একটি অ্যারের নাম থাকে। কিন্তু অ্যারে গ্রহণ করে এমন ফাংশনের পরামিতিগুলি ভিন্ন।
তিনটি ফাংশনের অভ্যন্তরীণ দেহ একই, কারণ সমস্ত সংখ্যার যোগফল লুপের ব্যবহার থেকে গণনা করা হয়। পদ্ধতি এবং অ্যারের মান একই; শুধুমাত্র ফাংশন পরামিতি মধ্যে বৈষম্য আছে। অতএব, এটি প্রমাণিত হয় যে আমরা হয় একটি অ্যারে গ্রহণ করতে অথবা একই কার্যকারিতা সম্পাদনের জন্য বিভিন্ন পদ্ধতি ব্যবহার করতে পারি এবং উত্তর একই। আমরা আউটপুট চেক করে এটি নিশ্চিত করতে পারি। একই সংকলন পদ্ধতি ব্যবহার করে, আমরা নীচের সংযুক্ত ছবিতে দেখানো আউটপুট পাব।
আপনি দেখতে পাচ্ছেন যে তিনটি ব্যবহৃত ফাংশনের জন্য উত্তর একই।
উপসংহার
এই নিবন্ধে, ব্যবহারকারী প্যারামিটারে একটি অ্যারের পাস করার পদ্ধতি সম্পর্কে জানতে পারবে। মূল্য ফেরত বা আর্গুমেন্টে পাস করার সময় অনেক ক্ষেত্রে অ্যারেগুলি পরিচালনা করা যায়।