Monday, 4 September 2017

প্রোগ্রামে অপারেটরের ব্যবহার

আমরা আগের পোস্টে অপারেটর নিয়ে আলোচনা করেছিলাম। আজকে আমরা লজিক্যাল অপারেটর ব্যবহার করে কিছু প্রোগ্রাম দেখবো।

আমরা নেস্টেড ইফ এলস ব্যবহার করে ৩ টি সংখ্যা থেকে বড় সংখ্যা নির্ণয় করেছিলাম। program 3.1 এ।




বোঝার সুবিধার্তে আমি আগের প্রোগ্রামটি আবার হুবহু তুলে ধরছি ।


#include <stdio.h>

int main()
{
    /* ৩ টি ইন্টজার ভেরিয়েবল ডেক্লিয়ার */
    int num1, num2, num3;

    /* ইউজারের কাছ থেকে ইনপুট গ্রহণ */
    printf("Enter three numbers: ");
    scanf("%d%d%d", &num1, &num2, &num3);

    if(num1 > num2)
    {
        if(num1 > num3)
        {
            /* যদি num1>num2 এবং num1>num3 হয় */
            printf("Num1 is max.");
        }
        else
        {
            /* যদি num1>num2 হয় কিন্তু num1<num3 হয় */
            printf("Num3 is max.");
        }
    }
    else
    {
        if(num2 > num3)
        {
            /* যদি num1<num2 হয় এবং num2>num3 */
            printf("Num2 is max.");
        }
        else
        {
            /* যদি num1<num2 এবং num2<num3 */
            printf("Num3 is max.");
        }
    }

    return 0;
}
এই প্রগ্রামটি আমরা && অপারেটর ব্যবহার করেও করতে পারি।

#include<stdio.h>
int main()
{
   int num1,num2,num3;
   scanf("%d %d %d",&num1,&num2,&num3);

   if(num1>num2 && num1>num3)
   {
       printf("Num1 is max");
   }
   else if(num2>num1 && num2>num3)
   {
       printf("Num2 is max");
   }
   else
   {
       printf("Num3 is max");
   }
   return 0;
}
 
উপরের দুইটা প্রোগ্রামের কাজ একই। প্রথম প্রোগ্রামে (3.1) এ আমরা নেস্টেড কন্ডিশন ব্যবহার করেছি। কিন্তু প্রোগ্রাম (3.2) তে আমরা && (অ্যান্ড অপারেটর) ব্যবহার করে দুটি শর্ত একসাথে জোড়ে দিয়েছি। && এর পুর্বের এবং পরের দুইটি শর্ত সত্য হলেই তার পরের { } এর ভিতরের কাজ করবে। কোন একটি শর্ত মিথ্যা হলেই কম্পাইলার পরবর্তী ধাপে চলে যাবে। এবার দেখে নেই কিভাবে উপরের প্রোগ্রামটি (3.2) কাজ করছে।



  • মনেকরি,  num1 = 10, num2 = 20, num3 = 15
  •  কম্পাইলার  if(num1>num2 && num1>num3) এ আসার পর দেখবে num1>num2 এই অংশটা মিথ্যা num1>num3 এই অংশটাও মিথ্যা তাই এখানে কোন কাজ করবে না। else if  এ চলে যাবে।
  •  else if এ আসার পর (num2>num1 && num2>num3) এই কন্ডি↕শন চেক করবে। এবার দেখবে num2>num1 এই অংশ সত্য আবার num2>num3 এই অংশ ও সত্য। তাই { } এর ভিতরের কাজ করবে।
এরপর কম্পাইলার return 0; তে আসবে এবং প্রোগ্রাম বন্ধ হয়ে যাবে।


এবার আরেকটি প্রোগ্রাম দেখিঃ

#include<stdio.h>
int main()
{
   int a = 5,b = 10,c = 15;

   if(b>a && b>c)
   {
       printf("b is max");
   }
   else if(a>b && a>c)
   {
       printf("a is max");
   }
   else
   {
       printf("c is max");
   }
   return 0;
}
এখন তুমি বলো উপরের প্রোগ্রামের আউটপুট কী হবে?


  •  if(b>a && b>c)  এই লাইনে আসার পর কম্পাইলার দেখবে b>a কন্ডিশনের এই অংশটি সত্য। কিন্ত্য && এর পর b>c এই অংশটি মিথ্যা কারণ 10 তো 15 এর চেয়ে বড় নয়। তাই একটি মিথ্যা হওয়ার কারণে কম্পাইলার  এখানে কোন কাজ করবে না। && অপারেটরের উভয় পাশের শর্ত সত্য হলেই শুধুমাত্র কমান্ড গ্রহণ করবে।
  •   এবার কম্পাইলার else if এ চলে আসবে দেখবে , a>b শর্তটি মিথ্যা a>c শর্তটিও মিথ্যা কম্পাইলার এবার ও এখানে কোন কাজ করবে না।
  •   else এ চলে আসবে এবং { } এর ভিতরের নির্দেশ মতো কাজ করবে।


এবার আমরা আরেকটা অপারেটর নিয়ে কাজ করবো। একে বলা হয় অর অপারেটর। ( ।। )  পাশাপাশি দুইটা লম্বা দাড়ি একসাথে দিলে যেমন হয় অনেকটা সেরকম। অর অপারেটর এর দুইপাশের যেকোন একটি শর্ত সত্য হলেই সেটি নির্দেশ অনুসরণ করে কাজ করে।

 

#include<stdio.h>
int main()
{
   int a = 5,b = 10;

   if(a==5 || b==5)
   {
       printf("This is 5\n");
   }
   else
   {
      printf("This is 10\n);
   } 
   return 0;
}
উপরের প্রোগ্রামের আউটপুট কী হবে বলো তো?
যেহেতু a==5 এই শর্তটি সত্য তাই || এর পর b==5 এই শর্ত মিথ্যা হওয়ার পরও আউটপুট আসবে

This is 5

এতক্ষণে নিশ্চয়ই অপারেটর , নেস্টেড ইফ এলস এবং ইফ এলস নিয়ে আর কোন শংশয় নেই।

তারপর ও কোন কিছু না বোঝলে কমেন্ট করবে।আগামী পর্বে থাকবে কিছু সহজ সমস্যা।

happy Coding ☺😎

Related Posts:

  • ইফ এলস নিয়ে কিছু সহজ সমস্যা!! (IF ELSE Exercise)  তিনটি সংখ্যার মধ্যে বড় সংখ্যা নির্ণয়ের প্রোগ্রাম লিখো। একটি সংখ্যা পজেটিভ , নেগেটিভ নাকি জিরো তা নির্ণয় করো।  কোন সংখ্যাকে ৫ ও ১১ দিয়ে ভাগ করা যাবে কি না? তা নির্ণয়ের প্রোগ্রাম লেখো। কোন সংখ্যা জোড় কি বেজো… Read More
  • লজিক্যাল স্টেটমেন্ট (NESTED IF-ELSE)গত পর্বের দেওয়া প্রোগ্রামগুলো আশা করি সবাই efficient  করে নতুনভাবে করেছো। আজকে আমরা আলোচনা করবো নেস্টেড ইফ এলস নিয়ে। Nested if-else কি? নাম শুনে কঠিন মনে হলেও আসলে এটা তেমন কিছু না। একটা if কিংবা else if অথবা else… Read More
  • Solution of If-else problem (part-2) 7.একটি অ্যালফাবেট VOWEL নাকি CONSONENT ? তা নির্ণয়ের প্রোগ্রাম লিখো। #include <stdio.h> int main() { char ch; /* Input character from user */ printf("Enter any character: "); scanf("%c", &ch)… Read More
  • প্রোগ্রামে অপারেটরের ব্যবহারআমরা আগের পোস্টে অপারেটর নিয়ে আলোচনা করেছিলাম। আজকে আমরা লজিক্যাল অপারেটর ব্যবহার করে কিছু প্রোগ্রাম দেখবো। আমরা নেস্টেড ইফ এলস ব্যবহার করে ৩ টি সংখ্যা থেকে বড় সংখ্যা নির্ণয় করেছিলাম। program 3.1 এ। বোঝার সুবিধার্তে আম… Read More
  • Solution of If-else problem (part-1) Problem-1: তিনটি সংখ্যার মধ্যে বড় সংখ্যা নির্ণয়ের প্রোগ্রাম লিখো। Solution: #include <stdio.h> int main() { int num1, num2, num3, max; /* Input three numbers from user */ printf("Enter three numbers… Read More

0 comments:

Post a Comment