সোমবার, ১৪ অক্টোবর, ২০১৩

1305 - Area of a Parallelogram

সমস্যাটি খুব-ই সোজা মানের । এটি সমাধানের জন্য যে knowledge থাকা লাগবে টা একজন উচ্চমাধ্যমিক শিক্ষার্থীর রয়েছে ।  আমরা প্রথমে সমস্যাটি সমাধানের জন্য প্রয়োজনীয় concept এর আলোচনা করব এবং পরে সমস্যাটি সমাধানের জন্য প্রয়োজনীয় step অবলম্বন করব ।

Problem Specification :
          তোমাকে একটি সামান্তরিক দেয়া হল যার প্রথম তিনটি স্থানাঙ্ক তুমি জান । মনে কর, সেই গুলিহল , Ax,Ay,Bx,By,Cx,Cy . চতুর্থ বাহুর স্থানাঙ্ক হল Dx,Dy .
                                        
          এখন তোমাকে চতুর্থ বাহুর স্থানাঙ্ক এবং সামান্তরিকটির ক্ষেত্রফল বের করা লাগবে ।

Theory of Solution :

          সামান্তরিকের তিনটি বাহুর স্থানাঙ্ক জানা থাকলে চতুর্থ বাহুর স্থানাঙ্ক খুব সহজেই নিচের ফর্মুলা অনুসারে বের করা যায় ।

          Dx = Ax + Cx-Bx
          Dy = Ay+Cy - By

         Area নির্ণয় করার কোন সুত্র উচ্চমাধ্যমিক পর্যায়ে পরে এসেছ ? ঠিকই ধরতে পেরেছ । Area নির্ণয় এর ফর্মুলা হবেঃ
                 

          q=((Ax*By)+(Bx*Cy)+(Cx*Dy)+(Dx*Ay))-((Ay*Bx)+(By*Cx)+(Cy*Dx)+(Dy*Ax));
          area=0.5*q;

সতর্কতাঃ
      Co-ordinate এর অবস্থানের কারণে Area এর মান negative আসতে পারে । কাজেই Check করে নাও ।
Program Outline:

#include<stdio.h>
int main()
{
    int a,ax,ay,bx,by,cx,cy,dx,dy,area,i,q;
    scanf("%d",&a);
    for(i=0;i<a;i++){
        scanf("%d%d%d%d%d%d",&ax,&ay,&bx,&by,&cx,&cy);
        dx=cx+ax-bx;
        dy=cy+ay-by;
        q=((ax*by)+(bx*cy)+(cx*dy)+(dx*ay))-((ay*bx)+(by*cx)+(cy*dx)+(dy*ax));
        if(q<0)
            q*=-1;
        area=0.5*q;
        printf("Case %d: %d %d %d\n",i+1,dx,dy,area);
    }
}

     



  

৪টি মন্তব্য: