Showing posts with label প্রোগ্রামিং. Show all posts
Showing posts with label প্রোগ্রামিং. Show all posts

Tuesday, 27 March 2012

write a program that read 2 number and dispaly G.C.D in C

Definition of HCF (Highest common factor):

HFC is also called greatest common divisor (gcd). HCF of two numbers is a largest positive numbers which can divide both numbers without any remainder.  For example HCF of two numbers 4 and 8 is 2 since 2 is the largest positive number which can dived 4 as well as 8 without a remainder. 

Logic of HCF or GCD of any two numbers:
In HCF we try to find any largest number which can divide both the number.
For example: HCF or GCD of 20 and 30
Both number 20 and 30 are divisible by 1, 2,5,10.
HCF=max (1, 2, 3, 4, 10) =10
Logic for writing program:
It is clear that any number is not divisible by greater than number itself. In case of more than one numbers, a possible maximum number which can divide all of the numbers must be minimum of all of that numbers.
For example: 10, 20, and 30
Min (10, 20, 30) =10 can divide all there numbers. So we will take one for loop which will start form min of the numbers and will stop the loop when it became one, since all numbers are divisible by one. Inside for loop we will write one if conditions which will check divisibility of both the numbers.
Program:


Write a c program for finding gcd (greatest common divisor) of two given numbers


#include<stdio.h>

int main(){

    int x,y,m,i;

    printf("Insert any two number: ");

    scanf("%d%d",&x,&y);
    if(x>y)
         m=y;
    else
         m=x;
    for(i=m;i>=1;i--){
         if(x%i==0&&y%i==0){
             printf("\nHCF of two number is : %d",i) ;
             break;
         }
    }
    return 0;
}


Other logic : HCF (Highest common factor)  program with two numbers in c 



#include<stdio.h>
int main(){
int n1,n2;
printf("\nEnter two numbers:");
scanf("%d %d",&n1,&n2);
while(n1!=n2){
if(n1>=n2-1)
n1=n1-n2;
else
n2=n2-n1;
}
printf("\nGCD=%d",n1);
return 0;
}


HCF  program with multiple numbers in c 


#include<stdio.h>
int main(){
    int x,y=-1;
    printf("Insert numbers. To exit insert zero: ");
   
    while(1){
         scanf("%d",&x);
         if(x<1)
             break;
         else if(y==-1)
             y=x;
         else if (x<y)
             y=gcd(x,y);
         else
             y=gcd(y,x);
    }
    printf("GCD is %d",y);
   
    return 0;
}
int gcd(int x,int y){
    int i;
    for(i=x;i>=1;i--){
         if(x%i==0&&y%i==0){
             break;
         }
    }
    return i;
}

Write a program that read 2 number and display L.C.M in C

LCM program in c with two numbers : 

#include<stdio.h>
int main(){
  int n1,n2,x,y;
  printf("\nEnter two numbers:");
  scanf("%d %d",&n1,&n2);
  x=n1,y=n2;
  while(n1!=n2){
      if(n1>n2)
           n1=n1-n2;
      else
      n2=n2-n1;
  }
  printf("L.C.M=%d",x*y/n1);
  return 0;
}

LCM program in c with two numbers (Other logic) :



#include<stdio.h>

int lcm(int,int);

int main(){

   

    int a,b,l;
    printf("Enter any two positive integers ");
    scanf("%d%d",&a,&b);
 
    if(a>b)
         l = lcm(a,b);
    else
         l = lcm(b,a);
   
    printf("LCM of two integers is %d",l);
    return 0;
}
int lcm(int a,int b){
  
    int temp = a;
    while(1){
         if(temp % b == 0 && temp % a == 0)
             break;
         temp++;
    }
   return temp;
}

LCM program in c with multiple numbers :




#include<stdio.h>

int lcm(int,int);



int main(){
   
    int a,b=1;
    printf("Enter positive integers. To quit press zero.");
    while(1){
         scanf("%d",&a);
         if(a<1)
             break;
         else if(a>b)
             b = lcm(a,b);
         else
             b = lcm(b,a);
    }
    printf("LCM is %d",b);
    return 0;
}
int lcm(int a,int b){
 
    int temp = a;
    while(1){
         if(temp % b == 0 && temp % a == 0)
             break;
         temp++;
    }
    return temp;
}





Definition of LCM (Least common multiple):

LCM of two integers is a smallest positive integer which is multiple of both integers that it is divisible by the both of the numbers.
For example: LCM of two integers 2 and 5 is 10 since 10 is the smallest positive numbers which is divisible by both 2 and 5.

Tuesday, 13 March 2012

পাইথন প্রোগ্রামিং ভাষার ইতিহাস জানুন

 بِسْــــــــــــــــــمِ اﷲِالرَّحْمَنِ اارَّحِيم 

পাইথন (Python) একটি বস্তু-সংশ্লিষ্ট (object-oriented) উচ্চস্তরের প্রোগ্রামিং ভাষা। ১৯৯১ সালে গুইডো ভ্যান রোসাম এটি প্রথম প্রকাশ করেন। পাইথন নির্মাণ করার সময় প্রোগ্রামকে পঠনযোগ্যতার উপর বেশি জোর দেয়া হয়েছে। এখানে প্রোগ্রামারের পরিশ্রমকে কম্পিউটারের চেয়ে বেশি গুরুত্ব দেয়া হয়েছে। পাইথনের কোর সিনট্যাক্স ও সেমান্টিক্‌স খুবই সংক্ষিপ্ত, তবে ভাষাটির স্ট্যান্ডার্ড লাইব্রেরি অনেক সমৃদ্ধ। পাইথন প্রোগ্রামারদের সমাজ থেকে পাইথন দর্শন এর সূচনা হয়েছে। পাইথন একটি বহু-প্যারাডাইম প্রোগ্রামিং ভাষা (ফাংশন-ভিত্তিক, বস্তু-সংশ্লিষ্ট ও নির্দেশমূলক) এবং এটি একটি পুরোপুরি চলমান প্রোগ্রামিং ভাষা যার স্বনিয়ন্ত্রিত মেমরি ব্যবস্থাপনা রয়েছে। এদিক থেকে এটি পার্ল, রুবি প্রভৃতির মত। পাইথন ভাষার মুক্ত, কমিউনিটি-ভিত্তিক উন্নয়ন মডেল রয়েছে, যার দায়িত্বে আছে পাইথন সফটওয়ার ফাউন্ডেশন নামের একটি অলাভজনক প্রতিষ্ঠান। এই ভাষাটির বিভিন্ন অংশের বিধিবদ্ধ বৈশিষ্ট্য ও আদর্শ থাকলেও পুরো ভাষাটিকে এখনো সম্পূর্ণ বিধিবদ্ধ করা হয়নি। তবে কার্যত সিপাইথন ভাষাটির আদর্শ বাস্তবায়িত রূপ।

পাইথন প্রোগ্রামিং ভাষার ইতিহাস জানুন
পাইথন
Python logo.svg
প্যারাডাইম: বহু-প্যারাডাইম
যে বছর তৈরি করা হয়: ১৯৯১
যিনি ডিজাইন করেছেন: গুইডো ভ্যান রোসাম
ডেভেলপার: পাইথন সফটওয়্যার ফাউন্ডেশন
অধুনা প্রকাশ: ২.৫ / ১৯শে সেপ্টেম্বর ২০০৬
টাইপিং ডিসিপ্লিন: কঠোর, চলমান (“ডাক টাইপিং”)
প্রধান বাস্তবায়ন সমূহ: সিপাইথন, জাইথন, আয়রনপাইথন, পাইপাই
যার দ্বারা প্রভাবিত: এবিসি
সি
হ্যাস্কেল
আইকন
লিস্প
মডুলা-৩
পার্লজাভা[১]টেমপ্লেট:Specify
যাকে প্রভাবিত করেছে: রুবি, বু
ওএস: আন্তঃ-প্ল্যাটফর্ম
বৈধপত্র: পাইথন সফটওয়্যার ফাউন্ডেশন লাইসেন্স
ওয়েবসাইট: http://www.python.org/

ইতিহাস

১৯৮০ দশকের শেষের দিকে পাইথনের জন্ম দেন নেদারল্যান্ডের সিডব্লিউআই’র গবেষক গুইডো ভ্যান রোসাম।মূলত এবিসি’র উত্তরসূরী হিসেবে পাইথনের আবির্ভাব হয়েছে যা এক্সেপশন হ্যান্ডলিং করতে এবং অ্যামিবা অপারেটনং সিস্টেমের সাথে কাজ করতে সক্ষম ছিল। ভ্যান রোসাম পাইথনের প্রধান লেখক এবং বর্তমানে পাইথনের উন্নয়নে তিনিই প্রধানত নেতৃত্ব দিচ্ছেন। তাকে পাইথনের আজীবন পরিচালক হিসেবে সম্মান দেয়া হয়েছে।

১৯৯১ সালে ভ্যান রোসাম পাইথনের কোড প্রকাশ করেন (ভার্শন ০.৯.০)।পাইথন ডিজাইনের এই ধাপেই ক্লাস ইনহেরিটেন্স, এক্সেপশন হ্যান্ডলিং, ফাংশন, ও প্রধান ডাটা টাইপ list, dict, str প্রভৃতি সংযুক্ত ছিল। এই প্রাথমিক প্রকাশে ছিল মডুলা-৩ থেকে ধার করা মডিউল সিস্টেম; ভ্যান রোসাম এই মডিউলকে “পাইথনের মূল প্রোগ্রামিং ইউনিটের একটি” আখ্যায়িত করেছেন।পাইথনের এক্সেপশন মডেলটিও অনেকটা মডুলা-৩’র মত যাতে কেবল অতিরিক্ত else যুক্ত হয়েছে।১৯৯৪ সালে পাইথনের প্রধান ফোরাম comp.lang.python গঠিত হয়, এবং পাইথনের ব্যবহারকারীদের জন্য তা মাইলফলক হিসেবে চিহ্নিত হয়।

১৯৯৪ সালের জানুয়ারি পাইথন ১.০ সংস্করনে প্রবেশ করে। এই সংস্করনে যে প্রধান বিষয়াদি যুক্ত হয় তা হলো ফাংশনাল প্রোগ্রামিং টুলস lambda, map, filterreduce। ভ্যান রোসাম বলেন “পাইথন lambda, reduce(), filter() ও map() অধিকার করেছে, (আমি বিশ্বাস করি) একজন লিস্প হ্যাকারের কাছ থেকে যে নিজেকে এগুলো থেকে বঞ্চিত মনে করছিল এবং কর্মক্ষম প্যাচগুলো সরবরাহ করেছে।”এর প্রধান অবদানকারী ছিলেন অমৃত প্রেম; এবং এর প্রকাশ নোটে সে সময় কোন লিস্প প্রোগ্রামের উত্তরসূরী হওয়ার উল্লেখ করা হয়নি।
সিডব্লিউআই থেকে প্রকাশিত সর্বশেষ সংস্করন হচ্ছে পাইথন ১.২। ১৯৯৫ সালে ভ্যান রোসাম ভার্জিনিয়ার কর্পোরেশন ফর ন্যাশনাল রিসার্চ ইনিশিয়েটিভস (সিএনআরআই) প্রতিষ্ঠান থেকে পাইথনের ওপর তার কাজ চালিয়ে যেতে থাকেন এবং এখান থেকে সফটওয়ারটির কয়েকটি সংস্করন বের করেন।

১.৪ সংস্করনের মধ্যে পাইথনের কিছু নতুন বৈশিষ্ঠ্য যোগ করা হয়। এর মধ্যে উল্লেখযোগ্য হলো মডুলা-৩ থেকে উদ্বুদ্ধ হয়ে গ্রহণ করা নতুন কিওয়ার্ড আর্গুমেন্ট (keyword argument) (যা কমন লিস্প এর কিওয়ার্ড আর্গুমেন্টের সাথে অনেকটা মেলে), এবং জটিল সংখ্যার জন্য অভ্যন্তরীন সমর্থন। এছাড়া তথ্য লুকানোর জন্যও একটি বিশেষ ব্যবস্থা ছিল, যদিও তা তেমন কঠিন কিছু ছিলনা।

সিএনআরআই তে থাকাকালীন ভ্যান রোসাম কম্পিউটার প্রোগ্রামিং ফর এভরিবডি (সিপি৪ই) উদ্যোগ গ্রহণ করেন, যাতে আরো অনেক মানুষ কম্পিউটার প্রোগ্রামিং এর সুবিধা গ্রহণ এবং অল্প মৌলিক প্রোগ্রামিং জ্ঞানের (ইংরেজি ও গণিতের জন্য সাধারণ যে জ্ঞান থাকা প্রয়োজন) মাধ্যমে ছোটখাট সমস্যা সমাধান করতে পারে। পাইথন এক্ষেত্রে কেন্দ্রীয় ভূমিকা পালন করেছে যার মূল কারণঃ এর পরিষ্কার সিনট্যাক্সের প্রতি মনোযোগ, এর ব্যবহার উপযোগিতা এবং সিপি৪ই এর লক্ষ্যের সাথে পাইথনের পূর্বসূরী এবিসির লক্ষ্যের মিল। এই প্রকল্পের অর্থায়ন করে DARPA।[৮] এই ২০০৭ সাল পর্যন্ত সিপি৪ই প্রকল্প নিস্ক্রিয় রয়েছে এবং অন্যদিকে পাইথন সাধারণ মানুষের জন্য সহজে শিখার মত প্রোগ্রামিং ভাষা তৈরির লক্ষ্য থেকে অনেকটাই দূরে সরে গেছে। এটা এখন আর পাইথনের জন্য সক্রিয় বিবেচ্য নয়।
২০০০ সালে পাইথনের মূল উন্নয়নকারী দল বিওপেন.কম এর সাথে যুক্ত হয়ে যৌথভাবে বিওপেন পাইথনল্যাবস গঠন করে। সিএনআরআই পাইথনের একটি সংস্করন ১.৬ প্রকাশের অনুরোধ করেছিল যা মূলত এ পর্যন্ত সিএনআরআইতে পাইথনের যেটুকু উন্নয়ন হয়েছে তার সম্মিলিত প্রকাশ। একারণে পাইথনের ১.৬ ও ২.০ সংস্করনের মধ্যে অনেক বিলম্ব ঘটেছিল।পাইথন ২.০ ছিল বিওপেন.কম থেকে প্রকাশিত প্রথম ও একমাত্র পাইথন ডিস্ট্রিবিউশন। পাইথন ২.০ প্রকাশিত হওয়ার পর গুইডো ভ্যান রোসাম ও অন্যান্য পাইথনল্যাবস কর্মীরা ডিজিটাল ক্রিয়েশন্‌স এ যোগ দেন।

পাইথন ২.০ তার বিভিন্ন বৈশিষ্ঠ্যের অনেকাংশই ধার করেছে ফাংশনভিত্তিক প্রোগ্রামিং ভাষা হ্যাস্কেল থেকে। হ্যাস্কেলের লিস্ট ও পাইথনের মধ্যে অনেক মিল রয়েছে যদিও হ্যাস্কেল যতিচিহ্নকে বেশি গুরুত্ব দেয় আর পাইথন গুরুত্ব দেয় বর্ণভিত্তিক কিওয়ার্ড এর উপর। পাইথন ২.০ তে গারবেজ কালেকশন ব্যবস্থা যুক্ত হয়েছে যা নিয়মিত ভাবে মেমরি পরিষ্কার করতে সক্ষম।

এই দ্বৈত প্রকাশের পর ও ভ্যান রোসামের সিএনআরআই ত্যাগ করে বাণিজ্যিক সফটওয়ার নির্মাতাদের সাথে যুক্ত হবার পর পরিষ্কার হয়ে যায় যে, জিপিএল লাইসেন্সের অধীনে পাইথন সফটওয়ারের ব্যবহারের খুবই প্রয়োজনীয়। সে সময় যে লাইসেন্স ব্যবহৃত হত তা ছিল পাইথন লাইসেন্স। এতে একটি সংযুক্তি ছিল যাতে বলা থাকে এই লাইসেন্স ভার্জিনিয়া রাজ্যের নিয়ন্ত্রনাধীন যারা এটা তৈরি করেছে। ফ্রি সফটওয়ার ফাউন্ডেশনের (এফএসএফ) আইনজীবিদের মতে এই লাইসেন্স গনু জিপিএলের সাথে সঙ্গতিপূর্ণ নয়। সিএনআরআই ও এফএসএফ একত্রিত হয়ে পাইথনের লাইসেন্সে পরিবর্তন আনেন যাতে এটা জিপিএলের সাথে সঙ্গতিপূর্ণ হয়। একই বছর (২০০১) ভ্যান রোসামকে এফএসএফ অ্যাওয়ার্ড ফর দ্য অ্যাডভান্সমেন্ট ওব ফ্রি সফটওয়ার পুরস্কার দেয়া হয়।
পাইথন ১.৬.১ আসলে শুধুই পাইথন ১.৬ যাতে কিছুটা ত্রুটি মুক্ত করা হয়েছে এবং নতুন জিপিএল-সঙ্গতিপূর্ণ লাইসেন্স রয়েছে।

পাইথন ২.১ তৈরি করা হয়েছে পাইথন ১.৬.১ ও পাইথন ২.০ এর উপর ভিত্তি করে। এর লাইসেন্সের নাম পরিবর্তন করে রাখা হয় পাইথন সফটওয়ার ফাউন্ডেশন লাইসেন্স। পাইথন ২.১ এর প্রকাশের পর এগুলোর সমস্ত কোড, ডকুমেন্টেশন ও স্পেসিফিকেশন পাইথন সফটওয়ার ফাইন্ডেশন (পিএসএফ) এর অধীনে চলে আসে। অলাভজনক প্রতিষ্ঠান হিসেবে পিএসএফ গঠন করা হয় ২০০১ সালে। এটির ব্যবস্থাপনা ও গঠন অ্যাপাচি সফটওয়ার ফাউন্ডেশনের আদলে করা হয়।এই ভার্শনে স্ট্যাটিক স্কোপিং নিয়মাবলী (যেটির মূল প্রবক্তা হচ্ছে স্কিম নামে একটি প্রোগ্রামিং ভাষা) যোগ করা হয়, যদিও প্রথম দিকে এটি বাধ্যতামূলক ও সাধারনভাবে সক্রিয় ছিল না।

পাইথন ২.২ এর একটি প্রধান উদ্ভাবন হচ্ছে পাইথনের বিভিন্ন টাইপ (সি তে লেখা টাইপসমূহ) ও ক্লাসের (পাইথনে লেখা টাইপসমূহ) একই গঠনের আওতায় নিয়ে আসা। এর ফলে পাইথনের অবজেক্ট মডেল অনেক স্থিতিশীল ও প্রকৃত অবজেক্ট ওরিয়েন্টেড হয়েছে।এতে আরও যুক্ত করা হয়েছে জেনারেটর যেটি আইকন নামে একটি ভাষায় প্রথম ব্যবহৃত হয়েছে।

পাইথনের স্ট্যান্ডার্ড লাইব্রেরী ও সিনট্যাক্টিক্যাল ব্যবহার জাভা থেকে অনুপ্রাণিত হয়েছে। কোন কোন ক্ষেত্রে যেমনঃ logging প্যাকেজ,যা যুক্ত হয় ২.৩ ভার্সনে,স্যাক্স পার্সার যা ২.০ সংস্করনে যুক্ত হয় এবং ডেকোরেটর সিনট্যাক্স যা @ ব্যবহার করে এবং ২.৪ সংস্করনে যুক্ত হয় added in version 2.4 ইত্যাদি।

ব্যবহার

যে সকল বড় বড় প্রকল্পে পাইথন ব্যবহৃত হয়েছে তার মধ্যে জোপ অ্যাপ্লিকেশন সার্ভার, এমনেট ডিস্ট্রিবিউটেড ফাইল স্টোর, ইউটিউব এবং মূল বিটটরেন্ট ক্লায়েন্ট উল্লেখযোগ্য। যে সমস্ত বড় প্রতিষ্ঠান পাইথন ব্যবহার করে তাদের মধ্যে গুগল ও নাসাউল্লেখযোগ্য।তথ্য নিরাপত্তা শিল্পে পাইথনে বহুবিধ ব্যবহার লক্ষনীয়। এর মধ্যে ইমিউনিটি সিকিউরিটির কিছু টুলস,কোর সিকিউরিটির কিছু টুলস, ওয়েব অ্যাপ্লিকেশনের নিরাপত্তা স্ক্যানার ওয়াপিটি,ও ফাজার টিএওএফবিশেষভাবে উল্লেখযোগ্য। সাধারণত দ্রুত সফটওয়ার নির্মাণের জন্য পাইথন ব্যবহৃত হয়।
তথ্যসূত্র
  1. http://www.python.org/doc/2.2.3/whatsnew/sect-rellinks.html
  2. http://www.python.org/doc/2.2.3/whatsnew/node5.html
  3. http://www.python.org/dev/peps/pep-0282/
  4. http://www.python.org/doc/2.3/whatsnew/node9.html
  5. http://www.python.org/dev/peps/pep-0318/
  6. http://www.python.org/doc/2.4/whatsnew/node6.html
  7. http://python.org/Quotes.html
  8. http://www.python.org/about/success/usa/
  9. http://www.immunitysec.com/products-immdbg.shtml
  10. http://svn.python.org/view/*checkout*/python/trunk/Misc/HISTORY

Monday, 12 March 2012

প্রোগ্রামারদের জন্য এডিটর- Notepad++

بِسْــــــــــــــــــمِ اﷲِالرَّحْمَنِ اارَّحِيم 
 
আপনি প্রোগ্রামার , ওয়েব ডিজাইনার অথবা ওয়েব ডেবলপার যাই হয়ে থাকুন না কেন আপনাকে আপনার প্রত্যেক প্রজেক্টে  ই source code এডিট করতে হয়। source code এডিট করার  অনেক এডিটর রয়েছে, আমার কাছে যেটা ভালো লাগছে তা হল Notepad++
Notepad++ দিয়ে আপনি সাধারন টেক্সট ফাইল, Ada, Assembly,C,C++, JAVA, Phython, Rubi.C#,PHP, HTM,CSS সহ এ পর্যন্ত জনপ্রিয় সকল প্রোগ্রামিং ল্যঙ্গুয়েজ ও স্ক্রিপ্টীং ল্যঙ্গুয়েজ এডিট করতে পারবেন। এটির মধ্যে প্লাগইন্স যোগ করে পাবেন বাড়তি সুবিধা।
আপনি যদি প্রোগ্রামিং বা ডেবলপিং এ নতুন হয়ে থাকেন তাহলে আপনার শিখাকে সহজ করে নিতে পারেন এ Notepad++ দিয়ে। টাকার কথা ভাবছেন?এটি ফ্রী। সাইজ ও অনেক কম মাত্র ৫.২৮ মেগাবাইট।এখন তাদের Notepad++ 5.8.7  ভার্সন রিলিজ হয়েছে।
ইন্টারপেসটি দেখতে নিচের মত।
তো আর দেরি কেন?? এখনি ডাউনলোড করে নিন ফ্রি  এ এডিটর টি।
ডাউনলোড লিঙ্কঃ