Prolog এ Input এবং Output ফাংশন

Input এবং Output Handling (ইনপুট এবং আউটপুট হ্যান্ডলিং) - প্রোলগ প্রোগ্রামিং (Prolog Programming) - Computer Programming

369

প্রোলগে ইনপুট এবং আউটপুট ফাংশনগুলো মূলত স্ট্যান্ডার্ড ইনপুট (keyboard input) এবং স্ট্যান্ডার্ড আউটপুট (console output) এর মাধ্যমে তথ্য গ্রহণ ও প্রদানে ব্যবহৃত হয়। প্রোলগে ইনপুট এবং আউটপুট পরিচালনা করার জন্য কিছু নির্দিষ্ট বিল্ট-ইন পেডিকেট রয়েছে, যেমন write/1, read/1, nl/0, flush_output/0, এবং অন্যান্য।


1. write/1 - আউটপুট প্রিন্ট করা

write/1 পেডিকেটটি প্রোলগে কোনো ভ্যালু বা তথ্য আউটপুট (প্রিন্ট) করতে ব্যবহৃত হয়।

ব্যবহার:

write(Term).

এখানে, Term হলো যে কোনো টার্ম, যা আপনি আউটপুট হিসেবে প্রিন্ট করতে চান।

উদাহরণ:

?- write('Hello, World!').

আউটপুট:

Hello, World!

এছাড়া আপনি ভেরিয়েবল বা অন্যান্য এক্সপ্রেশনও আউটপুট করতে পারেন:

?- X = 5, write(X).

আউটপুট:

5

2. nl/0 - নতুন লাইনে আউটপুট

nl/0 পেডিকেটটি একটি নতুন লাইন (newline) প্রিন্ট করতে ব্যবহৃত হয়, যা আউটপুটের পর নতুন লাইনে চলে যেতে সহায়ক।

ব্যবহার:

nl.

উদাহরণ:

?- write('Hello'), nl, write('World').

আউটপুট:

Hello
World

এখানে, nl পেডিকেট ব্যবহার করার ফলে Hello এর পর একটি নতুন লাইন তৈরি হয় এবং তারপরে World প্রিন্ট হয়।


3. read/1 - ইনপুট পড়া

read/1 পেডিকেটটি স্ট্যান্ডার্ড ইনপুট (keyboard) থেকে কোনো তথ্য গ্রহণ করতে ব্যবহৃত হয়। এটি ব্যবহারকারীর থেকে ইনপুট নেয় এবং একটি প্রোলগ টার্ম হিসেবে সেটি পড়ে।

ব্যবহার:

read(Term).

এখানে, Term হলো সেই ভেরিয়েবল যেখানে ইনপুটটি সংরক্ষণ হবে।

উদাহরণ:

?- write('Enter a number: '), read(X), write('You entered: '), write(X).

এটি প্রথমে Enter a number: প্রিন্ট করবে এবং তারপর ব্যবহারকারীর ইনপুট গ্রহণ করবে। উদাহরণস্বরূপ, যদি ব্যবহারকারী 5 ইনপুট দেয়, তবে আউটপুট হবে:

Enter a number: 5
You entered: 5

4. flush_output/0 - আউটপুট ফ্লাশ করা

flush_output/0 পেডিকেটটি সমস্ত আউটপুট ফ্লাশ (output flush) করতে ব্যবহৃত হয়। এটি তখন ব্যবহৃত হয় যখন আপনি নিশ্চিত হতে চান যে আউটপুট কনসোল বা স্ক্রীনে দ্রুত প্রদর্শিত হবে।

ব্যবহার:

flush_output.

উদাহরণ:

?- write('Processing...'), flush_output, sleep(2), write(' Done!').

এখানে, flush_output/0 আউটপুট Processing... স্ক্রীনে দ্রুত প্রিন্ট করবে, এবং তার পর sleep(2) ফাংশন ব্যবহার করা হয়েছে যাতে কিছু সময় (2 সেকেন্ড) পর Done! আউটপুট হয়।


5. get_char/1 - একক ক্যারেক্টার ইনপুট পড়া

get_char/1 পেডিকেটটি ব্যবহারকারী থেকে একটি একের অধিক ক্যারেক্টার ইনপুট হিসাবে গ্রহণ করতে ব্যবহৃত হয়। এটি ব্যবহারকারীর প্রথমে চাপা ক্যারেক্টার গ্রহণ করে এবং সেগুলির উপর ভিত্তি করে প্রোগ্রাম চলমান রাখে।

ব্যবহার:

get_char(Char).

এখানে, Char হল সেই ভেরিয়েবল যেখানে ইনপুটটি সংরক্ষণ করা হবে।

উদাহরণ:

?- write('Press a key: '), get_char(Key), write('You pressed: '), write(Key).

এটি Press a key: প্রিন্ট করবে এবং তারপর ব্যবহারকারী একটি কী চাপলে তার ফলাফল হিসেবে সেই কী প্রদর্শিত হবে।


6. read_line_to_string/2 - পুরো লাইনে স্ট্রিং ইনপুট

read_line_to_string/2 পেডিকেটটি ব্যবহারকারীর থেকে একটি পুরো লাইন ইনপুট হিসেবে নেয় এবং সেটি একটি স্ট্রিং হিসেবে সংরক্ষণ করে।

ব্যবহার:

read_line_to_string(Stream, String).

এখানে, Stream হলো ইনপুট স্ট্রিম (সাধারণত user_input), এবং String হলো সেই ভেরিয়েবল যা ইনপুট স্ট্রিং সংরক্ষণ করবে।

উদাহরণ:

?- write('Enter a line of text: '), read_line_to_string(user_input, Line), write('You entered: '), write(Line).

এটি ব্যবহারকারী থেকে একটি লাইন ইনপুট নেবে এবং সেটি প্রিন্ট করবে।


সারসংক্ষেপ:

প্রোলগে ইনপুট এবং আউটপুট পরিচালনা করার জন্য বেশ কিছু বিল্ট-ইন পেডিকেট রয়েছে। write/1 এবং nl/0 ব্যবহার করে আউটপুট প্রদর্শন করা হয়, এবং read/1 বা get_char/1 ব্যবহার করে ইনপুট নেওয়া হয়। flush_output/0 এবং read_line_to_string/2 পেডিকেটগুলি বিশেষ পরিস্থিতিতে আউটপুট এবং ইনপুট আরও কার্যকরভাবে পরিচালনা করতে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...