input function (ইনপুট ফাংশন)


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

Ans: যে ফাংশন ব্যবহার করে কীবোর্ড থেকে ডাটা গ্রহণ করে মেমোরিতে সংরক্ষণ করা হয় তাকে input function বলে।

Q2. সি প্রোগ্রামে ব্যবহৃত কয়েকটি ইনপুট ফাংশনের নাম লিখ।

উত্তরঃ সি প্রোগ্রামে ব্যবহৃত কয়েকটি ইনপুট ফাংশন- (১) scanf() (২) getchar() (৩) puts()

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

উত্তরঃ প্রোগ্রাম চলার সময় ব্যবহারকারীর কাছ থেকে প্রয়োজনীয় ডেটা নেয়ার জন্য বহুল ব্যবহৃত ইনপুট স্টেটমেন্ট হল scanf() যার সাহায্যে int, float, char ইত্যাদি টাইপের ডেটা ইনপুট করা হয়। scanf() এর জন্য লাইব্রেরি ফাইল বা হেডার ফাইল stdio.h প্রোগ্রামে সংযোগ করতে হয়।

scanf() এর সাধারণ গঠন হলঃ

        scanf(“Control String”, &variable);

এখানে Control String হল format specifier যা নির্দেশ করে ব্যবহারকারীর কাছ থেকে কোন টাইপের ডেটা নেয়া হবে। আর &variable নির্দেশ করে address of variable অর্থাৎ ব্যবহারকারী যে ডেটা ইনপুট করবে, তা উক্ত ভেরিয়েবলের জন্য নির্ধারিত মেমরি অ্যাড্রেসে সংরক্ষিত হবে। যেমনঃ

        int a;

        scanf(“%d”, &a);

এখানে %d হল ইনটিজার ডেটা টাইপের format specifier আর &a হল address of a যা নির্দেশ করে ইন্টিজার টাইপের a ভেরিয়েবলের মেমরি লোকেশন যেখানে ডেটা সংরক্ষিত হবে।

আবার দুই বা ততোধিক ডেটা ইনপুট নেয়ার জন্য scanf() স্টেটমেন্টের সাধারণ গঠন হলঃ

        scanf(“Control String”, &var1, &var2, ……………, var n);

এখানে যতটি ভেরিয়েবল থাকবে ততবার ফরমেট স্পেসিফায়ার লিখতে হবে। অবশ্য ভেরিয়েবল গুলো একই টাইপের ডেটার জন্য হতে পারে অথবা ভিন্ন ভিন্ন টাইপের ডেটার জন্যও হতে পারে।

Q4. scanf() এর প্রয়োজনীয়তা ব্যাখ্যা কর।

আগেই বলা হয়েছে scanf() ব্যবহার করে ব্যবহারকারীর কাছ থেকে প্রয়োজনীয় ডেটা ইনপুট নেয়া হয়। scanf() এর প্রয়োজনীয়তা বোঝার জন্য প্রথমে নিচের প্রোগ্রামটা দেখা যাক,

#include<stdio.h>
#include<conio.h>
int main()
{
    int a,b,c;
    a=5; b=6;
    c=a+b;
    printf("Addition of %d and %d is %d", a, b, c);
}

এই প্রোগ্রামটা শুধুমাত্র দুটো নির্দিষ্ট সংখ্যার যোগফল দেখাতে পারে। আমরা যদি বিভিন্ন সংখ্যার যোগফল বের করতে চাই তাহলে বার বার আমাদের source program পরিবর্তন করতে হবে। কিন্ত scanf() ব্যবহার করে এই প্রোগ্রামটির কার্যক্ষমতা আরো বাড়ানো যায়, নিচের প্রোগ্রামটি দেখা যাক,

#include<stdio.h>
#include<conio.h>
int main()
{
    int a,b,c;
    printf("Enter first value: \n");
    scanf("%d",&a);
    printf("Enter second value: \n");
    scanf("%d",&b);
    c=a+b;
    printf("Addition of %d and %d is %d", a, b, c);
}

ব্যাখ্যাঃ (১) একটি প্রোগ্রামকে রান করালে আউটপুটে শুধুমাত্র prinf() ফাংশনের ডাবল কোটেশানের মধ্যে যা লেখা থাকে তাই দেখা যায়। এই প্রোগ্রামে তিনটি prinf() থাকায় আউটপুটে এই তিনটি prinf() এক্সিকিউশান দেখা যাবে।

(২) এবার প্রোগ্রামটির ধারাবাহিক বিবরণ দেয়া যাক।  int a,b,c; এর মাধ্যমে a, b এবং c নামের এবং integer (পূর্ণসংখ্যা) টাইপের তিনটি চলক ঘোষণা করা হয়েছে। এর ফলে কম্পিউটারের মেমরির ২ বাইট জায়গা a এর জন্য, এর পাশের ২ বাইট জায়গা b এর জন্য এবং তার পাশের ২ বাইট জায়গা c এর জন্য নির্ধারিত হবে।

(৩) প্রথম printf(“Enter first value: \n”); কার্যকর হবে এবং আউটপুটে Enter first value: স্ট্রিংটি দেখা যাবে এবং \n এর কারণে একটি নিউ লাইন create হবে ফলে কার্সর নিচের লাইনে প্রথম ঘরে থাকবে।

(৪) scanf(“%d”,&a); এখানে %d এর কারণে কম্পিউটার ইউজারের কাছ থেকে একটি int টাইপ ডেটার জন্য অপেক্ষা করবে। এক্ষেত্রে ইউজার যে সংখ্যা টাইপ করে Enter প্রেস করবে তা a চলকের মেমোরি এড্রেসে রাখা হবে। ধরা যাক, ইউজার 25 টাইপ করে Enter প্রেস করল তাহলে a এর এড্রেসে 25 রাখা হবে,

(৫) দ্বিতীয় printf(“Enter second value: \n”); কার্যকর হবে এবং আউটপুটে Enter second value: স্ট্রিংটি দেখা যাবে এবং \n এর কারণে একটি নিউ লাইন create হবে ফলে কার্সর নিচের লাইনে প্রথম ঘরে থাকবে।

(৬) scanf(“%d”,&b); এখানে %d এর কারণে কম্পিউটার ইউজারের কাছ থেকে একটি int টাইপ ডেটার জন্য অপেক্ষা করবে। এক্ষেত্রে ইউজার যে সংখ্যা টাইপ করে Enter প্রেস করবে তা b চলকের মেমোরি এড্রেসে রাখা হবে। ধরা যাক, ইউজার 15 টাইপ করে Enter প্রেস করল তাহলে b এর এড্রেসে 15 রাখা হবে,

(৭) c=a+b; এই স্টেটমেন্টের মাধ্যমে a ও b তে রাখা ডেটা যোগ করে যোগফল c তে রাখা হবে। এখানে যেহেতু a ও b এর জন্য যথাক্রমে 25 এবং 15 নির্ধারণ করা হয়েছে তাই এই স্টেটমেন্ট কাজ করার পর c এর জন্য 40 নির্ধারিত হবে,

(৮) printf(“Addition of %d and %d is %d”, a, b, c); এই স্টেটমেন্টের মাধ্যমে a, b ও c এর ডেটা স্ক্রীনে দেখানো হবে। অর্থাৎ আউটপুটে Addition of 25 and 15 is 40 দেখা যাবে।

Q5. getchar() ফাংশনের সিনট্যাক্স উদাহরণ সহ ব্যাখ্যা কর।

উত্তরঃ কী বোর্ডের সাহায্যে একটি করে ক্যারাকটার ইনপুট নিয়ে তা কম্পিউটারের মেমোরিতে সংরক্ষণ করার জন্য ব্যবহৃত ফাংশন হল getchar()। আর getchar() ফাংশনের জন্য লাইব্রেরি ফাইল হল stdio.h যা getchar() ফাংশন ব্যবহারের পূর্বে প্রোগ্রামে সংযোজন করতে হয়। getchar() ফাংশনের সাধারণ গঠন (General Syntax) হলঃ

variable_name = getchar();

এখানে variable_name এর যেকোনো ডেটা টাইপের হতে পারে। নিচের প্রোগ্রামটি লক্ষ্য করি-

#include<stdio.h>
#include<conio.h>
int main()
{
  char a;
  printf("Enter any character: \n");
  a=getchar();
  printf("You have entered: \n");
  putchar(a);
}

ব্যাখ্যাঃ (১) char a; এর মাধ্যমে a নামের char (character) টাইপের একটি চলক ঘোষণা করা হল।

(২) printf(“Enter any character: \n”); এই স্টেটমেন্টটি কার্যকর হলে আউটপুটে Enter any character: লেখাটি প্রদর্শন করে কার্সর নিচের লাইনের প্রথম ঘরে চলে যাবে।

(৩) a=getchar(); এর মাধ্যমে কম্পিউটার ইউজারের কাছ থেকে একটি char টাইপ ডেটার জন্য অপেক্ষা করবে। এক্ষেত্রে ইউজার যে character টাইপ করে Enter প্রেস করবে তা a চলকের মেমোরি এড্রেসে রাখা হবে। ধরা যাক, ইউজার G টাইপ করে Enter প্রেস করল তাহলে a এর এড্রেসে G রাখা হবে। কোনো মেমোরি এড্রেসে character রাখার অর্থ হল তার ASCII Code সেভ করে রাখা।

(৪) printf(“You have entered: \n”); এই স্টেটমেন্টটি কার্যকর হলে আউটপুটে You have entered: লেখাটি প্রদর্শন করে কার্সর নিচের লাইনের প্রথম ঘরে চলে যাবে।

(৫) putchar(a); এর মাধ্যমে a এর এড্রেসে সংরক্ষিত ডেটাটি আউটপুটে প্রদর্শিত হবে। ফলে আউটপুট হবে-

3 responses to “input function (ইনপুট ফাংশন)”

  1. Tarajul says:

    hi

  2. Tarajul says:

    that’s fantastic

Leave a Reply

Your email address will not be published.