Sunday, December 8, 2013

C প্রোগ্রামিং তিন অধ্যায় - Scanf এর মাধ্যমে - Data Manually Input নেওয়ার নিয়ম- PART 1

Data Manually Input নেয়াঃ
আগের পর্বগুলোতে আমরা কোন ভেরিয়েবল এর মান নির্দিষ্ট করে দিতাম। তারপর স্টেটমেন্ট লিখে এই ডাটার জন্য আউটপুট করতাম।নিচের কোডটির মত কোড আমরা আগেও করেছিঃ


#include 
int main()
{
      int a,b,c;
      a = 100;
      b = 200;
      c = b/a;
      printf("%d %d %d", a,b,c);
      return 0;
}



উপরের কোডটিকে কোডব্লকস এ লিখে রান করাও।
আউটপুটঃ
100 200 2
এখন থেকে আমরা আর কোন ভেরিয়েবল এর মান নির্দিষ্ট করে দিব না। উপরের কোড এ দেখো, a = 100 এবং b = 200 দেয়া আছে। এখানে a এবং b এর মান নির্দিষ্ট। যদি এই মান পরিবর্তন করতে হয় তাহলে উপরের কোড টিকে আবার এডিট করে মান পরিবর্তন করতে হবে।
তাই এখন থেকে আমরা ভেরিয়েবল এর মান গুলো ম্যানুয়েলি নিবো। মানে কোড লিখে রান করাবো। রান করার পর আমরা ভেরিয়েবল এর মান ইনপুট দিব। তারপর কোড সেই মানগুলো যোগ বিয়োগ গুন ভাগ যা তুমি বলে দিবে সেটা করে তোমাকে আবার আরো একটা মান প্রিন্ট করে দেখাবে।
তাহলে চল শুরু করি ম্যানুয়েলি ভেরিয়েবল এর মান input নেয়া।
নিচের প্রোগ্রামটি লিখে রান করাওঃ


#include 
int main()
{
      int a,b,c;
      printf("Input Value of a : ");
      scanf("%d", &a);
      printf("Input Value of b : ");
      scanf("%d", &b);
      c = a+b;
      printf("\nTotal = %d+%d=%d\n",a,b,c);
      return 0;
}


এখন খেয়াল করো, প্রথমে একটা লাইন প্রিন্ট হয়েছে, যেটাতে বলা আছে a এর জন্য মান ইনপুট দিতেঃ
নিচের লাইনের মতঃ
Input Value of a :
এখন তুমি a এর মান 100 দাও। enter চাপো। এখন আরেকটা লাইন প্রিণ্ট হয়েছে, যেটাতে বলা আছে b এর জন্য মান ইনপুট দিতেঃ
নিচের লাইনের মতঃ
Input Value of b :
এখন তুমি b এর মান 200 দাও। enter চাপো।
এখন দেখো, কি প্রিন্ট হয়েছে?
Total = 100+200=300
তাইনা???????
হুম, তাই।
নিচের ছবিতে দেখতে পারোঃ
এখন একটা নতুন জিনিস শিখেছো। কিভাবে ডাটা ইনপুট নিতে হয়।
উপরের কোড এ দেখোঃ
  1. scanf("%d", &a);
  2. scanf("%d", &b);
এই রকম দুটি লাইন আছে।
scanf এর কাজ হল নির্দিষ্ট একটা ভেরিয়েবল এর জন্য Value Input নেয়া যেটাকে প্রোগ্রামিং এর ভাষায় value assign করা বলা হয়ে থাকে।
উপরের প্রথম লাইনে দেখো
  1. Scanf("%d", &a);
এখানে তুমি %d দিয়ে বলে দিচ্ছো Integer Input নিতেছো। আর &a দিয়ে বলে দিচ্ছো এই %d তে a এর মান Assign করতে। আশা করি বুঝতে পেরেছো।
এই scanf এর কাজ হল ইনপুট নেয়া আর printf এর কাজ হল প্রিন্ট করা।
তাহলে চল একটা ভুল কোড করি এবং দেখি scanf এর মাধ্যমে যে ভেরিয়েবল এর মান Assign করব সেটার আগে & চিন্‌হ না দিলে কি হয়ঃ
নিচের কোড টি লিখ এবং রান করাওঃ

#include 
int main()
{
      int a,b,c;
      printf("Input Value of a : ");
      scanf("%d", &a);
      printf("Input Value of b : ");
      scanf("%d", b);
      c = a+b;
      printf("\nTotal = %d+%d=%d\n",a,b,c);
      return 0;
}


উপরের কোড এ দেখো
  1. scanf("%d", b);

দিয়েছি কিন্তু b এর আগে & দেয়া হয়নি। এখন কোড টি রান করে দেখো...
রান করানোর পর তুমি তোমার ইচ্ছে মত a আর b এর মান ইনপুট দাও...
a আর b এর মান ইনপুট দিয়েছো। আর একটু পরে কি দেখলে?
কিছু বুঝেছো?? কারন কি?
এখানে দেখো, scanf এর মধ্যে ভেরিয়েবল ডিক্লেয়ার করেছি %d দিয়ে, তারপর বলে দিয়েছি a এর মান Assign করার জন্য। কিন্তু a এর পুর্বে & দেইনি। তাই কম্পিউটার কোড রান করাতে গিয়ে যখন দেখল scanf ফাংশনের মধ্যে ভেরিয়েবল এর জন্য &(এম্পাচেডার) নেই তখন কম্পিউটার b এর জন্য মান কোথাও রাখতে পারেনি তাই এই কোড কাজ করা বন্ধ করে দিয়েছে, তাহলে a এর মান নেবার সময় বন্ধ হল না কেনো?? কারন a এর সামনে & ছিলো তাই a এর মান ইনপুট নিয়েছে।
আশা করি উপরের এই scanf ফাংশনের কাজ বুঝতে পেরেছো।
তাহলে চল নিচের কোডটি কোডব্লকস এ লিখতে রান করাওঃ

#include 
int main()
{
      int a,b,c;
      scanf("%d %d %d", &a,&b,&c);
      printf("%d %d %d\n",a,b,c);
      return 0;
}


এখন ইচ্ছে হলে তুমি ইনপুট নিচে নিচে ও দিতে পারো আবার পাশা পাশি একটা স্পেস দিয়েও দিতে পারো।
মানেঃ
5
10
15
অথবা
5 10 15
দুইভাবে ই ইনপুট দিতে পারো।
আউটপুট কি আসবে??
5 10 15
এখন নিচের কোড টি লিখে রান করাওঃ

#include 
int main()
{
      int a,b,c;
      scanf("%d %d %d", &a,&b,&c);
      printf("%d %d %d\n",a+b,b-c,c*a);
      return 0;
}


ইনপুট দাওঃ
10 15 20
আউটপুটঃ
25 -5 200
এতক্ষন শুধুমাত্র Integer নিয়ে কোড লিখলাম, এখন Double, float, Character Type ভেরিয়েবল নিয়ে কিছু কোড প্র্যাকটিস করা যাক...
নিচের কোড টি লিখে রান করাওঃ

#include 
int main()
{
    float a,b,sum;
    scanf("%f %f", &a,&b);
    sum = a+b;
    printf("%f\n",sum);
    return 0;
}


আউপুটঃ(ইনপুট দাও নিজের মত আমি ১০০ আর ২০০ দিয়েছি)
Character ইনপুটঃ

#include 
int main()
{
      char a;
      scanf("%c", &a);
      printf("%c", a);
      return 0;
}


উপরের কোড গুলো প্র্যাকটিস করতে থাকো।

No comments:

Post a Comment