Showing posts with label C প্রোগ্রামিং - তিন অধ্যায় - Scanf. Show all posts
Showing posts with label C প্রোগ্রামিং - তিন অধ্যায় - Scanf. Show all posts

Saturday, January 4, 2014

C প্রোগ্রামিং - তিন অধ্যায় - Input নেয়ার কিছু ফাংশনঃ scanf () , getchar ( ) -PART- 4

Data Input And Output
Input নেয়ার কিছু ফাংশনঃ scanf() , gets() , getchar() , getch();

scanf(): এই ফাংশনটা দিয়ে int, float, double, single character, string input হিসেবে নেয়া যায়।
example টা দেখুন।


 

  1: #include<stdio.h>
  2: int main()
  3: {
  4:     int i;
  5:     float f;
  6:     char ch;
  7:     printf(" input a number :");
  8:     scanf("%d",&i);
  9:     printf("your entered number is %d \n\n",i);
 10:     printf(" input a floating number :");
 11:     scanf("%f",&f);
 12:     printf("your entered floating number is %f \n\n",f);
 13:     getchar();
 14:     printf(" input a character  :");
 15:     scanf("%c",&ch);
 16:     printf("your entered character is %c \n\n",ch);
 17:     return 0;
 18: }

এখানে উল্লেখযোগ্য ব্যাপার হচ্ছে scanf() function এর মধ্যে & সাইন ব্যবহার।  যখন কোন variable declare করা হয় তখন র‌্যাম এ ঐ variable এর জন্য জায়গা তৈরি হয়। input নেয়ার সময় C তে ঐ memory location উল্লেখ করা লাগে। তাই &সাইন দেয়া হয়েছে। যদি & সাইন ব্যবহার না করেন তবে প্রোগ্রাম compile করলেও কোন ভুল ধরবে না। কিন্তু প্রোগ্রাম রান করে ইনপুট দেয়ার সময় প্রোগ্রাম্ ক্রাশ করবে। একে runtime error ও বলা হয়। আউটপুট এ শুধুমাত্র ভেরিএবল এর নাম দিলেই হয়। সেখানে & সাইন ব্যবহার করা লাগে না।

scanf() function এর আলাদাকারী(separator) কী হচ্ছে Enter ও space। scanf() এ int,float,double ইনপুট দেয়ার সময় নাম্বার ইনপুট না দেয়া পর্যন্ত সে wait করে। কিন্তু charater(char)type data ইনপুট নেয়ার সময় space বা enter এর ASCII value নিয়ে নেয়।

getchar() function কোন একটি character (single) ইনপুট নেয়ার জন্য ব্যবহার হয়। তাই তৃতীয় ব্লক এ single character ইনপুট নেয়ার আগে getchar() ব্যবহার করা হয়েছে float এবং character এর মধ্যবর্তী separator টা নেয়ার জন্য। getchar() টা ব্যবহার না করলে আউটপুট এর character এ কিছু দেখাবে না।
Output with getchar() function:



Typing 512 then enter



Type 3.565 then enter



3.565 টাইপ করার পরবর্তী এন্টার টা getchar() function এ ঢুকেছে। তারপর একটি character type করে এন্টার দিন।


প্রোগ্রাম এর শেষ লাইন return 0; execute করে প্রোগ্রাম শেষ হল।

printf() ফাংশন এ একাধিক ভেরিএবল এর আউটপুট একসাথে দেখার জন্য প্রতিটি specifier এর জন্য ভেরিএবল এর নাম ক্রমানূসারে লিখলেই হয়।

printf(“var1=%d, var2=%f ,var3=%c\n” , var1,var2,var3);

char type variable এর specifier হল %c. যদি %c এর জায়গায় %d ব্যবহার করা হয় তবে ঐ variable  এর ASCII value দেখাবে।

char ch=’A’;
printf(“ch=%d”,ch);


























Wednesday, January 1, 2014

C প্রোগ্রামিং তিন অধ্যায় - বিভিন্ন Type এর Data Input and Output কিভাবে নিব - PART 3

আমরা single character, numerical values এবং string কিভাবে কম্পিউটারে input নিব তা দেখবো। single character, numerical values. এবং string যেকোন মান কম্পিউটারে নেওয়ার জন্য “scanf” function ব্যবহার করা হয়। আবার putchar এর মত কোন মান পর্দায় দেখানোর জন্য “printf” function ব্যবহার করা হয়। putchar দিয়ে একটি মাত্র character কম্পিউটারে Out Put দেখানো যেত, কিন্তু “printf” function দ্বারা একদিক ডাটা যেমন single character, numerical values এবং string ইত্যাদির যেকোন মান কম্পিউটারে Output দেখানো যায়।

“scanf” function ব্যবহারের নিয়মঃ

char name;
scanf(“%c”,&name);

এখানে name নামে একটি variable নেওয়া হয়েছে। তার পর আমরা এখন ইনপুট ডিভাইস থেকে এ চলকের মান  কম্পিউটারে নিব। এ জন্য Scanf(“%c”,&name); statement দিয়ে তা নেওয়া হয়েছে।
এখানে control string হচ্ছে c। প্রতিটি control string একটি % চিহ্ন দিয়ে শুরু করতে হয়। তাই এখানে control stringটি %c দ্বারা লিখা হয়েছে। এখানে c দ্বারা বুঝানো হয় যে Data item একটি single character। এরকম আরো অনেক গুলো control string রয়েছে। নিছে এর একটি তালিকা দেওয়া হল।

CodeMeaning
%aInput হিসেবে Floating-point  Data item  নিতে পারবে।
%cInput হিসেবে একটি মাত্র character Data item নিতে পারবে।
%dInput হিসেবে Decimal integer Data item নিতে পারবে।
%eInput হিসেবে Floating-point  Data item  নিতে পারবে।
%fInput হিসেবে Floating-point  Data item  নিতে পারবে।
%gInput হিসেবে Floating-point  Data item নিতে পারবে।
%iInput হিসেবে Decimal, Hexadecimal or Octal Integer Data item  নিতে পারবে।
%oInput হিসেবে Octal Integer Data item  নিতে পারবে।
%pInput হিসেবে Pointer Data item নিতে পারবে।( Pointer সম্পর্কে পরে আলোচনা করা হবে)।
%sInput হিসেবে String   Data item নিতে পারবে।
%uInput হিসেবে Unsigned decimal Data item নিতে পারবে।
%xInput হিসেবে Hexadecimal Data item নিতে পারবে।



“printf” function ব্যবহারের নিয়মঃ

char name;
printf(“%c”, name);
এখানে name নামে একটি Character variable নেওয়া হয়েছে। এখন মনে করি nameএর মান কম্পিউটারে আছে আমরা তার Output বের করবো।তাই printf(“%c”, name); দ্বারা তা Output ডিভাইসে প্রকাশ করে। এখানে ও control string হচ্ছে c । scanf এর মত printf এ ও প্রতিটি control string একটি % চিহ্ন দিয়ে শুরু করতে হয়। তাই এখানে control stringটি %c দ্বারা লিখা হয়েছে। এখানে c দ্বারা বুঝানো হয় যে Data item একটি single character। scanf ও printf এর control string একই। তবে scanf এর control string দ্বারা কি ধরনের মান ইনপুট নিবে তা বুঝায়, আর printf এর control string দ্বারা কিধরনের মান আউটপুট দিবে তা বুঝায়। নিচে printf এর control string গুলো দেওয়া হল।
CodeMeaning
%aএটি ব্যবহার করলে Floating-point  Data item  আউটপুট দিবে।
%cএটি ব্যবহার করলে একটি মাত্র character Data item আউটপুট দিবে।
%dএটি ব্যবহার করলে Decimal integer Data item আউটপুট দিবে।
%eএটি ব্যবহার করলে Floating-point  Data item  আউটপুট দিবে।
%fএটি ব্যবহার করলে Floating-point  Data item  আউটপুট দিবে।
%gএটি ব্যবহার করলে Floating-point  Data item আউটপুট দিবে।
%iএটি ব্যবহার করলে Decimal, Hexadecimal or Octal Integer Data item আউটপুট দিবে।
%oএটি ব্যবহার করলে Octal Integer Data item  আউটপুট দিবে।
%pএটি ব্যবহার করলে Pointer Data item আউটপুট দিবে।
%sএটি ব্যবহার করলে String   Data item আউটপুট দিবে।
%uএটি ব্যবহার করলে Unsigned decimal Data item আউটপুট দিবে।
%xএটি ব্যবহার করলে Hexadecimal Data item আউটপুট দিবে।
এবার আমরা scanf ও printf এর ব্যবহারের উপর একটি ছোট্ট প্রোগ্রাম দেখিঃ

#include
int main()
{
char name[80];
scanf("%s",&name);
printf("%s",name);
return 0;
}

এখানে একটি name নামে একটি character array (array সম্পর্কে পরে আলোচনা করা হবে) নেওয়া হয়েছে, যা মোট ৮০ টি character ধারন করতে পারবে(আসলে ৭৯ টি আরেকটি Null Character, যা সম্পর্কে পরে আলোচনা করা হবে) । তার পর এর মান ইনপুট ডিভাইস হতে নেওয়া হবে scanf function দ্বারা। scanf এর ভিতর %s দ্বারা বুঝানো হয়েছে যে এটি একটি String Input নিবে। তার পর এ মান printf("%s",name); দ্বারা পর্দায় আউটপুট দেখানো হয়েছে।

Wednesday, December 11, 2013

C প্রোগ্রামিং তিন অধ্যায় - কিভাবে Getchar Function দ্বারা input নেওয়া হয় - PART 2

আজ আমি কিভাবে কম্পিউটারে একটি ডাটা Input করবেন ও কিভাবে Out Put বের করবেন তা নিয়ে বলব। আজকে দুটি Function নিয়ে আলোচনা করব। একটা হচ্ছে “getcha” আরেকটি হচ্ছে “putchar”  Function.

getchar Function getchar  Function দ্বারা single character কম্পিউটারে input নেওয়া হয়। এটি একটি C library Function. এটি সাধারনত নিচের মত করে লিখা হয়।
character variable =getchar( );

getchar Function হচ্ছে স্টান্ডার্ড C I/O library এর একটি অংশ। এটি ইনপুট ডিভাইস যেমন Keyboard থেকে একটি সিঙ্গেল Character দেয়।   প্রোগ্রামের মঝে এটি নিচের মত করে লিখা হয়ঃ
char x;
x= getchar();
এখানে char x; দ্বারা বুঝানো হয়েছে যে এটি একটি character type Variable. পরবর্তিতে x= getchar(); দ্বারা x এর মান ইনপুট ডিভাইস হতে নিবে। getchar Function দ্বারা multi character কম্পিউটারে input নেওয়া যায়।


putchar FunCtion : Putchar Function দ্বারা single character কম্পিউটারে দেখানোর জন্য ব্যবহার করা হয়।   এটি getchar Function অনুরুপ।putchar(character variable );এটি ও স্টান্ডার্ড C I/O library এর একটি অংশ।  প্রোগ্রামের মঝে এটি নিচের মত করে লিখা হয়ঃ
char x;
putchar(x);
getchar Function  এর মত এখানে char x; দ্বারা বুঝানো হয়েছে যে এটি একটি character type Variable. পরবর্তিতে putchar(x); দ্বারা x এর মান আউটপুট ডিভাইসে দেখাবে। putchar Function দ্বারা ও multi character কম্পিউটারে OutPut দেওয়া যায়।
উপরের প্রোগ্রামে একটি character variable  a নিয়েছি। এখন getchar Function দ্বারা যে সকল character কম্পিউটারে input নেওয়া হয় তাই putchar Function দ্বারা আপনাকে দেখাবে।

#include
int main()
{
char a;
a=getchar();
putchar(a);
return 0;
}





কেমন হল জানাবেন । সবাই কে ধন্যবাদ।

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;
}


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