Saturday, June 7, 2014

C তে প্রোগ্রাম লিখা

আমরা আজকে জানব C প্রোগ্রাম দেখতে কেমন, কিভাবে লিখা হয়, কীভাবে শুরু করা হয় প্রভৃতি নিয়ে সাধারণভাবে আলোচনা করব। এবং উদাহরণ হিসেবে কিছু প্রোগ্রামও লিখব। তবে প্রোগ্রামের কোন লাইন কিভাবে কাজ করে তা এখন বিশদ ভাবে আলোচনা করা হবে না। কেননা এখানে C সম্পর্কে সাধারণ ধারণা দেওয়ায় আমার মূল উদ্দেশ্য। তাই প্রথমে দেখা যাক C প্রোগ্রাম দেখতে কেমন,
main( ) { }


হ্যা এই হল C প্রোগ্রাম। এই লাইনটা কে লিখে কম্পাইল করলে কম্পাইলার error দেখাবে না। কারণ এখানে কোন ভুল নেই।
# (কম্পাইলার হল এমন একটি সফটওয়্যার যেটি High Level Language কে Machine Language এ রুপান্তর করে। কেননা আমরা যে ইনপুট দিই তা কম্পিউটার বুঝে না। কম্পিউটার বুঝে 0 এবং 1।)
এটা হল C এর মূল গঠন এবং একে C এর main function এবং প্রোগ্রামে entry point বলে। আসলে C এর একেকটি প্রোগ্রাম হল এক বা একাধিক ফাংশনের সমষ্টি। তবে যত ফাংশনই থাক main নামের ফাংশনটি অবশ্যই থাকতে হবে এবং অন্য ফাংশনগুলোকে এই main ফাংশনের '{ }'র মধ্যে থেকে call করতে হবে। এটা হল C নিয়ম। তবে উপরের main ফানশনকে সুন্দর করে নিচের মত করেও লেখা যায়,


main( )
{
}


উল্লেখ্য যে, এখানে সব অক্ষর small letter এ হতে হবে। এজন্য C কে বলা হয় case sensitive language. main কে MAIN কিংবা mAin লিখবে কম্পাইলার error দেখাবে।

এখন ধরা যাক আমরা একটা প্রোগ্রাম লিখব যেটা চালালে স্ক্রীনে,
I am a new C programmer.
লেখাটি দেখা যাবে। তো এই কাজের জন্য অর্থাৎ স্ক্রীনে কোন লেখা দেখানোর জন্য C তে printf( ) ফাংশনটি ব্যবহার করা হয়,


printf ("I am a new C programmer.")


printf( ) এর মধ্যে '( )' র মধ্যে double qoutation (" ") সহ যা লেখা হবে, প্রোগ্রাম কম্পাইল করার পর তা-ই স্ক্রীনে দেখা যাবে। কিন্তু C কম্পাইলার যেহেতু main( ) ছাড়া অন্য কোন ফাংশন নিয়ে কাজ করতে পারে না, তাই printf( ) কে main( ) এর { } এর মধ্যে লিখতে হয়।


main( )
{
printf("I am a new C programmer.")
}


কিন্তু এই পর্যন্ত টাইপ করে কোডগুলো কম্পাইল করলে, কম্পাইলার তিনটি error দেখাবে। যেমনঃ
Compiling NONAME00.CPP:
Error NONAME00.CPP 3: Function 'printf' should have a prototype
Error NONAME00.CPP 4: Statement missing ;
Error NONAME00.CPP 4: Compound statement missing }

এখানে প্রথম error টার কারণ হল, C তে কোন ফাংশন ব্যবহার করলে ঐ ফাংশনের prototype ডিক্লেয়ার করতে হয়। printf( ) হল একটা লাইব্রেরী ফাংশন এবং এর prototype টা stdio.h নামের একটা ফাইলে রাখা আছে। তাই printf( ) ব্যবহার করতে হলে প্রোগ্রামের শুরুতে main( ) এর বাইরে stdio.h ফাইলের নাম লিখতে হবে। কেননা এটা C এর নিয়ম। এ ধরনের ফাইল কে বলা হয় header file. header file লেখার নিয়ম হল,


#include <header file> /*সেমিকোলন হবে না*/


উদাহরণঃ
#include <stdio.h>


দ্বিতীয় error টার কারণ হল C তে প্রত্যেকটা ইনস্ট্রাকশনের শেষে সেমিকোলন (;) দিতে হয়। সেমিকোলন (;) সহ একটা ইনস্ট্রাকশনের statement বলে।
তৃতীয় error টা প্রথম দুটো ভুলের মাশুল।
এবার উপরের প্রোগ্রামটা নীচের মত লিখলে কম্পাইলার কোন error দেখাবেনা,


#include <stdio.h>
main( )
{
printf("I am a new C programmer"); /*সেমিকোলন (;) দিতে হবে*/
}                                          /*সেমিকোলন (;) দিতে হবে না*/


এই প্রোগ্রামটা run করলে প্রোগ্রামের আউটপুটে
I am a new C programmer.
লেখাটি দেখা যাবে। তবে এক্ষেত্রে আউটপুট দেখার জন্য run করতে হবে। এবার নীচের প্রোগ্রামটা দেখা যাক,


#include <stdio.h>
#include <conio.h>
main( )
{
clrscr( );                                  /*সেমিকোলন (;) দিতে হবে*/
printf("I am a new C programmer"); /*সেমিকোলন (;) দিতে হবে*/
getch( );                                  /*সেমিকোলন (;) দিতে হবে*/
                                          /*সেমিকোলন (;) দিতে হবে না*/


এই প্রোগ্রামে clrscr( )ও getch( ) নামে দুটো library function ব্যবহার করা হয়েছে এবং এদের header file হল conio.h, এই দুটো library function কি কাজ করে, তা প্রোগ্রামটা লিখে run করলে নিজেই বোঝা যাবে।
উপরের থেকে দেখলাম যে, C প্রোগ্রামের সব ইনস্ট্রাকশন main ( ) ফাংশনের মধ্যে লিখতে হয় এবং প্রতিটা ইনস্ট্রাকশনের শেষে সেমিকোলন (;) দিতে হয়। অর্থাৎ এক ইন্সট্রাকশন থেকে অন্য ইন্সট্রাকশন পৃথক করতে সেমিকোলন (;) ব্যবহার করা হয়। তাই প্রোগ্রামের সব ইন্সট্রাকশন তথা statement আমরা সেমিকোলন ব্যবহার করে পাশাপাশিও লিখতে পারি। এতে কম্পাইলার কোন এরর দেখাবেনা। যেমনঃ


#include <stdio.h>
#include <conio.h>
void main( )
{ clrscr( ); printf("I am a new C programmer."); getch( ); }


তবে বোঝার সুবিধার্তে আলাদা আলাদা লাইনেই লেখা উচিৎ। এখানে আরেকটা বিষয় উল্লেখ্য যে, main( ) ফাংশনে একাধিক statement থাকলে প্রথম statement প্রথমে কাজ করবে, এরপর দ্বিতীয় statement এবং এভাবে শেষ বন্ধনী '}' না পাওয়া পর্যন্ত চলতে থাকবে। অর্থাৎ, statement-গুলো সাধারণ উপর থেকে নীচে যে ক্রমানুসারে লেখা হয় সে ক্রমানুসারে কাজ করে। ব্যাপারটা বোঝার জন্য নীচের কোডগুলো দেখা যাক,


#include <stdio.h>
#include <conio.h>
void main( )
{
clrscr( );
printf("\nThis is first statement'");
printf("\nThis is second statement");
getch( );
}


এই প্রোগ্রাম রান করালে আউটপুট উইন্ডোতে নীচের লাইন দুটো দেখা যাবে,
This is first statement
This is second statement


এখানে প্রথমে প্রথম pritf( ) কাজ করবে এবং পরে দ্বিতীয় printf( ) কাজ করবে। উপরে কোডগুলো যদি নীচের মত লেখা হয়,
#include <stdio.h>
#include <conio.h>
void main( )
{
clrscr( );
printf("\nThis is second statement'");
printf("\nThis is first statement");
getch( );
}


প্রোগ্রাম রান করালে আউটপুট উইন্ডোতে নীচের মত দেখা যাবে,
This is second statement
This is first statement


এভাবে C প্রোগ্রামে statement গুলো উপর থেকে নীচে ক্রমানুসারে কাজ করে।


লিখাটি ভালো লেগেছেঃ
লেখক কে Follow করুনঃ

1 comment:

  1. This comment has been removed by a blog administrator.

    ReplyDelete

পোস্ট সম্পর্কে মতামত দিন