Saturday, May 4, 2013

[ সি প্রোগ্রামিং :- অধ্যায় এক ] প্রথম প্রোগ্রাম ।



প্রোগ্রামিংয়ের জগতে স্বাগতম ।

 আমরা এখন একটি প্রোগ্রাম লিখে ফেলব যা আপনার কম্পিউটারের স্কিনে Hello World দেখাবে বা প্রিন্ট করবে । এটি হচ্ছে প্রোগ্রামিং এর একটি ঐতিহ্য । পৃথিবীর অধিকাংশ প্রোগ্রামারই জীবনের প্রথম প্রোগ্রাম হিসেবে এটি লেখে ।
আমি প্রোগ্রামগুলো চালানোর জন্য Codeblocks সফটওয়্যার ব্যবহার করব । তবে আপনার অন্য কিছু ব্যবহার করলে ও সমস্যা নেই, সবগুলোতে কাজের ধারা মোটামুটি একই রকম । কম্পিউটারে Codeblocks সফটওয়্যার ইনস্টল করে ফেলুন । নিজে নিজে ইনস্টল করতে না পারলে নিচের লিঙ্কে ক্লিক দিন এবং ইনস্টল এর নিয়মাবলী পড়ে নিন এবং যাদের Codeblocks সফটওয়্যার টি নেই তারা নিচের দ্বিতীয় লিঙ্কে ক্লিক দিন এবং ডাউনলোড করে তারপরে ইনস্টল করে ব্যবহার করা শুরু করুন ।



(১) এই লিঙ্কে ক্লিক দিয়ে, যাদের Codeblocks সফটওয়্যার টি নেই তারা ডাউনলোড করে তারপর ইনস্টল দিয়ে, প্রোগ্রামিং শুরু করতে পারেন  http://www.codeblocks.org/downloads

সরাসরি নতুন ভার্সনটি(codeblocks-12.11)ডাউনলোড করতে এখানে ক্লিক দিন । http://sourceforge.net/projects/codeblocks/files/Binaries/12.11/Windows/codeblocks-12.11mingw-setup.exe/download

 (২) এই লিঙ্কে ক্লিক দিন এবং নতুন পেজ পাবেন ঐখানে থেকে Codeblocks সফটওয়্যার ইনস্টল এর নিয়মাবলী পড়ে নিন      http://grandhelper.blogspot.com/2013/05/codeblocks.html#more





ইনস্টল হয়ে গেলে । এখন উইন্ডোজ এর Start মেনুতে Programs-এ গিয়ে Codeblocks চালু করুন । উবুন্টুতে এটি থাকবে Applications > Programming এর ভিতরে । 




Codeblocks চালু হবার পর এখানে আপনারা Show tips at startup চেক বক্সের টিক চিন্হটি উঠিয়ে দিতে পারেন ।


এবার প্রোগ্রামিং করার জন্য প্রথমে আপনি Codeblocks এর মেনুবার হতে File এ যান (ক্লিক দিন) তারপর  New এ যান (ক্লিক দিন) এরপরে Empty file এ ক্লিক দিন । আপনি ইচ্ছা করলে এভাবে না করে সরাসরি key-board থেকে Ctrl+Shift+N একসাথে এই তিনটি key  চাপুন । তাহলে File থেকে New থেকে Empty file এ যেতে হবে না । 


এখন আপনারা প্রোগ্রামগুলো রাখার জন্য হার্ডডিস্কের ভিতরে একটি ফোল্ডার তৈরী করে নিন । এবং ঐ ফোল্ডারে প্রোগ্রামিং করা সব ফাইলগুলো সেভ(save) করবেন । ফাইলের যে কোন একটি নাম দিতে পারেন । আর Save as type হবে, C/C++ files । 

এবারে আমরা কোড বা প্রোগ্রাম লিখব । নিচের কোডটি টাইপ করে ফেলুন এবং ফাইল টি সেভ করে নিন (প্রোগ্রাম লিখার পর যে কোন ফাইল সেভ করার জন্য Ctrl+S চাপুন) । 



#include <stdio.h>  
 int main ()  
 {  
     printf("Hello World");  
     return 0;  
 }  
 প্রোগ্রাম: ১.১  



  
আপনারা হয়তো চিন্তা করছেন আমি এই হিজিবিজি কী লিখলাম ? আস্তে ধীরে সব ব্যাখ্যা করব, চিন্তা নেই । আপাতত আমার কথা মত কাজ করে যান । এবার Build মেনুতে গিয়ে Compile current file –এ ক্লিক করেন । 




আপনি যদি প্রোগ্রামটি ঠিক ভাবে টাইপ করে থাকেন তাহলে কম্পাইলার আপনাকে বলবে যে 0 errors, 0 warnings, মানে প্রোগ্রামে syntax ঠিক আছে । 




এখন আবার Build মেনুতে গিয়ে Run এ ক্লিক করেন ।





এখন আপনি নিচের ছবির মতো স্ক্রিন দেখতে পাবেন ।



  
এখন দেখুন আপনার স্ক্রিনে Hello World প্রিন্ট করেছে ।


Hello World এর পরের লাইনে বলা আছে Process returned 0 (0x0) (এটির অর্থ নিয়ে আমাদের এখন মাথা না ঘামালে ও চলবে) আর execution time : 0.047 s মানে প্রোগ্রামটি চলতে 0.047 সেকেন্ড সময় লেগেছে । তারপরের লাইন হচ্ছে, Press any key to continue. তার মানে (keyboard) কী-র্বোডের যে কোন কী চাপলেই হবে । 


আপনি যদি প্রোগ্রামটি ঠিকঠাক ভাবে রান করাতে পারেন এবং Hello World লেখাটি দেখে থাকেন তাহলে আপনাকে অভিন্দন । আপনি বেশ গুরুত্বপূর্ণ একটি কাজ করে ফেলেছেন । 


আর ঠিকঠাক ভাবে রান না করাতে না পারলে আবার শুরু থেকে চেষ্টা করুন । প্রয়োজনে অভিজ্ঞ কারও সাহায্য নিন । কারণ এই প্রোগ্রাম চালাতে না পারলে পরের অধ্যায় গুলো পড়ে লাভ হবে না । 


এবারে দেখা যাক আমি কি লিখেছি কোডে । 


প্রথম লাইনে ছিল:  #include <stdio.h> এটি কেন লিখেছি একটু পরে বলছি । দ্বিতীয় লাইন ফাঁকা দেখতে সুন্দর লাগে তাই । 


তৃতীয় লাইন: int main() এটিকে বলে মেইন ফাংশন । সি প্রোগ্রামগুলো মেইন ফাংশন থেকে কাজ করা শুরু করে, তাই সব প্রোগ্রামে একটি (এবং কেবল একটি) মেইন ফাংশন থাকতে হয় । মেইন ফাংশনের শুরুতে দ্বিতীয় বন্ধনী দিয়ে শুরু করতে হয় আর শেষ ও করতে হয় একটি দ্বিতীয় বন্ধনী দিয়ে । শেষ করার আগে আমি return 0; লিখেছি, সেটি কেন তা এখন ব্যাখ্যা না করলেই ভালো হয়, ফাংশন নিয়ে যখন আলোচনা করব তখন বলব । তাই আপাতত আপনারা যে কোন প্রোগ্রামে নিচের অংশটুকু লিখে ফেলবেন : 


int main()
{
    এখানে কোড থাকবে ।
    return 0;
}


প্রোগ্রামের পরের লাইন খেয়াল করুন: printf(“Hello World”); এটি একটি স্টেটমেন্ট । এখানে printf() হচ্ছে একটি ফাংশন যার কাজ হচ্ছে স্ক্রিনে কিছু প্রিন্ট করা । ডবল কোটেশনের ভিতর যা লিখবে তা-ই সে স্ক্রিনে সে প্রিন্ট করবে । এই ফাংশনটি স্ক্রিনে কিভাবে প্রিন্ট করবে সেটি আসলে বলা আছে stdio.h নামে একটি ফাইলে । এই ফাইলগুলোকে বলে হেডার (header) ফাইল (.h হচ্ছে হেডার ফাইলের এক্সটেনশন)। stdio.h ফাইলে স্টান্ডর্ড ইনপুট আর আউটপুট-সংক্রান্ত যাবতীয় ফাংশন লেখা আছে, আমরা কেবল সেগুলো ব্যবহার করব, ফাংশনগুলো কিভাবে কাজ করছে সেটি এখন আমাদের জানার দরকার নেই । আর যেহেতু printf() ফাংশন ব্যবহার করেছি, তাই প্রোগ্রামের শুরুতে #include <stdio.h> লিখতে হয়েছে । এই রকম আরও অনেক প্রয়োজনীয় হেডার ফাইল রয়েছে, যার কিছু আমরা পরবর্তী সময়ে কাজের প্রয়োজনে দেখব ।

এখন একটি ব্যাপার খেয়াল করেন printf(“Hello World”); এর শেষে একটি সেমিকোলন রয়েছে । সি ল্যাঙ্গুয়েজে প্রতিটি স্টেটমেন্টের পরেই একটি সেমিকোলন থাকে । একটি স্টেটমেন্টের কাজ শেষ হলে পরের স্টেটমেন্টের কাজ শুরু হয় । return 0; ও একটি স্টেটমেন্ট, তাই এটিও সেমিকোলন দিয়ে শেষ করতে হয়েছে । শুরুর দিকে অনেকে সেমিকোলন দিতে ভুলে যায়, তখন কম্পাইলার এরর (compile error) হয় । আপনারা একটি সেমিকোলন মুছে দিয়ে কম্পাইল করার চেষ্টা করে দেখতে পারেন ।

এবারে একটি খুব গুরুত্বপূর্ণ কথা বলে রাখি । আপনারা কোডটি খেয়াল করলে দেখবেন যে আমি #include <stdio.h>, int main(), {ও} যেই লাইনে আছে সেটি এডিটরের একেবারে বাঁ দিক থেকে শুরু করেছি । আর printf এবং return 0 –এর আগে চারটি স্পেস (ফাঁকা জায়গা) দিয়েছি । এটিকে বলে ইনডেন্টেশন (Indentation)। এরকম না করলে ও প্রোগ্রাম চলত এবং তাই অনেকেই ইনডেন্টেশনের ব্যাপারটিতে গুরুত্ব দেয় না এবং ঠিক মত ইনডেন্টেশন করে না । যেকোন ভালো অভ্যাসের মত ইনডেন্টেশনের অভ্যাস তৈরী করা একটু কঠিন, তবে বিষয়টি একটু দাঁত মাজার মতই গুরুত্বপূর্ণ । ইনডেন্টেশন করার অভ্যাস ঠিকমত তৈরী না হলে প্রোগ্রামারদের সহকর্মী বা বসের বকা শুনতে হয়, অনেক জায়গাতে তো ইন্টারভিউতে বাদ পড়ে যেতে হয় । আশা করছি আপনারা ব্যাপারটি বেশ গুরুত্ব সহকারে নিবেন । এই ব্লগের লিখাগুলোতে সমস্ত উদাহরণেই যথাযথভাবে ইনডেন্টেশন করার চেষ্টা করব । তবে মাঝে মধ্যে এদিক-সেদিক হতে পারে তবে সেই বিষয় গুলো আপনারা বুঝে নিবেন । ইনডেন্টেশনের জন্য সাধারণত চারটি স্পেস দেওয়াটাই এখন স্টান্ডার্ড । আপনারা এডিটর অপশন সেট করতে পারেন, যাতে Tab চাপলে সেটি চারটি স্পেস এর সমান হয় । Codeblocks এর Settings মেনুতে Editor –এ ক্লিক করে Tab Options এ Tab indents চেক করো এবং Tab size in spaces 4 দিন । 





এবার আপনার জন্য একটি কাজ । একটি প্রোগ্রাম লিখুন যেটি স্ক্রিনে প্রিন্ট করবে: I Love My Country Bangladesh. প্রোগ্রামটি টাইপ করার পরে অব্যশই কম্পাইলার এ Build এবং Run করবেন এবং সেভ করতে ভুলবেন না । (নিজে চেষ্টা করুন এবং না পারলে যেকোন সমস্যায় comment এর বক্সে আপনার প্রশ্ন, উত্তর অথবা মতামত জানান ।)

23 comments:

  1. It helps us to be a c programer

    ReplyDelete
    Replies
    1. আপনার কথা শুনে আমার ভাল লাগল । প্রোগ্রামিং চালিয়ে যান ।

      Delete
  2. আমার সত্যিই খুব ভালো লাগছে, যে প্রথম অধ্যায়ের সকল কাজ আমি সফলতার সাথে করে ফেলেছি। It's a amazing...

    ReplyDelete
    Replies
    1. আপনি হয়তো একজন ভালো প্রোগ্রামার হবেন তাই প্রথমেই সফলতা পেয়েছেন , আর আপনার জন্য রইল শুভ কামনা ।

      Delete
  3. Replies
    1. Apni ki partesen na Bolen ?

      Delete
    2. "Compile current file" e click korle kisu ase na
      er jonno run o hoi na

      Delete
    3. apni again windos setup dan and software ti install kore dakte paren. ar tasara apne turbo c software diya kaj kore dakte paren

      Delete
    4. amar o same problem hosse bro. ami code::blocks12.11 use korsi

      Delete
    5. apnake akta requwst diyesi gtalk a... thedreamers.livebd@gmail.com id
      accept korben plz..

      Delete
    6. REPLAY : change your codeblock's setting . CLICK ON SETTING >> COMPILER >> (selected compiler a apni GNU GCC Compiler kore din) GNU GCC Compiler >> Then click on OK........

      Delete
    7. tao hosse na vaiya.
      settings change er shomoy akta msg dekhalo..
      onek ta erokom,
      "cant find cpmpiler excutable in configurd search path"

      Delete
    8. TheHOSTS bhai apne Turbo c google a search diya download kore niben or amake request korle ame akti post turbo c niya likhbo.......

      Delete
  4. wow hello world and i love my country tik vabe korte parlam

    ReplyDelete
    Replies
    1. Good job.. parcen valo kotha, akon porer chapter a jan. (jodi paren Bangla text a Bangla comment and English text diya English comment korben )

      Delete
    2. vai bangla likhte partam kintu koiek din dhore amar pc te avro ta tik moto kaj korse na abong uninstall o kora jachha na tai sorry

      Delete
  5. ভাই...আমি c তে কাচা ... আপনার পারসনাল হেল্প চাচ্ছি...। ০১৮৪০৬৫০২০১...। অপেক্ষায় আছি...। আশা করি সারা পাব।।

    ReplyDelete
    Replies
    1. ভাই পারসনাল হেল্প বলতে কি বুঝাচ্ছেন ? আপনি যেকোনো প্রকার হেল্প পেতে আমার মেইল আইডি তে মেইল করতে পারেন sobujssss@gmail.com এবং আমার ফেইসবুক পেজে গিয়ে মেসেজ দিতে পারেন । ধন্যবাদ ।

      Delete
  6. Thanks Bro for your nice effort. so many people will learn something and it is great work for every person who like to become a programmer.
    Thanks!!

    ReplyDelete
    Replies
    1. You are welcome @ Morning Light....

      Delete
    2. Vaya apner facebook id ta aktu diben...link ta dillay valo hoyee

      Delete
    3. My facebook id www.facebook.com/sobujssss

      Delete