Output Function (আউটপুট ফাংশন): printf()


Q1. Output function কাকে বলে?

Ans: যে ফাংশন ব্যবহার করে ফলাফল মনিটরে প্রদর্শন করা হয় তাকে output function বলে।

Q2. C programming এ ব্যবহৃত কয়েকটি আউটপুট ফাংশনের নাম লিখ।

উত্তরঃ আউটপুট ফাংশনগুলো হচ্ছে- ১। printf()   ২। putchar() ৩। puts()

Q3. printf() ফংশনের সিনট্যাক্স বা গঠন বর্ণনা কর।

উত্তরঃ printf() ফাংশনের তিন ধরণের গঠন লক্ষ্য করা যায়। যথা-

১। শুধুমাত্র স্ট্রিং প্রদর্শন printf() ফাংশনের সাধারন গঠন নিম্নরূপ (General Syntax): printf(“String”);

String হিসেবে যেকোনো word বা character বা sentence হতে পারে। অর্থাৎ, printf() ফাংশন এর প্রথম বন্ধনী () ভিতর ডাবল কোটেশানের “ ” মধ্যে যা লেখা হয় printf() ফাংশনটি মনিটরের পর্দায় তাই প্রদর্শন করে।

যেমন printf(“This is my first C Programming Coding.”);

Output: This is my first C programming Coding.

২। শুধুমাত্র বিভিন্ন টাইপের ডাটার ভেরিয়েবলের মান প্রদর্শন করার জন্য printf() ফাংশনের সিনট্যাক্স হলঃ

printf(“format specifier”, variable);

অথবা, printf(“format specifiers”, var1, var2, var3, ….., var n);

৩। স্ট্রিংসহ বিভিন্ন টাইপের ডাটার ভেরিয়েবলের মান প্রদর্শন করার জন্য printf() ফাংশনের সিনট্যাক্স হলঃ

printf(“String format specifier”, variable);

অথবা, printf(“String format specifiers”, var1, var2, var3, ….., var n);

Q4. নিচের প্রোগ্রামটির আউটপুট দেখাও।

ব্যাখ্যাঃ (১) উপরের প্রোগ্রামটির main() ফাংশনের শুরুতে x, y নামের দুটি integer টাইপ চলক ঘোষণা করা হয়েছে এবং একই সাথে x এবং y এর ভেলু হিসেবে যথাক্রমে 5 এবং 0 নির্ধারণ করা হয়েছে।

(২) x++; এর মাধ্যমে x এর ভেলু 5 হতে এক বৃদ্ধি পেয়ে 6 এবং y=x+5; এর মাধ্যমে y এর নতুন ভেল্যু 6+5 বা 11 নির্ধারিত হয়েছে।

(৩) printf() ফাংশনের ভিতরে স্ট্রিং হিসেবে “The new value of x and y is: ” এবং দুটি ফরমেট স্পেসিফায়ার অর্থাৎ %d %d রয়েছে। ফলে মনিটরে বা ডিস্প্লেতে The new value of x and y is: স্ট্রিংটি সরাসরি এবং %d %d এর পরিবর্তে যথাক্রমে 6 এবং 11 প্রদর্শিত হয়েছে। ফলে আউটপুট দেখতে নিম্নরূপ হবে-

আউটপুটঃ The new value of x and y is: 6 11

Q5. নিচের প্রোগ্রামটির আউটপুট দেখাও।

ব্যাখ্যাঃ

১। int x=5, y=0; এর মাধ্যমে x এবং y নামের দুটি চলক ঘোষণা করা হয়েছে। একই সাথে x এবং y এর শুরু মান হিসেবে 5 এবং 0 নির্ধারিত হয়েছে।

২। x=x+5; এর মাধ্যমে x এর নতুন ভেলু হিসেবে 5+5 বা 10 নির্ধারিত হয়েছে।

৩। y=x+5; এর মাধ্যমে y এর নতুন ভেলু 10+5 বা 15 নির্ধারিত হয়েছে।

৪। printf(“Output: x=%d, y=%d”, y, x); এর মাধ্যমে আউটপুটে Output: x=15, y=10 প্রদর্শিত হয়েছে।

৫। কিন্তু (২) নং ধাপে বলা হয়েছে x এর মান 10 আবার (৩) নং ধাপে বলা হয়েছে y এর মান 15 কিন্তু আউটপুটে এর বিপরীত লক্ষ্য করা যাচ্ছে। এর কারণ হল printf() ফাংশনে ডাবল কোটেশনের বাহিরে যে দুটি চলক লিখা হয়েছে তাদের মধ্যে y কে প্রথমে এবং x কে দ্বিতীয় অবস্থানে রাখা হয়েছে। ফলে আউটপুটে প্রথম %d এর পরিবর্তে y নামক চলকের মান এবং দ্বিতীয় %d এর পরিবর্তে x নামক চলকের মান স্থাপিত হয়েছে।

আউটপুটঃ Output: x=15, y=10

৬। পাঠককে স্বচ্ছ ধারণা দেওয়ার জন্য উপরোক্ত প্রোগ্রামে ইচ্ছাকৃতভাবে ভুল করা হয়েছে।

৭। সঠিকভাবে printf(“Output: x=%d, y=%d”, x, y); লিখলে আউটপুট নিম্নরূপ হবে-

আউটপুটঃ x=10, y=15

Q5. নিচের প্রোগ্রামটির আউটপুট কোনটি?

ব্যাখ্যাঃ ১। উপরের প্রোগ্রামটিতে ফরম্যাটেড আউটপুটের একটি ব্যবহার দেখানো হয়েছে। ফরম্যাটেট আউটপুট বলতে মনিটরে ডেটা কীভাবে প্রদর্শিত হবে তার কিছু সুনির্দিষ্ট নির্দেশনাবলীর সমষ্টিকে বুঝায়।

২। printf(“%5d, x); এর মাধ্যমে কম্পাইলার প্রথমে আউটপুট দেখানোর জন্য স্ক্রীনে ৫ ক্যারাকটার জায়াগা নির্ধারণ করেছে।

৩। এরপর এই জায়াগায় সংশ্লিষ্ট চলকের ডেটাটি ডানদিকে থেকে দেখিয়েছে। একারণে (গ) অপশনে ৫ এর বামপাশে আরও চার ক্যারাকটার জায়াগা খালি রয়েছে। একারণে (গ) অপশনটি সঠিক আউটপুট।

৪। যদি চলকের ডেটা ৫ ক্যারাকটারের বেশি হয়, তাহলে কম্পাইলার সেই অনুযায়ী প্রয়োজনীয় জায়াগা নির্ধারণ করবে।

Q6. নিচের প্রোগ্রামটির সঠিক আউটপুট কোনটি?

Correct Answer: (ঘ)

ব্যাখ্যাঃ float type চলকের জন্য দশমিকের পর ৬ ঘর পর্যন্ত রাখা হয়।

Q7. নিচের প্রোগ্রামটির সঠিক আউটপুট কোনটি?

Correct Answer: (গ)

ব্যাখ্যাঃ (১) %5.2f লেখা মানে হলো দশমিকের পূর্বে ২ ঘর, দশমিকের জন্য ১ ঘর এবং দশমিকের পর ২ ঘর, অর্থাৎ, মোট ৫ ঘর জায়গা x এবং y চলকের জন্য বরাদ্দ হবে। নিচের চিত্রটি লক্ষ্য করি-

(২) x চলকের মান 5 হওয়ায় দশমিকের বামের একটি ক্যারাকটার ফাঁকা থাকবে এবং দশমিকের পরে দুটি ক্যারাকটার 0 (শূন্য) দিয়ে পূর্ণ থাকবে।

(৩) y চলকের মান 45.88889 হওয়ায় দশমিকের বামের দুটি ক্যারাকটার স্পেসে 45 এবং দশমিকের ডানের দুটি ক্যারাকটার স্পেসে 88 থাকার কথা থাকলেও two decimal precision rule ব্যবহার করে 88 এর পরিবর্তে 89 দিয়ে পূর্ণ রয়েছে। তাই সঠিক উত্তর (গ) হবে।

নিচের টেবিলটিতে ফরম্যাটেট আউটপুটের বিভিন্ন অবস্থার বিস্তারিত বিবরণ উল্লেখ করা হল।

Q8. format specifier (ফরমেট স্পেসিফায়ার) সম্পর্কে আলোচনা কর।

format specifierUseSupported Data Type
%csingle character প্রদর্শন করার জন্য char
unsigned char
%d integer সংখ্যা প্রদর্শন করার জন্য short
unsigned shor
int
long
%l or %ld or %liinteger সংখ্যা প্রদর্শন করার জন্য long
%e floating point number কে exponential notation e তে প্রদর্শন করার জন্য float 
double
%E
floating point number কে exponential notation E তে প্রদর্শন করার জন্য float 
double
%f floating point number প্রদর্শন করার জন্য float
%g floating point number কে %f অথবা %e format এ প্রদর্শন করার জন্য float 
double
%G floating point number কে %f অথবা %E format এ প্রদর্শন করার জন্য float 
double
%o octal string প্রদর্শন করার জন্য short unsigned short
int
unsigned int
long
%s string টাইপের ডেটা প্রদর্শন করার জন্য char *
%u unsigned integer প্রদর্শন করার জন্য unsigned int unsgiend long
%x

hexadecimal integer (a….f) প্রদর্শন করার জন্য short
unsigned short
int
unsigned int
long
%X hexadecimal integer (A….F) প্রদর্শন করার জন্য short
unsigned short
int
unsigned int
long

Q9. Escape Sequence ক্যারাকটার সম্পর্কে আলোচনা কর।

উত্তরঃ C programming এ ব্যবহৃত কিছু কিছু বিশেষ ক্যারাকটার (যেমনঃ \n, \t) মনিটরের পর্দায় প্রদর্শিত হয় না। এ ধরণের ক্যারাকটারগুলোকে বল হয় Escape Sequence ক্যারাকটার, যার অন্য নাম হচ্ছে ব্যকস্ল্যাশ কনস্ট্যান্ট ক্যারাকটার। এই ধরণের বিশেষ ক্যারাকটারগুলো সাধারণত prinf() ফাংশনের মাধ্যমে ব্যবহার করা হয়। C programming এ যে সমস্ত Escape Sequence ক্যারাকটার ব্যবহৃত হয় তার নাম ও ব্যবহার নিচে টেবিল আকারে দেয়া হল।

Q10. নিচের প্রোগ্রামটির আউটপুট দেখাও।

ব্যাখ্যাঃ এখানে দুটি printf() ফাংশন থাকার কারণে আউটপুটে দুটি লাইন প্রদর্শিত হয়েছে কিন্তু লাইন দুটি পাশাপাশি প্রদর্শিত হয়েছে যদিও প্রোগ্রামে printf() ফাংশনদ্বয় পরপর দুটি লাইনে লেখা আছে। এবার নিচের প্রোগ্রামটি লক্ষ্য করি-

ব্যাখ্যাঃ এখানে প্রথম printf() ফাংশনে ডাবল কোটেশানের (“ ”) মধ্যে Physics Plus ICT লেখা আছে এবং এর পরে \n থাকার জন্য আউটপুটে নতুন লাইন সৃষ্টি হয়েছে। যার কারণে Physics Plus ICT লাইনটি প্রদর্শিত হওয়ার পর নতুন লাইনে Makes Learning Easier লাইনটি প্রদর্শিত হয়েছে।

Q10. putchar() ফাংশনের গঠন আলোচনা কর।

উত্তরঃ সি প্রোগ্রামে ব্যবহৃত আরেকটি আউটপুট ফাংশন হল putchar() যা at a time একটি ক্যারাকটার মনিটরের পর্দায় প্রদর্শন করে। putchar() ফাংশনটির প্রয়োজনীয় লাইব্রেরি হেডার ফাইল হল stdio.h

putchar() ফাংশনের সিনট্যাক্স নিন্মরুপঃ

        putchar (variable);

এখানে ভেরিয়েবলটি অবশ্যই char টাইপের হতে হবে। উদাহরণঃ নিচের প্রোগ্রামটি লক্ষ্য করি-

#include<stdio.h>
#include<conio.h>
int main()
{
  	char ch='D';
  	putchar (ch);
}

ব্যাখ্যাঃ (১) char ch= ‘D’; এর মাধ্যমে ch নামের char টাইপের একটি চলক ঘোষণা করা হয়েছে। এবং ch চলকের একটি ভেলু D নির্ধারণ করা হয়েছে।

(২) putchar (ch); ফাংশনটিতে ch ভেরিয়েবলকে প্যারামিটার হিসেবে লেখা হয়েছে। এর ফলে কম্পাইলার ch ভেরিয়েবলে জমাকৃত ডেটা ‘D’ কে আউটপুটে প্রদর্শন করবে।

Leave a Reply

Your email address will not be published.