Friday, March 16, 2018

এসো পিরামিড বানাই, ইট-বালু-সিমেন্ট ছাড়াই... (সি প্রোগ্রামিং)


“এসো পিরামিড বানাই, ইট-বালু-সিমেন্ট ছাড়াই(পর্ব-১)”
প্রোগ্রামিং এর জগতেঃ
   বন্ধুরা, আমরা সবাই মোটামুটি “কম্পিউটার প্রোগ্রামিং” শব্দটার সাথে পরিচিত। আমাদের দেশ এ একাদশ- দ্বাদশ শ্রেণীতে তথ্য- প্রযুক্তি নামক যে সাবজেক্টটা আছে- তার প্রায় পুরটাই জুড়ে আছে সি- প্রোগ্রামিং।
   মেশিন ল্যাঙ্গুয়েজ অনেকগুলোই আছে- সি, সি++, জাভা, সি- শার্প,এইচ- টি-এম-এল, পাইথন, কোবরা ইত্যাদি। তবে ভয় পাবার কিছু নেই, একটা ল্যাঙ্গুয়েজ শিখলে সবগুলোই তোমার কাছে ডাল-ভাত মনে হবে। এদিক দিয়ে সি-প্রোগ্রামিং কে বলা হয় সকল প্রোগ্রামিং এর মা অর্থাৎ mother of all programming language.
 ওরে বাবা- কম্পিউটার প্রোগ্রামিং- খায় নাকি মাথায় দেয়?!?!?!?!
    কম্পিউটার প্রোগ্রামিংটা আমার কাছে মনে হয়, একটা ছোট্ট বাবুকে নতুন কোন ভাষা শেখাচ্ছি। সে ভাষা আগে  আমাকে রপ্ত করতে হবে তারপর ছোট্ট বাবুটাকে শেখাতে হবে।  সে ভাষা বাংলা নয়, ইংরেজি নয়, কম্পিউটার এর নিজস্ব ভাষা- মেশিন ল্যাঙ্গুয়েজ- সি প্রোগ্রামিং।
    কম্পিউটার নামের বাবুটা খুবই বিচক্ষণ- যা করতে বলবে, তাই করবে-যা লিখতে দেবে তাই লিখবে- যা করতে দেবে তাই করবে- যতক্ষণ পর্যন্ত তুমি না নিষেধ করবে।
   বাবুকে যেমন ফিডার দিয়ে দুধ খাওয়াতে হয়, কম্পিউটারকেও একটা সফটওয়্যার দিয়ে ভাষা শিখাতে হয়। এই সফটওয়্যারকে বলে- কম্পাইলার। আমি এখানে কম্পাইলার হিসেবে codeblocks ব্যবহার করেছি। ইচ্ছে করলে তুমি অন্য কম্পাইলারো ব্যবহার করতে পার।
কম্পিউটার- তুমি সত্যি বোঝ???????????
  আমরা আগে থেকেই পড়ে এসেছি- কম্পিউটার ০ আর ১ ছাড়া কিচ্ছু বোঝে না। কথাটা আসলেই সত্যি। তাহলে a,b,c,d… এইগুলা কম্পিউটার কেমনে বোঝে??? উত্তর হচ্ছে- a এর জন্যে কম্পিউটার বোঝে 65. সে 65 কে বাইনারি অর্থাৎ 0 এবং 1 এর দ্বারা একটা সংখ্যায় রূপান্তর করে ফেলে, তারপর তার মর্মোদ্ধার করে। আর এই কাজটাই করে কম্পাইলার নামের সফটওয়্যারটা। এক কথায়, কম্পাইলার মানুষ ও কম্পিউটার এর মধ্যে বন্ধুত্ব করে দেয়।

   কম্পাইলারে আমাদেরকে কিছু লেখা লিখতে হয়, আর পড়ে রান করতে হয়। তাহলেই আমরা পেয়ে যাই কাঙ্ক্ষিত .exe ফাইল। এটাকে তোমার তৈরি একটা ক্ষুদ্র সফটওয়্যার বলতে পার। এটাতে মাউস ডাবল ক্লিক করলে এটা এমনিতেই কাজ করবে। কম্পাইলারে আমাদেরকে কিছু লেখা লিখতে হয় তাকে বলে codes. আর যারা কোড করে তাদেরকে বলে কোডার। হ্যাঁ, তুমি আমি সবাই কোডার কিন্তু প্রোগ্রামার হওয়া কিন্তু এত্ত সোজা কথা নয়......

 “এসো পিরামিড বানাই, ইট-বালু-সিমেন্ট ছাড়াই(পর্ব-২)”

। প্রথম ধাপঃ


অউটপুটঃ
*****
****
***
**
*
#include<stdio.h>   // এটা হচ্ছে .h ফাইল অর্থাৎ হেডার ফাইল

                           এর নাম স্ট্যান্ডার্ড ইনপুট আউটপুট লাইব্রেরী
                            অর্থাৎ নীচে যা লিখবো তার সব কিছুই এই
                             লাইব্রেরী’র মধ্যে আছেমানে এ নিচের
                             সবার বাপ।

main()                           // এটা হচ্ছে মেইন ফাংশন। আমরা f(x)=3x+2 এই                            
                            রকমের অঙ্ক করেছিলাম তাতে f(পেট) f এর                   
                            পেটে যা ছিল,তাকেই পরিবর্তন করে ফেলত।
                           তদ্রূপ, main(){পেট} মেইন ফাংশন এর পেট এর
                           ভেতর যা থাকবে, তাই আউটপুট ফাইল এ
                          দেখাবে।
                                 
{
 int i,j;                        //ধরে নিলাম i এবং j দুটো ইনটেজার
                                 টাইপের ভেরিএবল(চলক)অর্থাৎ, i
                                                  এবং j হবে পূর্ণসংখ্যা ১,২,৩... ইত্যাদি
    for(i=1;i<=5;i++)         // for(condition){body} কে বলে ফর লুপ।
                               (condition) এর মধ্যে তুমি লিখবা
                               কখন পর্যন্ত লুপটা ঘুরবে আর
                               {body} এর মধ্যে তুমি লিখবা
                                                 প্রতিবার লুপ ঘুরে আউটপুট এ   কি কাজ
                               করবে  
                              //        এখানে   for(i=1;i<=5;i++)     
                                 মানে হচ্ছে i এর মান ১ থেকে শুরু কর; 
                                                  i এর মান শুধুমাত্র ৫ এর সমান বা ছোট     
                                                  হলেই কাজটা কর;
                                                  কাজ করা শেষ হলে প্রতিবার i এর মান ১
                                                    করে বাড়াও                          
{                               // এটা হচ্ছে বাইরের অর্থাৎ outer for লুপ         
                                                     এর শুরু
 for(j=5;j>=i;j--)                   // এটা হচ্ছে ভিতরের অর্থাৎ inner for লুপ         
                                                 এর শুরু
                              //        এখানে   for(j=5;j>=i;j--)     
                                 মানে হচ্ছে j এর মান ৫ থেকে শুরু কর;
                                                   j এর মান শুধুমাত্র i এর সমান বা বড়     
                                                  হলেই কাজটা কর;
                                                  কাজ করা শেষ হলে প্রতিবার j এর মান ১
                                                    করে কমাও                          

{
printf("* ");                //   এটার মানে হচ্ছে –
                           “কম্পিউটার বাবু, তুমি * কে একবার প্রিন্ট কর
 }

 printf("\n");              //   এটার মানে হচ্ছে –
                           “কম্পিউটার বাবু, তুমি নিচের লাইনে চলে যাও,
                            এই লাইনের কাজ শেষ”

}
}



আউটপুট আসবে এরকমঃ
* * * * *
* * *  *
* * *
**
*
এখন আস দেখি কম্পিউটার বাবু কিভাবে কাজ করেঃ
main(){পেট} মেইন ফাংশন এর পেট এর
  ভেতর যা থাকবে, তাই আউটপুট ফাইল এ  দেখাবে।
So,  look up at main() function
i এর মান 1; 1 ছোট 5 থেকে; তুমি {পেট} এর ভেতরের কাজ কর। তুমি inner for() loop এ ঢুকে যাও।
inner loop এর কাজঃ
(a)   j এর মান 5; 5 বড় i=1 থেকে; তুমি {পেট} এর ভেতরের কাজ কর;   তুমি * কে একবার প্রিন্ট কর ; j এর মান ১ কমাও। মানে j এর মান 4 কর;  আবার লুপ এ প্রবেশ কর।
(b)   j এর মান 4;     4 বড় i=1 থেকে; তুমি {পেট} এর ভেতরের কাজ কর।    তুমি * কে একবার প্রিন্ট কর
(c)    j এর মান 3;     3 বড় i=1 থেকে; তুমি {পেট} এর ভেতরের কাজ কর।    তুমি * কে একবার প্রিন্ট কর
(d)   j এর মান 2;     2 বড় i=1 থেকে; তুমি {পেট} এর ভেতরের কাজ কর।    তুমি * কে একবার প্রিন্ট কর
(e)   j এর মান 1;     1 সমান  i=1 থেকে; তুমি {পেট} এর ভেতরের কাজ কর।    তুমি * কে একবার প্রিন্ট কর
(f)    j এর মান 0;     1 বড়ও না, সমানও নাi=1 থেকে; তুমি {পেট} এর ভেতরের কাজ কর না।    তুমি inner loop থেকে বের হয়ে যাও 


কম্পিউটার বাবু, তুমি নিচের লাইনে চলে যাও(\n),  এই লাইনের কাজ শেষ
আউটপুট আসবে এরকমঃ
* * * * *
i এর মান 2; 2ছোট 5 থেকে; তুমি {পেট} এর ভেতরের কাজ কর। তুমি inner for() loop এ ঢুকে যাও।
আউটপুট আসবে এরকমঃ
* * * *
i এর মান 3; 3ছোট 5 থেকে; তুমি {পেট} এর ভেতরের কাজ কর। তুমি inner for() loop এ ঢুকে যাও।
আউটপুট আসবে এরকমঃ
* * * 
i এর মান 4; 4ছোট 5 থেকে; তুমি {পেট} এর ভেতরের কাজ কর। তুমি inner for() loop এ ঢুকে যাও।
আউটপুট আসবে এরকমঃ
* *  
i এর মান 5; 5ছোট না, তবে সমান  5 থেকে; তুমি {পেট} এর ভেতরের কাজ কর। তুমি inner for() loop এ ঢুকে যাও।
আউটপুট আসবে এরকমঃ
*
i এর মান 6; 6 ছোট না 5 থেকে; তুমি {পেট} এর ভেতরের কাজ কর না। তুমি outer for() লুপ থেকে বের হয়ে যাও।
আউটপুট আসবে এরকমঃ

* * * * *
* * *  *
* * *
**
*


 দ্বিতীয় ধাপঃ



#include<stdio.h>
#include<conio.h>
main()
{
int i,j;
for(i=1;i<=5;i++)
    {
      for(j=1;j<=i;j++) {printf("* ",j);}
      printf("\n");  }
আউটপুট আসবে এরকমঃ

*
* *
* * *
* * * *
* * * * *

তৃতীয় ধাপঃ  
#include<stdio.h>
main()
{ int i,j;
    for(i=1;i<=5;i++)
    {
        for(j=5;j>=i;j--) {printf(" ");}
        for(j=1;j<=i;j++) {printf("* ",j);}
        printf("\n");
    }
}





আউটপুট আসবে এরকমঃ


       *
     * *
    * * *
   * * * *
 * * * * * 


No comments:

Post a Comment